Category · 38 articles
System Design
The Capacity Estimation Numbers Every Engineer Should Carry Into a System Design
I built a single reference page of capacity estimation formulas and latency numbers for my Senior to Staff cohort. Read it before you design anything, and walk into your next system design interview knowing exactly when to scale and how to say so.
5 Jun 2026
Notes From My First Cohort: System Design Is Trade-offs, Not Answers
Tonight I taught the first live session of my Senior to Staff cohort. The lesson I kept coming back to: system design is not about the right answer, it is about reasoning along the axes and owning the trade-off.
3 Jun 2026
Write HLDs and ADRs in HTML or React, Not Markdown
Most engineers write HLDs and ADRs in markdown. Here is why I switched to HTML and React specs, and how living documentation changed my design reviews.
16 May 2026
CRDTs: Conflict-Free Merging in Distributed Systems
CRDTs let distributed nodes accept writes and merge without conflict or coordination. No locking, no round-trips. Here is when the trade-off makes sense.
11 May 2026
Race Conditions: What They Are and How to Handle Them
Race conditions cause subtle, hard-to-reproduce bugs in concurrent systems. Learn what they are, why they happen, and practical techniques to prevent them.
8 May 2026
SLO, SLA, SLI: What They Actually Mean and How to Use Them
Learn what SLO, SLA, and SLI actually mean, how they relate to each other, and how to set targets you can honestly hit.
6 May 2026
ACID Transactions Explained (Without the Textbook)
ACID transactions explained: what Atomicity, Consistency, Isolation, and Durability actually mean for your database and distributed system design.
6 May 2026
Resilience Patterns: Retry, Circuit Breaker, and Timeouts
A few months ago I was reviewing an incident postmortem where a payment service took down the entire checkout flow for 40 minutes. The root cause wasn't a...
2 May 2026
Local-First Architecture: The Quiet Revolution Nobody Is Talking About
Optimistic UI has been a lie we told ourselves for years. Not a malicious one — a well-intentioned one. You click a button, the UI updates immediately, an...
27 Apr 2026
The Transactional Outbox Pattern: Guaranteed Event Publishing Without 2PC
There is a class of bug that is almost impossible to reproduce locally, surfaces only in production under load, and leaves your data in a state that is te...
27 Apr 2026
CloudEvents: The Standard Your Event-Driven System Needs
Once a system has more than two or three services publishing events, the same problem shows up every time. One service uses event_type, another uses event...
27 Apr 2026
Clean Architecture and Onion Architecture: The Same Idea, Drawn Differently
I've reviewed a lot of codebases over the years where someone had clearly read Uncle Bob's Clean Architecture book, gone back to their team, and said "we'...
18 Apr 2026
Event Sourcing: When History Matters More Than State
I deleted a user's order. Not intentionally. A bug in our payment processing system overwrote the order state. The customer called, furious. "Where's my o...
1 Feb 2026
The Five Architecture Principles That Actually Matter
Most engineers talk about architecture principles. Few actually build systems that follow them. I've seen this gap at Tipalti, at Mecca Brands, and in eve...
26 Jan 2026
Non-Functional Requirements in Software Architecture: How to Define Them
Most engineers I work with can tell you what a system should do. Few can tell you how well it should do it. That gap between "what" and "how well" is wher...
24 Jan 2026
Lambda Architecture: The Dual-Pipeline Problem That Won't Go Away
If you're building systems that need both real-time responses and historical analysis, you've probably heard about Lambda Architecture. Maybe someone reco...
11 Jan 2026
Outbox Pattern: Guarantee DB-to-Broker Atomicity
A team I worked with had a recurring nightmare: the database would commit a transaction, but the event never made it to the message broker. Or worse, the...
24 Oct 2025
System Design Interview Playbook: 10-20min Structure and TypeScript
I've both interviewed at and conducted system design interviews for large engineering teams. I also run workshops through PersiaJS and my newsletter. Over...
22 Oct 2025
The Map That Made Me Rethink My System Design Approach
I stumbled upon a visual "System Design Topic Map" from ByteByteGo that stopped me mid-scroll. As someone who's built products, led teams, and spent too m...
10 Aug 2025
How would you design system a frontend like Trello?
I've used Trello for years. What makes it feel great isn't the feature list — it's the interaction model. Drag a card, drop it in another list, and everyt...
8 May 2024
How would you design an expense app?
At Tipalti, I worked on payment and expense systems. The hardest part wasn't processing the expense itself. It was the approval workflow. Every organizati...
2 May 2024
OAuth2 Sequence Diagrams, Demystified
OAuth2 stops being black magic once you draw it. The authorization code flow explained step by step as a sequence diagram, with every token and redirect.
1 May 2024
How would you design Netflix?
Netflix streams video to 230+ million subscribers worldwide. Simultaneously. In varying network conditions. On thousands of different devices. And the vid...
31 Mar 2024
How would you design Dropbox?
Dropbox does one thing and does it well: keep your files in sync across every device you own. Simple idea. Monstrous engineering challenge underneath.
31 Mar 2024
How would you design Instagram?
Instagram processes over 100 million photos per day. Each photo gets uploaded, stored, processed into multiple resolutions, served through a CDN, and disp...
31 Mar 2024
How would you design Twitter?
Twitter's core product is deceptively simple: users post 280-character messages and other users see them. But behind that simplicity sits one of the most ...
31 Mar 2024
How would you design an app like Uber?
Uber connects a rider who needs to get somewhere with a driver who's nearby. Simple concept. The system behind it handles millions of location updates per...
30 Mar 2024
How would you design a resource allocation app?
I built this system for a real problem: an ISP needed to connect new 10Gbps internet customers to the nearest available infrastructure chamber. The sales ...
24 Mar 2024
How would you design a delivery app?
A delivery app has three users with three completely different needs: the customer ordering food, the restaurant preparing it, and the driver delivering i...
9 Mar 2024
How would you design a messaging app?
I built a chat feature once that worked great in testing. Two users, messages flying back and forth, instant delivery. Then we launched. 10,000 concurrent...
9 Mar 2024
How would you design an autocomplete for a search engine?
Type "how to" into Google. Before you finish typing, ten suggestions appear. In under 50 milliseconds. Across billions of possible queries. That's autocom...
9 Mar 2024
How would you design an e-commerce store?
I've built e-commerce systems that processed thousands of orders per day. The hardest part isn't the shopping cart or the product page. It's what happens ...
8 Mar 2024
How would you design an online file-sharing system?
I once watched a 2GB upload fail at 98%. The user had to start over. No resume. No partial progress. Just gone.
8 Mar 2024
How would you design a URL-shortening service?
A URL shortener is the "Hello World" of system design interviews. Simple on the surface. But once you start thinking about scale, collision handling, anal...
8 Mar 2024
How would you design a parking lot?
I once spent 20 minutes circling a parking garage that had a sign saying "SPACES AVAILABLE." The sign was wrong. Every spot was taken. The system that con...
8 Mar 2024
How would you design a social media app?
Every social media app starts the same way: "Users post things. Other users see them." Then reality hits. Your news feed query takes 30 seconds. Your noti...
8 Mar 2024
Magic of Horizontal and Vertical Scaling
Your application is slow. Users are complaining. The server is maxing out CPU and memory. You need more capacity. You have two options: make the server bi...
31 Jan 2024
Software Architecture Talk on 20th July
I gave a talk on software architecture at the office. Here's the presentation and the key takeaway.
14 Oct 2023