Case Studies

Deep dives into real projects showing the challenges faced, solutions implemented, and measurable business outcomes achieved.

ClassCharts EdTech Platform

From 3 servers to ~100 instances at ~1,000 requests a second

I joined a small EdTech team and stayed eight years. I rebuilt the frontend in React and the mobile apps in React Native, and led cloud migrations while the platform kept running. It grew past ten million users, at around 1,000 requests a second by the end.

The Challenge

I joined as the first developer alongside the CTO, when the products served hundreds of thousands of users. Eight years later ClassCharts served more than ten million pupils, parents and teachers across thousands of UK schools, and Edukey Education had been acquired by TES Global. I was the engineer who stayed through that, not a founder.

The team grew from two of us to more than a dozen engineers, and I was one of four code owners on the main repository by the end. School software also has no quiet window to deploy into: load spikes at morning registration, at the end of the day and through report season, and a school that cannot take a register has no fallback. Every rewrite below had to happen underneath a running platform.

Key Technical Challenges

  • Database performance bottlenecks with growing user base
  • Real-time notifications for more than ten million users
  • Complex permission system for schools, teachers, students, and parents
  • Mobile app synchronisation and offline capabilities
  • GDPR compliance and data protection

Solutions Implemented

Frontend Modernisation

  • Rebuilt the legacy jQuery application in React and Redux
  • Split features into separate micro apps, one at a time
  • Owned the webpack build pipeline, with both stacks running side by side

Mobile

  • Replaced the Android-only native app with three React Native apps - teacher, pupil and parent - first as shells around the web app
  • The parent and pupil apps rebuilt from scratch in 2018
  • Six store listings across iOS and Android from one codebase
  • Push notifications, offline handling and the release and signing pipeline

Infrastructure

  • Containerised development and production with Docker, then moved onto Kubernetes
  • Rackspace to GCP to AWS, from three servers to roughly 100 instances
  • Migrated 40+ TB of images and assets between clouds, writing the migration tooling

Quality Assurance

  • Introduced Cypress and the GitHub Actions workflows that ran it
  • Built out unit and integration coverage and the CI deployment pipelines
  • One of four code owners, reviewing work across the codebase

Business Impact

Engineering Outcomes

  • Legacy jQuery application replaced by React without a big-bang rewrite
  • Android-only native replaced by one React Native codebase and six store listings
  • Development and production containerised, then orchestrated on Kubernetes
  • End-to-end suite running against every pull request

Business Growth

  • Grew to thousands of schools across the UK education system
  • Platform scaled to serve more than ten million pupils, parents and teachers
  • Homework file submission with virus scanning shipped in under two weeks when schools closed for the pandemic
  • Company acquired by TES Global

Technologies Used

PHPCakePHPMySQLRedisJavaScriptTypeScriptReactReduxjQueryReact NativeWebpackAWSGCPDockerKubernetesCypress

Smart City IoT Platform

Backend architecture for a five-domain smart-city programme

I joined a programme with several vendor teams and translated the architecture specifications into services they could build against. I designed and built 20+ microservices with API contracts across the city domains.

Project Overview

Backend engineer on a smart-city programme. Five city domains were being built by several vendor teams at once, so the architecture had to give every team a bounded context with a clean API contract and a reference model they could build against, without waiting on each other.

Architecture

  • 20+ microservices on Kubernetes, each with its own database and API
  • APISIX as the API gateway, Keycloak for identity, GitLab CI for delivery
  • Kafka event streaming from the IoT gateways, Cassandra for time-series sensor data, PostgreSQL and Grafana alongside
  • Domain-driven design with clean contracts so several vendor teams could build in parallel

What I Built

  • The platform services the city domains ran on: user, onboarding, notification, certification and mail, in NestJS and TypeScript
  • Domain services such as smart parking, smart lighting, dashboard, marketplace and support
  • C4 architecture models translated from an external consultancy's specifications, which became the reference the vendor teams built against
  • Delivered in six months

Technical Stack

TypeScriptNestJSNode.jsKubernetesCassandraKafkaPostgreSQLAPISIXKeycloakGrafanaPrometheusGitLab CITerraformDocker

