I'm a full-stack developer with 5 years of commercial experience building production web applications, APIs, integrations, internal systems, and workflow automation.
I work primarily with TypeScript, React, Node.js, and relational databases, with a strong focus on authentication, authorization, API design, maintainable architecture, testing, CI/CD, and cloud deployment.
Most of my commercial work is held in proprietary repositories. The projects below are public technical demonstrations of how I approach production-style engineering problems.
Live application · Source code
A small learning management application demonstrating production-style authentication, authorization, type-safe API boundaries, server-state management, testing, and cloud deployment.
Originally built as a time-boxed technical assessment, it has since been expanded into a production-deployed portfolio project with stronger type safety, API contracts, server-state management, testing, security, and deployment infrastructure.
Key areas demonstrated:
- Next.js and TypeScript full-stack application
- Supabase authentication and PostgreSQL
- Role-based access control for students and administrators
- Resource ownership checks and PostgreSQL row-level security
- Defense-in-depth authorization at the API and database layers
- Generated Supabase types as the source of truth for database contracts
- Runtime-validated API responses with Valibot
- Typed API client boundary between React and Next.js route handlers
- SWR-based server-state caching and revalidation
- Scoped React hooks separating queries, mutations, and component-local state
- HMAC-based invite access gate with signed, expiring cookies
- Server-side rate limiting for public invite redemption
- Automated API, authorization, database, and container integration testing
- Production containerisation with Chainguard images
- GitHub Actions CI/CD and GitHub-to-Azure OIDC authentication
- Azure Container Apps deployment with Bicep infrastructure as code
A job-application tracker demonstrating production-style full-stack architecture in a TypeScript monorepo.
This project is the next to be completed and deplyed. But current only static code can be reviewed or the repo cloned and run locally.
Key areas demonstrated:
- Qwik frontend and Elysia REST API
- PostgreSQL with Drizzle ORM
- Redis-backed registration and session workflows
- Shared runtime schemas and TypeScript contracts
- Centralised error handling and structured logging
- Clear UI, API, service, repository, and infrastructure boundaries
- Automated testing and CI workflows
My professional work has included:
- Independently delivering a customer portal used by more than 5,000 customers
- Integrating seven internal and third-party systems
- Implementing authentication, secure sessions, and role-based access control
- Building REST APIs, webhooks, dashboards, and workflow automation
- Removing approximately 30 hours of duplicate data entry each week
- Improving deployment processes from several hours to approximately 30 minutes
Frontend: TypeScript, JavaScript, React, Next.js, Qwik, Tailwind CSS, SWR
Backend: Node.js, Express, Elysia, REST APIs, Valibot, authentication and authorization
Data: PostgreSQL, Microsoft SQL Server, MySql, Supabase, TypeORM, Drizzle ORM, Redis, row-level security
Testing & Delivery: Vitest, Docker, GitHub Actions, CI/CD, Azure Container Apps, Bicep, Linux
I prefer clear ownership boundaries, small focused modules, generated and runtime-validated contracts, explicit authorization rules, standard server-state patterns, and automated checks that exercise both application and database security boundaries.
I try to introduce abstractions only where they establish a meaningful boundary, rather than adding layers for their own sake.
My earlier experience in sales and operations leadership also helps me translate business workflows and stakeholder needs into practical, maintainable software.
I'm continuing to develop public projects around:
- secure full-stack application and API design
- type-safe application boundaries and runtime validation
- server-state management and maintainable frontend architecture
- container-based integration testing
- cloud deployment and infrastructure as code
- AI-assisted development workflows and automation
I'm currently open to full-stack and application engineering roles where I can contribute across frontend development, backend services, integrations, automation, and delivery.


