Make Invalid Domain States Hard to Represent with Kotlin and ArrowUsing value classes, context parameters and typed errors to build a small functional domain model7 min read·blog.hbrown.devAug 24
Stop External Services from Breaking Your Build with JUnit TagsKeep everyday tests fast and dependable while running strict live integration tests only when you choose11 min read·blog.hbrown.dev1Aug 20
PgBouncer with Spring Boot 4: Setup, Gotchas, and the ProofPart 2: Add transaction pooling to the benchmark app, avoid prepared-statement traps, and see where connection pooling earns its keep6 min read·blog.hbrown.dev1Aug 17
I Built a Spring Boot 4 App to Put PgBouncer to the TestPart 1: Build a production-style Kotlin testbed with hexagonal architecture, PostgreSQL, Testcontainers, and a repeatable concurrency benchmark9 min read·blog.hbrown.devAug 17
Guardrails for AI-Generated Kotlin with detekt and ktlintTurn your coding standards into checks that both developers and AI agents must pass11 min read·blog.hbrown.dev1Aug 10