Ross Fenning

Curriculum Vitae

Personal Profile

I am an engineer, consultant and innovator with a holistic approach to Systems, DevOps and software delivery. This includes all of software/deployment architecture, continuous delivery automation, centralising duplicated effort/waste and the human side of how teams ship changes safely at pace.

Areas I’ve covered as part of working on BBC online have included analytics, microservices for distributed teams and centralised delivery automation. I’ve also been a driver of reducing overheads and undifferentiated heavy lifting in how we build, test and delivery our applications.

My role title is currently principal software engineer, but in practice I work at a consultant or senior principal capacity with a focus on communicating domain knowledge, proposing opportunities for broad improvements and ensuring engineering teams are able to do their work with minimal overheads or friction.

In my personal time I play music (bodhrán and tin whistle), work a little on personal, open source projects and study philosophy, languages, computer science and other various fields of interest.

Skills

Expert

Agile, AWS, BDD, CentOS, Continuous Delivery, Debian, DevOps, Jenkins, Jenkins Pipelines, Kanban, Linked Data, Maven, nginx, Python, RDF, Red Hat, REST, TDD, UML

Advanced

Apache HTTP Server, Cucumber, Django, Docker, Elasticsearch, Flask, git, Git, GNU Make, GNU/Linux, Gradle, Java, JAX-RS, Jersey, LaTeX, MySQL, Node.js, PostgreSQL, Ruby, Scrum, Solr, Spring Boot, Subversion, Travis CI

Intermediate

ActiveMQ, Groovy, gulp, Jupyter Notebook, NumPy, RabbitMQ, Redis, scikit-learn, Soft Systems Methodology, SPARQL

Novice

Clojure, Grafana, Haskell, MongoDB, Prolog

Beginner

Work Experience

Principal Software Engineer at BBC North: 2015-06 to present

My current role is one of two Principal Software Engineers supporting four teams within the Search and Navigation department (renamed from previous name of “Content Discovery”) within BBC Design and Engineering.

My role is a balance between stepping back from implementations — giving only support and domain knowledge to other engineers where needed — and also doing more “hands on” technical work when it comes to prototyping or in the DevOps and deployment automation domain.

I have also been involved in architectural design and data modelling for improving our pan-website analytics and work to improve our tracking beyond simple impressions and clicks, e.g. user engagement tracking and audience demographics.

Senior Software Engineer at BBC North: 2012-02 to 2015-06

I worked as a senior engineer on the main BBC website search functionality as part of the Content Discovery team within BBC Future Media.

This was a major Enterprise Integration project, but my drive was to lead on introducing principles from REST architectures and Linked Data to create long-running and evolvable service applications with minimal bespoke integration code. Technologies were primarily Java, JAX-RS (Jersey), Apache Camel and ActiveMQ. Ruby and Cucumber was used for component tests.

Contract Software Engineer at BBC Cymru Wales: 2010-12 to 2012-02

I worked as a contract software engineer for the BBC Future Media division in the BBC Wales/Cymru offices as a new BBC Home Page. My role was a working as a Java backend service developer to create data feeds for part of the new home page, but also contribute on PHP, Javascript, HTML development and any other tasks as needed. Later, I worked on the location search used by the BBC Weather website. This involved both Java services and the use of Apache Solr.

Systems Developer at Cranfield University: 2007-04 to 2010-06

Systems Developer in an IT department that supported the teaching and service departments across the university. The systems development team sat within the infrastructure team to develop solutions to needs within and outwith the department and support said in-house projects. Most projects were Java-based web applications.

Skills I developed in the role include setting up production Apache Tomcat servers, installing and basic amounts of work with Oracle, interacting programmatically with MS Active Directory over LDAP and developing web applications with the Apache Struts framework.

Tester at Transversal Corporation: 2006-02 to 2005-10

Manual and automation tester for a web-based software product. Maintained an automated test code in Python that tested performance of the application as well functionality.

Fundraiser at Tim Lilley Fundraising: 2005-10 to 2006-12

House to house fundraiser on behalf of Amnesty International.

Tester at Level 5 Networks: 2004-07 to 2004-09

I tested performance for a new Ethernet interface and its drivers on both Linux and Windows servers.

Education

MSc Software Engineering at University of Bradford (2016)

MSc degree in Software Engineering and Internet Architecture awarded by Bradford University run in conjunction with the BBC.

MA Computer Science at University of Cambridge (2005)

MA (Hons) (Cantab) in Computer Science from the University of Cambridge.

Further Education (2002)

Gained an A grade in each of A-Level Mathematics, Further Mathematics, German and Physics. Additionally achieved a B grade in AS-Level French. Also completed STEP I Mathematics with grade 1 and STEP Physics with grade 3.

GCSEs (2000)

10 GCSEs including A* in Mathematics, Sciences, German and French. Attained A in English Language. Also obtained an A grade in an Additional Mathematics qualification having completed the GCSE the previous year (1999).