Stafford
DavidOnasanya
Solution-driven software engineer with six years building and maintaining complex web and mobile applications across healthcare, social care, and commercial environments, turning REST APIs, OAuth, database design, and responsive UI into production systems people rely on.
- 06
- Years shipping
- 07
- Production projects
- ∞
- CSS rewrites
I build the thing,
and the thing around it.
Solution-driven software engineer with six years building and maintaining complex web and mobile applications across healthcare, social care, and commercial environments, turning REST APIs, OAuth, database design, and responsive UI into production systems people rely on.
Six years deep, I split my time between PHP/Laravel on the server and React, Vue, and React Native on the surface, with TypeScript, Tailwind, and Figma keeping the seams clean.
I started in real estate building an internal e-learning platform, moved into healthtech designing systems that traced medical devices and identified microplastics, and now ship a multi-cloud management platform centralising AWS and Azure for teams who'd rather not.
I care equally about the API contract and the spacing between two buttons. I think a good interface is honest about what it's doing, and a good system is boring on purpose.
Tools I reach
for without thinking.
- JavaScript
- TypeScript
- PHP
- HTML5
- CSS3
- Laravel
- React
- Vue
- Nuxt
- Inertia
- React Native (Expo)
- Tailwind CSS
- REST APIs
- GraphQL
- OAuth
- MySQL
- Node / Express
- AWS
- Azure Graph
- Docker
- CI/CD
- Git
- Sentry
- PHPUnit
- Jest
- Figma
- Web Sockets
- Claude Code
- Claude API
- Cursor
- Prompt engineering
- LLM integration
Six years.
Three chapters.
Stafford
Stoke-on-Trent
London
- AWS Certified Solutions Architect, Amazon Web Services
- Microsoft Certified: Azure Fundamentals
- Certified Network Associate, Aptech Education
I ship faster, and better, with AI in the loop.
Claude Code is part of my daily toolchain. It pairs well with how I already work, small commits, sharp specs, and a willingness to throw away the first idea. I treat the model as a senior collaborator: explicit context, explicit constraints, and review every diff.
Specification first.
Every task starts with a written intent, what is changing, what is not, and the failure modes. The agent is only as sharp as the spec it is given.
Review every diff.
Generated code is reviewed line-by-line, against the same bar as a teammate's PR. Tests, types, and security live or die at the review.
Tools, not autopilot.
I use Claude Code for refactors, scaffolding, migrations, and exploratory spikes, not to replace judgement. The architecture is mine; the typing is shared.
LLM features in product.
When clients want LLM features, I integrate Claude's API with proper rate-limiting, prompt versioning, and fallbacks so the product does not break when the model does.