I’m a player/coach engineering leader and full-stack software engineer delivering scalable web platforms across
PropTech, government, and start-ups. I’m hands-on in TypeScript/React/Remix, with deep backend experience building
LoopBack 4 APIs on MongoDB and AWS.
I lead teams, set delivery standards, and translate stakeholder needs into systems that improve operational efficiency
through automation — built for reliability, correctness, and long-term maintainability.
Leadership & Delivery
Player/coach leadership — led delivery while staying hands-on across frontend, backend, CI/CD and infrastructure
Sprint planning, backlog refinement, prioritisation and capacity planning for multi-engineer teams
Engineering standards — code reviews, quality gates, test discipline and delivery expectations
Stakeholder partner — turn business requirements into scoped, deliverable architecture
Selected Work
Delivered a multi-estate resident platform supporting 1000+ properties, replacing manual payment and utility top-up workflows
Built Ellipsis Marine — a peer-to-peer booking platform with payments, messaging, and analytics for Seychelles tourism operators
Built internal systems for contract generation, procurement automation, payroll, and visitor management
WestProp VMS is an internal enterprise platform used to run procurement, finance, HR, and operational workflows across the group.
It replaces spreadsheet- and email-driven processes with explicit workflows, enforced permissions, and auditable records.
Built and owned end-to-end in a de facto internal CTO role, the system provides executives with real-time visibility while
enabling non-technical teams to operate safely within defined controls.
System Architecture
Frontend: React + TypeScript with shared internal components for data tables, approval flows, multi-step forms,
and status indicators. Designed for data-heavy screens and long-running approval processes.
Backend (API-first): Node.js + TypeScript with explicit workflow logic modelling real business states
(draft, submitted, approved, rejected, paid). Business rules live in services, not controllers.
Data modelling: Structured relational models for suppliers, RFQs, requisitions, invoices, payments,
staff, leave, and performance cycles. Financial records are append-only; historical states are preserved.
Security: Role-based access control with enforced separation of duties (requesters, approvers, finance).
All sensitive actions are attributed and logged.
Integrations: Payment and accounting integrations, document storage with signed URLs,
and optional facilities and access-control hooks.
Key Engineering Challenges
Formalising real processes: Converting informal, people-driven workflows into deterministic systems
without breaking how teams actually work.
Approval flexibility: Supporting configurable approval chains while retaining full auditability.
Financial safety: Preventing duplicate payments and out-of-policy approvals through invariant checks
and idempotent operations.
Usability: Designing flows where the safe action is the easy action for non-technical users.
Business & Technical Impact
Approval cycles reduced from days to hours with clear visibility into bottlenecks.
Audit preparation no longer requires reconstructing decisions from email threads.
Lower operational risk through enforced controls and separation of duties.
New modules added with minimal rework due to shared workflow and UI foundations.
WestProp Residents Portal
Overview
A multi-tenant residents portal serving thousands of owners and tenants across multiple developments.
Built end-to-end in a senior full-stack / CTO capacity, the platform provides secure self-service access
to statements, levies, invoices, payments, subscriptions (utilities, Wi-Fi, solar, rentals), documents,
maintenance requests, and development-wide communications.
Technical Architecture
Frontend: React + TypeScript with reusable form, table, and document components.
Optimised for large financial histories using memoisation, code-splitting, and virtualised lists.
Backend: LoopBack 4 API providing a strongly-typed service layer with clear domain boundaries.
REST endpoints are consumed via RTK Query for predictable data access, caching, and synchronisation.
Payments: Stripe Elements and subscriptions with verified, idempotent webhooks.
Background reconciliation ensures Stripe activity matches the internal ledger.
Data layer: PostgreSQL with tenant-scoped relational models for developments, units,
residents, invoices, ledger entries, and payments. Isolation enforced via scoped keys and RLS.
Security: OAuth2 and password-based authentication with optional MFA.
Fine-grained permission checks and access logging for sensitive data.
Scalability: Stateless APIs behind a load balancer with background workers for billing
and webhooks. New developments onboarded via configuration rather than code.
Key Engineering Challenges
Financial correctness: Implementing a double-entry ledger to ensure full auditability
of invoices, adjustments, and payments.
Subscription lifecycles: Handling proration, retries, and failures without reconciliation drift.
Multi-tenant safety: Strict isolation at every layer with tooling for migrations and backfills.
Permissions: Mapping real-world roles to precise, enforced capabilities.
Operational resilience: Retryable workflows, dead-letter queues, and structured logging.
Impact & Results
Thousands of active users with consistent sub-second performance.
Automated reconciliation reduced manual finance workload by over 80%.
Zero cross-tenant data incidents and full audit readiness.
New developments onboarded without application code changes.
Ellipsis Marine
Overview
Ellipsis Marine is a purpose-built operations platform for managing real-world maritime activity,
replacing fragmented spreadsheets, chat threads, and paper logs with a single system of record.
It supports vessels, charters, crew, maintenance, compliance, and financial tracking in a way that
mirrors how marine operations actually run day to day.
System Architecture
Frontend: React + TypeScript with data-dense operational views focused on current status,
constraints, and next actions rather than dashboards for their own sake.
Backend: Node.js + TypeScript API with domain-driven design.
Business rules live in services and enforce valid state transitions for charters,
maintenance, and compliance workflows.
Data layer: Relational models aligned closely to real maritime entities,
with explicit state machines and preserved historical records.
Auth & permissions: Role-based access for owners, operators, crew, and administrators.
Sensitive actions are logged and traceable.
Scalability: Designed to support multiple vessels, operators, and mixed
private and charter operating models without schema changes.
Core Domain Models
Vessels: Specifications, equipment, capacity, and compliance status with full historical tracking.
Charters: Time-based bookings with clear lifecycle states from planning through completion and settlement.
Crew: Licensing, availability, and assignment validation against operational requirements.