Download PDF


A full-stack developer with a broad range of technical expertise, and a record of heading up Agile development teams through all stages of product delivery. From design and development through to deployment and ongoing maintenance.

Throughout my career I have demonstrated flexibility in being able to pick up different technologies and disciplines, as well as an ability to organise my time efficiently. I strive for honesty in my work, and value the experience and lessons I can learn from everyone on a team.

Work Experience


Lead Developer

Working with a client in the life sciences sector, using a range of technologies including React, AWS, Docker, and Jenkins.


Lead Developer

KPV LAB is building software to explore and visualise knowledge.

Leading a team of full-stack developers building tools for exploring and visualising data. The applications were largely built with a React frontend, communicating with the backend through a combination of REST and GraphQL. The backends used Node.js, with connections to PostgreSQL databases.

I designed and implemented strategies and practices aimed at rapidly expanding the development team through improved code quality and ease of on-boarding.

  • Instituted Continuous Integration, moving towards Continuous Delivery.
  • Consolidated disparate packages into a multirepo to reduce development and release friction.
  • Migration to TypeScript from JavaScript as the primary language, to realise the benefits of types to reduce bugs in a large codebase.
  • Used Terraform to manage resources on AWS and Heroku.

Technologies: TypeScript, JavaScript, React, Redux,, Node.js, Heroku, PostgreSQL, GraphQL, Koa, Terraform, AWS.

Scott Logic

Lead Developer

Worked with a range of domestic and international clients, moving between front- and backend work as required. 

  • Built Java microservices for a North American bank to replace an existing currency trading system. The project used Lagom which builds on top of a number of frameworks to provide RESTful microservices using the actor model. The project was managed using the SAFe Agile.
  • Used D3.js to create interactive data visualisations for use in market analysis reports.
  • Implemented release tools and frontend widgets for in-house use with a domestic bank. The frontend widgets and tooling were written in JavaScript using D3.js for DOM manipulation, while backend services were mostly Node.js.
  • Produced a client-side JavaScript API, and backend Java REST services to allow FX trading at a Scandinavian bank. The backend was built on top of the Play framework to provide a REST API.

Between client contracts, I worked on a number of internal applications and research projects. In addition, I was an active member of our coaching community, mentored summer interns, and worked with the recruitment team to screen applicants' CVs.

DataCash: A MasterCard Company

Team Leader

Started as a Senior Software Engineer and progressed to Team Leader in a 40-strong development team. As a SAAS provider, the focus was on producing efficient, scalable applications and ensuring that projects were released with no downtime. As a MasterCard company handling card transactions, PCI compliance was an ever-present consideration.

As a Team Leader, I oversaw a number of strategic projects such as bank integrations, ensuring our systems were fully Unicode compliant, and improving the user experience of client facing reporting applications.

  • Ensured that projects ran smoothly, requiring a forward thinking approach to project planning and release strategies.
  • Mentored new developers, providing feedback on progress and helping to focus professional development.
  • Gave presentations on development standards and security principles including OWASP.
  • Extended existing applications, and designed and implemented both internal and client facing applications.
  • Researched new technologies, assessing them for usefulness and refactoring existing applications to gain their benefits.
Bank of Scotland

Technical Specialist

Part of a cross site team that developed software for contact centre advisers. Responsibilities included feature development, defect fixing and support of the live software. The position involved on-call responsibilities to ensure the smooth running of call centres during peak times.

Babcock International

Systems Developer

Graduate position in leading engineering and support services firm.

An Extreme Programming development environment with a broad range of responsibilities including requirements capture, design and implementation, research and evaluation of new technologies. Developed web based applications using J2EE technologies, primarily using the EJB3 specification for the model and business layers, along with HTML, CSS and JavaScript to provide a rich user interface.


Edinburgh University

Computing Science BSc (Hons), 2:1