Optometrist and pharmacist, now a software developer. I build, ship and run production software for the web and iOS, and the server it runs on.
Birmingham, UK · Remote or on-siteOpen to: business partnerships, and selected build-and-run projects
Featured case·Case 01 + 07·Next.js · Express · Python · MT5 · SwiftUI· Live, web and App Store·2024 to now
ForexAcuity
A forex analysis platform, web and iOS, fed live from MetaTrader 5.
Presenting problem
A price-action method needed its signals visible across six currency pairs at once, live, on desktop and phone, with a safe way to practise trades and review them afterwards.
Assessment
The signals are computed inside MetaTrader 5, a desktop trading terminal. The data has to leave MT5 and reach a browser and a phone within seconds. Replay has to show only bars that had closed at that moment, or practice results mean nothing.
Plan
An MT5 Expert Advisor feeds a Python bridge, then an Express API and WebSocket server on my VPS, then a Next.js dashboard. Supabase handles sign-in and the trade journal; Stripe takes the web lifetime plan. The native SwiftUI app adds live 2-minute charts, a practice simulator with live and replay modes, and a journal synced to the same backend.
Outcome
Web platform live at forexacuity.co.uk. iOS app on the App Store since 2 Sep 2026, now on version 1.4, with a lifetime in-app purchase. 175 unit tests cover the engine, journal, replay clock and chart maths.
Case 02·Laravel · nginx · PHP-FPM· Live·2024 to now
Home Eye Clinic
My own domiciliary practice: NHS and private home eye tests across the Midlands.
Presenting problem
My practice needed a site that older patients and their families can use, and booking requests that always reach the team.
Assessment
Many patients are over 70, so legibility comes first. The domain had been hit with pharmaceutical spam pages. Booking notices depended on a single mailbox.
Plan
Laravel on nginx and PHP-FPM. Spam URLs return 410 Gone. A bookings admin with statuses, search, notes and CSV export. A mailer that falls back to a second mailbox, a daily mail health check behind a /health endpoint, encrypted nightly database backups pulled off the server, and a chat assistant for bookings and questions.
Outcome
Live at homeeyeclinic.co.uk with eleven area pages. Bookings admin since 10 Sep 2026; chat assistant answering since 21 Sep 2026. Backups are encrypted with a public key, and the private key never touches the server.
Case 03 + 08·Next.js 16 · Supabase RLS · Expo· Site and portal live·2025 to now
Learn Academy
Directed oversight for families who educate their children, aged 6 to 16, at home.
Presenting problem
The parent teaches; an Education Director baselines each child, writes an individual learning plan in weekly instalments, and reviews the evidence the parent logs. All of that needed one shared place.
Assessment
The business repositioned in September 2026, so the site, the data model and the wording all had to change together. Children's data shaped the product. Accounts are for parents only, and the record belongs to the parent, who can export or delete it.
Plan
Next.js 16 with Supabase row-level security. A public site; a parent portal for this week's work, the evidence log, messages and a downloadable record; a Director console for enquiries, families, baselines, a weekly plan composer and a worksheet library. An Expo app for parents on the same backend.
Outcome
Site and portal live at learn-academy.co.uk, redesigned 9 Sep 2026. Retired URLs redirect straight to their new pages. The parent app is built and not yet released.
Pharmacist, General Pharmaceutical Council 2077725Non-practising
Clinical
About 20 years in regulated healthcare; practising optometrist today
Education
Optometry and Pharmacy, Aston University PgCert Computer Science, Birmingham City University, June 2026
Shipping
Production software since 2024: six live sites, an API and two App Store apps
Based
Birmingham, UK. Remote or on-site.
Open to
Business partnerships, and selected build-and-run projects
Practice
How I work
OperationsI host and maintain what I build.
Six sites and an API run on one Linux VPS that I administer: nginx, PM2, PHP-FPM, deploys by rsync.
SecurityI have handled a real breach.
In December 2025 the server was hit ten times. I traced the root cause to CVE-2025-55182, a Next.js remote-code-execution flaw, patched it, and hardened SSH and the file system.
TestingI test the parts that carry money or data.
The iOS app's trade engine, journal and replay clock have 175 unit tests. Replay is tested so it never shows a bar before it closed.
RecordsI write it down before I build it.
Every project keeps a plan and a status file. A clinic habit: if it isn't recorded, it didn't happen.
PatientsI design for the person in the chair.
My patients are often over 70. That shapes type size, contrast and how few steps a form takes.
ClaimsI don't overstate.
Regulated professions taught me to make only claims I can back up. Every outcome here links to something you can check.