Selected work
Construction tech · drone surveying
2,000,000 points of interest at 60 fps
A construction-tech startup audits build progress against drone surveys. Site engineers needed the result — every pile, trench, and cable run with its current status — on a phone they could hold standing in the dirt. A large site carries millions of surveyed objects.
The budget ruled out server-side tiling. The phone got heavy GeoJSON and had to cope on its own.
I designed and built the iOS app. I rewrote the parsing path so geometry streamed into Mapbox layers without intermediate models, and profiled until the full dataset panned smoothly with no memory spikes. I defined the data contract with the backend team. I built messaging on sockets and APNS so field crews could talk without leaving the map.
2,000,000points of interest on one live map, zero performance degradation
Swift · Mapbox · GeoJSON · WebSockets · APNS
On the App Store ↗
Global retail · 2024–present
The platform layer at a Fortune-1 retailer
The retailer's B2B commerce app is one iOS codebase built by many teams at once. The expensive failures don't live inside any single feature — they live at the boundaries, where a change in one team's plugin blocks another team's merge.
At that scale you don't fix boundaries with meetings. You fix them with architecture.
I work on the plugin boundaries. I replaced heavy cross-module coupling with a small open API, kept feature logic contained in its own plugin, and split PRs so each piece lands with the one team that owns it. My features ride that structure: an approvals experience owned end to end, a GraphQL layer delivered from scratch inside a tight window, an Apple Pay integration built to production wallet guidelines in 3 days. For a driver-facing delivery app I took a vague requirement, proposed a better UX, and validated it in the field with live data.
I also built an agent-orchestration platform used daily by hundreds of engineers at a Fortune-1 retailer. It reads a ticket, sets up the environment, spawns an agent per stage, and tracks the parallel sessions, so engineers ship several changes at once instead of babysitting one build through CI. I lead its feature team and keep the R&D for myself.
+6%successful order acceptance after the delivery UX rework
Swift · plugin architecture · GraphQL · Apple Pay · TypeScript · Claude SDK
On the App Store ↗
US online brokerage · 2018–2020
Picture-in-Picture before iOS shipped it
Pro traders watch live financial news while they watch their positions. In 2018 the iPhone had no picture-in-picture — iOS 14 was two years away.
The video had to keep playing over screens streaming live market data, without stuttering either one.
On a 13-engineer iOS team I built a reusable AVKit component that floated the news stream over the app, then hardened it into a library other screens could adopt. I led the UI refactor that gave the whole app theme support, backed by a custom theme library. I rebuilt legacy Objective-C UI libraries as reusable Swift components and wrote fast market-data streaming modules underneath them.
2 yearsahead of the iPhone's native picture-in-picture
Swift · Objective-C · AVKit · WebSockets · CoreData
On the App Store ↗
Surgical nonprofit · volunteer · 2021–2023
Medical records where the network never comes back
A surgical ministry operates in Pucallpa, Peru. Patient records live on a fleet of iPads in a facility with no internet — not slow internet, none, and no fallback coming.
Devices drift apart for months between sync windows. A bad merge isn't a UI glitch there; it's a wrong medical record.
I supported and extended the offline-first records system and built the SQL-based sync server that reconciles the fleet. The merge logic is written for life-critical correctness: month-scale windows, multi-device conflicts, no tolerance for eventual-consistency drift. When the project needed more hands than mine, I went and found the developers myself.
0drift tolerated across month-scale offline windows
Swift · SQLite · CoreData · MapKit
The ministry's site ↗
Dutch grocery leader · 2015–2020
8,000 tests, zero bugs
I worked on the flagship app of the largest grocery chain in the Netherlands. The team ran a zero-bug policy: nothing known-broken ships, ever.
A policy like that lives or dies on its test suite.
I maintained the 8,000-test suite — unit and snapshot — that made the team's policy workable, and kept it green while shipping my own features: a large webview screen rebuilt as native dynamic components, a legacy Objective-C geolocation module rewritten as a reusable Swift one. The instinct came from 3 years in test automation before iOS, where I cut a major suite's runtime 20× through parallelization and ran sessions for Google's mobile automation team.
8,000unit and snapshot tests, kept green
Swift · XCTest · SnapKit · Appium · Selenium
Lab
Off-hours work. Same instinct, no roadmap.
360° spherical video editor in progress
A Metal pipeline for 360° footage: custom vertex and fragment shaders for equirectangular projection, compute kernels for frame transforms, manual MTLBuffer and MTLTexture management. The hero on this page is the same projection math run backwards — a sphere flattened onto your screen instead of a frame wrapped onto a sphere.
Metal · MSL · AVFoundation · Swift
Local LLM inference rig
Before cloud coding assistants were allowed inside the data perimeter, I wanted one anyway. So I wired a Mac Mini to my laptop over Thunderbolt and served models locally. It still runs quantized Qwen, Gemma, and GLM today — a cheap education in quantization, throughput, and memory ceilings.
Ollama · MLX · LM Studio
FPV drones
I solder and fly FPV quadcopters, and I'm a member of a national federation of unmanned aviation. Radio links, video links, and power systems are the same engineering as software — just less forgiving of bugs.
FPV · UAV · soldering iron
3D printing & a movie-night app
The printer turns out drone parts and household fixes. The movie-night app picks what to watch by vote, phone to phone over multipeer — fully native, no server anywhere.
MultipeerConnectivity · SwiftData · SwiftUI
About
iOS engineer with a hardware habit. I started in test automation, spent 3 years breaking mobile apps, and crossed over to building them on the same trading-platform account. Since then the work has run wide: a brokerage, the largest grocery app in the Netherlands, meal delivery in Dubai, offline medical records in Peru, and now the platform layer of a Fortune-1 retailer's commerce app. The thread through all of it hasn't changed — I build the layer other engineers build on: plugin boundaries, shared components, the APIs a team stands on. When I'm not writing Swift, I'm writing shader code, soldering quadcopters, or running a 3D printer.