I build web applications and integrations, drawing on +7.5 years of software engineering experience. My focus is turning complex requirements into understandable interfaces, clear API contracts, and maintainable code.
Cape Town, South Africa · Open to senior frontend/full-stack roles, sustained contracts, and remote collaboration
Previously · Selected work · More interface projects · Portfolio guide · Engineering approach
- Senior Software Engineer at Rank Group — regulated gaming platforms, testing standards, and code review.
- Senior Full-Stack Engineer at Huble — React/TypeScript delivery, serverless functions, and CRM integrations.
- Software Engineer at EY, via +OneX — enterprise applications, API integrations, and frontend performance.
- Senior Full-Stack Developer (Contract) at Spitfire Inbound — CRM workflows, reusable modules, and third-party integrations.
- Lecturer & Coding Coach at CodeSpace Academy — JavaScript, APIs, debugging, and developer mentoring.
- Software Developer (Contract) at DADO Agency — React frontend delivery for European clients.
- Software Engineer at Homechoice — e-commerce development and legacy frontend modernisation.
- Junior Web Developer at OpenUp — end-to-end delivery of a civic platform using Django, GraphQL, and React/Gatsby.
- SEO Specialist at Big Web Media — technical on-page and off-page optimisation to improve search visibility.
A curated route through my public projects, organised by engineering focus. Follow the code links to inspect the implementation directly.
| Project | Engineering focus | Explore the implementation | Demo |
|---|---|---|---|
| Management Dashboard | Complex UI state and component development. | Code · Task helper tests | View demo |
| Europe Data Visualisation | Interactive data visualisation. | Code · Data loading | Source available |
| Martian Robots | Domain modelling and automated tests. | Code · Simulation tests | CLI project |
| GitHub Commits Explorer | Repository exploration and shared UI state. | Code · Commits interface | View demo |
| Client Subscription Tracker | Business interfaces and filtering. | Code · Table interface | View demo |
| User Directory & CRM Interface | React, TypeScript, API validation, and shared UI state. | Code · State management | View demo |
- Card Form Interface: React and TypeScript form project with card-entry, edit flows, validation logic, and a visual card preview. View demo →
- Delivery Pickup Selector: React interface for exploring pickup locations, expanding address details, and selecting a location. View demo →
- Bar Tab Orders: React project with price-list and order views, shared order state, and browser-local persistence. View demo →
Explore all nine projects and their code entry points →
Each project illustrates a specific area of implementation; setup instructions are available in its repository.
- Understand the constraints: clarify the user need, existing system, and delivery priorities before choosing an approach.
- Make boundaries clear: separate interface concerns, application logic, and external integrations.
- Make behaviour reviewable: use focused tests, readable code, and explicit handling of loading and failure states.
- Explain the trade-offs: favour decisions that the team can understand, maintain, and evolve.
- Help others grow: share context through code review, pairing, and mentoring.
Core: React, TypeScript, JavaScript, Node.js
Also worked with: Remix, Next.js, Angular, D3, C#/.NET, REST, GraphQL, Tailwind CSS, Storybook, GitHub Actions, Docker, and Cloudflare.
I welcome conversations about senior engineering opportunities, frontend architecture, and API integrations. Connect with me on LinkedIn.



