Available for work

Projects I shipped across teams and industries

A selection of software and games shipped across multiple platforms, industries, and countries.

Reading Journey

App Store

Reading Journey is an offline-first book tracking app built for readers who want one place to manage their entire library. The camera uses the Vision Framework and Gemini AI to extract a title, author, and ISBN from a physical cover in seconds, removing all manual entry. Users log reading sessions, track progress toward annual goals, and write timestamped journal entries with reactions and notes. Books are organised into custom collections, and a dedicated import flow ingests complete Goodreads or Storygraph libraries. Rich visual statistics surface monthly pace, cumulative page counts, and a map of every location where a session was recorded throughout the year, making long-term reading habits easier to understand at a glance.

SwiftUI
MVVM
Coordinator
GRDB
Vision Framework
SPM
Gemini AI
Google Books API
Lottie
Reading Journey screenshot 1
Reading Journey screenshot 2
  • SwiftUI with MVVM design pattern
  • Coordinator pattern for hierarchical navigation management (AppCoordinator, HomeCoordinator, CollectionsCoordinator, InsightsCoordinator, SettingsCoordinator)
  • Generic FlowState<T> supporting push, present and root navigation transitions
  • GRDB (SQLite ORM) for offline-first data persistence with migrations and reactive @Query property wrapper
  • Vision Framework for real-time document edge detection and OCR text recognition from book covers
  • AVFoundation for live camera capture, photo output and flash control
  • CoreImage for image processing and perspective correction
  • CoreLocation for GPS-based reading location tracking
  • Swift Package Manager for dependency management
  • RevenueCat for subscription and in-app purchase management with paywall UI
  • AmplitudeSwift for analytics and event tracking via a consumer-based multi-destination pipeline
  • Kingfisher for async image loading and caching of book covers
  • Cloudflare Workers serverless backend with Durable Objects for session state machines (scan, search, import)
  • Google Gemini API for AI-powered ISBN, title and author extraction from cover images
  • ISBNDB and Google Books API as primary and fallback book metadata sources
  • DeviceCheck for device attestation and API security token generation
  • ZIPFoundation for ZIP file handling during library exports
  • Lottie for native rendering of high-quality animations
  • OSLog for structured system logging and Cloudflare R2 for immutable audit trail storage
  • iOS Share Extension for adding books from other apps via the share sheet
  • Spices configuration menu in DEBUG builds for database inspection and feature toggles

Debeka — Techniker Krankenkasse

App Store

The eGA module brings the electronic patient record directly into the TK app, used daily by millions of members of Techniker Krankenkasse, Germany's largest public health insurer. Policyholders gain a consolidated view of their personal health data, including vaccination history, medication plans, and preventive care schedules, within the familiar TK experience every single day. Delivered as a feature module inside a large existing codebase, the work demanded strict adherence to healthcare privacy regulations, clearly enforced MVVM boundaries verified by SwiftLint and SonarQube, and snapshot-tested UI components guaranteeing pixel-accurate rendering across all supported devices and OS versions.

UIKit
SwiftUI
MVVM
Coordinator
Combine
PromiseKit
Frameworks
Modern Concurrency
Feature Flags
Dynamic Text
Unit Tests
Snapshot Tests
SonarQube
Debeka — Techniker Krankenkasse screenshot 1
Debeka — Techniker Krankenkasse screenshot 2
  • Developed in UIKit with MVVM design pattern
  • New flows implemented in SwiftUI with MVVM design pattern
  • Coordinator for navigation management and decoupled component interactions
  • CocoaPods for managing the distribution of code
  • Frameworks to streamline development with architectures and reusable components
  • Jira for bug tracking, issue tracking and project management
  • Confluence for knowledge sharing
  • PromiseKit for facilitating asynchronous programming with clean, chainable promises
  • Combine for processing values over time and reactive programming
  • Modern Concurrency for asynchronous code execution
  • Feature flags for phased rollouts and safe testing environments
  • Dark Mode option for low-light environments, enhancing visual ergonomics
  • Voice Over for users with visual impairments
  • Dynamic Text to accommodate user preferences for readability
  • Unit Tests for Domain and API layer
  • Snapshot tests to ensure visual elements rendering
  • SwiftLint to enforce style and conventions for code formatting
  • SwiftFormat for code consistency and adherence to style guidelines
  • SonarQube for analyzing and monitoring code quality, identifying bugs and security vulnerabilities
  • Figma for wireframes and visual design

