The Short Story
I've been in IT for nearly 20 years, mostly developing for .NET. In the past few years I have moved into technical management and architecture, but have kept my hand in with development.
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
The Long Story
I am an application development 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 started out 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 it was in preview.
After that I hitched my career firmly to .NET and web development, from Web Forms to MVC to pure REST APIs. 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 firs contract just as the world economy imploded and I rarely found myself out of work. In recent years I was tempted back to a permanent position so I could lead my own team.
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
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 web site 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 tFe 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 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 and customer and producing VAT data.
About This Site
AndrewMcLachlan.com is currently on its forth iteration in roughly twelve years although the previous version was around for a good eight of those. This has been a great opportunity to refresh both the design and the content. To help with this, and to teach myself something new, I have written this site using the Umbraco content management system (CMS). This is the first version of the site to use a CMS, previous versions have been static HTML or .NET Razor pages.
The main purpose of the site is to advertise myself and my experience. I firmly believe that a web developer should have a presence on the web, which is useful when a lot of my work tends to be locked behind a corporate login screen.