Skip to content

Data services and integration

Where data lives and where it goes next - stores, streams, the plumbing between systems.

The corporate accounts portal at Mobilauto started from one rule: the portal holds no copy of any taxi firm's data. A corporate client here is a business that prepays taxi trips for its staff, and at month end it wants to know exactly what it paid for. So the portal opened a connection to each firm's own database, on a worker thread of its own, and on every start it read the firm's address from a registry instead of storing it. A firm that moved servers didn't need anything from Mobilauto. Everything a corporate customer reads in there, down to the accountant's statement, comes straight from the firm's own database. Balance changes got written down as operations too: a top-up leaves a record of the person, the amount, the time and the reason, marked as coming from the portal. So when an invoice gets disputed, the answer is sitting in those records. The portal was all mine, backend and frontend.

The rider gateway at Mobilauto works the opposite way, because a rider is waiting on every request. Many small taxi firms have no domain and some have no stable IP, so a rider's phone simply can't reach their dispatch machine. The gateway is one shared public address any such firm can route its riders through, for sign-in, saved addresses, ordering, ride history and the live cars on the map. I kept the gateway from 2021 to 2022.

The same problem of joining systems shows up at enterprise size. At The Parker Avery Group several internal services talk GraphQL to each other, and I designed and built the federated gateway that joins them into one. You send one question to one address, and the gateway hands each part to the service that owns that slice of the data and merges the answers into one reply. Federation couldn't carry subscriptions back then, so I built that support into the gateway myself: a realtime channel, so a screen that has to change the moment its data changes gets the change pushed to every browser window that has it open, instead of asking for it again and again. That was part of my first months there, in 2022.

Moving data between two systems is a job of its own, and it's always messier than people expect. The faculty site had years of content sitting on Google Sites, in two languages, and none of it was structured. In 2026 I moved all 213 pages of it with Playwright in automated fashion, straight into the new content service. That pass carried 178 news articles, 16 educational programs, 11 staff entries, 8 conferences and 5 departments. It also went after 898 images, and the images were the really messy part.

Start a project

Tell me which systems have to stay in sync and what goes wrong today when they drift apart.

Start a project

So, what's broken?

Tell me the problem, a rough budget, and a timeline if you have one. I reply within 24h on weekdays.

Rough budgetoptional
* required