What did you do before Diffblue?
I joined Diffblue in 2017, having spent the last 20 years implementing program analysis tools, language runtime systems (such as Java Garbage Collector algorithms) and traditional compilers for languages like C and C++, in both academic research and commercial industry. Most recently I spent a number of years working as a senior C/C++ compiler engineer for ARM in Cambridge.
As you might imagine with a background like this, I have a strong interest in programming languages and their implementations. This interest started early in my career, notably when I spent the first summer vacation of my undergrad degree (1997!) working as an intern research assistant, making modifications to a compiler for an algebraic programming language. The success of that internship led to two further internships before I then started my PhD in 2000, researching and implementing ‘Software Metrics’ tools for Haskell programs. After completing the PhD, I was then offered the opportunity to branch out and spend the next 4 or 5 years researching and implementing memory management systems (known as Garbage Collectors) for Java.
Having spent a decade in academic research environments, I decided to leave academia in 2009 to broaden my knowledge of commercial software development, team dynamics, project management, and customer engagement. From then onwards I worked as a compiler engineer on the leading commercial C/C++ compilers for the ARM architecture.
Could you tell us a bit about your role at Diffblue?
At Diffblue I am a Senior Software Engineer and Team Lead for our program analysis tools. My day-to-day work involves a mix of technical responsibilities alongside team management. My team and I help develop tools which customers use to help fundamentally understand the nature of their code, thereby giving them the confidence they need to effectively get on with their work. It’s incredibly rewarding helping our customers gain insights into what can be very complex infrastructure.
The technical aspects of this role cover everything from defining the technical direction of our tools, adding features to support any unusual characteristics of a customer code base, to addressing challenges such as scalability of the tools applied to millions of lines of customer’s code.
Beyond my technical and project management duties, I focus on managing and mentoring a small but growing team of five engineers, which offers its own set of challenges and benefits. My team consists of individuals with various levels of experience and disparate specialties - making sure we meet customer expectations, while also growing and developing their own skills continues to be a thrilling part of my role here at Diffblue.
What makes Diffblue unique?
Diffblue is unique in that a substantial portion of the people here have an academic background, rather than a commercial one. They all bring a diverse range of experiences and expertise, and this is something that makes for a very vibrant and engaging workplace. There are even people here who were hired into non-technical roles who have since moved over to technical roles, which is a testament to the company’s focus on meritocracy, rather than any superficial factors.
Beyond this, the trust, autonomy, and access that the leadership offer is unrivaled. Our co-founder Daniel Kroening is always available to discuss challenges or new ideas and so is everyone else. It’s great to see that the management team has succeeded in maintaining this culture as we’ve grown; when I joined we were a 35 strong company, now we stand at 60 (and have no plans of stopping).
Beyond the challenging technical work, vibrant culture and strong leadership, I’m particularly excited to be part of Diffblue’s important mission to develop “AI for Code”.