$ ./about
Polyglot
PHP, Go, Java, Python to DevOps across AWS, GCP & Terraform.
World Traveler
Visited 50 countries so far.
Tech Speaker
Speaker at various conferences and meetups.
Open Source
1.2k+ GitHub followers, active contributor.
$ cat stack.txt
$ ./articles
$ ls articles
Designing a Flash-Sale Seat Reservation System in AWS (Part 3): Holds, Payments, and the Slow Path
An admitted seat is only half a booking. Part 3 follows it through payment: a 10-minute hold, redirect signals that anyone can fake, one reconciler that makes every release decision, a payment gateway token shared across the fleet, and an SQS FIFO to DynamoDB pipeline that never makes a user wait.
Designing a Flash-Sale Seat Reservation System in AWS (Part 2): Never Sell a Seat Twice
The whole promise of the system depends on one Redis Lua script. Part 2 explains what it checks and in what order, why Lua won over MULTI/WATCH and distributed locks, and the four ways an in-memory counter can still go wrong: double rollbacks, lost replies, crashed requests, and a failover that loses the last writes.
Designing a Flash-Sale Seat Reservation System in AWS (Part 1): The Architecture
20,700 exam seats, millions of people trying at the same time, and an older system that crashed and sold seats twice. Part 1 explains what the traffic looked like, why one atomic Redis script decides who gets a seat instead of a database, how CloudFront handles three out of four requests before they reach a server, and why we added servers before the event instead of using autoscaling.
Timothy Part 26: One Terminal Event and Five Ways to Lose It
A slow model on a CPU-only box made streaming chat turns vanish with zero trace: no assistant message, no error, no evidence the turn ran. Five commits trace one causal chain, defending a single contract in the gateway: a stream ends with exactly one terminal event.
Timothy Part 25: Routes as Roles, Not Names
Routing used to be 7 frozen route names compared by string literal across the gateway and brain. Now a capability column and a role column decouple what a route does from what it is called, routes are user-managed from the settings panel, and the headline feature shipped unreachable through the public API for a few hours because the proxy allowlist and the gateway endpoints live in different files.
# ---
>_ ls articles --all