Selected work

Case studies.

Six projects built end to end — architecture, backend, frontend and the infrastructure underneath. Each one is described in terms of the problem it solved and the engineering it took.

2024

Verivello

AI-powered UK company intelligence platform

A live subscription platform that turns raw UK company filings into plain-English due diligence, with an AI assistant that answers questions about any company.

The problem

Companies House publishes millions of filings, but they are raw, scattered across registers and hard for a non-specialist to read. Businesses need to know who they are dealing with — is a company real, active, solvent, who owns it — without wading through PDFs across a dozen sources.

What I built

  • Search and profile pages across the full UK register — millions of companies — served from a local Companies House mirror for speed.
  • A data layer that cross-references multiple official sources: Companies House, HM Land Registry, The Gazette, the FCA and ICO registers, charity and sanctions data.
  • An AI assistant that answers natural-language questions about any company and writes due-diligence summaries, grounded in the underlying records so it does not invent answers.
  • Downloadable PDF due-diligence reports, company-monitoring alerts, and subscription billing via Stripe with plan-gated features.
  • The full stack underneath — accounts, entitlements, streaming responses, caching and the infrastructure to run it.

The result

Live and operating as Verivello — a real subscription product, built and run end to end: the data pipelines, the AI layer, the billing and the infrastructure. Not a demo or a prototype.

StackPHP, SQLite, LLM / AI integration, Stripe, Companies House API, multi-source data pipelines, server-sent events

The engineering challenge is less any single feature than keeping a dozen data sources correct and current, grounding an AI assistant in real records so it does not hallucinate, and doing it fast enough to feel instant.

2019

Goodping

UK hosting and VPS provider

A UK hosting company built and operated end to end — from the physical hardware upward.

The problem

Running a hosting business means owning the whole stack. Not renting a reseller panel, but specifying hardware, getting it into a data centre, arranging transit, and building the automation to provision and bill customers.

What I built

  • Physical server hardware colocated at Volta Data Centres in London.
  • Network transit and peering arranged directly with Cogent, for low-latency routing to UK users.
  • Virtualisation to carve capacity into VPS plans alongside shared hosting.
  • WHMCS automation for provisioning, billing, domain registration and customer support workflows.
  • Linux server administration, monitoring and backup across the estate.

The result

Ran as a real hosting business, not a demo — customers provisioned, billed and supported automatically on hardware I specified and had installed. Owning the physical and network layer is unusual for a web developer, and it is where most of my instinct about what actually breaks in production comes from.

StackLinux server administration, virtualisation, colocation, BGP/peering, WHMCS, PHP

This is the experience that shapes how I build web applications now. When you have been the person responsible for a machine in a rack at 3am, you write software that logs what it is doing, fails in ways you can diagnose, and does not assume the network is reliable.

2026

Crypto Whale Signals

Real-time blockchain monitoring

A live signals platform for cryptocurrency traders, tracking large-value Bitcoin movements the moment they happen.

The problem

Large Bitcoin transfers move markets, but by the time they surface on a public explorer or a news feed the opportunity has gone. Traders needed to see significant movements as they entered the network, not minutes later, and needed to know whose wallets were behind them.

What I built

  • Continuous ingestion from the Bitcoin mempool, so transactions are seen as they broadcast rather than after block confirmation.
  • Entity classification that resolves addresses to known exchanges and institutional holders, so a transfer can be labelled rather than shown as an anonymous hash.
  • A WebSocket layer pushing updates straight to connected dashboards — no polling, no refresh, sub-second delivery.
  • Automated Telegram distribution so subscribers get signals on the channel they already watch.
  • Multi-category classification and filtering so users can narrow to the movement types they care about.

The result

Reads transactions straight from the mempool as they broadcast, rather than waiting for block confirmation. That difference — seconds instead of minutes — is the whole product: a signal that arrives after confirmation is history, not an opportunity.

StackNode.js, Express.js, Socket.io, WebSocket, Puppeteer, Axios, Mempool API, Telegram Bot API, PHP, JavaScript

