Queue, Cache, Shard

Premise Several months back, I stumbled upon a reddit thread claiming that all distributed systems problems could be solved with either a cache, a queue, or sharding. I had never considered this, and while my distributed systems experience is still expanding, most systems I’ve worked on have leveraged some or all of these techniques. In …

The AI 10x Developer

As with most developers in the current era, I find myself constantly being asked to leverage Artificial Intelligence when programming. While the intentions are (hopefully) good, I think AI is clearly over hyped. AI developers are barely more than an executive pipe dream, but I do think working with AI tools presents a unique opportunity …

Transaction Management and Kotlin

While working on personal projects, I enjoy exploring new paradigms and design patterns. I needed an interface to support transaction management in a recent project, however I wasn’t using a standard Spring application. Spring provides the @Transaction annotation which allows easy rollback and transaction isolation for web requests. While exploring alternatives, I discovered a somewhat …

Code Reviews and Team Cohesion

On the teams I’ve worked on, it seems as though many of the issues I’ve witnessed have been caused by a lack of team cohesion. On teams where projects struggled to get done and goals had to be rigorously defined by management, it felt as though the root of the issue was a lack of …