Projects: apps for banks, telecoms and travel | Stavros Pachoundakis

[Stavros.](/)/[Projects](/projects)/[What I build](/brands)/[About](/about)

Human/Agent

Projects: apps for banks, telecoms and travel
============================

I take apps from first sketch to millions of users.

Mobile Engineer and AI Architect. iOS and Android apps, native and cross-platform, with the backend services and AI behind them, for banks, telecoms and travel.

Tell me what you're making

I'm building for , and I need it in 8 weeks / in 3 months / when it's right.

Opens the contact page with your brief filled in.

Send to Stavros ↗

Worked at
---------

* [![National Bank](/build/logos/ink-national-bank.svg)Montréal](https://www.nbc.ca)
* [![Sephora](/build/logos/ink-sephora.svg)](https://www.sephora.com)
* [![Bell](/build/logos/ink-bell.svg)Webby](https://www.bell.ca)
* [![Scotiabank](/build/logos/ink-scotiabank.svg)](https://www.scotiabank.com)
* [![Air Canada](/build/logos/ink-air-canada.svg)](https://www.aircanada.com)
* [![Virgin Plus](/build/logos/ink-virgin-plus.svg)](https://www.virginplus.ca)
* [![Lucky Mobile](/build/logos/ink-lucky-mobile.svg)](https://www.luckymobile.ca)
* [![PNC Bank](/build/logos/ink-pnc.svg)](https://www.pnc.com)


:   5

mobile stacks I build in

:   30+

companies built apps for

:   200M+

people use apps I worked on

:   2

Webby Awards

Shipped at scaleShipped at scale
--------------------------------

![](/build/logos/acciojob.svg)Lead Mobile Developer, iOS and Android

### National Bank Montréal

Built the BNE enterprise banking app from scratch on iOS and Android with Backbase, plus an AI copilot, Okta login and FIDO2 MFA.

:   2

platforms, iOS and Android

:   12

months, from inception

* AI copilot
* Backbase
* Okta
* FIDO2

![National Bank website, the home page](/build/acciojob-5.webp)![National Bank website, tips and advice](/build/acciojob-1.webp)![National Bank app, Remote Deposit Capture](/build/acciomatrix-1.webp)![National Bank website, help and support](/build/acciojob-3.webp)![National Bank website, products](/build/acciomatrix-2.webp)![National Bank website, banking services](/build/acciojob-4.webp)

![](/build/logos/ink-sephora.svg)

### Sephora

The Sephora website and app screens shown here.

* Website
* App screens

![Sephora website, the home page](/build/sephora-web.webp)![Sephora app screens](/build/sephora-app.webp)

Sephora, website and app

![](/build/logos/ink-bell.svg)Staff Mobile Developer, iOS and Android

### Bell MyBell

Team lead on MyBell, a Webby Award winner together with Virgin Plus. I helped build the design system shared across the Bell brands, as Compose components on Android and SwiftUI components on iOS, and co-architected the Kotlin Multiplatform modules behind it, about 80% of the domain and data code shared between iOS and Android.

* Kotlin Multiplatform
* Ktor
* Design system
* Core ML
* WCAG 2.2

![Bell website, the home page](/build/bell-1.webp)![Bell app, the home screen and My Bill](/build/bell-2.webp)

Bell, website and MyBell app

![](/build/logos/ink-virgin-plus.svg)Staff Mobile Developer, iOS and Android

### Virgin Plus

Part of the MyBell and Virgin Plus mobile team I led, Webby Award winners. It runs on the same shared design system and Kotlin Multiplatform core as Bell.

* Kotlin Multiplatform
* Design system
* WCAG 2.2

![Virgin Plus website, the home page](/build/virgin-web.webp)![Virgin Plus app, the bill and top-up screens](/build/bell-3.webp)![Virgin Plus app screen](/build/virgin-app.webp)

Virgin Plus, website and app

![](/build/logos/ink-lucky-mobile.svg)Staff Mobile Developer, iOS and Android

### Lucky Mobile

Another Bell brand on the same shared design system and Kotlin Multiplatform core.

* Kotlin Multiplatform
* Design system

![Lucky Mobile website, the home page](/build/lucky-web.webp)![Lucky Mobile app screen](/build/lucky-app.webp)

Lucky Mobile, website and app

![](/build/logos/ink-air-canada.svg)Senior Mobile Developer, iOS and Android

### Air Canada

Native iOS and Android features, including real-time flight tracking with Live Activities and Dynamic Island, Apple Wallet boarding passes and offline-safe sync.

* Live Activities
* PassKit
* Offline sync
* Telemetry

![Air Canada app, flight status and boarding pass](/build/anonimo.webp)

Air Canada app

![](/build/logos/turgon.webp)Senior Mobile Engineer, iOS with Android and Flutter alignment

### PNC Bank

Lead the mobile team on the redesign of the PNC Bank flagship app in SwiftUI, built to WCAG 2.2 AA and aligned with Android and Flutter.

* **SwiftUI**MVVM clean architecture, with patterns reusable across KMP, Flutter and React Native.
* **Secure access**Authentication, account management and transaction features on async/await.
* **Quality**Observability, testing standards and production monitoring.

* SwiftUI
* MVVM
* async/await
* KMP
* Flutter
* WCAG 2.2

![PNC website, the home page](/build/turgon-1.webp)![PNC website, products and services](/build/turgon-2.webp)![PNC website, insights](/build/turgon-4.webp)

pnc.com, today. The app I work on is private.

![](/build/logos/scotiabank.svg)Senior Mobile Developer, iOS with Android parity

### Scotiabank

SwiftUI-first modernization of the Scotia iTrade and main banking apps, with Jetpack Compose parity on Android, Jenkins CI/CD, 80%+ test coverage and Dynatrace and Splunk observability.

* SwiftUI
* Jenkins
* XCTest
* KIF
* Dynatrace

![Scotiabank website, the home page](/build/scotia-1.webp)![Scotia iTrade app, the portfolio screen](/build/scotia-2.webp)![Scotiabank website, further down the page](/build/scotia-3.webp)

Scotiabank, website and Scotia iTrade

![](/build/logos/ink-telus.svg)Staff Mobile Engineer, iOS and Android

### TELUS Living / Grata

A from-scratch white-label amenities app and reusable design system for iOS and Android, first release in about a month.

* iOS
* Android
* Design system
* AI search

![TELUS Living app, digital key and My Doors](/build/ai-for-messaging.webp)

TELUS Living app

![](/build/logos/ink-canada-life.svg)Staff Mobile Developer, iOS and Python BFF APIs

### Canada Life

The My Canada Life At Work app moved to SwiftUI with WCAG 2.2 AA, plus Python BFF API contracts for iOS, Android, Flutter and web.

* SwiftUI
* BFF API
* Azure DevOps

![Canada Life app screens](/build/bold.webp)

Canada Life app

![](/build/logos/livescale.png)Senior Mobile Developer, SDKs for iOS, Android, Flutter and React Native

### Livescale

Architected a B2B live-streaming e-commerce platform with AVFoundation video, chat and transactions, plus mobile SDKs for iOS, Android, Flutter and React Native.

* SwiftUI
* AVFoundation
* GraphQL
* Shopify
* Auth0

![Livescale event analytics dashboard](/build/livescale-1.webp)![Livescale dashboard, performance and sales funnel](/build/livescale-2.webp)

Livescale event analytics

![](/build/logos/malea.png)Mobile Developer, iOS and Android on shared Kotlin Multiplatform

### Malea Inc.

An industrial inventory system with Bluetooth Mesh IoT, shared Kotlin Multiplatform modules, offline-first sync and Core ML asset recognition.

* Bluetooth Mesh
* Kotlin Multiplatform
* Offline-first
* Core ML
* TensorFlow Lite

![Malea Inc. website, the home page](/build/malea-1.webp)![Malea Inc. website, services](/build/malea-2.webp)

Malea Inc. website

![](/build/logos/alcoa.svg)Mobile Engineer and Technical Analyst, iOS and Android on .NET and Azure

### Alcoa

Technical owner of the Mobile Maintainer platform on Xamarin Forms across five .NET and Azure repos, with releases to four global regions and 24x7 production support.

* Xamarin Forms
* .NET
* Azure
* CQRS and MediatR
* VSTS

![Alcoa website, the home page](/build/alcoa-1.webp)![Alcoa website, news and stories](/build/alcoa-2.webp)![Alcoa website, regions](/build/alcoa-3.webp)

Alcoa website

![](/build/logos/ubisoft.svg)Video Game Developer

### Ubisoft Montreal

Built automated testing frameworks and backend asset tools for AAA multi-platform releases, improving QA velocity and cutting manual testing.

* .NET
* C#
* C++
* Test automation

![Ubisoft Montreal website, the games](/build/ubisoft-1.webp)![Ubisoft Montreal website, studio news](/build/ubisoft-2.webp)![Ubisoft Montreal website, careers](/build/ubisoft-3.webp)

Ubisoft Montreal website

AI and ML
---------

I design agent and MCP architectures, evaluation gates and streaming AI interfaces, and ship on-device ML to millions. The platform side of that work: model platforms on AWS Bedrock and Google Vertex AI, Python agent services, evaluation and regression gates, guardrails, MCP-compatible APIs, sign-in and monitoring, plus the controls I build around my own agents.

### An agentic operations system for a field-service company

Work orders arrive by email and become jobs on a guarded state machine. Technicians are dispatched and walked through closeout on Telegram, code prices every invoice, and an admin approves it. A knowledge brain over 2,000+ past jobs and 70,000 indexed files answers plain-English questions with cited invoice numbers, never model-written SQL. An operator agent with seven skills reads it all through read-only tools, and every message and change is kept as audit memory. Built spec-first with Claude Code and Codex: 69 specs, 2,600+ tests.

* Agent orchestration
* Knowledge brain
* Audit memory
* Claude API
* Golden-set evals
* FastAPI
* PostgreSQL
* AI SDLC

### AI assistant for a bank's enterprise division

Ran discovery with product and business leadership, then built the agent backend (LangGraph, FastAPI, RAG on Bedrock), the evaluation gates and the streaming chat UI in SwiftUI and React Native. In use by more than 75 people.

* LangGraph
* FastAPI
* RAG on Bedrock
* Evaluation gates
* SwiftUI
* React Native

### GenAI support assistant for a telecom

Python services on Vertex AI with RAG over support content, every model change gated on an evaluation harness, and a native streaming chat UI on iOS and Android over a Ktor WebSocket.

* Vertex AI
* FastAPI
* RAG
* Evaluation harness
* Ktor WebSocket
* Kotlin Multiplatform

### A multi-agent build system of my own

Personal engineering work. Builder agents work in isolated branches; a bridge that spends no model tokens compiles and merges; a QA agent checks the result; an independent read-only evaluator returns PASS, CONCERNS or FAIL on evidence; a supervision layer reconciles every request against what the agent did and exposes its ledger over MCP. Approval and spend gates live in shared code, not prompts.

* Multi-agent
* MCP
* Evaluator agent
* Supervision

### On-device ML at consumer scale

Core ML and TensorFlow Lite inside the Bell and Virgin Plus apps, used by millions, in a Kotlin Multiplatform codebase with about 80% shared domain and data code.

* Core ML
* TensorFlow Lite
* Kotlin Multiplatform

### The platform under the AI features

Model platforms on AWS Bedrock and Google Vertex AI, agent services in Python (FastAPI, LangGraph), and a BFF API compatible with MCP so AI features work across iOS, Android and the backend. Model changes pass an evaluation harness with regression gates, and AI-generated code passes guardrails and CI gates. Sign-in on Okta, OAuth2 and FIDO2/WebAuthn, telemetry and production monitoring, and shared prompts, templates and agent components that other teams adopted.

* AWS Bedrock
* Vertex AI
* FastAPI
* MCP
* Regression gates
* Okta and OAuth2
* Observability
* Docker and Kubernetes

### Gates, safety and load control around my agents

Personal engineering work. Approval, spend and never-write rules live in shared code that the dashboard, the terminal and every agent call, and hermetic tests prove the terminal obeys them. A command-line client over a local server with defined exit codes, a safety store that snapshots every file write before it lands, test selection by dependency, a registry that caps heavy jobs, and a Cloudflare Worker with Turnstile in front of the contact details.

* Approval gates
* Safety store
* CLI over a local server
* Test selection
* Turnstile

More experienceMore experience
------------------------------

*

  AI Architect

  ### National Bank of Canada, AI

  AI Architect for BNE, the bank's enterprise division. I build production multi-agent systems used by more than 75 people with LangGraph, Python FastAPI and MCP, plus RAG over banking procedures.

  + LangGraph
  + RAG
  + MCP
  + Python FastAPI

* ![ABB screens](/build/bold-bot.webp)

  Senior Mobile Developer, iOS and Android

  ### ABB

  Merged the Nexus Pro and Naveo Pro emergency lighting apps into one platform, with shared Kotlin Multiplatform modules and Bluetooth Mesh.

  + Kotlin Multiplatform
  + Xamarin
  + Bluetooth Mesh
  + Firebase

*

  Senior Mobile Developer, iOS, Android and Flutter

  ### INFO-Neige

  A civic app for Montreal, Laval and Terrebonne, offline-first for low connectivity, with Python BFF APIs and Core ML image matching.

  + Offline-first
  + Flutter
  + Python BFF
  + Core ML

*

  Senior Mobile Developer

  ### iCanSleep

  A consumer sleep tracking app from inception in SwiftUI, with state-machine navigation and clean architecture, portable to Flutter and React Native.

  + SwiftUI
  + State machines
  + Clean architecture

* ![TouchTunes screens](/build/dock-1.webp)

  Lead Mobile Engineer, iOS and Android

  ### TouchTunes

  Led the mobile team on the Bullshooter app, plus the AI strategy: a Figma MCP design system and an MCP-ready API.

  + Core Bluetooth
  + PassKit
  + Maestro
  + Figma MCP

* ![ibm.com, the home page](/build/ibm-web.webp)

  Senior Mobile Developer

  ### IBM

  At IBM, Stavros worked on enterprise mobile architecture and modernization across client programs, including the Air Canada app and the PNC Bank mobile app.

  + Mobile architecture
  + Modernization
  + Air Canada
  + PNC Bank

*

  CNC and process automation

  ### Plastitel Inc.

  Optimized precision production processes and reduced waste 30% through process automation.

  + Process automation
  + Precision production
  + 30% less waste

Have something to build?Have something to build?

[Tell me about it ↑](#brief)

[LinkedIn](https://linkedin.com/in/stavrospachoundakis)[Contact](https://stavrospachoundakis.com/contact)[Privacy](/privacy)[Developers](/developers)