Mobile app engineer (09.2025 – present, full time)
Xfaang software house

- Took over an early prototype and brought the app to beta
- Owned all product and architectural decisions, working within high-level business guidelines
- Introduced an MVVM-lite architecture with @Observable ViewModels and protocol-based DI
- Designed authentication based on: short-lived JWTs in Keychain, refresh token rotation, and an actor-isolated API client with deduplicated refresh
- Bootstrapped the testing infrastructure: Swift Testing, in-memory SwiftData, isolated mocks per service
Status: Available on TestFlight (beta)
Tech stack: Swift + SwiftUI, Swift Concurrency, SwiftData, Swift Testing, Keychain, MVVM
AI tool: Claude Code

- Took over responsibility for the codebase and continued product development
- Product details under NDA
Status: Core delivered — pivoted to a similar app
Tech stack: Swift + SwiftUI, WebSocket, MVVM, real-time AI integration, Localizable.xcstrings
AI tool: Claude Code

- Shared chat layer (Ask Ray + elicitation): custom AI SDK v6 transport, streaming, tool progress
- Cross-repo work: mobile (RN), backend (Next.js + CF Workers) and funnels (React Router 7)
- Platform auth migration: header → cookie (web) and Bearer JWT (mobile), ~12 endpoint groups
- RN↔WebView bridge for onboarding funnel: Clerk-ticket handoff, cookies persisted across redirects
- Persistent TanStack Query cache in AsyncStorage (7d); PostHog ~80 events synced with web
- Dev-menu: prev/prod preset (API+Clerk), custom API URL, health checks, error-handling demo buttons
Status: In development
Tech stack: React Native + Expo, TypeScript, NativeWind, TanStack, Clerk, react-native-webview, Sentry, PostHog, AI SDK
AI tool: Claude Code

- Clothing analysis pipeline with Gemini Vision: JSON schema, response in user's language (PL/EN)
- Image preprocessing: EXIF orientation fix and two-stage compression (5–8 MB → 200–500 KB)
- Auth repository (synchronous and reactive Flow) — no UI flash on launch
- OLX integration: OAuth with token lifecycle in Firestore, AI→listing mapping, two-stage publishing
- Global exception handler with Crashlytics and error dialog in isolated process (survives crash)
Status: Completed — internal demo, never released
Tech stack: Kotlin + Jetpack Compose, Coroutines/Flow, Hilt, Retrofit, Firebase (Firestore + Auth + Crashlytics), Gemini Vision API
AI tool: Cursor

- Recreated an existing iOS app on Android from scratch — translating UX, screens and SwiftUI patterns into the style typical of Jetpack Compose / Material 3
- Product details under NDA
Status: Completed — internal demo, never released
Tech stack: Kotlin + Jetpack Compose, Material 3, Hilt, Room, Retrofit + OkHttp
AI tool: Cursor