John Lewis

App Store

The John Lewis iOS app serves millions of shoppers at one of the UK's most trusted retail chains, offering a catalogue of over 300,000 products spanning fashion, home, and electronics. Customers shop with a fully digital membership card, scan in-store barcodes for product details and price comparisons, and use augmented reality to visualise furniture in their own space before committing to a purchase. Feature-flag-driven A/B testing lets the product team iterate safely on checkout flows and merchandising for shoppers. The project spanned UIKit and SwiftUI codebases, with Bitrise running continuous integration and Adobe Analytics measuring conversion throughout the funnel across key customer journeys.

UIKit
SwiftUI
MVVM
Adobe Analytics
A/B Tests
Vapor
Bitrise
Coordinator
Docker
Feature Flags
VoiceOver
Dynamic Text
Unit Tests
Snapshot Tests
John Lewis screenshot 1
John Lewis screenshot 2
  • Developed in UIKit with MVP design pattern
  • New flows implemented in SwiftUI with MVVM design pattern
  • Coordinator for navigation management and decoupled component interactions
  • Swift Package Manager for managing the distribution of code
  • Jira for bug tracking, issue tracking and project management
  • Confluence for knowledge sharing
  • Docker encapsulating application environment
  • BFF (Backend for Frontend) for specific user interface layer
  • Vapor handling robust and scalable backend services
  • Bitrise for CI/CD streamlining workflows
  • Elastic for data analysis and visualisation through logging services
  • Modern Concurrency for asynchronous code execution
  • Adobe Analytics to measure performance and optimize marketing strategies
  • A/B tests to evaluate variations in UX optimizing user engagement
  • Feature flags for phased rollouts and safe testing environments
  • REST API alongside Postman
  • Dark Mode option for low-light environments, enhancing visual ergonomics
  • Voice Over for users with visual impairments
  • Dynamic Text to accommodate user preferences for readability
  • Firebase for Crashlytics and Dynamic Links
  • Unit Tests for Domain and API layer
  • Snapshot tests to ensure visual elements rendering
  • SwiftLint to enforce style and conventions for code formatting
  • Figma for wireframes and visual design

EnBW Mobility+

App Store

EnBW Mobility+ is the companion app for Germany's largest electric vehicle charging network, covering thousands of public stations nationwide. Drivers locate available chargers on an interactive map, start and monitor charging sessions remotely, and receive live status updates throughout the process. The app extends to the vehicle cockpit through a native Apple CarPlay interface, letting drivers navigate to stations without touching their phone while travelling. Asynchronous workflows are coordinated with PromiseKit, Lottie delivers polished animated feedback during key states, and Lokalise provides full multilingual support for the app's broad international user base across multiple European markets.

UIKit
SwiftUI
MVP
MVVM
Dark Mode
Figma
SwiftLint
Fakery
Coordinator
SPM
Azure DevOps
PromiseKit
Lokalise
Firebase
Nimble
Unit Tests
EnBW Mobility+ screenshot 1
EnBW Mobility+ screenshot 2
  • Developed in UIKit with MVP design pattern
  • New flows implemented in SwiftUI with MVVM design pattern
  • Coordinator for navigation management
  • Swift Package Manager for managing the distribution of code
  • Azure DevOps for automated builds, testing and release
  • REST API alongside Postman
  • Dark Mode option for low-light environments
  • PromiseKit for asynchronous code execution
  • Lokalise for multiple dynamic languages
  • Fakery generating mock data for unit tests
  • Firebase for Crashlytics, Analytics and Dynamic Links
  • Lottie for native rendering of high-quality animations
  • Nimble for expecting outcomes in unit tests
  • Unit Tests for Domain and API layer
  • SwiftLint to enforce style and conventions for code formatting
  • Figma for wireframes and visual design

