WRITING / TOPIC

Engineering.

Why your scraper gets a 403 and your browser does not

The block usually happens in the TLS handshake, before any header is read. On handshake fingerprints, self-healing selectors and a hand-written crawl engine.

Parse first, escalate only what you must

Most document pipelines send every page to a model. On rebuilding tables from word geometry, scoring confidence from 0 to 1, and escalating only hard pages.

Building Querion: a Read-Only, Natural-Language Data Analyst

How I let a language model query production data without ever letting it write: layered read-only checks, a sandboxed directive loop and an API allowlist.

Trove: Giving Claude Code a Persistent Memory

A file-based memory index that reloads into context every session, so Claude Code stops starting from zero and each session begins further ahead than the last.

Modeling an Order Workflow as a State Machine

Turning a tangle of status flags into an explicit, testable state machine that guards every order transition.

Verifying Inbound Webhooks with HMAC Signatures

Why every inbound webhook needs a signature check, and how to verify HMAC payloads safely in Django.

Killing N+1 Queries with select_related and prefetch_related

Finding and fixing the silent N+1 queries that quietly add hundreds of milliseconds to an API response.

Caching High-Traffic Endpoints with Redis

A practical caching layer for read-heavy endpoints, covering cache keys, invalidation, and stampede protection.

Background Jobs with Celery and RabbitMQ

Moving slow work off the request path with Celery and RabbitMQ, with retries and idempotency that survive failure.

Token Authentication for a Django API

Setting up token authentication for a Django API, from issuing tokens to rotating and revoking them.

Bulk Update and Export Endpoints at Scale

Designing endpoints that update and export thousands of rows without timing out or locking the database.

Decoupling Side Effects with Django Signals

When Django signals keep code clean, when they hide bugs, and how to use them without regret.

Zero-Downtime Database Migrations in Django

Shipping schema changes to a live Postgres database without dropped requests or downtime windows.

Full-Text Search with Elasticsearch and Django

Adding fast full-text search to a Django app by syncing models into Elasticsearch and querying them well.

Generating PDF Documents in Django with ReportLab

Building clean, repeatable PDF documents like invoices and purchase orders directly from Django with ReportLab.

Testing a Django API with pytest

A pragmatic pytest setup for Django: fixtures, factories, database tests, and coverage that actually helps.

Production Observability with Sentry, Prometheus, and Grafana

Wiring Sentry, Prometheus, and Grafana into a Django service so production tells you when it hurts.

Dockerizing a Django App for Dev and Production

A Docker setup for Django that stays fast in local development and lean in production.