Staff / Lead iOS Engineer — fourteen years in the Apple ecosystem, shipping 30+ production apps in Swift, SwiftUI, Combine, and Swift Concurrency across wealth management, payments, banking, retail, healthcare, and smart cities. Most recently built a simple fintech AI assistant end to end, and builds solo AI products — Doctor AI on iOS and CarSales Bot on macOS desktop.
When I'm not shipping payments at TruPOS, I'm building solo. Doctor AI explores what an LLM-native clinical app can look like on iOS. CarSales Bot ships AI-driven WhatsApp automation as a signed, notarized macOS / Linux desktop app for car dealerships. Both end-to-end, one engineer.
An iOS + Android consultation tool that uses LLMs to generate structured clinical notes from doctor–patient conversations. Solo-built across six repositories: a Swift/SwiftUI client, an Android companion, a shared Swift Package (AIDoctor-SPM), a TypeScript + Node.js backend on Google App Engine, and an evaluation notebook for prompt iteration.
The interesting parts: Twilio Video for secure doctor–patient calls, Apple Speech for on-device transcription, and server-side LLM orchestration so prompts can be versioned without shipping a new iOS build. Firebase (Auth, Firestore, FCM) covers identity, realtime data, and push for the beta cohort. A Jupyter notebook handles model evaluation between prompt iterations.
An AI-driven WhatsApp sales assistant for car dealerships, shipped as a signed and notarized desktop app (macOS DMG, Linux .deb / AppImage) so non-technical dealers can install it themselves. The system pairs to a dealership's WhatsApp number, answers inventory questions through an OpenAI tool-calling agent, sends vehicle photos and videos as native attachments, and keeps the catalog fresh via a scheduled scraping daemon — replacing hours of repetitive sales-rep messaging with a 24/7 first-line bot that qualifies leads and routes serious buyers to a human.
The interesting parts: a 3-tier service layout (Repository → Service → Adapter) cleanly separates the Baileys WhatsApp transport, the agent loop, and the SQLite inventory; pluggable scraper adapters (cheerio + undici) feed the catalog; QR pairing is rendered as SVG in the Electron main process and piped over IPC to a sandboxed renderer (contextIsolation: true, nodeIntegration: false); electron-builder produces arm64/x64 DMGs with Developer ID signing + notarization, with electron-updater wired to GitHub Releases for OTA. 290+ Vitest tests, strict TypeScript end-to-end, and a companion license server for dealer-key issuance. On macOS: menu-bar status glyphs, Notification Center alerts, and login-item auto-start.
A continuous arc from Objective-C and iOS 5 in 2011 to Swift 6, SwiftUI, structured concurrency, and LoRA-fine-tuned Apple Foundation Models running on device in 2026 — owning architecture, CI/CD, reusable frameworks, and the engineers around me at each stop.
Built a simple fintech AI assistant end to end in Swift and SwiftUI across 8 modules — from the floating entry point on Portfolio Home through first-run onboarding to a fully streaming conversational interface — shipped to the client's phase 1 production release at a 0.1% customer rollout.
DataStreamRequest with a custom newline-delimited JSON tokenizer, publishing decoded chunks to the UI through a Combine PassthroughSubject as they arrive.@globalActor for serialized stream processing, @MainActor UI boundaries, and full Sendable conformance — eliminating data races under load.Decodable initializers, parse-boundary validation, and graceful degradation on unrecognized payloads.0→1 development of TruPOS, the enterprise's central payment platform iOS app in Swift/SwiftUI/Combine — the single checkout hub for multiple business lines, with deep-link integrations into systems like Field Service 365.
Concurrent Tech Mahindra engagement alongside TruPOS. Shipped production features for the TruGreen consumer app in React Native + TypeScript across iOS and Android. Authored native iOS modules in Swift and bridged them to JS — exposing biometrics, deep links, and secure storage that pure JS couldn't reach. Debugged Metro / Hermes / native-bridge issues and symbolicated cross-platform Crashlytics.
Architected and shipped the first production release of the NEOM Smart City iOS app for residents, visitors, and service providers — and the platform framework that powers ~20 other NEOM apps.
Owned end-to-end iOS delivery for the Kroger Gamification module (v1.0 and v2.0), shipped across Kroger and sister-banner apps (Ralph's, Fred Meyer, Harris Teeter). Authored DevOps pipelines in Fastlane + GitHub Actions + shell/Ruby/Node.js used by the entire iOS org. Instrumented Gamification with Firebase Remote Config feature flags and A/B experiments; monitored rollouts via Crashlytics and Grafana.
Delivered iOS features across GAP, Athleta, Banana Republic, and Old Navy storefronts in Swift/SwiftUI and Objective-C. Led the Notification System workstream from scratch to production — story-pointing, code reviews, stakeholder demos.
Led development on the SIJ, MHA, and CIBA loan modules in Swift and Objective-C — features used by millions of TD customers. Integrated Face ID / Touch ID via LocalAuthentication + Keychain and hardened the app against jailbreak and tampering. Contributed to the TD iOS Banking Foundation Framework and republished it via CocoaPods.
Owned the iOS codebase for Trickl, a smart-utility app: real-time energy gauges, device-control toggles, push notifications. Migrated the codebase Swift 3 → Swift 4 as the language evolved. Architected Core Data persistence and a GCD-based networking layer over AWS. Built cross-platform Green Button utility apps for Toronto Hydro, London Hydro, and Whitby Hydro on Ionic 4/Capacitor + Angular 9, sharing reusable iOS components as a framework.
Shipped six internal Pfizer iOS apps in Objective-C and Swift — Events, Emotions, GroAssist, Gavi Stats, KC Planner, and supporting tooling. Built reusable expandable table cells, custom Core Graphics charts (scatter, bar, rocker), Janrain SSO integrations, and offline sync modules. Authored technical design docs, class/sequence diagrams, and mentored teammates through code-quality reviews.
The decade's foundation: 8+ apps to the App Store across healthcare, retail, and consumer — Reliance Jio World, Wall Mall, MindBody Yoga/Fitness, Digital PA, Emergency Link, Share My Pair, EQY-P, Viva iPad. Worked across Objective-C, Titanium, and early iOS SDKs (iOS 5–7). Contributed to accessibility R&D for the Qualcomm Healthy Circle POC.
The hard problems weren't the model. They were streaming correctness under concurrency, a response schema that degrades gracefully when the backend sends something the client doesn't recognise, and a component library other engineers could adopt without re-implementing chat.
Floating action button injected into Portfolio Home, My Portfolio and Performance via a SwiftUI ViewModifier for SwiftUI screens and a protocol + UIHostingController bridge for legacy UIKit screens. iPad-aware placement, remote eligibility and version gating, full-screen cover into chat or onboarding, typed error alerts. Service-locator DI, analytics on every interaction.
A TipKit-inspired framework built in-house so it could run back to iOS 17: tip-content protocol, tip identifier enum, display ViewModifier and a View+VGTip extension, rich-popover and standard styles, and per-user show-once persistence. Adopted by other engineers on the project. Fixed for iOS 26.
Five-page animated walkthrough: welcome, account-snapshot demo (animated table), navigation help (animated line chart), decision guardrails, and privacy / human-fallback notes. Timed message choreography, @Published state driving page transitions, per-user Keychain persistence keyed to customer profile ID, flowing straight into chat on completion.
A ChatViewState enum (loading / welcome / active), paginated circularly-cycling suggestion pills, a 300-character input limit with backend-supplied regex for unsupported-character detection, haptics behind an injectable protocol, accordion disclosures modal, per-response thumbs-up/down feedback, and typed error alerts. Combine throughout, @MainActor for UI safety.
Owns session lifecycle: service-agreement acceptance, stream subscription, chunk-by-chunk message assembly, smart-loading handoff to the first response chunk, contextual suggested intents, backend-driven intro content, session-ID correlation for analytics, and cancel/retry semantics.
HTTP streaming to the BFF over Alamofire DataStreamRequest, plus toggle, service-agreement, content and feedback endpoints. A custom @globalActor for serialized stream processing and an actor repository bridging async/await to callbacks through throwing continuations.
An actor-isolated JSONL tokenizer — buffer accumulation, delimiter splitting, complete-object extraction — emitting through a Combine PassthroughSubject. Eight component types decoded on a component discriminator, with validation at the parse boundary (table header/row parity, chart value bounds) and graceful degradation on unknown types.
A SwiftUI component library covering the full chat surface: message rows, markdown-rendered AI text, tables, ordered/unordered lists, line/bar/composition charts with dedicated chart ViewModels, typing indicator, smart-loading states, queue-position indicator, inline retry, character-limited input, suggestion pills, keyboard-responsive scrolling, link parsing and identity labels. Built on the client's design-system tokens; the base chat view was reused for live-agent chat as well.
| Wire value | DTO case | UI rendering |
|---|---|---|
| chat-response | .text | Markdown text bubble |
| table | .table | PlainTable grid |
| ordered-list | .orderedList | Numbered list |
| unordered-list | .unorderedList | Bullet list |
| line-chart | .lineChart | LineChart view |
| bar-chart | .barChart | BarChart view |
| pie-chart | .pieChart | BarCompositionChart |
| suggested-user-intents | .suggestedUserIntents | Suggestion pills |
Claude was used throughout as a working tool, not a novelty. I authored custom Claude development commands for the team that automate first-pass code review and enforce the project's Swift/SwiftUI coding guidelines before human review. Beyond that: scaffolding and refactoring across the eight modules — ViewModels, protocol/mock pairs, DTO boilerplate — and test generation for the tokenizer, DTO decoding and ViewModel layers, then hardened by hand against real streaming edge cases. Every generated output was reviewed for correctness and performance. The engineer stays accountable for what ships.
A representative slice of the production apps I've architected, shipped, or led across the App Store, enterprise distribution, and TestFlight — from Objective-C in 2011 to Swift Concurrency and SwiftUI today. Counting the Kroger and GAP Inc. banner storefronts, the Ontario Hydro Green Button apps, and the six Pfizer internal apps individually, the total comes to 30+ production iOS apps.
0→1 enterprise checkout app. Offline queue (Core Data + BGTaskScheduler), Bluetooth card readers, Face ID, async/await payment status, 80% test coverage.
First production release shipped to the App Store. NEOMCore SPM adopted by ~20 internal NEOM apps; Apollo GraphQL, OpenAI assistant, Twilio calling, Apple Speech.
React Native + TypeScript app shipped to iOS and Android. Authored native Swift modules and JS bridges for biometrics, deep links, and secure storage.
End-to-end iOS delivery of the Gamification module, shipped across Kroger and sister-banner apps (Ralph's, Fred Meyer, Harris Teeter). Firebase Remote Config + A/B.
iOS features shipped across all four GAP Inc. storefronts in Swift/SwiftUI and Objective-C. Owned the Notification System workstream from scratch to production.
SIJ, MHA, and CIBA loan modules used by millions of TD customers. Face ID / Touch ID via LocalAuthentication + Keychain; contributed to the TD iOS Banking Foundation Framework.
Smart-utility app with real-time energy gauges, device-control toggles, push notifications. Core Data + GCD networking over AWS. Swift 3 → Swift 4 migration.
Cross-platform utility apps on Ionic 4 / Capacitor + Angular 9, sharing reusable iOS components packaged as a framework across three Ontario hydro utilities.
Events, Emotions, GroAssist, Gavi Stats, KC Planner, and supporting tooling. Reusable expandable table cells, Janrain SSO, offline sync, and custom Core Graphics charts (scatter, bar, rocker) built from scratch.
Early-iOS consumer app for the Reliance Jio ecosystem in Objective-C.
Yoga and fitness consumer iOS app — class booking, schedules, and user profiles.
Emergency / medical info app for first responders — early accessibility work.
Accessibility R&D proof-of-concept exploring inclusive interaction patterns on early iOS.
Wall Mall, Digital PA, Share My Pair, EQY-P, and Viva iPad — early-iOS storefront, productivity, social, loyalty, and iPad-enterprise apps shipped in Objective-C and Titanium across iOS 5–7.
Solo full-stack: Swift/SwiftUI iOS client, Android companion, shared Swift Package, Node.js + TypeScript backend on Google App Engine, Firebase, OpenAI orchestration. Apple Speech transcription + Twilio Video.
My most leveraged work isn't a single app — it's the platforms, packages, and patterns other teams build on top of. Reusable iOS infrastructure, mentorship, and stakeholder-facing design reviews are the through-line.
Reusable iOS framework — networking, OAuth, SSL pinning, shared UI — defined and shipped for the NEOM platform. Adopted across ~20 internal NEOM apps.
Swift Package for payment flows, receipt generation, and deep linking — adopted by 3 internal apps, eliminating per-app reimplementation.
Contributed to and republished the shared iOS framework via CocoaPods to streamline dependency management across the TD Canada banking iOS estate.
Authored Fastlane + GitHub Actions + shell/Ruby/Node.js pipelines used by the entire Kroger iOS org for build, sign, and deploy.
Built reusable iOS components packaged as a framework, shared across three Ontario hydro utilities (Toronto, London, Whitby).
Drove design-review sessions across product, backend, security, and design — translating business requirements into documented architecture, interface contracts, and risk plans across TruPOS, NEOM, Kroger, and TD.
Across the years, the through-line has been Swift and the Apple platform — but the stack I reach for in 2026 is meaningfully different from 2016. A snapshot of what I'm fluent in today.
Graduated 2011. Started shipping iOS apps to the App Store the same year.
All 44 public repositories from github.com/imuks — 30 original projects spanning Swift/SwiftUI, AI agents and full-stack TypeScript, plus 14 forks kept as references. Last synced September 2026.
This site — a single hand-written HTML page deployed on GitHub Pages.
Penny — a conversational personal-finance agent that answers questions over six months of transactions by calling analytics tools, never doing the arithmetic itself.
Claude Code skill for high-ticket dropshipping market research — evidence-cited opportunity briefs scored on a multi-criteria rubric.
NuVista — full-stack real-estate platform with live IDX listing sync, an AI assistant and a market-analytics dashboard. React + TypeScript, Node/Express, MongoDB.
AI-native pipeline for building and scaling high-ticket Shopify stores — Python research engine with paired domain-expert reviewers, Langfuse-traced.
CarSales Bot — AI WhatsApp sales agent for car dealerships: Baileys transport, agent loop and SQLite inventory behind a 3-tier service layout.
Installer / packaging layer for CarSales Bot — the signed, notarized Electron desktop app, with electron-updater OTA via GitHub Releases.
SteadyAI — TypeScript backend (Node + Prisma) with web and Android clients, Dockerized for deployment.
SwiftUI take-home: App Clip deep-link parsing over a reusable coordinator/router, repository and network layer.
Swift/SwiftUI exploration of healthcare iOS patterns inspired by the Pfizer-era work.
MedPal AI — the Doctor AI iOS client in Swift/SwiftUI, currently on TestFlight beta.
TypeScript + Node.js backend for Doctor AI — LLM orchestration on Google App Engine.
Data structures and algorithms in Swift — a public interview-prep reference.
Apple App Site Association hosting for TypeGenie universal links.
Apple App Site Association hosting for universal links and App Clips.
Apple Vision framework experiments in Swift.
JavaScript development sandbox for the Doctor AI stack.
Evaluation notebook for Doctor AI prompt iteration.
The shared Swift Package powering the Doctor AI iOS client — domain logic, transport, and AI orchestration types.
Earlier iteration of the Doctor AI iOS client.
Twilio Video integration for Doctor AI consultations.
iOS client experiment for TypeGenie.
Workflow log scratch repo.
Stability AI / Stable Diffusion integration for on-device iOS image generation, published shortly after the model release.
Native iOS client for OpenAI's chat API — published January 2023, one of the earliest public Swift integrations after the API launched.
Testing a Gerrit code-review setup.
Learning repo.
Early Objective-C playground.
Demo apps from the Objective-C era.
Git tutorial exercises.
Based in London, Ontario. Canadian citizen — ready to relocate immediately to Toronto, San Francisco, New York, or Seattle, and TN-eligible for US roles with no lottery or petition. Interested in product-focused teams doing serious work with Swift, on-device ML, or modern AI tooling on iOS.