home
blog
now
uses
cv
Archive
.
Every post, newest first, one line each.
2026
.
4
Aug 5, 2026
Artisanally Laravibing
May 19, 2026
Local Laravel with nix and devenv
Apr 22, 2026
Wonderful world of worktrees (and Laravel)
Jan 22, 2026
Terminally driven, Laravel inspired
2025
.
4
May 20, 2025
Parallel testing with Pest and SQLite
May 11, 2025
Content caching with Statamic
Mar 11, 2025
Dynamic error assertions with PHPStan
Feb 13, 2025
Adventures with PHP, APIs, and sharing types with PHPStan
2024
.
2
Mar 20, 2024
Dapper multi-mapping relationships and value equality
Mar 5, 2024
Exploring developer experience with PHP, public APIs, and beer
2023
.
8
Dec 3, 2023
Content-driven websites with PHP and Laravel
Nov 2, 2023
Rust, AWS Lambda, and too many Office quotes
Aug 23, 2023
.NET Core service lifetimes in a nutshell
Jul 11, 2023
Back to the server with Rust, Axum, and htmx
May 23, 2023
Ziggin' around with linked lists
Apr 5, 2023
Learning to fly with Rust and Postgres
Mar 30, 2023
Going serverless with Rust and Shuttle
Mar 15, 2023
Migrating to Astro
2022
.
4
Nov 3, 2022
Constructing objects with intent
Sep 21, 2022
Rethinking exceptions in .NET
Mar 2, 2022
React data fetching with RxJS
Feb 22, 2022
JAMstack Angular apps with Scully and Netlify
2021
.
3
Nov 11, 2021
Hitchhiker's guide to Angular development with Nx
Sep 3, 2021
Implementing dark mode in Angular with Tailwind
Aug 27, 2021
Build a Tailwind modal with Angular and NgRx
2020
.
4
Sep 23, 2020
Decoupling controllers with ApiEndpoints
Jul 26, 2020
State Management with Blazor using Fluxor (Part 2)
Jun 26, 2020
State Management with Blazor using Fluxor (Part 1)
Feb 2, 2020
Clean architecture, Dapper, MediatR, and buzzword bingo (part 4)
2019
.
4
Nov 19, 2019
Clean architecture, Dapper, MediatR, and buzzword bingo (part 3)
Nov 5, 2019
Nullable reference types and designing with intent
Oct 6, 2019
Clean architecture, Dapper, MediatR, and buzzword bingo (part 2)
Oct 4, 2019
Clean architecture, Dapper, MediatR, and buzzword bingo (part 1)