Blog

#developer-tools

Practice LeetCode locally: 1,404 problems, one command

One pip install turns any of 1,404 LeetCode problems into a local practice environment: typed stubs, pytest suites, visual debugging, and full study plans.

Jul 2026
bakefile in practice: the supporting cast

The second bakefile in practice post: the helpers behind the patterns. Setup, secrets, publish, environments, config, the CLI, shipped once as library code.

Jul 2026
bakefile in practice: four patterns that scale

Composition over configuration, Template Method, a uniform interface, workflows as libraries: four patterns from every repo I run bakefile in. Part one.

Jul 2026
Stupidly simple branching: trunk-based, but e2e-testable

zerv-flow, trunk-based with one gap filled: a PR borrows an environment with a label and a lock, so every branch is e2e-testable before merge.

Jun 2026
Version every build: semantic-release on main, zerv everywhere else

semantic-release versions main beautifully. Every other branch builds unversioned. zerv gives every commit a SemVer, PEP 440 included, without touching tags.

May 2026
Make vs Just vs Task vs mise: which reuses workflows?

An audit of how five task runners share workflows between repos: Make include, Just import, Task includes, mise extends, Invoke collections. Where each breaks.

Apr 2026
Developer Workflows Need an Abstraction

Every repo re-copies the same lint, test, and deploy recipes. Workflows need what code already has: inheritance, mixins, and versioned distribution.

Feb 2026