What we build
We build software products end to end. That means the interface a person touches, the services behind it, the release process that gets it onto a device, and the maintenance that keeps it working afterwards.
Mobile applications
Cross-platform applications for iOS and Android, built to feel native on each. We work in React Native and Expo, which lets a small team ship to both platforms without maintaining two separate codebases.
Product surface
Onboarding flows, navigation, gesture and animation work, accessibility, light and dark appearance, and offline behaviour.
Commerce
Subscriptions and one-off purchases through App Store and Play billing, entitlement checks, restore flows and receipt validation.
Release engineering
Signed builds, TestFlight and internal testing tracks, staged rollout, over-the-air updates and store submission material.
Web applications
Responsive, fast web products in TypeScript and React. We favour server-rendered or statically generated pages where they help, and keep client-side complexity proportionate to what the product actually needs.
Interface
Component systems, responsive layout down to small screens, keyboard and screen-reader support, and considered motion.
Performance
Edge delivery, asset optimisation, sensible caching and attention to the metrics users actually feel on real connections.
Continuous delivery
Git-based pipelines with preview environments per change, so work can be reviewed in a running site before it reaches production.
Applied AI
We integrate machine-learning capability where it makes a product materially better, and leave it out where it would only be decoration. The engineering that matters is rarely the model call itself.
Language model features
Prompt and context design, streaming responses, structured output, tool use, and graceful handling of refusals, timeouts and rate limits so the product degrades sensibly instead of breaking.
Speech and audio
Speech-to-text pipelines, real-time and batch transcription, and audio analysis feeding product logic rather than sitting in a debug console.
Generative media
Image and video generation wired into asynchronous job pipelines, with progress reporting, retries and clear terminal states for the user.
Cost and safety
Token and job budgeting, caching, output validation, content filtering and evaluation, so quality and spend both stay predictable at scale.
Backend and infrastructure
The parts users never see but always notice when they go wrong. We build these to be understandable by a small team a year later.
Data
PostgreSQL schema design, migrations, row-level security policies and query performance work.
Services
Authentication, file and media storage, scheduled jobs, webhooks and edge functions close to the user.
Operations
Environment separation, secret management, structured logging, error monitoring and reproducible deployments.
Audio, video and media engineering
A recurring specialism. Several of our products treat generated or processed media as the core experience, which demands more than embedding a player.
Audio
Real-time synthesis and playback in the browser and on device, digital signal processing, analysis of recorded audio, and precise scheduling where timing accuracy is audible.
Video
Programmatic video generated from code, so animation, data and brand assets can be re-rendered reliably instead of re-edited by hand for every change.
Energy systems research
Alongside the software practice we continue applied research into heat recovery from high-density computing.
Heat capture
Direct-to-chip liquid cooling that collects heat at the processor rather than letting it disperse into a room, so it arrives at a temperature that is actually useful.
Heat delivery
Modelling how recovered heat can be transferred into district heat networks that already serve homes and public buildings, and what that requires of the interface between the two systems.
Tell us what you are building
Whether it is a product idea, a piece of work that has stalled, or a research collaboration, we are glad to hear about it.