Blog

Mitigate supply-chain attacks for Python dependencies

May 18, 2026

Supply-chain attacks are becoming increasingly frequent. Dependency cooldown is a very simple yet effective approach to protect your codebase against them. Learn how to apply that inside your Python projects.

3 Tips for AI Code Review That Doesn't Suck

April 14, 2026

Cheatsheet

AI code review sounds great in theory. In practice, most teams just end up with more noise in their merge requests. In this article, I share 3 steps that made AI code review actually useful in my team and also reasonably priced (under $1.50 per review).

Python Development Workflow for AI era

April 8, 2026

AI made coding faster. But faster code without a fast feedback loop is just faster chaos. If we can code faster, we need everything around it to keep up: pipelines, testing, deployments, and monitoring. In this article, we break down a Python development workflow designed for shipping reliably in the AI era. Four pipelines. Three environments. Small MRs, you're willing to throw away. Deployments that are non-events. This is the first in a series where we'll dig into each step - from automated pipelines to feature flags to monitoring that catches issues before your customers do.

Why most Python tests are a waste of time?

March 31, 2026

Cheatsheet

Most Python test suites have the same problem: they cost more trouble than they save. CI jobs that take forever, tests that break on every refactor, flaky pipelines you keep restarting. After years of writing (and deleting) tests, I've landed on 7 qualities that separate tests worth keeping from tests that just slow you down.

Testing behavior, not implementation details – part 3

April 10, 2024

Focuses on execution speed and parallel test strategies for comprehensive testing.

Testing behavior, not implementation details – part 2

March 27, 2024

Explores the concept of observable behavior in software testing.

Testing behavior, not implementation details – part 1

March 11, 2024

Introduces the principle of behavior-focused testing versus implementation-focused approaches.