I am a talented problem solver who is adept at architecting and implementing technical solutions to solve difficult problems in a pragmatic fashion based on business and customer requirements.
I have been programming since childhood in various languages across different platforms, starting professionally in Ruby and since adding hefty amounts of Bash, Golang and Javascript. I've always split my curiosity between building the thing and building the infrastructure underneath the thing. This has led to me working both as a developer and a sysadmin during my career, and more recently straddling both within the same role.
Where possible I prefer solutions that build upon the shoulders of giants, both using and contributing back to open source projects as appropriate. Outside of work I also default to open sourcing my own projects where possible to expand the ecosystem and give back to others. I have published many technical posts on my blog sharing my knowledge and experience.
My career has been spent working fully remote, combined where possible with face to face get togethers. Teams I've worked with have always found this to be a productive, flexible and enjoyable arrangement. Through this I understand the clear communication and discipline required to make such a working environment successful.
Outside of the workplace I have various technical interests, including experimenting in the homelab, installing unobtrusive smart home technology around the house and 3D printing. Previously I've also been involved in organising local technical user groups and spent over a year entering hackdays with friends (and winning more often than we expected!)
Away from the computer I can be found enjoying the company of my family and friends, sailing dinghies and yachts, travelling around Europe, cycling, taking photographs, helping out the local Scout Group and sampling local cuisine on offer wherever I am.
Relay Platform (2019- ) relayplatform.com
As the first Site Reliability Engineer at Relay, I took on evolving the existing infrastructure into something more consistent, reproducible and automated. The main goals were to increase consistency between different services, operate them in a similar manner regardless of implementation language and utilise tooling where possible to reduce infrastructure busywork and maintenance, saving us time as a team.
My efforts led to an increased reliability and trust in CI pipelines across all projects, and the reduction of time to roll out infrastructure changes and security updates. We also massively reduced the complexity and time taken to deploy changes in all services to all environments including production. This included introducing ephemeral preview environments based on git branches for testing prior to merging.
I was one of a few senior technical people in the team, and as such I offered support, peer review and mentoring for other engineers, as well as participating in technical planning for new features and services.
Where required I created new internal services utilising Golang to automate functionality, and also added helper tooling primarily in Bash and Ruby across different services.
Addressing Security and Performance issues was shared between a few of us, ensuring we responded to both external security reports and internal alerts. This included introducing better profiling and tooling to chase down issues in both the application and database. Additionally, I helped out debugging complex issues in our stack, submitting bug reports and patches to upstream projects when necessary.
I also actively contributed to shaping the company culture as part of the social committee, including running games/quizzes via Slack and an annual Scavenger Hunt (including remotely!)
Impero Software (2019-2021) imperosoftware.com
Initially continued to develop the Safeguarding Monitor application as a team in isolation, until following a CEO change we transformed the engineering department to function as one across all products. This included a public cloud migration of infrastructure from DigitalOcean into Microsoft Azure.
Post-transformation we then embarked on an aggressive roadmap to consolidate all our products onto one platform, choosing to extend the Ruby on Rails monolith as the core of it all, with ancillary services added as required to provide functionality alongside it.
Initially I managed and lead the growth of the team, before switching back into technical role leading the architecture of the solution and working as part of the team to deliver on our goals successfully, whilst evangelising to and mentoring colleagues along the way.
After delivering the initial roadmap ahead of schedule we then onboarded customers, paid down technical debt and scaled up different parts of the solution as we saw usage grow. I also worked closely with the data team, helping them consume data and figure out how to feed results back into other systems in a scalable way.
I also worked on internal technical due diligence on multiple acquisitions, and was part of the core team planning and integrating one of the acquisitions into our core platform and team.
Safeguarding Monitor (2018-2019) safeguardingmonitor.co.uk
I joined as the most experienced member of the technical team, alongside the technical founder and helped grow the team, mentor other team members, introduce light touch processes like coding standards, having an effective test suite, introducing reproducible infrastructure and planning then implementing the application running globally whilst adhering to strict data residency requirements.
The company was acquired by Impero Software in September 2019.
FreeAgent (2013-2018) freeagent.com
I was part of various teams within the wider engineering team at FreeAgent over a few years. I worked on various product features, fixed bugs and paid down technical debt where appropriate for the business. We achieved many things internally, from making sure that customers could carry on paying us without disruption whilst entirely extracting our payment system from the application for risk & legal reasons, to improving our database usage by leaning more heavily on Elasticsearch where appropriate for customers searching their own data.
I worked very closely with the Operations team helping dig into issues we observed from time to time, before moving into Operations and helping maintain the self-hosted hardware running SmartOS/Ubuntu VMs providing a platform for the rest of the engineering team to leverage. We also worked closely with the engineering team to make sure capacity was sufficient for new features and products being developed, as well as evolving the physical infrastructure. As I left the business we had taken the first steps towards moving into public cloud infrastructure which they have since completed successfully.
We operated on the presumption that redundancy is key, and solutions should be engineered such that things can fail gracefully without waking people up, as well as leaning on automated tooling to empower our team and others within the company to move fast and be productive.
EmberAds (2012-2013)
I was one of five co-founders who received funding to start a contextual affiliate advertising startup. I helped design & build both major products of the company, as well as tinkering on smaller tools to help us internally (and open sourcing everything where possible.) I also took on responsibility for building and maintaining the servers and infrastructure, initially on a cloud hosting platform, then planning and executing a full move to dedicated server hardware part way through the company's life.
Ultimately we failed to get market traction and shuttered the business, with lots of lessons learned.
Brightbox (2008-2012) brightbox.com
I started my professional career as a Ruby programmer for Brightbox, a Ruby on Rails hosting provider. Initially I was helping maintain and extend the existing Ruby on Rails hosting platform and open source projects.
We then undertook a project to design and build the first UK owned public cloud, launching in 2011. The team actively incorporated new development ideas and workflows where they enhanced our ability to solve problems, and open sourced solutions and libraries we wrote for others to use.
References available upon request.
Please email me at , or if you prefer to talk in more of a realtime fashion, call me on +44 7960 268100 (UK).