Marco Wüthrich

Software engineer and founder of AirPace

I build robust Kotlin software, and I founded AirPace, a breathwork app for iOS and Android.

Kotlin, Kotlin Multiplatform, Spring, Angular Zürich, Switzerland

Marco Wüthrich, in a white T-shirt in front of a light grey concrete wall
Every cell is a test. If one turns red, it was flaky. Probably. Hover to look under the photo, or Or . Works on my machine. And without JavaScript, too.

About

I like problems that don't give up easily.

I'm an engineer because I want to understand why something breaks, not just make it go away. I dig until I find the root cause, measure it and fix it where it belongs, upstream if need be.

What I want to reach: software people can rely on, built by small teams that move fast without cutting corners.

Along the way I co-founded two companies. At ACME Software Solutions I was a developer and partner from 2016 to 2021. At Ida, a design and code agency in Zürich, I was co-founder and Head of Engineering from 2022 to 2024.

After Zürcher Kantonalbank, where I was a Senior Software Engineer until June 2026, I now build AirPace end to end, alone. Next comes Muryo, a new project I'm already working on. More about it when it's ready.

AirPace

AirPace

A precision breathwork timer for iOS and Android, built in Kotlin and Compose Multiplatform.

airpace.io

AirPace is on YouTube, Instagram, TikTok and LinkedIn.

How it is built

  • One Kotlin codebase, two native apps
  • Millisecond state machine
  • Offline-first with SQLDelight
  • Sync hosted in Switzerland
  • Camera PPG and Bluetooth LE heart-rate variability, computed on the device
  • About 4,000 tests, 98.8% core coverage
  • Self-hosted CI and 30 architecture decision records
  • Agentic engineering workflow

Open source

Pull requests to JetBrains

Repositories

  • Root cause and fix for the iOS accessibility CADisplayLink that keeps waking a Compose Multiplatform app every frame. Reproduction, device measurements, fix. The fix landed upstream in compose-multiplatform-core pull request 3539.

  • Kotlin Multiplatform and Quarkus spatial inventory, built with a spec-driven agentic workflow.

  • IDEA Islands, a JetBrains-style dark and light theme for T3 Code.

Experience

  1. 2026 to now

    Founder

    AirPace, Zürich

  2. 2025 to 2026

    Senior Software Engineer

    Zürcher Kantonalbank, Zürich. Kotlin, Angular, Spring Boot

  3. 2022 to 2024

    Co-founder & Head of Engineering

    Ida, Agentur für Design & Code, Zürich

  4. 2019 to 2021

    Software Developer

    aspectra AG, Zürich. DevOps focus

  5. 2016 to 2021

    Software Developer & Partner

    ACME Software Solutions GmbH, Fehraltorf

  6. 2018 to 2019

    Java Software Developer

    Loyalty Gift Card AG, Thalwil

  7. 2015 to 2018

    IT Supporter

    Gemeindeverwaltung Wallisellen

  8. 2010 to 2015

    Electrician (Elektroinstallateur)

    EKZ Eltop

Skills

Kotlin
Kotlin, Kotlin Multiplatform, Compose Multiplatform, Java
Backend
Spring Boot, Spring Data, Ktor, Quarkus, Koin
Frontend
Angular, TypeScript
Architecture
Microservices, Software architecture
Platform
Kubernetes, OpenShift, ArgoCD, GitLab CI
Data
SQLDelight, PocketBase
Ways of working
Agentic engineering with AI agents

Agentic engineering

I build software with AI agents inside a harness I run myself. The agents do the work; the system decides what ships.

One change

passed

  1. ask
  2. research
  3. spec
    1. subagent
    2. subagent
    3. delegated agent
  4. review
  5. tests
  6. merge
One change through the harness: a station is amber while it runs and green once it passed, the lanes run in parallel, the tests run in CI. . One change through the harness, from the ask to the merge. Every station passed: the same gates for an agent's change as for mine.
Context as code
Rules, memory and skills are versioned and reviewed like code. A change to an agent's instructions runs against evals first, and a context budget in CI keeps the prompt lean.
Secrets agents never see
A credential broker of my own: the vault session key is sealed by the Secure Enclave, Touch ID opens a time-limited window, and a secret goes straight into the process that needs it. Output is masked, every access is logged, a hook blocks the direct ways around it.
The same gates for everyone
An agent's change passes the same review and tests as mine. Nothing merges on trust.
Parallel and isolated
Research, then a spec, then agents in parallel, each in its own worktree with the model and reasoning effort its step needs.
Event-driven, not polling
Agents wake on events (a failed check, a review, a finished subagent) instead of polling, and a turn ledger keeps one from stopping with work still open.
Infrastructure built for agents
Self-hosted CI with ephemeral VMs and device lanes for simulators, machines rebuilt from code, and measured audits of tokens, tool calls and build times.

Education and certifications

Certifications

  • 2024

    Kotlin Developer

    Hyperskill

  • 2024

    Spring Certified Professional

    VMware

  • 2023

    iSAQB CPSA Foundation Level

    verifiable badge on certible.com

  • 2020

    Kotlin for Java Developers

    Coursera

  • 2020

    Angular Certification

    Simplilearn

  • 2018

    ISTQB Certified Tester

  • 2016

    Oracle Certified Associate, Java SE 8

Contact

hello@marcow.dev

I speak German and English.

terminal, type help
 

Keyboard

⌘K
Terminal, open and close
/
Terminal
?
This sheet
j k
Next and previous section
t
Light or dark theme
r
Run the tests again (the portrait)
Esc
Close