The engineering challenge here is sustained uptime rather than raw throughput: upstream APIs rate-limit, drop connections and occasionally return malformed data, so the ingestion layer has to reconnect, back off and recover without losing the stream or duplicating signals.

2025

vaawaa.com

News aggregation engine

An ad-free global news portal that aggregates headlines from trusted publishers across seven categories.

The problem

News aggregation is easy to prototype and hard to run. Feeds go down, change format, duplicate stories across sources and return inconsistent encodings. The site had to stay fast and current without a database server or a heavy CMS behind it.

What I built

  • A scheduled fetch engine pulling roughly a hundred RSS feeds from international publishers — including major newspapers, broadcasters and specialist technology and blockchain sources.
  • Normalisation and de-duplication into a single flat-file cache, so page loads never wait on an upstream feed.
  • Seven category sections plus around forty topic routes, handled through URL rewriting rather than query strings.
  • A self-healing refresh: if the cache goes stale between scheduled runs, the next page load triggers a background refresh.
  • Direct attribution and outbound links to every original publisher.

The result

Still running today. Around a hundred publisher feeds are fetched on a schedule, de-duplicated and served with no database server and no CMS behind it, which is why it needs almost no maintenance and costs almost nothing to host.

StackPHP, Guzzle, Composer, cron, Apache rewrite rules, flat-file JSON cache

Deliberately built without a database. For a read-heavy site serving cached content, a well-structured flat file is faster, simpler to back up and has one less service to keep running. Migrated to new infrastructure in 2026 with the refresh cycle intact.

2015

Topup24

Mobile airtime top-up service

An international mobile airtime top-up service — send prepaid credit to a phone abroad, paid by card or Bitcoin. Crypto was one payment option, not the point.

The problem

Sending mobile credit across borders was slow and expensive. For the user it had to be simple: pay, and have prepaid airtime land on a phone on an international network, automatically. Accepting Bitcoin as one of the payment methods meant building the settlement and confirmation logic from scratch, since no processor offered it at the time.

What I built

  • International prepaid airtime delivery through carrier and top-up APIs, triggered automatically on payment.
  • Multiple payment methods, including Bitcoin, with on-chain confirmation tracking before fulfilment.
  • Transaction processing that reconciles payment against delivery, so a confirmed payment always results in delivered credit or a traceable failure.
  • A high-trust interface aimed at ordinary users, not crypto natives.

The result

Delivered international mobile airtime end to end, automatically — pay by card or Bitcoin and the credit lands on the phone with no manual step. Built in 2015, when accepting crypto as a payment option meant writing the confirmation and reconciliation logic yourself.

StackPHP, carrier/top-up APIs, Bitcoin payment integration, MySQL, JavaScript

The product was airtime top-up; crypto was simply one way to pay for it. The hard part was reliability — a confirmed payment must always end in delivered credit or a clear, traceable failure, across carrier APIs that don’t always behave.

2025

noor.ink

Client-side reading platform

A fast, distraction-free Quran reader covering all 114 chapters.

The problem

Most online readers bury the text under navigation, adverts and interface. The brief was the opposite: get the reader to any chapter in one action, and then get out of the way.

What I built

  • A grid navigation system presenting all 114 chapters at once, so any chapter is reachable without a secondary menu.
  • A single structured dataset driving the whole index — reorder or extend the content from one configuration file, with no markup changes.
  • Client-side rendering for instant chapter switching after first load.
  • A deliberately minimal interface with no advertising or tracking.

The result

Still running today. Entirely client-side — there is no backend to maintain, no database to back up and no server cost, so it keeps working without anyone touching it.

StackPHP, JavaScript, JSON dataset, CSS Grid and Flexbox

The interesting constraint was payload. Serving a large text corpus to a client-side application means thinking carefully about what ships up front and what loads on demand.

Next step

Want something similar built?

If your project looks like any of these — real-time data, payments, integrations, or a platform with real users behind a login — I’d be glad to talk it through.

WhatsApp