Case study · iOS · scoped MVP slice
Residential onboarding deserved one honest app, not three half-tools
Problem
The operations team ran tenant onboarding across a brittle web portal, spreadsheets, and a payments link that hated mobile. Applicants dropped when KYC confirmations lived in someone else's inbox and payment status drifted hours behind reality. Every new regulatory tweak meant patching three surfaces that never agreed on state.
Approach
We threw away the temptation to bolt on another web wizard. SwiftUI-first let us tighten every screen around offline-tolerant drafts, biometric re-auth for sensitive flows, and a single API contract the compliance review could actually reason about.
Backend work stayed boring on purpose: normalized tenancy states, audited transitions, Postgres with migration notes somebody else could run, Stripe webhooks the accounting team could trace without paging engineering on a Saturday. Automated UI tests guarded the brittle money path; Crashlytics and structured logging meant we slept after the first landlord cohort went live.
Outcome
- Mobile completion climbed once payments and document capture lived in-screen instead of bouncing to email threads.
- Support tickets about "lost" payments dropped once webhook-driven status matched what applicants saw the moment they tapped pay.
- The same architectural spine now fronts new regional rollouts instead of spawning another siloed mini-product.
They behaved like hired staff who already knew our codebase — blunt when scope was fantasist, ruthless when QA mattered.
Client names, brands, and direct quotes are only published after written sign-off. This case study stays at sector level on purpose.