Diconium (for Volkswagen Group) · 2018 — 2021
Volkswagen — Connected Owner App
iOS Engineer → Senior iOS Engineer
The companion iOS app connecting Volkswagen drivers to their vehicles — remote status, trip data, and configuration — rebuilt module by module inside a large, long-lived, multi-brand codebase.

Problem
The owner app had grown over years into a large Objective-C codebase shared, with variations, across several Volkswagen Group brands. Build times were slow, ownership boundaries were unclear, and every feature team touched the same tangled set of files — all while the app kept shipping monthly releases to a large existing user base.
Approach
I helped lead an incremental migration strategy: extracting features into local Swift packages one at a time, rewriting each in Swift as it moved, and using Objective-C/Swift interop as a bridge rather than attempting a risky rewrite. In parallel, I led a screen-by-screen migration from UIKit to SwiftUI for newer feature areas, chosen deliberately to avoid destabilizing the app's most business-critical flows first.
Architecture
The end state organized the app as a set of independently buildable Swift packages by feature domain — vehicle status, trip history, remote configuration — each with its own tests and a thin app target composing them together. Shared utilities and networking lived in foundational packages that feature packages depended on, never the reverse.
Technical Decisions
Incremental migration over a rewrite
A full rewrite would have frozen feature delivery for a product with monthly release commitments to a large user base — module-by-module migration let the team keep shipping while paying down debt.
Package boundaries drawn around feature ownership
Structuring packages to mirror team boundaries — not just technical layers — made the modularity actually stick, because each team had a package they were accountable for.
Challenges
- Migrating Objective-C to Swift without introducing regressions in an actively-shipping, multi-brand codebase.
- Cutting incremental build times that had grown to slow the whole team down.
- Coordinating a SwiftUI migration across teams with different appetites for the new framework.
Results
- Cut incremental build times significantly by restructuring the app into local Swift packages.
- Delivered an Objective-C to Swift migration plan later adopted as the template for sibling brand apps.
Lessons learned
- Modularity pays for itself fastest when package boundaries match team boundaries, not just architectural layers.
- The safest way to migrate a large legacy codebase is the boring way: small steps, strong tests, and shipping the whole time.
More projects
All projectsIndependent · 2021 — Present
Momena
A privacy-first consumer app I designed, built, and shipped entirely by myself — from Figma to SwiftUI, CloudKit sync, and weekly AI-powered insights — without operating a traditional backend.
Magnosco · 2023 — Present
Magnosco — Diagnostic Imaging Platform
The iOS application connecting a dermatological imaging device to an on-device CoreML diagnostic pipeline, built in close collaboration with imaging scientists.
Nord Security · 2021 — 2023
NordLocker — Encrypted Cloud Storage
The iOS client for an end-to-end encrypted cloud storage product, covering client-side AES-256 encryption, sync, and a StoreKit 2 subscription system.