February 2026
-
20 Feb 2026šWhy I still write code as an engineering manager
-
19 Feb 2026šThe challenges of soft delete
-
18 Feb 2026šForget technical debt
-
18 Feb 2026šMy position on AI and software development
-
17 Feb 2026šIām a former CTO. Here is the 15-second coding test I used to instantly filter out 50% of unqualified applicants.
-
17 Feb 2026šMy first impressions on Elixir
-
13 Feb 2026šKeeping feature creep at bay
-
12 Feb 2026š150,000 lines of Vibe coded Elixir: the good, the bad, and the ugly
-
12 Feb 2026šExplainer: Tree-sitter vs. LSP
-
10 Feb 2026šSoftware engineers should be a little bit cynical
-
7 Feb 2026šThe Greenfield
-
5 Feb 2026šEnhancing your Docker workflow with local PostgreSQL integration
-
4 Feb 2026šMago: a blazing fast linter, formatter, and static analyzer for PHP
-
4 Feb 2026šBuild and publish OCI container images from the BEAM
-
3 Feb 2026šAI coding tip 001 - Commit before prompt
-
1 Feb 2026šWriting a good claude.md
January 2026
-
31 Jan 2026šFirst steps with Gleam: Building a simple web app
-
31 Jan 2026šCabify tech handbook
-
29 Jan 2026šWhy .NET is the backbone of scalable business software in West Michigan Luniv Technology
-
27 Jan 2026šWhy regex serialization changed in Elixir 1.19/OTP 28
-
24 Jan 2026šRebuilding my blog
-
24 Jan 2026šTreat test code like production code
-
21 Jan 2026šWhy are dark deployments a good idea even if no features are being shipped?
-
19 Jan 2026šTypst for your code blocks
-
18 Jan 2026šStatistics made simple