Almost five years ago, I created this website as an accompaniment to my personal projects. Too thin to stand alone, I wrote three posts to give them shape and explanation. A few months later, these projects helped me clinch a new position at Lindus Health as their first full-time software engineer. At the time, I didn't realise the impact it'd have on my life—Covid restrictions were loosening, and that period had the redolence of new beginnings.
Moving from a larger company to a seven-person team was not as jarring as expected. Stories of crunch, beanbags, and pizza parties did not materialise—the CTO at the time was incredibly pragmatic. He recognised that product development is a marathon, not a sprint—a sentiment even truer in the clinical trials industry. Here, every user story requirement must tell a regulatory tale of the who, what, why, and how, culminating in exercises of strict ticket writing (a favourite among engineers) and numerous end-to-end tests to validate that our software does what we say it does.
Let's skip ahead about four years and two months.1 Past a successful Series A and B fundraise. Past multiple excellent and eventful company away-days. Past the product & engineering organisation tripling in size. Today, I am a staff-level engineer navigating a landscape completely transformed by the advent and evolution of large-language models. I look at my old posts here and see them completely untouched by AI, with their handcrafted em dashes.2 Beyond that, the associated code written with no agentic oversight feels like it could belong in a museum.
This post won't shun AI—I'm writing this fully aware that I'll run it through Claude for suggestions on prose and syntax. Development tools like Cursor and Claude Code have dominated my professional life for the past year with largely positive outcomes. I believe in its power to be a positive force, particularly because it is widely accessible rather than languishing in the hands of a powerful few. Regardless of how you feel about continuous, unrelenting growth, the gains are too large to be felt unevenly.3
In my bubble of clinical trials, which is fundamental for improved population health yet has severely lagged behind in technological revolution, the impact is already settling in. Concretely, a smaller team of product engineers, designers, and managers, who carry within themselves the arcane knowledge of how studies are run, can build and prototype faster than ever before. The resultant efficiencies hope to finally untie the noose around drug discovery, beckoning a golden age for new interventions.
At the same time, this talented group of product people might need engineers like me less to reach such lofty heights. Comparing AI-generated code now to what was being churned out just six months ago shows a progression I certainly never predicted. I can foresee never writing frontend code directly, instead colouring by LLM, like a paint-by-numbers. Command of natural language, specific requirements, and deep domain knowledge will become the currency of successful output, and these are certainly not the sole realm of engineers.4
Where are we now?
I'm cautiously optimistic: I've worn many hats at a start-up and kept up with the latest shifts in coding productivity, so I'm excited to find my role in this uncertain future. On one idealistic hand, the democratisation of software could lead to revolutions that prescribe freedom-for-all. On the other, SkyNet. Either or.