SwiftUI & TCA Migration Consulting
UIKit-to-SwiftUI migrations, The Composable Architecture adoption, legacy codebase modernisation. I led the SwiftUI/TCA rewrite that took a medical app to 99.9% crash-free and a CES Innovation Award.
- full UIKit-to-SwiftUI rewrites for production apps
- Objective-C to Swift conversion for legacy codebases
- TCA adoption with the judgment calls about reducer granularity and effects
- rescuing migrations that stalled at 40% and got worse than before
- Composable Architecture 2.0 migrations using the @Feature macro, spawned stores, and the new event/preference/trigger patterns
What clients say
"Vadim was instrumental to the success Epsy enjoyed on iOS, taking it from an idea on a Miro board to the highest rated and most downloaded app of its kind on the store."
James C. · Mobile Engineering Lead, Epsy
"We had a strict deadline, and Vadim managed to complete the job in time. He gave us meaningful feedback and suggested better approaches, not trying to blindly stick to our specification."
Founder · Pre-seed streaming service
"I can say with confidence that it will be difficult to find a better developer. Vadim is achievement-oriented, highly organized, with very good communication skills."
Alex Z. · Co-Founder, eda.so
Related work
Common engagements
Architecture review before the migration
I spend a few days reading the codebase. You get a one-page migration plan: what to migrate, in what order, and where the risks are.
Lead the migration
6-16 weeks. I architect, pair with the team, migrate the highest-risk modules myself, and leave patterns the team can replicate.
Rescue a stalled migration
Team started gradual, got to 40%, now the app is worse than before. Two paths out: resume the migration and finish module-by-module, or rewrite the remaining 60% in one go. Which one fits depends on how much of the migrated code is worth keeping and what's blocking the team from moving forward.
Questions
Who can lead our UIKit-to-SwiftUI or TCA migration?
That's a core engagement, including the rescue of migrations that stalled around 40%. I led the SwiftUI and TCA rewrite that took Epsy to 99.9% crash-free and a CES Innovation Award, and I pair with your team so they can carry the pattern after I'm out. 6-16 weeks depending on scope, or a few days for just the migration plan.
Can you migrate us to SwiftUI without TCA?
Yes. About a third of my SwiftUI work is vanilla SwiftUI plus @Observable. TCA fits apps with substantial business logic and multi-person teams. For smaller or UI-focused apps, vanilla is cleaner and often faster.
Will our UIKit screens still work during the SwiftUI migration?
Yes. UIHostingController at the seams, UIViewRepresentable for UIKit views SwiftUI can't yet do cleanly, and a clear rule about who owns state at each boundary. I document this early so the team doesn't invent conflicting patterns.
We use MVVM / VIPER / Redux-style. Does TCA help?
Sometimes. TCA has specific strengths around testability, effect handling, and navigation modelling. If those are your current bottlenecks, the adoption cost is usually worth it. If your architecture problems are team-process problems, a new framework won't fix them.
Our UIKit migration stalled at 40%. What's the path out?
The path out depends on how much of the migrated 40% is worth keeping and what is blocking the team, which is the first thing I work out. Sometimes the answer is to finish the gradual migration module by module, sometimes to rewrite the rest in one go; picking wrong here is what got the project stuck the first time. I have taken this on as a rescue more than once.
Should we adopt TCA or stick with vanilla SwiftUI?
TCA fits apps with substantial business logic and multi-person teams. The structure pays for itself in testability and navigation modelling. Vanilla SwiftUI plus @Observable fits smaller apps, UI-focused products, and one-person teams. The adoption cost is only worth paying when the codebase has the state and effects that TCA is designed to organise.
Can you work alongside our existing iOS team during a migration?
Yes. Most of my migration work is pairing with an internal team: I architect and migrate the highest-risk modules, the team replicates the pattern on the rest. Leaves behind conventions the team can enforce in PR review after I'm out. 6-16 weeks depending on scope.
Are you an agency, or do we work with you directly?
Directly - you're hiring me, one senior iOS engineer who writes the code, rather than an agency that routes you through a project manager and a team you never meet. For a lot of my clients that's the whole point: one person who owns the work end to end.
How quickly can you start?
A quick call can happen within days. For project work I usually need 1-2 weeks to clear the calendar, though I keep some buffer for urgent firefighting.
Do you work with early-stage startups?
Yes, from pre-seed to Series C and beyond. For very early teams, a short advisory engagement often makes more sense than a full build: you get the architecture guidance without committing to a large piece of work before you've validated the product.
What's included when we work together?
Everything: code, architecture decisions, code review, documentation, async Slack availability during working hours. No surprise add-ons. I bill for time spent working on your project, not for "thinking about it in the shower."
We're in a different timezone. Will that slow things down?
I'm currently in Vancouver (PST), with full overlap for North American teams. For UK and Europe, I'm online by their afternoon. For Gulf or APAC, we'd agree on overlap hours and handle the rest async. I've worked with teams from San Francisco to Dubai.
Areas I cover
Where I've worked CV LinkedIn
Planning a SwiftUI migration?
Tell me what you're working on. I reply within 48 hours.