Smart Mobile — Raiffeisen

App Store

Smart Mobile is the primary banking app for Raiffeisen Bank Romania, giving retail customers a full-featured control panel for their finances. Users initiate domestic and international transfers, manage debit and credit cards, set spending limits, and review detailed transaction history across multiple accounts. Real-time push notifications alert customers the moment any activity occurs on their accounts and cards in real time. The app is built on a layered UIKit and SwiftUI architecture, with Alamofire and PromiseKit handling the network layer, while a CI/CD pipeline spanning Jenkins and GitHub Actions maintains fast, reliable release cycles across all environments, release branches, and staged rollouts.

UIKit
SwiftUI
MVP
Alamofire
PromiseKit
MVVM
SPM
Localization
GitHub Actions
Dark Mode
SwiftLint
Figma
Jenkins
Smart Mobile — Raiffeisen screenshot 1
Smart Mobile — Raiffeisen screenshot 2
  • Developed in UIKit with MVP design pattern
  • New flows implemented in SwiftUI with MVVM design pattern
  • Swift Package Manager for managing the distribution of code
  • Localization for multiple dynamic languages
  • Service-Oriented architecture
  • REST API alongside Insomnia
  • Networking Layer using Alamofire
  • PromiseKit for asynchronous code execution
  • Dark Mode option for low-light environments
  • SwiftLint to enforce style and conventions for code formatting
  • Figma for wireframes and visual design
  • Jenkins and GitHub Actions for CI/CD

myAsirom

App Store

myAsirom is the digital insurance platform for Asirom, one of Romania's largest insurers, serving both retail policyholders and internal agents through a single SwiftUI codebase. Customers obtain quotes, purchase new policies end-to-end, and manage their existing portfolio without visiting a branch. Complex acquisition and onboarding flows are orchestrated by the FlowX.AI process engine, allowing business teams to update journeys without a full release cycle. Real-time Socket.IO connections deliver live underwriting status updates, sensitive credentials are protected in the iOS Keychain, and Lottie animations provide polished feedback throughout the experience across the full customer journey end to end.

SwiftUI
MVVM
Lottie
Zeplin
Firebase
Alamofire
FlowX.AI
Socket.IO
REST API
Analytics
Keychain
SwiftLint
myAsirom screenshot 1
myAsirom screenshot 2
  • 95% SwiftUI (presentation logic) + 5% UIKit (navigation logic)
  • MVVM architecture design pattern
  • FlowX.AI generating omnichannel interfaces
  • Socket.IO for real-time and bidirectional event-based communication
  • SwiftLint to enforce style and conventions for code formatting
  • Firebase for Crashlytics and App Distribution
  • Analytics for screen tracking and event logging
  • REST API alongside Postman
  • Networking Layer using Alamofire
  • Keychain to store user credentials and sensitive data
  • Lottie for native rendering of high-quality animations
  • Zeplin for wireframes and visual design

Casa Mea — BCR

App Store

Casa Mea is the mortgage and credit companion app for BCR, Romania's largest bank, designed to reduce friction across one of the most document-intensive processes a retail customer faces. Applicants photograph and upload identity documents, property deeds, and income statements directly from their phone, eliminating branch visits for routine submissions. An in-app chat connects borrowers with their assigned loan advisor in real time, while a visual progress tracker shows exactly where each application stands in the underwriting pipeline for clarity. The codebase follows CLEAN Architecture principles to enforce clear separation of concerns across a complex, multi-step lending domain with many dependent flows.

