2026  31

June  6

TDD: Red-Green-Refactor, Baby Steps, and the FIRST Principles

June 8, 2026 · 8 min · Anthony

CQRS in Django: a denormalized read model without Event Sourcing

June 5, 2026 · 7 min · Anthony

Idempotency Keys: stopping a client from paying twice

June 4, 2026 · 7 min · Anthony

Inbox pattern: consuming events without replaying them twice

June 3, 2026 · 6 min · Anthony

Transactional Outbox: publishing events without losing consistency

June 2, 2026 · 7 min · Anthony

Saga pattern: handling distributed transactions without rollback

June 1, 2026 · 7 min · Anthony

May  25

Python itertools: building lazy iterator pipelines

May 29, 2026 · 7 min · Anthony

ExitStack: many patch() calls without a pyramid of with

May 28, 2026 · 7 min · Anthony

Anti-corruption layer: isolating your code from external APIs

May 27, 2026 · 4 min · Anthony

Declarative Permissions in DRF with rest_access_policy

May 26, 2026 · 6 min · Anthony

Hash, HMAC and encryption: securing a Django token

May 25, 2026 · 4 min · Anthony

Python collections : Counter, defaultdict, deque and the rest

May 22, 2026 · 7 min · Anthony

Python shutil: copy, move and archive files without subprocess

May 21, 2026 · 4 min · Anthony

Python operator: itemgetter, attrgetter and the art of replacing lambdas

May 20, 2026 · 7 min · Anthony

Python dataclasses: field(default_factory) in depth

May 19, 2026 · 5 min · Anthony

Django: save() skips full_clean() — the validation lifecycle

May 18, 2026 · 5 min · Anthony

Python add and iadd: copy or in-place mutation

May 15, 2026 · 4 min · Anthony

Timing attacks in Django with constant_time_compare

May 14, 2026 · 3 min · Anthony

Materialized views vs Django cache for slow queries

May 13, 2026 · 4 min · Anthony

Python @property: from encapsulation to descriptors

May 12, 2026 · 3 min · Anthony

Connascence in Python: the 9 types of coupling explained

May 11, 2026 · 4 min · Anthony

Optimizing Django ORM Queries with defer(), only() and Prefetch()

May 8, 2026 · 6 min · Anthony

Django squashmigrations: cleaning up your migration history

May 7, 2026 · 5 min · Anthony

Django select_for_update(): row-level locking for concurrent transactions

May 6, 2026 · 4 min · Anthony

Python slots: cut instance memory by 40–60% without changing your logic

May 6, 2026 · 4 min · Anthony

Renaming Django ORM fields with F() in values()

May 5, 2026 · 2 min · Anthony

HATEOAS: Your REST API Might Just Be CRUD

May 4, 2026 · 4 min · Anthony

Django Window Functions vs GROUP BY: Chainable QuerySets

May 4, 2026 · 4 min · Anthony

Django in_bulk(): why it beats filter() for bulk lookups

May 4, 2026 · 4 min · Anthony

AI doesn’t replace learning to code

May 4, 2026 · 4 min · Anthony

Why a blog about Python, Django, Architecture and best practices?

May 4, 2026 · 2 min · Anthony

Newsletter

Get new articles delivered straight to your inbox.

No spam. Unsubscribe in one click.