Personal Statement
Core Skills
- Full stack developer with extensive Delphi and PHP experience, plus C, C#, Objective-C, Python & Rust.
- JavaScript/TypeScript using Node.js, React & Next.js with brief exposure to Svelte & Vue.js.
- A love of Test-Driven Development, which encourages high code quality and maintainability.
- Regular use of AI coding agents, including Claude Code and Hermes Agent, within a test-driven workflow.
- DevOps and IaC on AWS using Terraform and Ansible, plus Linux administration (Red Hat and Debian).
- CI/CD with GitHub Actions and Bash scripting, using Git on GitHub, Bitbucket and GitLab.
- Using Docker and dev containers to ensure consistency across different environments.
- Agile development techniques, specifically Scrum, including some time as Scrum Master.
- Experience designing, implementing and using RESTful and GraphQL APIs.
- Strong SQL and relational database design, mainly with MySQL.
Portfolio
Employment History
Following a restructure, became an integral part of a Scrum team, keeping the Lead Developer title because leading by example and mentoring remained essential to the role. Tasks include:
- Coding in various languages, including Delphi, PHP, JavaScript and TypeScript.
- Mentoring developers through pairing and code review, and championing practices such as TDD, infrastructure as code and dev containers.
- Automating provisioning of resources with Terraform and Ansible where possible.
- Building CI/CD pipelines with GitHub Actions that automatically test and deploy changes, enabling faster, more reliable releases.
- Containerising dev environments and supporting services such as databases, queues and APIs for faster onboarding.
- Directing AI coding agents to produce test-driven code guided by agent instructions and verified through red-green TDD cycles and code review.
Quickly promoted to Lead Developer, managing a team of 5 developers working on multiple projects including applications and services based around POS systems. Key contributions:
- Actively developed on all of the Delphi, PHP and JavaScript projects.
- Mentored developers to improve the quality of code produced by the team.
- Introduced unit testing, bringing large parts of the legacy codebase under test.
- Migrated the team to an agile framework based around Scrum.
Re-joined previous employer after change of ownership and rebranding. Key contributions:
- Designed and built an online loyalty system as a solo project, with a RESTful API, using PHP (CodeIgniter), Bootstrap and MySQL.
- Migrated source code from Subversion to Git, initially using GitLab and then later GitHub.
- Set-up and maintained various Linux VMs running on Citrix XenServer hosted on multiple dedicated physical on-prem servers.
Started a small business. Very varied work including:
- Creation of an iOS app to help find suitable ski accommodation.
- Bespoke Windows application for a waste management company.
- Website design and setup of e-commerce sites, using the Crystallize GraphQL API.
- Regular software development for previous employer.
This was the sole source of income for two years but was scaled back after returning to full-time employment.
Started off working on UniVerse, and later jBASE, systems for the first few years. This included system administration of Unix, and later various Linux, systems.
Cross-trained to Delphi, outside office hours, creating a small Windows application which was used internally for many years. Soon became an integral part of the Delphi team working on the main POS products. Role included:
- Delphi development as part of a small team.
- Source control using CVS and later Subversion.
- Craft SQL to access the Firebird databases used to store the POS data.
- Design and create various reports for end users.
- Liaising with clients and partners to define development requirements.
- Creating specification documents and time estimates.
3-month contract during a year out travelling the world. Working as part of a team finding and fixing Y2K issues. This expanded to checking a variety of languages including Visual Basic, Java and Unix shell scripts along with C and C++. Wrote simple Java tools to locate tokens and automate fixes.
Database programmer for a manufacturing company. Developing mainly with UniVerse BASIC, but some contact with Visual Basic. The work involved controlling the entry, storage and analysis of data relating to production, sales and accounts along with maintaining a mainframe system.
Placement year while studying at university. Role included:
- Programming in C under various Unix based systems.
- Writing shell scripts.
- Building, installing and testing new products on various machines.
- Preparing and giving presentations for new products.
Education
Maths, Further Maths, Physics, Business Studies


