Cloud

The part of the product nobody sees. Data models, APIs, the systems they have to talk to, and the infrastructure underneath. Most of what makes software hard to change lives here.
  • Belkin
  • CarParts.com
  • AvePoint
  • Mitsubishi Electric
  • Sony
  • Arcadia
  • City of Richmond

Where the Constraints Actually Live

An app is the part of a product people can see. The reason a product is hard to change is almost always somewhere else: a data model that made sense for the first version, an integration with a system nobody controls, a schema that three teams now depend on.

That is the work on this page. The services behind the interface, the shape of the data, the seams where a product meets systems it did not build, and the infrastructure it all runs on.

What This Covers

Backend, Data, and Infrastructure

Three things that are usually one job.

Services and APIs

The application behind the app. Business logic, authentication, the endpoints your own clients call, and the contracts they depend on.

Data Models

How the information is shaped, and what that shape makes easy or impossible later. This is the decision that is most expensive to revisit.

Integrations

The seams where your product meets a system somebody else owns. Their format, their schedule, their idea of an interface.

Backends We've Built

Each of these is on a case study you can read

View Mitsubishi Comfort
Mitsubishi Comfort

Mitsubishi Comfort

We rebuilt the web backend and re-architected the web platform, rebuilt the communication layer between the platform and its IoT device fleet, and migrated that fleet to AWS IoT Core. Engagement began November 2023 and is ongoing.

View Case Study
View Project Foodie
Project Foodie

Project Foodie

A Django content system that treats a recipe as an event timeline rather than a document, so the editorial team could build an episode without an engineer in the loop.

View Case Study
View TuneRegistry
TuneRegistry

TuneRegistry

The rights-registration workflows, the data model holding them together, and per-exchange integrations that deliver clean data to every partner in the format each one requires.

View Case Study
View RealKey
RealKey

RealKey

A Django backend for a B2B mortgage platform, with the custom document tooling that came out of demoing it at an industry conference.

View Case Study
View Phyn by Belkin
Phyn by Belkin

Phyn by Belkin

The MVP backend for a smart water monitor: the service the device talks to, the path sensor data travels, and where the machine-learning models plug in.

View Case Study

Shape It Once

Data

The data model is the decision you cannot take back cheaply.

Most of what looks like a feature problem later is a modelling problem now. Foodie is the clearest example we have: treating a recipe as an event timeline rather than a document is what let editors build an episode without an engineer, and that was a schema decision, not a UI one.

We would rather spend a week on the model than a quarter working around it.

Know Who Owes You What

Integrations

Integrations break on somebody else's schedule.

An integration against a system you pay for is built once: you are a customer, and they have a commercial reason not to break you. An integration against a system nobody owes you anything is a subscription to an arms race.

We check that before we build, not after. If a feed can simply be licensed, a supported feed you can rely on beats anything either of us would maintain.

How a Backend Engagement Starts

Most of this work arrives on something that already exists, so it begins by reading rather than writing.
1

Read What's There

The schema, the services, the integrations, and the deploy path. What the system does today, and which parts of it everything else depends on.

2

Name the Constraint

There is usually one thing making everything slow. A model, a coupling, a manual step in the middle. We say which, in writing, before proposing work.

3

Change It in Slices

Rebuilds that go dark for a quarter are how this work fails. Each slice ships and is used, and the old path stays until the new one has earned its place.

4

Hand It Over as We Go

Documentation and architecture notes written while the work happens, not collected at the end. Whoever carries it next should not need us.

Our Stack

What We Build On

Chosen for teams who will maintain this after us.

Python
Django
FastAPI
Flask
Celery
Node.js
NestJS
TypeScript
PostgreSQL
MongoDB
Redis
AWS
Serverless
Docker
MQTT
Swagger

Is This Right for You?

We're a good fit if: You have a system that works and is getting harder to change. You are integrating with something you do not control. You need someone who will read the code before recommending a rewrite.

We're not a good fit if: You want a rewrite quoted before anyone has read what is there. You need a dedicated infrastructure engineer on staff rather than a team.

More From Our Portfolio

Belkin / Phyn
IoTiOS
Mitsubishi Comfort
IoTSmart home
Project Foodie
iOSWeb
Level
FinTechMobile
RVA311
iOSAndroid
Flume
iOSAndroid
HabitNest
HealthMobile
Real Simple Energy
EnergyWeb
Ultrapress
WebSaaS
PartnerSlate
WebFoodTech
Albuquerque Museum
iOSAR
RealKey
WebSaaS

Tell Us What's Getting Harder

If a system is slowing your team down, describe it and we'll tell you what we think is actually going on.