UIKit
CLEAN
REST API
Alamofire
SwiftLint
Figma
Casa Mea — BCR screenshot 1
Casa Mea — BCR screenshot 2
  • Developed in UIKit
  • CLEAN architecture design pattern
  • REST API alongside Postman
  • Networking Layer using Alamofire
  • SwiftLint to enforce style and conventions for code formatting
  • Figma for wireframes and visual design

Utilio — OMV Petrom

App Store

Utilio is the residential energy app for OMV Petrom, Romania's largest energy company, enabling customers to switch to natural gas supply plans and manage their accounts entirely from a mobile device. Complex acquisition journeys covering tariff selection, contract signing, and meter registration are orchestrated by the FlowX.AI process engine, allowing business teams to modify flows without a full release cycle. Existing customers monitor consumption, view invoices, and submit meter readings in-app with ease. Interactive Charts show monthly usage over time, Lottie provides polished feedback during key actions, and Fastlane automates the deployment pipeline for smoother tester and production releases.

UIKit
CLEAN
FlowX.AI
Push Notifications
Keychain
Socket.IO
Fastlane
SwiftMessages
Alamofire
Analytics
SwiftLint
Charts
Lottie
Zeplin
Utilio — OMV Petrom screenshot 1
Utilio — OMV Petrom screenshot 2
  • CLEAN architecture design pattern
  • FlowX.AI generating omnichannel interfaces
  • Socket.IO for real-time and bidirectional event-based communication
  • Fastlane to automate testers and builds schemas for deployment
  • SwiftLint to enforce style and conventions for code formatting
  • Firebase for Crashlytics, App Distribution and Notifications
  • Analytics for screen tracking and event logging
  • REST API alongside Postman
  • Networking Layer using Alamofire
  • Keychain to store user credentials and sensitive data
  • Charts for displaying large quantities of data and relationships between parts of data
  • Lottie for native rendering of high-quality animations
  • SwiftMessages for displaying flexible layouts on specific triggers
  • Zeplin for wireframes and visual design
  • Unit Tests for algorithms and REST API

Connect Plus

App Store

Connect Plus is a secure communications and coordination platform built for law enforcement officers and firefighters, where reliable information flow directly affects operational safety. Team members exchange messages via real-time Pusher-backed chat, coordinate on a shared calendar, and stay informed through an administrator-maintained news feed. A searchable document library gives personnel on-demand access to regulations and reference materials in seconds. Location-aware features powered by MapKit support situational awareness in the field, session tokens are stored in the iOS Keychain, and a unit-tested service layer ensures backend reliability during day-to-day operational use.

Swift
MVVM
Service-Oriented Architecture
REST API
Keychain
Alamofire
MapKit
Pusher
Unit Tests
Connect Plus screenshot 1
Connect Plus screenshot 2
  • MVVM design pattern with Service-Oriented architecture
  • SwiftFormat for code formatting
  • Nuke for image loading and caching
  • Phone number login with SMS verification code
  • Calendar for events
  • Keychain to store user credentials and sensitive data
  • Data sources independent from ViewControllers
  • REST API alongside Postman, Insomnia, Docker and pgAdmin
  • Local notifications and Push Notifications with Firebase
  • MapKit and CoreLocation alongside Google Maps API for geotargeting, geocoding and reverse geocoding
  • Realtime Messaging using Pusher
  • Networking Layer using Alamofire
  • Unit Tests for algorithms and REST API

Worklin

Website

Worklin is a cross-platform HR and workforce management tool that gives employees and managers a straightforward mobile interface for the administrative side of work. Staff clock in and out, view and submit timesheets, request paid time off, and track approval status without contacting HR directly. Managers gain a consolidated view of team availability and can action pending requests in a few taps each day. A document section lets HR departments distribute contracts, policies, and payslips securely to individuals or entire teams. A service-oriented MVVM architecture keeps business logic cleanly separated from the UI, and Keychain storage protects session credentials throughout.

