Designing the Perfect Manifest for Incremental Data Sync
Building a data synchronization service is easy until things break. It's easy to move files from Point A to Point B, but it's incredibly hard to guarantee that Point B is a perfect mirror of Point A — especially when networks fail, data arrives out of order, or sources go silent …
Why Git's Linear Log Can Lie to You
When your team uses merge commits instead of rebasing, git log can deceive you. That flat, linear list of commits doesn't tell the whole story — and if you're trying to figure out what's actually in a release, you might draw the wrong conclusions. Here's a scenario I ran into recently …
The QuerySet Database Binding Gotcha
When working with Django's multi-database support, there's a subtle issue that can trip you up: QuerySets remember which database they're bound to, and this can lead to unexpected conflicts. The Setup In our codebase (Prancer), we have custom managers that use using(self.db) to bind a QuerySet to a …
Testing Lambda Functions with LocalStack and pytest
When integration-testing code that calls AWS Lambda, you don't always want to hit the real thing. LocalStack gives you a local, containerized version of AWS services — including Lambda — that you can spin up, use, and tear down as part of your test suite. Here's a pattern I've been using: create …