Hi, I'm Mukul 👋
Software developer writing about technology, programming, book reviews, and tools I build. Welcome to my corner of the internet.
Latest Posts
-
System Design: Building a File Storage Service Like S3
A system design breakdown of how object storage services like S3 work internally, covering metadata, chunking, replication, and consistency.
-
System Design: How Distributed Locks Work (Redlock, Zookeeper)
How distributed locking actually works, covering Redis-based Redlock and ZooKeeper's ephemeral sequential nodes, plus the trade-offs between them.
-
System Design: Designing an API Gateway from Scratch
A system design guide to building an API gateway, covering routing, rate limiting, authentication, and the trade-offs of centralizing cross-cutting concerns.
-
State Machines: Making Complex Logic Explicit
How finite state machines turn tangled conditional logic into explicit, testable states and transitions, with a practical Python implementation.
-
The Saga Pattern: Managing Distributed Transactions Without 2PC
How the saga pattern coordinates multi-step transactions across microservices using compensating actions, in both choreography and orchestration forms.
-
Profiling and Benchmarking Python Applications
A practical guide to profiling Python code with cProfile, line_profiler, and py-spy, and how to benchmark correctly with timeit.
-
Understanding Memory Leaks in Long-Running Python Applications
A practical guide to finding and fixing memory leaks in long-running Python services, using tracemalloc, gc, and reference cycle analysis.
-
Python Scripts That Save Hours: File and Directory Processing Patterns
Practical Python patterns for automating file and directory tasks, using pathlib, shutil, and glob to replace repetitive manual work.
-
Multi-Tenancy Patterns for SaaS Applications
A comparison of multi-tenancy database patterns for SaaS applications — shared schema, schema-per-tenant, and database-per-tenant — with real trade-offs.
-
Understanding Linux Process Scheduling
An explanation of how the Linux kernel schedules processes, covering the Completely Fair Scheduler, nice values, priorities, and real-time scheduling classes.