Articles on Python · Rust · AI
Popular
Recent
-
September 9, 2026
Database-Driven RBAC with FastAPI and Azure Entra ID
This came out of a coaching project: a FastAPI service backing a geotechnical database. We use Azure Entra ID for authentication, but we needed role-based access control (RBAC) granularly per endpoint and across different user roles. It turned into an interesting sprint where we designed it so that role changes did not require code changes.
-
September 7, 2026
5 design patterns used in my new habit tracker app
There are plenty of habit trackers, but I wanted to build mine with constraints, a calendar view and habit streaks. So I built commitgraph: a small Django + HTMX app. Here are five Python design and testing patterns from building it.
-
September 4, 2026
Why does Alembic need an import you never use?
A coaching session this week surfaced a good question: Alembic autogenerate only works if you import your models first, even though you never reference them.
Ruff flags the import as unused.
So why is it there?
-
August 22, 2026
Unsubscribe links without a login: Django signing
Django has a signing module that makes it easy to build an unsubscribe link that works with no login and no session:
token = signing.dumps(recipient.pk, salt=UNSUBSCRIBE_SALT). The token itself is the credential, and it ships with Django out of the box. -
August 18, 2026
Guardrails Protect Your Codebase. What Protects Your Judgment?
Cal Newport's On AI Coding and Its Discontents lands on an uncomfortable point: the speed AI gives you is paid for with the thinking that made us good engineers in the first place.
Read code instead of writing it and you get passive recognition where you used to have an active model of the code.
-
July 13, 2026
Learning New Skills in the AI Era (vBrownBag)
I joined the vBrownBag podcast with Damian to talk about how to actually learn a new language or skill when an agent can write the code before you finish typing the prompt.
-
July 10, 2026
Rust, AI, and the Developer Mindset (Develpreneur Podcast)
I joined the Develpreneur podcast with Jim Hodapp to talk about the Rust developer mindset and what makes Rust a good fit for AI-assisted work.
-
July 8, 2026
Judgment: The Skill AI Can't Give You
Every time I hear the phrase coding is solved, I worry about where this industry is heading. Yes, AI writes the code, you review it, ship it, move on. Is there still value in writing the code yourself and going deep into the problem? Yes, and I think it matters more than ever.
-
July 4, 2026
One Core, Two Interfaces, No Rewrites
When building applications, I always build the core first, then the interfaces. It was no different with Ask the Canon: a
uv run main.py ask "..."CLI for quick iteration and validation, then the web app for MVP. Search, ranking, citations, all using the same engine. -
June 30, 2026
Ask the Canon: Semantic Search Without a Vector Database
I built out askthecanon.com this weekend, a semantic search over 100 public-domain books (from the Gutenberg project). You ask a question in plain language and get the passages that mean that, cited by author, title, and chapter. I wanted a local, no-generative-AI solution: a retrieval engine using Hugging Face embeddings and NumPy that returns original passages, no full vector database (yet), no API calls at query time.