At the beginning of this series, the problem seemed simple. There were a lot of rocks in the yard. Some were small. Some were large. A few were firmly in what I’ve been calling Engine Block Class. The original idea was straightforward: catalog them, maybe sell a few, and build a small system around the process. Along the way, the project grew. What We Built Across the previous posts, the Backyard
When developers travel, we usually prepare the obvious things. Laptop charger. But there is one dependency that is easy to underestimate until it breaks: mobile internet. A trip to China makes this especially obvious. Not because China is hard to travel in, but because so many basic interactions are mobile-first: navigation, translation, ride-hailing, hotel communication, ticket confirmations, pay
A defaced website is a curious problem. It's loud — anyone visiting the page can see something is wrong. But it's also quiet from a server's perspective: HTTP returns 200, your uptime monitor is happy, your TLS cert hasn't moved, and the CMS logs show a "successful" content update from a legitimate-looking session. The signal is on the rendered page, not in the metrics. I run a site at hi3ris.blue
You just ran a dependency scan and the report shows 133 vulnerabilities. 34 are Critical. 68 are High. The dashboard is red, the backlog is exploding, and every item looks urgent. The engineering team asks the obvious question: where do we start? This is where vulnerability remediation prioritization matters. Without a clear framework, teams either panic and chase the loudest CVE, or they ignore t
We've been there. JSON Schema gets hard to write as soon as your payload is non-trivial. Conditional logic, cross-field rules, business invariants, and at some point we stop writing contracts at all. We go code-first, generate the schema from annotations, and end up with 200 lines very few understand, and error messages referencing paths like #/properties/items/allOf/0/then/Then that map to nothin
Metric Value Django Average Response Time 287ms Node.js Average Response Time 193ms Django Memory Usage (1000 users) 1.8GB We tested Django 4.2 and Node.js 18.16 under identical conditions to measure their performance for reporting dashboard workloads. The test environment consisted of AWS EC2 m5.2xlarge instances (8 vCPUs, 32GB RAM) running Ubuntu 22.04. Both frameworks connected to th
If you've ever built ETL pipelines pulling data from MongoDB into Delta Lake using Spark, you've probably hit this wall. The pipeline works fine — until it doesn't. A single document with an unexpected shape is enough to break the entire write, leave the table in an inconsistent state, and send your on-call engineer digging through Spark logs at 11pm. I built and maintained more than 10 of these j
I was out walking with my dog Dexter, daydreaming on the first properly warm day of the year. I was lost in my own mind mulling over a conversation I'd had with a fellow Game Developer about how we've adapted to the use of AI as software engineers. None of the existing labels fit. "Vibe coding", Karpathy's term, elicits a culture of care-free one-shotting with little to no regard for the code qual