Curriculum Vitae
Personal Profile
I am a systems engineer, technical leader/consultant with a holistic approach to Systems, DevOps and software development and delivery. This includes software development itself, architecture, continuous delivery, reducing duplicated effort and the human side of how teams ship changes safely at pace.
Roles I would be looking for next would be Staff or Principal Engineer roles or contract development roles. My primary experience is in Java or Python ecosystems, but I also thrive in polyglot contexts and can be a generalist when needed. I have extensive experience in Cloud Native systems, AWS, Kubernetes and full automation of delivery and deployments (CI/CD).
Skills
Expert
Agile, Apache HTTP Server, AWS, BDD, Continuous Delivery, Cucumber, Debian/Ubuntu, DevOps, Flask, Git, Java, Jenkins, Kanban, Linked Data, Maven, nginx, Python, Quarkus, RDF, Red Hat/CentOS, REST, Scrum, Spring Boot, SQL, Systems Thinking, TDD, Troposphere, UML
Advanced
Apache Spark, AWS EKS, AWS Glue, AWS Lambda, AWS MSK, Big Data, Design Thinking, DevOps, Django, Docker, Elasticsearch, GNU Make, Gradle, Jupyter, Kubernetes, LaTeX, Linux, Node.js, OpenSearch, PostgreSQL, RabbitMQ, Serverless, Solr, Terraform
Intermediate
ActiveMQ, FastAPI, GCP, Kafka, PostGIS, Prolog, Redis, Ruby, Selenium, Soft Systems Methodology, SPARQL, Typescript
Novice
Clojure, Grafana, Haskell, MongoDB
Work Experience
Lead Software Engineer at INRIX: 2022-12 to 2024-04
-
Lead role across 2 teams distributed between Manchester, UK and Kirkland, USA (8 reports).
-
Built standard deployment platform on Kubernetes (AWS EKS), Quarkus, Terraform, Github Actions.
-
Developed standardised way to provision (via Terraform) Kubernetes across the company with monitoring and observability baked in.
-
Mentored on Continuous Delivery, infrastructure as code and DevOps.
-
Built event-driven traffic alerting using Kafka, RabbitMQ and Reactive Java (Quarkus).
-
Build and led a Python project for testing deployed services and validating data output.
-
Innovated Python project for applying BDD to an AI/LLM-based project.
Principal Software Engineer at BBC North: 2015-06 to 2022-12
-
Technical leader on highly-available Node.js and Spring Boot APIs used by whole BBC website.
-
Mentoring and leading on projects to promote knowledge sharing.
-
Drove architecture and data modelling for a unified approach to website analytics collection.
-
Developed lightweight feature flag mechanisms to allow instant rollout of visual changes while allowing stakeholders and designers to see changes privately in situ any time.
-
Developed and then promoted a unified approach to CD (Jenkins) and deployments (AWS Cloudformation) across 30+ services between up to 4 teams.
-
Led on Python tooling for automating deployments, common infrastructure patterns and testing.
-
Developed and led on a federated network of dashboards in Python (Flask, aiohttp).
Senior Software Engineer at BBC North: 2012-02 to 2015-06
-
Developed event-driven data pipelines with Java (Jersey), Apache Camel and ActiveMQ.
-
Built tooling in Ruby and Cucumber to drive projects via BDD and TDD.
-
Created a system similar to Docker Compose (but pre-dating that and using Tomcat as the container) for running services and dependencies during builds for full integration testing.
Contract Software Engineer at BBC Cymru Wales: 2010-12 to 2012-02
-
Building data aggregation services in Java (Spring MVC)
-
Contributed to some front end in PHP and JS on the BBC Home page.
-
Creating geospatial BBC Weather search using Solr and PostGIS
Systems Developer at Cranfield University: 2007-04 to 2010-06
- Building in-house Java solutions to connect various systems in the IT department.
Fundraiser at Tim Lilley Fundraising: 2005-10 to 2006-12
- House to house fundraiser on behalf of Amnesty International.
Tester at Transversal Corporation: 2005-07 to 2006-02
- Manual and (Python) automation tester for a web-based software product.
Tester at Level 5 Networks: 2004-07 to 2004-09
-
Performance testing for a new Ethernet card and drivers on both Linux and Windows.
-
Created via bash scripts an early version of what today would be called Continuous Integration.
Education
MSc Software Engineering at University of Bradford (2016)
-
MSc in Software Engineering and Internet Architecture.
-
Awarded by Bradford, run in conjunction with the BBC.
-
Passed with distinction.
MA Computer Science at University of Cambridge (2005)
-
MA (Hons) (Cantab) in Computer Science.
-
Passed an intermediate German via University of Cambridge Language Centre.
Further Education (2002)
- A grade in each of A-Level Mathematics, Further Mathematics, German and Physics.
- B grade in AS-Level French.
- STEP I Mathematics with grade 1
- STEP Physics with grade 3.
GCSEs (2000)
- 9 GCSEs including A* in Sciences, German and French.
- A in English Language.
- A grade in an Additional Mathematics qualification
GCSEs (1999)
- A* grade in Mathematics
Interests
-
Traditional music including playting Bodhrán and Tin Whistle
-
Karate
-
Wine (WSET 2 qualified)
-
Real Ale (CAMRA member)
-
Philosophy
-
Computer Science, Category Theory, Pure Mathematics
Publications
- Fenning, R., Dogan, H., Phalp, K. (2014). Applicability of SSM and UML for Designing a Search Application for the British Broadcasting Corporation (BBC).