Philips, RWE & Innogy

Enterprise web products delivered through Cuibono Media Network

Cuibono held the client relationships; I owned the builds from planning through delivery. The work included a lighting configurator and an energy-management platform, alongside campaign software and a building-survey app with a 2D room editor.

The Work

I was the engineer on a run of white-label builds for German enterprise clients, contracted through the agency Cuibono Media Network GmbH. The agency held the client relationship; I owned each build from planning through delivery.

Philips Metronomis Configurator

  • B2B configurator where customers design their own Metronomis LED lighting poles
  • PHP, MySQL, JavaScript, jQuery, Bootstrap

MyENMS Energy Management Platform

  • Real-time monitoring across connected energy sources, built for Axxerion
  • Virtual and physical energy meters, alerting and notifications, reporting
  • PHP, Symfony, Silex, MySQL, jQuery

RWE Mint Music Awards

  • Interactive voting and showcase web app for the awards campaign
  • Visitors browsed the nominees and cast their votes for the duration of the campaign

Innogy Hausmeister

  • Building survey with a 2D room editor for doors, windows, radiators, LAN connections and thermostats
  • PDF and Excel exports and offline support for surveys on site

Technologies Used

PHP Symfony Silex MySQL JavaScript jQuery Bootstrap

MarketAlerts

AI-powered market intelligence and trade ideas

I took over an agency-built product and worked with its existing team. I owned the application and infrastructure, built the AI classification layer with the data team, and led the move from AWS to GCP. The platform covered 20+ global markets.

Engagement ended when the company wound down in March 2026.

The product

MarketAlerts watched more than 20 global markets around the clock and turned SEC filings, earnings transcripts, official company releases, institutional research, market feeds, and news into signals investors could follow. The product joined those signals with watchlists, company analysis, trade discovery, screeners, alerts, and an AI analyst in one account across web and mobile.

A configurable daily workspace

  • Dashboard modules could be enabled, disabled, dragged, and reordered
  • Each module had filters for country, industry, market cap, and signal type
  • Market indices, market commentary, watchlist movers, and watchlist updates
  • AI earnings summaries, research analysis, and recent transcript coverage
  • Insider, technical, financial, fund, politician, analyst, M&A, and auditor cards
  • Trade ideas, earnings surprises, product launches, and guidance changes

Watchlists and broker portfolios

  • Create multiple watchlists and add stocks through search
  • Import holdings through SnapTrade and resync them later
  • Interactive Brokers, Robinhood, E*TRADE, and Webull connection flows
  • Live price, daily change, latest signal, and a 28-day chart for each holding
  • Recent narrative and the previous three insights for every watched company
  • Watchlist-wide alert rules instead of repeating setup for every stock

What I built behind it

Application platform

  • Legacy React application and its Next.js replacement
  • Expo and React Native apps for iOS and Android
  • Express API with authentication, subscriptions, permissions, and admin tools
  • Payload CMS and the MarketAlerts public website
  • MyQuant public website as the product's continuation
  • Product Hunt launch work and mobile-store delivery

Data and AI

  • Python classifiers using hierarchical GPT models for financial events
  • More than 100 financial-data API endpoints in a separate data monorepo
  • Airflow on Kubernetes for ingestion, crawling, transformation and scheduled analysis
  • ETL over FMP data, SEC filings, transcripts, research, and news
  • OpenAI and Perplexity services for summaries, classification, research, and chat
  • PostgreSQL and MongoDB for product data, with Redis handling jobs and caching

External systems

  • SnapTrade for broker onboarding, holding import, preview, and resync
  • Firebase Cloud Messaging for mobile alerts
  • Telegram bot polling, account verification, and message delivery
  • Stripe billing and plan-based feature access

Cloud and operations

  • Docker and Docker Swarm for the application and worker services
  • Redis-backed queues for alert processing and background work
  • Monitoring and admin views for users, alerts, queues, and broker connections
  • AWS-to-GCP migration across product and data workloads

Company research and trade discovery

