
AI has made code cheaper to write, but developers are reporting that it's made code harder to review. Here, I discuss how we overcome this bottleneck.

AI has made code cheaper to write, but developers are reporting that it's made code harder to review. Here, I discuss how we overcome this bottleneck.

I built Bleppi, a review tool for psychometricians. In this post, I talk about how I distributed it after the initial deploy and what I learned.

For the past couple of weeks, I built a board exam review tool called Bleppi. In this article, I talk about what problem it solves and what I learned from building it.

A curiosity-driven teardown of a Papa's Scooperia save: cracking the base64/AMF3 encoding open, reading the data inside, and rewriting my own progress

Learn why password hashing is deliberately slow, how salts defeat rainbow tables, and why Argon2id's memory-hardness stops GPU attacks. A developer's deep dive.

Authentication is a feature that's present in virtually every system you touch. In this article, I'll discuss h

Harness Engineering refers to designing the environment around AI to extend its capabilities. I applied it to Claude Code to build a learning system.

A practical guide to test-driven development: understand the TDD cycle, benefits, and how to apply it in real-world software projects.

Hexagonal architecture enforces a codebase structure where business logic is isolated from external systems. In this article, we cover it in depth.

Dependency inversion and dependency injection are terms that developers often mix up the two. In this article, we tackle this confusion.

Information retrieval metrics allow us to diagnose issues in our retriever's performance. In this post, we cover some of these diagnostic patterns.

Self-learning has become more attainable now than ever thanks to AI. Here's how I built a self-learning system that leverages Claude Code.