# 11 — Multiplatform Clients **Rank 23 of 28** · Tier C · `IOS/`, `Android/`, `app/web-platform` **Stack:** SwiftUI + Swift Concurrency; Kotlin + Jetpack Compose + Gradle; Next.js + TypeScript + Playwright + vitest > **Why this ranks here.** It is a large body of real work and it proves range — > but a distributed-systems loop does not hire on it. Lead with the backend; > use this to answer "have you owned a product end to end?" (yes, on three > platforms). --- ## iOS — 611,426 lines of Swift, 1,200 files Thirteen product modes in one app: | Mode | Files | Lines | |---|---|---| | Dating | 147 | 90,161 | | Array | 122 | 90,017 | | Billboard | 128 | 57,669 | | Main | 160 | 37,714 | | BoxOffice | 45 | 20,407 | | Universal | 26 | 17,530 | | Global | 110 | 17,246 | | OpenHouse | 57 | 9,294 | | Identity | 51 | 8,051 | | Registration | 13 | 6,072 | | Vitals | 14 | 2,582 | | Login | 5 | 1,427 | | Storefront | 5 | 820 | Notable engineering: `BillboardAudioEngine` with an `AudioEngineActor` over AVPlayer (Swift actors for audio-thread safety), a `JamzAudioEngine` doing **vDSP FFT constellation matching on-device**, gRPC-generated gateways from the shared protobufs, and WebRTC via `stasel/WebRTC 147`. ## Android — 19 modules, Kotlin/Compose A port of the iOS app to Kotlin + Compose. Toolchain installed, builds green. ``` core/ network · persistence · proto · security · universal feature/ array · billboard · boxoffice · dating · globalchat · identity login · mating · openhouse · shell · solomon · storefront · vitals ``` Convention-plugin Gradle setup (`build-logic/`) — the correct way to keep 19 modules consistent. **The valuable part is what was *not* done:** seven pre-existing iOS defects were found during translation and **reproduced deliberately rather than silently fixed**, so the two platforms stay behaviorally identical and the bugs get fixed once, on purpose, in both. That restraint is a strong engineering signal. ## Web — Next.js platform `app/web-platform` — Next.js App Router covering every product mode (array, auth, billboard, billing, bizz, blog, boxoffice, careers, dashboard, dating, globalchat, identity, login, mating, openhouse, storefront, plus legal/press/ privacy/promo surfaces). **Playwright e2e + vitest**, buf-generated TypeScript clients from the same protobufs the backend serves. ## Interview surface this opens - Swift actors and structured concurrency for real-time audio - On-device DSP: FFT, constellation fingerprinting, and why it runs on-device - Generating typed clients for three platforms from one protobuf source - Cross-platform behavioral parity, and why you reproduce a bug instead of fixing it mid-port