Moray Macdonald

Lead Full Stack Developer

The Typescript logo An icon representing a database The GraphQL logo The React logo

Moray is a flexible and adaptable senior developer with over 12 years experience developing secure, production-ready systems using a broad range of technologies. He is confident with all parts of the software development lifecycle, from customer requirements gathering, through architecture design and implementation, to ongoing support and administration in production.


Main Languages
Typescript, Javascript
Other Languages
C♯, Python, Java
Front-end technologies
React, Apollo, Astro. HTML5, CSS3 and SCSS. Familiar with WCAG best practices and with GDS (GOV.UK) design principles.
Back-end technologies
GraphQL, Express.js, ASP.NET, Prisma ORM and Entity Framework.
MySQL, PostgreSQL, Microsoft SQL Server, Cassandra/Scylla and Elasticsearch. Administration of MySQL and SQL Server.
AWS architecture and administration. Containerisation with Docker and Kubernetes. Git and TFS, CI/CD with Wercker, Drone, Octopus, Bitbucket Pipelines. Administration of on-prem Windows and Linux-based environments and networks.
System architecture and design. Confident running Agile (Scrum and Kanban) software teams supported by Jira, TFS/Azure Devops and Trello.


Cat In A FlatFull Stack Developer (contract)

September 2023 – Present, Bristol/Remote

Moray was brought in to support the existing development team developing new features for and supporting users of Cat in a Flat's pet sitting app.

With pressure from customers at the start of a busy time for the company, Moray had to quickly pivot from an API-driven React tech stack to a new Python-based stack in order to quickly deliver value to the development team and their customers.

As well as new development, Moray also supports the application hosting on AWS, and their mobile app, built with Cordova.

Digital Communities Ltd (formerly Groop)Lead Developer

September 2019 – Present, Corsham/Remote

As their first internal developer, Moray is responsible for all technical aspects of the Groop people management product. Taking over from an external team, Moray had to quickly become familiar with the product’s extensive features, codebase, hosting environment, companion mobile app, and a legacy version of the product.

Moray swiftly built a small team of developers to support and expand the product, and put in place Agile processes in conjunction with the customer support and management teams to support development. He has also mentored junior developers.

Moray has been responsible for spearheading several major changes to the product, including rearchitecting the entire data layer to increase performance (over 300x on some operations), and adding video conferencing features in response to the rise in remote working among customers. He has also improved the tooling and documentation around the application, adding CI and streamlining the deployment process.

Moray also manages all aspects of the application hosting, system and database administration. He oversees penetration and load testing, and recently performed a complete migration of all 20 servers to AWS.

BMT Defence and SecuritySoftware Developer

October 2015 – September 2019, Bath

Working with a wide range of Government clients including Home Office and MoD, Moray delivered many projects to production and provided support directly to end users. Moray was involved with all stages of projects from requirements gathering and architectural design as well as developing, testing and support, using whichever technologies suit the customer’s needs best, often having to learn new platforms quickly. Specialisations included front end development, GIS systems, graph database usage and DevOps.

IPL Information Processing (now Civica Digital)Service Engineer

March 2014 – October 2015, Bath

Moray was the technical lead responsible for supporting an IPL-developed platform for secure data exchange. Responsible for the day-to-day running of the system, as well as being part of the helpdesk team supporting the customer. He was also responsible for systems, database and PKI administration and for performing upgrades to the IPL-developed system components.

IPL Information Processing (now Civica Digital)Software Engineer

September 2011 – March 2014, Bath

Responsible for building bespoke web-based solutions using ASP.NET, C#, JavaScript and SharePoint. Moray performed low-mid level design of system components as well as taking responsibility for larger functional areas. Other responsibilities included unit testing, basic UI design and requirements gathering with customers.


Durham UniversityMPhys Physics with Astronomy

October 2007 – June 2011

King Edward’s School, Bath

1996 – 2007


An icon of an envelopeEmail
The LinkedIn logoLinkedIn
An icon of a file being downloadedDownload CV as PDF