- August 8, 2025
Kotlin's Rich Errors: Native, Typed Errors Without Exceptions
- August 7, 2025
On the Value of Abstractions
- February 25, 2025
Refactoring Towards Cleaner Boundaries: Lessons from Building a Markdown Blog Engine (Part 3)
- February 18, 2025
Double Loop TDD: Building My Blog Engine the Right Way (part 2)
- February 11, 2025
Making a Clean Architecture Blog Engine From Scratch pt 1
- January 31, 2025
A Use Case for `UseCase`s in Kotlin
- January 21, 2025
Liskov Substitution: The Real Meaning of Inheritance
- February 12, 2024
Going back(end) to the old gym!
- June 21, 2022
Changing Jobs Without Leaving Your Company