Company analysis

  • Search any supported stock and open its analysis page
  • Rearrange the page once and reuse that layout across every company
  • Price chart with explanations for the movements shown on the timeline
  • Valuation, stock summary, business breakdown, and financial highlights
  • Competitors, catalysts, news narrative, and earnings transcript summary
  • Products, investment case, analyst views, and social sentiment
  • Create a ticker alert or add the company to a watchlist from the same page

TradeSearch and screeners

  • Long and short ideas filtered by country, market cap, and asset market
  • Trend following, turnaround, growth, value, risk/reward, and technical strategies
  • Insider, product, dividend, momentum, contrarian, event, and M&A strategies
  • Save individual trade ideas and return to them in a dedicated tab
  • Create reusable searches inside any signal category
  • Combine signal families with either/or rules in the Smart Screener
  • Keep a screener active so new matches appeared automatically

Alerts and the AI analyst

Alert builder

  • Ticker alerts for one company
  • Watchlist alerts for every company in a saved list
  • Screener alerts when a new company matched the rules
  • Research alerts for new work from selected providers
  • Choose one or more signal triggers and a delivery frequency
  • Email and Telegram delivery, plus iOS and Android push notifications
  • Contact verification, delivery preferences, active-alert editing, and history

AI stock analyst

  • Available from the persistent chat control across the application
  • Questions about stocks, markets, catalysts, valuation, earnings, and risk
  • Streaming answers backed by live web search
  • Conversation context and history persisted across devices
  • Voice recording with server-side transcription for paid accounts
  • Markdown responses and clear-history control with visible plan-based limits

Signals the platform tracked

Company and earnings events

  • Earnings-call summaries and official company press releases
  • New product announcements and financial guidance changes
  • Revenue, EPS, combined positive, and combined negative surprises
  • Mergers and acquisitions

Ownership and institutions

  • Insider transactions, repeat buys, clusters, PowerBuys, and large purchases
  • Politician repeat buys and politician trading clusters
  • Fund transactions, high-conviction positions, and whale buying or selling
  • Analyst upgrades and downgrades

Technical and financial patterns

  • Double and multiple tops or bottoms
  • Head-and-shoulders and triangle break patterns
  • Price breakouts, golden crosses, death crosses, price changes, and volume changes
  • GROWTH, TANGIBLE, CASHCOW, and COMPOUND financial classifications

Risk, research, and market context

  • Critical Audit Matters and Going Concern warnings
  • Institutional research summaries and source links
  • Market commentary assembled from market feeds and news
  • Social sentiment and company-specific news narratives

Technology stack

TypeScriptReactNext.jsReact NativeExpoExpressPythonAirflowPostgreSQLMongoDBRedisOpenAISnapTradeFirebaseTelegramStripePayload CMSDockerGCPAWS

Metis: AI Market Intelligence

Real-time News Aggregation & Trading Signals Platform

A personal project I built and run solo. I own the ingestion pipeline and search infrastructure, with AI classification tagging the collected news by topic and entity. The system is still being extended.

The Evolution

My own project, built and run solo, and a spin-off from Plutus, a personal trading platform. The goal was simple but ambitious: ingest news from thousands of sources in real time, understand it using AI, and correlate it with market data to find trading signals before the market reacts. Nobody was paying for it, so every architectural choice had to survive one person maintaining it.

Advanced Data Pipeline

  • Ingestion: 5000+ RSS feeds, newsletters, and archives monitored 24/7
  • Storage: Polyglot persistence using PostgreSQL (relational), ClickHouse (analytics), and Meilisearch (search)
  • Queueing: Robust event-driven architecture powered by RabbitMQ and BullMQ

AI & Intelligence

  • Classification: Auto-tagging topics and detecting relations between entities
  • Summarisation: LLM-powered summaries (OpenAI, Anthropic, Ollama)
  • Market Data: Integration with Alpaca and Binance for real-time price feeds

The Tech Stack

TypeScriptReactNestJSFastAPIClickHouseMeilisearchPostgreSQLRedisRabbitMQDocker SwarmKubernetesGrafanaOpenAI API

Want this on your team?

Hiring for a senior engineering role, employed or on a long-term B2B contract? Send me the role description.

Get in touch