I am afraid of accepting AI-generated code without reviewing it. Why? I suspect this fear stems from an inability to automatically verify the correctness of the code’s behaviour. Style and obvious errors can be tested with linters and unit tests, but there is a host of advanced failure modes that are much harder to capture: race conditions 1 , memory leaks and subtle performance regressions.…
One of my favourite things is learning new terms. When my brother introduced me to the Overton window the other day, I knew I had to shoehorn it into a blog post. I have always been a strong proponent of code review; I enjoy receiving a thorough review, and I have taken pride in my ability to deliver high-quality feedback too. Had you asked me a year ago, I would have been adamant that all changes…
Throughout my time working with complex distributed systems, I have learned that consistently detecting systemic issues is surprisingly difficult and a bit of an art. The canonical way to do this is to set up alerts that notify an engineer when something is wrong. I have personally written many terrible alerts and regret having subjected myself and colleagues to the pain of such useless alerts.…
Since the start of my career, I have found it important and feasible to unplug completely when I take time off from work. The speed with which the AI space moves is making it more difficult than ever to truly unwind. There is a torrent of information and news released every day about exciting new developments in the field. In the past, I was not concerned about missing a killer new Postgres…
One of my least productive traits is my propensity for getting caught up in YouTube binges. Every once in a while, a scene from Moneyball will pop up in my recommendations, and I have no choice but to tumble down the rabbit hole. For the uninitiated, the movie is based on the book Moneyball: The Art of Winning an Unfair Game and chronicles the Oakland Athletics baseball team’s journey to…
These are some of the opinions I have formed through years of working with CI/CD pipelines. I have worked primarily with GitHub Actions, so that is what I will focus on. My philosophy on pipelines revolves around these core principles: Developer experience is king. Optimise accordingly. Engineers follow the path of least resistance. Given the same input, a pipeline run that succeeds today must…
A topic that concerns me at the moment is keeping agentic AI workflows both secure and productive. Over the past few months, I have been using Claude Code as my terminal agent of choice, and I have found it difficult to balance security with productivity. The ultimate goal is to remove all permission prompts without compromising security. The exact amount of security one is willing to trade for…
Working in an enterprise as vast as Maersk, much of my time is spent gathering information from a myriad of different sources. Recently, I have been making a determined effort to document organisational processes and tribal knowledge in my agent instructions file. How do I get access to a new Kubernetes cluster? How do I consume an API via our common gateway? Where do I find the credentials for…