Curriculum vitae
The long version
Everything, in detail. Press the button for a printable copy.
Work experience
Door Ventures
/Senior Full-Stack EngineerApr 2023 — PresentDoor APM is a due-diligence platform used by asset managers and fund investors. I work across the UI, the API, the database and the component library, and I am the top committer on all of them.
- Orchestrated the transition from version 2 to version 3 of the platform, on both the manager and investor sides. These were complete application rewrites.
- I make the design and UX decisions for the platform — the design system, the colour and status vocabulary, the interaction patterns, and the accessibility standard we hold it to.
- Created DoorFrame, our in-house component library, using Vite and styled-components with theme tokens so that theming stays consistent across platform versions.
- Rewrote doornetworks.com, the company’s marketing site, from the ground up — every commit in that repository is mine. Next.js 15 on AWS Amplify Gen 2 with Cognito and SES, and a custom admin CMS the team publishes through.
- Rewrote our end-to-end testing from Cypress to Playwright. I wrote the original Cypress suite on the previous UI, then rebuilt it on Playwright for the new platform — 746 tests, none failing and none skipped — with fixture ownership, parallel safety and runs against deployed environments.
- Component tests for DoorFrame with React Testing Library and Jest, so the library is covered at the component level as well as end to end.
- Took the reins on integrating AI into the platform, particularly automating report generation from client questionnaires, bridging OpenAI and AWS Bedrock.
- Rebuilt the review page on a streamed questionnaire, with optimistic saving, answer provenance and compare-to-previous. It is the busiest page in the product.
- Moved the admin organisation lists to page, sort and export server-side, added lazy pickers, and keyed the query caches by user rather than bearer token.
- Built the Support Console and Outbox, so we can see every email the system sends, its delivery status from SES, and which contacts have bounced.
- Work across our Lambda services and Step Functions — the SES event ingest and bounce handling, the notification dispatch and digest jobs, the document parser, and the state machines behind request processing and offline completion.
- Wrote custom components to replace third-party packages we were paying for, for example HandsonTable → EdiTable.
- Maintain classic Door alongside the new platform — the original Java and Gradle codebase, with around 975 commits of mine in it.
- Stepped into a mentorship role, guiding junior members of the team through both front-end and back-end work.
- React 19
- Next.js 15
- TypeScript
- styled-components
- TanStack Query
- Playwright
- Cypress
- React Testing Library
- PostHog
- Python
- FastAPI
- SQLAlchemy
- PostgreSQL
- AWS Lambda
- Step Functions
- SES
- Terraform
- Bedrock
- Java
- Gradle
Shieldpay
/UI EngineerMay 2021 — Apr 2023A brand new to market product for escrow payments, holding the money for multi-million pound class action lawsuit deals. The project was created from scratch.
- Created a product from scratch based on stakeholders’ requirements.
- Developed a component library from scratch, with theme tokens.
- Moved the full deployment over to AWS CDK and worked on improving the CircleCI pipelines.
- Moved the pipeline over from CircleCI to GitHub Actions.
- Assisted the QA team by pre-writing all the Cypress tests.
- Head of the social committee.
- React
- TypeScript
- AWS CDK
- Cypress
- GitHub Actions
- CircleCI
Equator
/Senior Front-End DeveloperDec 2020 — May 2021I was brought on board to help the junior members of the team, as the team had very limited React knowledge. We provided website solutions to big brand names, so standards had to be impeccable.
- Quickly ramped up on over 25 client sites in 3 months and worked on these daily.
- Worked with Umbraco and ASP.NET back ends.
- Mentored junior members of the team and assisted them with issues.
Virgin Money
/React.js DeveloperOct 2019 — Dec 2020Digital solutions department, rebranding all the CYBG banks (Clydesdale, Yorkshire and B) over to the new Virgin Money brand, alongside other major projects.
- Worked within an Agile Scrum environment on complex multi-million pound projects.
- Developed and maintained codebases in a top security environment using Git Enterprise, while meeting all the coding standards set by the bank.
- Quickly learned to find my way around a complex codebase using thunk and Redux across 80 independent repos.
- Successfully developed a new bespoke customer support application, which is still being used by customers.
- Rebranded all customer-facing websites and applications within a short timescale.
- Used Jest and Enzyme to test every React component, and Jenkins, Nexus and GoCD for all deployments onto Docker containers.
- React
- Redux
- Jest
- Enzyme
- Jenkins
- Docker
Traveltek
/React.js DeveloperMar 2018 — Oct 2019Developing travel websites for well-known names in the travel industry, built on an internal React CMS.
- Secured a full-time position after 3 months of contract work with the company.
- Promoted from web designer to front-end developer after 3 months.
- Achieved the Star of the Year Award 2018, given to the top 5% of employees.
- Started a social committee to provide social events through the year for the company.
Stanford University
/React Developer, freelanceJan 2022 — Jan 2023A small team supporting Stanford University, responsible for current and future feature requests on their student learning portal. I took this contract on as an opportunity to learn more about AWS serverless architecture in a production environment.
- React
- AWS Service Catalog
- Keycloak
- S3
- EC2
- SageMaker
Technical skills
Front end
React 19 · Next.js 15/16 · TypeScript · Redux · Remix · Vite · styled-components & Emotion · Tailwind · SASS/LESS · TanStack Query · Kendo React · Ant Design · Framer Motion & GSAP
Back end
Python · FastAPI · SQLAlchemy · Java · Gradle · Node.js · Express · REST API design · Prisma · PostgreSQL · MongoDB · DynamoDB
Cloud & infrastructure
AWS — Lambda, Step Functions, API Gateway, Cognito, S3, EC2, IAM, DynamoDB, SES, Bedrock, CDK, Amplify Gen 2, Service Catalog · Terraform · Docker · Vercel · Neon
Testing
Playwright · Cypress · React Testing Library · Jest · Enzyme · Pytest · Postman · BrowserStack
Design & product
Figma · design systems and theme tokens · WCAG 2.1 AA accessibility · UX decisions · InVision
Deployment & process
GitHub Actions · CircleCI · Jenkins · GoCD · Nexus · Webpack · Babel · Git · Agile/Scrum · Shape Up · Jira · Confluence · mentoring
Education
BSc (Hons) Computing Science
University of the West of Scotland
Graduated June 2018
First Class Honours