Senior iOS Engineer · AI-powered apps · Kyiv, Ukraine

Anton
Zinin

I put AI into apps that ship — model integration, generative media, on-device inference, and a build that passes App Store review.

Releases
30+ on the App Store
Experience
3+ years, Swift
Platforms
iOS · iPadOS · macOS
Focus
Generative & LLM features
Status
Open to work

Profile

Senior iOS engineer with 3+ years of hands-on Swift and 30+ App Store releases. I take products through the full cycle — architecture, implementation, API and SDK integration, monetisation, release, and whatever review throws back — on new builds and inherited codebases alike. Recent work sits on the AI side of that: generative and LLM-driven features in consumer apps.

I ship LLM features into consumer apps the way they actually earn their place — natural-language input mapped to app behaviour, not another chat window bolted onto a menu. And I stay accountable past the demo: paywalls, purchase restore, offline states, memory under scroll, and the App Store review that decides whether any of it reaches a user.

Generalist by choice. UIKit and SwiftUI, iOS and macOS, remote model APIs and on-device rendering, RevenueCat and analytics. If a feature needs a small backend proxy or a throwaway prototype to prove the idea first, I write that too.

Experience

Senior iOS Engineer

  • Full-cycle iOS development: architecture, implementation from design handoff, integration, App Store release and post-release support.
  • Build apps from scratch and take over existing codebases — feature delivery, refactoring and stability work on live products.
  • Integrate AI and generative APIs into consumer apps: request lifecycle, async job handling, progress and failure states, caching and cost control.
  • Own onboarding, paywall and subscription flows end to end, together with the consent and privacy requirements App Store review depends on.
  • Build reusable component systems and complex custom interfaces across UIKit and SwiftUI, including current iOS design language.
  • Close the release loop: TestFlight distribution, review submissions, crash triage and memory profiling in Instruments.

iOS Engineer

  • Delivered features and fixed defects in a live application built on RxSwift and Objective-C.
  • Worked inside an established codebase without rewrites — reading someone else's architecture and shipping within it.

iOS Engineer

  • Built a kids drawing app from scratch in SwiftUI, including timer-driven session logic.
  • Implemented onboarding and paywall flows that carried the app's subscription revenue.

iOS Engineer

  • Shipped features in a VIPER production project: camera capture, REST integration, and Firebase-backed authentication and data flows.

What I do

AI in production

Models wired into real apps

Remote model APIs and on-device inference behind a native interface: request lifecycle, streaming, structured responses, fallback chains, caching, and control over latency and token cost. The parts that decide whether an AI feature feels instant or broken.

LLM APIs · on-device inference · streaming · tool calling

Generative pipelines

Long-running jobs that don't lose the user

Generation work is slow and fails often. I build the orchestration around it — queueing, polling, live progress, cancellation, retry, partial results, and error states a user can actually recover from — plus the credit and quota logic that keeps inference cost under control.

async job orchestration · progress & failure states · media caching

Release & review

From branch to the App Store

I own the release, not just the pull request: TestFlight distribution, submissions, and the privacy work AI features now require — ATT, GDPR consent, AI data disclosure, privacy manifests. I've taken apps through review and through rejections, and I know which of the two the shortcut leads to.

App Store review · ATT · GDPR · privacy manifests · TestFlight

Revenue

Paywalls that hold up

Subscriptions, one-off purchases and credit packs end to end: RevenueCat and StoreKit, restore, offline fallback, post-purchase navigation without race conditions, and paywall variants measured rather than guessed.

RevenueCat · StoreKit · paywall A/B · analytics

Stack

Apple platform AI & generative

Platforms
iOS iPadOS macOS
Languages & UI
Swift SwiftUI UIKit Objective-C Auto Layout SnapKit Lottie
AI integration
LLM APIs FirebaseAI · Gemini OpenAI API Anthropic API streaming · SSE structured outputs tool & function calling prompt design context management retry & fallback chains token cost control
On-device ML
Apple Foundation Models Core ML Create ML Vision VisionKit Speech Natural Language Sound Analysis coremltools
Generative media
text-to-image text-to-video image-to-video style transfer async job orchestration progress & failure recovery credit & quota logic
Voice & multimodal
speech-to-text text-to-speech real-time audio streaming image & document input camera-driven inference
AI infrastructure
Python prototyping FastAPI proxy API key protection usage metering embeddings vector search · RAG MCP
Media & graphics
AVFoundation Core Image CADisplayLink Core Animation camera capture
Architecture
MVVM Clean VIPER Combine RxSwift async/await Swift Concurrency
Data & backend
Firebase Firestore Remote Config REST Alamofire Codable Core Data Realm Keychain
Monetisation & compliance
RevenueCat StoreKit paywall flows AdMob ATT GDPR · UMP AI data consent
Tooling
Xcode Instruments SPM CocoaPods TestFlight Git
AI-assisted engineering
Claude Code Cursor agentic workflows AI-assisted code review
Exploring
on-device fine-tuning local model runtimes visionOS