Writing on data systems, software engineering, and building for the web.
You Want to Turn Your Web App Into a PWA?
So You Want to Turn Your Web App Into a PWA?A while back, I went down the PWA rabbit hole for a side project, a little calorie tracker I’d built with React and Vite. I kept seeing the term “PWA” throw...
How I Deploy My Next.js App on AWS Amplify (Simple Guide + One Bug I Hit)A beginner-friendly walkthrough: why I picked Amplify, how I deploy, what it costs, and a sneaky bug I ran into.When my Next.js...
Deploying an Express Backend to AWS Lambda with GitHub Actions
Running an Express app locally is simple node index.js, done. Deploying it to AWS Lambda is a different story - not because it's hard, but because Lambda works nothing like a traditional server.Th...
Payments look simple from the outside. Show a button, collect money, unlock the feature.I wired up Razorpay into a subscription-based React + Node.js app recently and spent more time than I’d like to ...
Why Your PDF Looks Fine on Screen but Blurry When Printed (Node.js)
LLM GeneratedWe generate barcode PDFs using Puppeteer. One day, a client reported that barcodes aren’t scanning properly after printing. We checked the PDF - looked fine. Opened it on screen - sharp a...
Before New Relic, debugging a slow API in production meant one thing, staring at console.log output and guessing.Someone reports “the order page is slow.” You have no idea if it’s a slow query, a slow...
I Replaced Debezium with a Cron Job. Here’s How I Made It Reliable.
Debezium was going down 3–4 times a month. Its only job in our system was publishing events to Kafka — order created, PO created, that kind of thing. Every time it went down, events were lost.So I rep...