Blog
-
What happens when a job worker crashes
A worker dies mid-job. The hard part is noticing — how BullMQ and Redis turn a job lock with a TTL into a crash signal, and why an expired lock is the only evidence a killed worker leaves behind.
-
Building a Sandbox IDE Part II - Socket Programming
How the host actually talks to a Firecracker microVM — Unix domain sockets, why a socket is just a file, the curl --unix-socket trick, and Firecracker's one-process-per-VM model.
-
Building a Sandbox IDE Part I - microVMs and Firecracker
Why each agent session gets its own Firecracker microVM — the requirements that forced the choice, and the high-level shape of the system from browser to guest.
-
When does TLS termination happen in the backend?
Two places TLS can terminate in a backend, what the server code looks like in each, and why I default to the load balancer.
-
Writing My Own Coding Agent Part I - Streaming
Why I am building my own coding agent, and why streaming is where I started.
-
Connection pooling
Why opening a Postgres connection is more expensive than you think, and the three rungs of the pooling ladder — in-process, RDS Proxy, pgBouncer.
-
The JavaScript event loop: microtasks, macrotasks, and process.nextTick
Why a process.nextTick callback written after a setTimeout still runs first — and the priority hierarchy that explains it.
-
How does SSH work?
Who holds which key, what "signing a challenge" actually means, and why the intuition breaks for Ed25519.
-
How AWS Aurora & RDS achieves durable writes
What really happens to write queries — the 4-of-6 storage quorum, why six copies, and where the reader instance actually fits.