About Me
The Short Story
I am an engineering manager and Azure architect. I have been working in IT since 2003 although I have been involved in computers and programming for most of my life.
I've had the opportunity to work in a diverse set of industries with some fantastic people. I spent the first phase of my career mostly developing browser applications with .NET and JavaScript, working both permanent and contract roles.
The second phase of my career really kicked off in 2019 when I moved into team leadership and software architecture, but have kept my hand in with development.
My passion lies in solving problems, whether that's a knotty code problem, figuring out how to reduce Azure costs, or helping my team reach their full potential. I love it all.
The challenge du jour is of course the AI revolution. Embracing coding agents to speed up delivery is a no-brainer, but there's still a lot to be figured out in a fast-moving, fast-changing environment. Figuring out new ways of working, new ways of engaging stakeholders in the development process and bringing everyone along for the ride is possibly the biggest challenge I've faced at work.
My main areas of interest are:
Full stack web development with ReactJS and .NET
Azure, in all its forms, although concentrating on platform-as-a-service (PaaS)
DevOps - Continuous Integration (CI), Continuous Delivery (CD), Infrastructure-as-Code (IaC) and proactive monitoring
My Journey
My first experience playing with computers was building graphical app launchers for the BBC Micro, before moving onto the Acorn Archimedes and the PC. I learned to build Windows applications with Borland C++ Builder and then discovered Visual Basic. Professionally, I started with Java but I got into .NET while version 1 was still in preview.
After that I hitched my career firmly to .NET and web development, from Web Forms to MVC to pure REST APIs with JavaScript and ReactJS. Along the way, I discovered a love of DevOps. CI, CD, automation, infrastructure-as-code⦠I love doing the things that make a developer's day that much easier.
I spent a big chunk of my career so far contracting. I picked up my first contract just as the world economy imploded and I rarely found myself out of work. Contracting was the making of me, and it's a route I would recommend to anyone who can comfortably deal with the rollercoaster that comes from being in and out of work. Contracting exposed me to a variety of different people, technologies, industries and ways of working. No two teams build software the same way and getting that exposure to what I liked and what I thought didn't work was invaluable in shaping me as a future leader.
After contracting for ten years, I was itching to lead my own team. So I hung up my laptop bag and went permanent. I had an amazing time building up not only a team but a whole new software architecture from scratch, all cloud-native, all based in Azure. I learned so much about leading people, modern software architecture, patterns & practices, and managing multiple streams of work concurrently.
Although I didn't realise it at the time, I had become an engineering manager. Although I considered my team as a single entity, there were effectively 3-4 separate teams working on different products with a senior engineer reporting progress back to me.
Key Achievements

Laing O'Rourke
When I joined Laing O'Rourke I had a team of 2 developers, working on digital forms, utility applications, as well as some point solutions for the business.
Larger applications were typically built by external consultants, using their own standards and technology choices. We had a presence in the cloud, but it was more a playground, without a firm strategy. DevOps was basic, where only some applications were built and deployed with tools, that themselves were years out of date.
Fortunately, a new project had just started. It was going to be used throughout the business and was a great opportunity for me to define the development standards that would set us up for success.
Within a year of starting, we had embarked upon a programme of work that included 5 new applications, a number of shared services as well as work to integrate some of our existing applications into this new software ecosystem.
This required me to make some key decisions that would shape application development for the foreseeable future. Some of these decisions included:
Web applications would be single-page apps (SPA) built using ReactJS and .NET Core
Applications would be cloud-native, utilising as many Azure PaaS services as required
All shared data would be accessible by a single GraphQL data service
Services would integrate via messages and events, with cross-API calls kept to a minimum
These decisions and the software they birthed laid the foundation for all future in-house development at Laing O'Rourke.
Willow
My second managerial gig after Laing O'Rourke was a big change. Going from a 40 year old organisation of several thousand employees to one just turning 5 and with barely a couple of hundred, and one that lives and dies by its software to boot was an exciting change in direction.
At Willow I had my first experience looking after teams whose skills I had no background in, such as data science and customer support. Stepping up, listening, learning and helping these teams was my biggest challenge and one I happily rose to.
Willow was embarking on a major architectural transition when I arrived. We were moving from a multi-tenanted monolithic deployment, to a container-based single-tenant model. Azure App Services were out, containers were in. We had to transfer terabytes of telemetry data to the new architecture and cut over our customers to the new infrastructure with near zero downtime for the product and no loss of telemetry. To paraphrase the novel Dune, "The Data must flow". I worked with all the teams globally to produce a multi-phase migration runbook to ensure each customer migration happened smoothly and everyone knew their role.
Throughout my time at Willow I ran a large scale technical debt initiative. Technical debt had been neglected in favour of product features, and it was my instruction when I started to promote this work. This involved working with the product managers to balance product priorities against technical debt and give engineers breathing room to innovate.
As I mentioned above, we were going through a significant architectural and infrastructure overhaul, on top of a recent change from relational databases for digital twins to a full graph database. This left us with a mountain of technical debt. Clearing this debt, applying standard patterns and practice, and removing years of old, deprecated and unused code became essential to delivery of future features and to maximise the usefulness of AI.
Speaking of AI, I doubt anyone can talk about the last 1-2 years without mentioning the AI transition. AI adoption was happening throughout 2025, but really took off towards the end of year as Claude Code emerged as the front-runner for AI-assisted engineering. My best move was to bring in new engineers who had really understood the potential of AI and letting their imaginations loose. This helped us start to really engage with AI, not only as a tool for writing code, but also as a way to rethink how we communicate ideas within the company and between our product and the customer.
SG Fleet
One of the first projects where I could really flex my architecture muscles was the Fleetintelligence platform for SG Fleet. What makes this project stand out for me is that rather than simply building a website, I was tasked with creating a platform that could potentially host all of SG Fleet's customer facing web applications. I was required to put a lot of thought and care into the design of the architecture to give it flexibility it needed to cope with the variety of different customers who would use it.
This was also the first website I have worked on that required a unified interface that would display well, regardless of the device it was displayed on. This was an interesting challenge but I am very proud of the results.
Carbs & Cals
Another important project in my career was the Carbs & Cals iPhone App. Released to the App Store at the end of August 2010, this was the first project for which I was solely responsible. By that I mean contracts, requirements gathering, functional specifications, technical design, implementation, testing, distribution and technical support.
This was followed up by the redesign of the Carbs & Cals website. The original website had been purely HTML, selling a single product, the book. As more products were being prepared for release, a new, more interactive site was required with a better sales experience for the customer as well as advanced order and product management for the company.
To this end I re-developed the entire site using ASP.NET and SQL Server, creating a new e-commerce solution integrated into PayPal, as well as offering more traditional payment methods such as by cheque. A whole suite of administration functions was added, to allow management of orders, products and mailing lists as well as reporting on sales by product, by customer and producing VAT data.
About This Site
AndrewMcLachlan.com has been around for nearly 20 years. I've always believed that having your own web presence is essential for anyone who claims to build these sites for a living. While earlier versions of this site have been static HTML pages, PHP, or .NET Razor pages, this iteration is the first running on a content management system (CMS), namely Umbraco.
To find out more check out some of my projects.