Swift
MVVM
Service-Oriented Architecture
REST API
Alamofire
Keychain
Unit Tests
Worklin screenshot 1
Worklin screenshot 2
  • MVVM design pattern with Service-Oriented architecture
  • SwiftFormat for code formatting
  • Keychain to store user credentials and sensitive data
  • Data sources independent from ViewControllers
  • REST API alongside Insomnia, Docker and pgAdmin
  • Local notifications
  • Networking Layer using Alamofire
  • Unit Tests for algorithms and REST API
  • Fluid animations for tap gestures
  • Custom PacMan loading screen while waiting for API response
  • Versatile Side Menu navigator

GameForm

App Store

GameForm is a competitive skill-based gaming platform where players enter structured contests and compete for real cash prizes rather than virtual rewards. The platform hosts rotating games with daily and weekly prize pools, giving users a consistent reason to return and improve their rankings over time. A referral programme rewards existing players for growing the community, while detailed analytics track engagement and conversion through the funnel. Because real money changes hands, the app integrates Apple Pay for frictionless deposits and Face ID and Touch ID for secure authentication, with a REST API backend handling prize disbursement and contest state reliably across every active tournament.

Swift
REST API
ApplePay
Analytics
Biometrics
GameForm screenshot 1
GameForm screenshot 2
  • MVC with Decorator design pattern
  • SwiftFormat for code formatting
  • Apple, Google and Phone number login with SMS verification code
  • REST API alongside Postman
  • Local notifications and Push Notifications
  • Fund account with Credit Card or Apple Pay
  • Track user activity with Analytics
  • Deep Linking using Branch.io
  • Biometric Authentication with Face ID and Touch ID
  • Share and invite with message or email

Tubidy

App Store

Tubidy is a live radio streaming app that aggregates over 70,000 stations from 210 countries into a single searchable catalogue, making it one of the broadest broadcast libraries on the App Store. Listeners tune in to talk, music, news, and sports programming from virtually any region, browse by country or genre, and save favourite stations into custom playlists for quick access every day. A cloud integration layer syncs playlists and preferences across devices so a listener's setup follows them seamlessly. Download management enables offline listening, and full localisation ensures the interface feels native to the app's genuinely international audience on every device and in every region.

Swift
Cloud
Download
Localization
Tubidy screenshot 1
Tubidy screenshot 2
  • Store and download files from cloud services like Dropbox, iCloud, Google Drive
  • Internal Download library with Torrent-like behaviour
  • Localization based on device language
  • Custom Views

AllDelicious & SoDelicious

Website

AllDelicious and SoDelicious are two companion recipe apps sharing a common Objective-C foundation and a combined library of over 4,000 dishes across dozens of cuisines and dietary preferences. Each recipe presents a clear ingredient list alongside step-by-step cooking instructions formatted to remain readable at the kitchen counter. Users search by ingredient to find meals built around what they already have, or browse by cuisine to explore new culinary territory at home. An SQLite database powers fast local search and offline access to previously viewed recipes, while AFNetworking handles catalogue synchronisation and ad integration supports the free tier without interrupting the cooking experience.

Objective-C
AFNetworking
Ads
SQLite
AllDelicious & SoDelicious screenshot 1
AllDelicious & SoDelicious screenshot 2
  • Networking Layer using AFNetworking
  • Ads from different providers
  • Interrogate and update database with SQLite
  • Custom Views

Adblock

Adblock is a lightweight utility built to suppress advertisements across the platforms users encounter most frequently, including YouTube pre-roll and mid-roll ads, Facebook feed placements, and Instagram sponsored content online. Blocking rules are stored in a local SQLite database, keeping all filtering logic on-device and avoiding the latency and privacy cost of routing traffic through a remote proxy. Because persistent background processing can drain the battery, the implementation was carefully profiled and optimised to add minimal CPU overhead to normal browsing and playback sessions, making the utility practical for all-day use without a meaningful impact on battery life or device responsiveness.

Objective-C
SQLite
Adblock screenshot 1
Adblock screenshot 2
  • Interrogate and update database with SQLite
  • Custom Views