Broken things bother me.

I'm not a perfectionist. I don't need things to be beautiful; I need them to not waste anyone's time. A door that says push but opens on pull. A form that loses everything you typed. A process with one step too many. Same offense, different scales, and I can't walk past any of them.

That one trait explains most of my choices. It's why I build software, why I keep rebuilding things that technically work, and why "good enough" has never once felt like enough.

Outside of that: 35,000 games of chess and I'm still rated 1700, which should be embarrassing but mostly feels like a hobby doing its job. I run because I like running. That's the whole story. I've been reading Sapiens for over a year now. The only non-academic book I've ever finished is A Little History of Economics, and honestly, it earned it.

This site exists because I consume far more than I make sense of. Writing forces me to find out whether I actually understand something or just recognize it. So far the results are mixed. That's kind of the point.

Skills

Backend & Systems

Node.jsPythonDjangoREST APIs

Infrastructure

AWS Lambda/EC2/S3DockerRedisCI/CDKubernetes

Data & Processing

MongoDBsklearnData PipelinesQuery Optimization

Web & Mobile

ReactFlutterDartHTML/CSS

Scraping & Automation

Web ScrapingPlaywrightPuppeteerProxy RotationAnti-detection

Contact