Available for new opportunities

Panagiotis
Vakalis

Senior iOS Engineer

Athens, Greece

9+
Years of experience
About Me

Crafting iOS experiences
that last

I'm Panagiotis, a Senior iOS Engineer based in Athens with nearly a decade of experience across fintech, mobility, and high-traffic consumer apps. I've spent most of that time owning features end-to-end — from data layer design and architecture decisions through to UI, testing, and analytics — at companies like Kaizen Gaming, BEAT, and IBM.

I care about writing code which is testable, maintainable, and built to last, not just code which ships. Alongside my day job, I build open source Swift tools and work on ideas that push what mobile can do — including apps designed to make everyday life more accessible.

Architecture

MVVMMVCMVP-C

Quick facts

LocationAthens, Greece
SpecialityNative iOS Development
LanguagesSwift, Objective-C
FocusScalable, testable architectures
Skills & Stack

Tools of the trade

Swift · UIKit · SwiftUIExpert / Advanced
Architecture DesignExpert
Networking · RESTful APIsExpert
Testing · XCTest · XCUITestExpert
Combine · async/awaitAdvanced
CI/CD · Fastlane / BitriseExpert

Languages & Frameworks

SwiftSwiftUIUIKitCombineasync/awaitObjective-C

Apple Frameworks

CoreDataCoreLocationAVFoundationMapKit

Architecture Patterns

MVVMMVP-CMVCClean Architecture

Testing

XCTestXCUITestSnapshot Testing

Tools & CI

XcodeBitriseSPMCocoaPodsGitHub ActionsInstrumentsGit

Practices

Agile/ScrumAI ToolingClaudeChatGPTCursor
Open Source

Built in the open

Loadable

A lightweight Swift package that brings a clean, composable state machine for asynchronous loading operations — idle, loading, loaded, and failed states — with zero boilerplate. Designed to make async data flow in SwiftUI and UIKit predictable and testable.

swiftswiftuiuikitasyncstate-machineios
SwiftGitHubOpen source
Experience

Where I've shipped

  • Delivered end-to-end features across a large-scale sports betting iOS app, owning the full cycle from data layer (DTO → Mapper → UIModel) through UI and analytics instrumentation.
  • Designed and implemented a protocol-driven dynamic table view data source architecture, replacing hard-coded integer-indexed sections with a component-ordered, extensible layout system supporting mixed content types.
  • Built multiple greenfield features including a player filtering system (MVP, UICollectionView-based filter chips and segment toggle), a star players carousel with 3D jersey rendering and skeleton loading states, and a live chat integration (SwiftUI + UIKit) with event-state-aware lifecycle management.
  • Integrated and maintained third-party SDKs (StreamLayer, VirtualStadium) across their full lifecycle — initial delivery, iterative version upgrades, and deprecation of replaced solutions.
  • Extracted reusable UI components and utilities into an internal component library and SPM packages, supporting multi-brand theming (light/dark mode, per-brand configuration) across two app targets.
  • Applied MVP architecture consistently across new features and legacy refactors, using protocol-based contracts between Presenter, DataSource and View layers.
  • Maintained comprehensive test coverage using XCTest (unit tests with Given/When/Then structure, snapshot tests for all major UI components) and instrumented user interactions with Google Analytics and BI metadata.
  • Collaborated across mobile, backend and product teams to deliver complex, data-driven betting features under strict performance and regulatory constraints.
GitHub Activity

Shipping every day

Contributions
Repositories
Years Active
Contribution activity
Contact

Let's build something great

Open to interesting projects, senior iOS roles, and conversations about mobile architecture. Get in touch through any of the channels below.