Technical blog covering software architecture, backend development, AI, and engineering best practices.
Latest Posts
Page 3 of 4
Software architectureDatabasesArchitecture
Choosing a database, practicality over purity
Practical guidance to choose the right database for your needs: relational, key-value, document, column-family, graph, and NewSQL trade-offs.
Read more
Software architectureDatabasesOperations
Database replication, how to copy reliably and why it matters
Overview of replication modes, when to use synchronous vs asynchronous replication, and operational practices for reliable failover and scaling.
Read more
Software architectureDatabasesArchitecture
Database sharding, splitting data without losing your mind
A practical look at sharding strategies, design trade-offs, rebalancing, and operational tips for partitioning large datasets.
Read more
Software architectureSystem designArchitecture
Horizontal scaling, building systems that grow outwards
Practical guidance for scaling out by adding nodes, autoscaling flow, orchestration tips, and common pitfalls to avoid.
Read more
Software architectureNetworkingSystem design
Load balancers, the traffic cops of your architecture
Overview of load balancer types, trade-offs between L4 and L7, operational best practices, and deployment recommendations.
Read more
Software architectureSoftware designSystem design
Massively scaling a web application
A complete guide to scaling web applications from a single server to multi-region deployments. Covers vertical and horizontal scaling, load balancing, database sharding, caching, CDNs and more.
Read more
Software architectureArchitectureOperations
Multi-region deployment, global availability with local complexity
Guidance for running services across multiple regions: patterns for routing, data strategies, failover testing, and compliance considerations.
Read more
Software architectureSystem designOperations
Single server setup, when simple is best
Practical guide to single-server deployments: minimal ops, backups, monitoring, and safe evolution strategies for small teams and prototypes.
Read more
Software architectureSystem designArchitecture
Stateful vs Stateless, design choices that shape scalability
Compare stateful and stateless architectures, trade-offs for scaling, operational patterns, and practical techniques for managing state.
Read more
Software architectureSystem designArchitecture
Vertical scaling, when you need raw power
When to scale up a single machine, practical tuning tips for CPU, memory, and storage, and operational cautions for large-instance deployments.
Read more
AILLMGithub
Stock Weather AI
A compact AI toolkit that collects market data and news, runs lightweight evaluations, and produces per-ticker weather-style reports for stock analysis experiments.
Read more
2025techrecallfilai
Recallfilai: document workflow
Designing a linear document workflow system for Recallfilai. Covers multi-tenant workflow management, document lifecycle states, and the architecture of the workflow engine.
Read more
2025techrecallfilai
Recallfilai part 1: requirements and tech stack
Introduction to Recallfilai, an open-source document store with AI capabilities. Covers requirements including upload, search, malware detection, and the chosen tech stack.
Read more
GitGithubGitphoto
GitPhoto
A proof of concept using GitHub as encrypted cloud storage for personal photos and videos. Data is encrypted on-device and stored in private repositories managed by the application.
Read more
GitGithubToolkit
How to push large projects to Github
A practical shell script to push large projects (50+ GB) to GitHub by splitting commits into smaller chunks that fit within GitHub's 2 GB push limit.
Read more
Software architectureSoftware designSOLID
SOLID
Complete guide to SOLID principles in object-oriented programming. Learn Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion with practical examples.
Read more
Software architectureSoftware designSOLID
D (Dependency Inversion) from SOLID
Understand the Dependency Inversion Principle from SOLID. Learn why high-level modules should depend on abstractions, not concrete implementations, and how DIP enables testable, flexible architecture.
Read more
Software architectureSoftware designSOLID
I (Interface Segregation) from SOLID
Learn the Interface Segregation Principle from SOLID. Discover why fat interfaces force unnecessary dependencies and how to design focused, client-specific interfaces.
Read more
Software architectureSoftware designSOLID
L (Liskov Substitution) from SOLID
Understand the Liskov Substitution Principle from SOLID. Learn why subclasses must be substitutable for their parent classes and how violations lead to subtle bugs in inheritance hierarchies.
Read more
Software architectureSoftware designSOLID
O (Open/Closed) from SOLID
Master the Open/Closed Principle from SOLID. Learn how to design software that is open for extension but closed for modification, so new features don't break existing code.
Read more
Software architectureSoftware designSOLID
S (Single Responsibility) from SOLID
Understand the Single Responsibility Principle from SOLID. Learn why a class should have only one reason to change and how SRP leads to more maintainable, testable code.
Read more
FullstackThoughts
Full stack developers
What does full stack developer really mean? A look at the skills required across frontend, backend, databases, infrastructure and project management, and why the title is often overused.
Read more
Software design
Technical debt
Understanding technical debt in software development. Learn how to identify, manage, and pay down technical debt while maintaining agile development velocity.
Read more
Software designSoftware architecture
Microservices vs Monoliths
Comprehensive comparison of microservices and monolithic architectures. Learn when to use each approach, their benefits, trade-offs, and best practices for modern software development.