About
I build things I need, then keep them running.
That second half is the part I've come to care about more. Writing a stock tracker is a weekend. Keeping its backend alive on a 12-year-old laptop, behind a Cloudflare tunnel, with log rotation configured because the hard drive will genuinely fill up otherwise — that's where I learned the most.
How it usually goes
StockStash started because I wanted watchlists and target-price alerts that understood the NSE trading calendar. The Python backend pulls from Yahoo Finance. It got rate-limited on Render, because Render's shared IPs are well known to commercial APIs. Moving it to a residential IP fixed it completely. That's the moment the old laptop in the cupboard became a real server.
WorkoutTracker exists because every app I tried assumed a training style that wasn't mine. So the data model is mine.
The server ran Ubuntu, PM2 for a Node service, Docker for the Python one,
cloudflared for ingress so no router ports were open, and a self-hosted GitHub
Actions runner so pushing to main deployed straight from my living room.
What I work with
Day to day: Python, Cloudflared, Docker, Ubuntu, Typescript, React, Next.js.
Comfortable enough to be useful in: Linux administration, CI/CD, container config, and the unglamorous parts of keeping a service up and helping my life get better daily.
How I like to work
Owning something end to end, and being the person responsible when it breaks. The interesting problems are rarely in the first version — they turn up at 2am three months later, and that is where I have learned the most. I love learning on the go. If a problem comes in front of me, I would not just want it solved, but learn from it. I like 'Learn Something New' everyday.
If you want to talk about any of this, email me.