I’m a talented developer, lead and manager with fourteen years experience of designing, building and shipping software. That doesn’t mean I’m under the illusion that I’m an expert, nor am I closed-minded or set in my ways. It just means I’ve had a decent amount of time to try things out, make mistakes and learn from them.
My preference is to work on the server-side as it has a high concentration of areas I find interesting, such as security, reliability, scalability and compatibility. That said, I’m more than happy to tackle anything sufficiently difficult, and have delivered a number of critical client-side projects as a result.
When it comes to leading and managing teams, my rare mix of business and technology insight, people skills, leadership abilities and deep technical knowledge are an effective combination. I’m great at building teams of highly talented developers, setting the technical direction, and creating a culture with a high level of autonomy, responsibility, recognition and reward. My teams have a reputation for delivering projects on time to an extremely high standard.
Head of Platform Development, blinkbox Books (Jan 2013 - Feb 2015)
I was responsible for the overall architecture and delivery of books server platform. My main focus was on hiring an outstanding team of developers, evolving the existing monolithic Java web application into vertically partitioned microservices exposed as RESTful APIs, and redesigning and extending the Ruby ingestion system.
Initially there was little business direction or understanding of the precise behaviour of the platform. To tackle this I introduced Cucumber which allowed us to retrofit specifications around the codebase and evolve them as the company gained and changed direction. I also introduced standards for code reviews and unit/integration testing for newly written code.
Some other achievements in this role were:
- Successfully transitioning the backend from Java to Scala to help improve coding practices, reduce delivery times, make it easier to write asynchronous code, and improve overall developer happiness.
- Building a lightweight pub-sub message bus on top of RabbitMQ to facilitate an event and command driven architecture. This meant we could often add or change functionality with minimal impact on the system.
- Introducing the Scrum methodology into my team and subsequently driving this out across the company, helping us to move from teams siloed by discipline and technology into cross-functional delivery teams.
- Moving the company towards a continuous deployment model. Although we did not quite get there, deployment times reduced from weeks after the commit to as little as a couple of hours, including propagation through multiple test rigs.
Principal Development Lead, blinkbox Movies (May 2011 - Dec 2012)
I built the Xbox 360 application with one other developer, based on the Xbox’s custom version of Silverlight. During development the requirements and underlying platform were changing constantly and significantly, which we handled by using a loosely coupled MVVM architecture with cleanly separated layers and strong conventions. This project was written to very tight timescales, and ours was one of the few apps to launch with the Xbox dashboard refresh.
Senior Development Lead, blinkbox Movies (July 2007 - April 2011)
I worked with a couple of other people to design and build a scalable middle tier using a service-oriented architecture on the .NET platform. We made extensive use of aspects, design-time and runtime code generation to remove boilerplate code like tracing and exception management, and used higher-order functions to centralise common functionality such as caching and data access.
We also developed a distributed video encoder which included process monitoring and recycling to work around memory leaks in third-party components, and wrote video parsers to be able to reliably extract data from and modify video files even when they weren’t fully standards compliant.
Principal Consultant, Netstore (Sept 2006 - July 2007)
My role involved working across a number of projects simultaneously, including architectural reviews, pre-sales work such as requirements gathering and proposal drafting, and performance tuning. I was the lead developer on a number of BizTalk 2006 proof-of-concept solutions and presentations for clients including the government and investment banks.
Although this job was varied and interesting, I spent a lot of time talking about technology rather than designing and implementing it. I realised that consulting was not what I wanted to do at this time in my career, and left to pursue a more technical role.
Senior Consultant, Charteris (Jan 2005 - Aug 2006)
I worked on three integration projects consecutively; each lasting between three and nine months. One was based around Microsoft’s Connected Services Framework where we developed WS-* adapters to communicate with external systems. The others were based on BizTalk 2004, and included building custom pipeline components, and a finite state machine in the Rules Engine that enlisted in BizTalk transactions to reliably manage the state of processes.
Software Development Engineer in Test, Microsoft (Sept 2001 - Dec 2004)
Joining Microsoft after university I spent the first couple of years working in test automation and performance tuning on projects in the Solution Development Centre. Subsequently I worked as a test feature lead on two BizTalk 2004 projects, and in test governance on a BizTalk SWIFT messaging solution. I was part of the teams awarded the Services Team Excellence Award in both FY2004 and FY2005.
MEng (Hons) First Class, Chemical Engineering, University of Nottingham (1997 - 2001)
My degree covered a wide range of subjects such as maths, physics, thermodynamics and programming. The final year project was designing a chemical plant as part of a small group; part of my contribution was a genetic algorithm for resolving mass/mole balances across equipment, and a stepwise reaction kinetics simulator. I was awarded a BP Book Prize for excellent first year results and the J.C. Mecklenburgh prize for the most outstanding fourth year design project.