HBHenry Browninblog.hbrown.dev·2d ago · 11 min readStop External Services from Breaking Your Build with JUnit TagsFast, dependable tests get run. Slow or fragile tests gradually teach a team to avoid the test suite. A developer makes a small change, remembers that the build sometimes waits for an external API, an10
HBHenry Browninblog.hbrown.dev·5d ago · 6 min readPgBouncer with Spring Boot 4: Setup, Gotchas, and the ProofEvery Postgres connection is a process on the server. That's a deliberate design choice — it makes Postgres simple and robust — but it also means connections are expensive to open and there's a hard c10
HBHenry Browninblog.hbrown.dev·5d ago · 9 min readI Built a Spring Boot 4 App to Put PgBouncer to the TestThis post describes a small books-and-authors catalogue, but its real job is to be a testbed: it demonstrates what PgBouncer, a lightweight connection pool manager, actually buys you in front of Postg00
HBHenry Browninblog.hbrown.dev·Aug 10 · 11 min readGuardrails for AI-Generated Kotlin with detekt and ktlintWhen we adopt agentic coding workflows, our job starts to shift from typing every line of code to defining the conditions that generated code must satisfy. An AI coding agent can produce a working imp10
HBHenry Browninblog.hbrown.dev·Jul 22 · 6 min readFan-in with Kotlin Coroutines and FlowSometimes you need to start several pieces of work at the same time and handle each result as soon as it is available. The fan-in pattern is a good fit for this: many concurrent producers send their r00