The Journal
Writing about the craft of building software.
Pragmatic notes from the trench — architecture decisions, performance work, and the small patterns that make codebases pleasant to live in.
Shipping SSR on Next.js: how I cut page loads by 35%
A pragmatic walk-through of the rendering, caching and image strategies behind a real CMS revamp — including the trade-offs nobody talks about.
Docker + Azure DevOps: a CI/CD recipe that halves release time
The exact pipeline structure, caching tricks and image layering rules that took our deploys from 18 minutes to under 9.
Design systems with Tailwind: lessons from real-world products
Tokens, primitives, and the discipline it takes to keep a Tailwind codebase from devolving into utility-class soup.
Build log: shipping a real-time video app with WebRTC & Socket.io
What I learned wiring up signaling, ICE servers and connection recovery for MeetSpace — the unsexy parts of real-time.
TypeScript discriminated unions: the pattern I reach for daily
How a small modeling discipline turns runtime branches into compile-time guarantees — and makes refactors fearless.
A working mental model for React Server Components
After a year of shipping with RSC in production, here's the framing that finally made it click for my team.