In development · live in production

Wingmate

An airport social app for people stuck at the same gate. No faces until both people agree. Seat numbers stay private. Profiles disappear when you land. Bernhard designed it and builds all of it himself: backend, AI, iPhone app, tests and infrastructure.

Wingmate app welcome screen: Nobody should spend three hours alone in a terminal
189airports in 75 countries
122automated tests before every deploy
6app languages
1person building it end to end

The product

Three rules the whole app is built around

A dating app loses trust the moment a photo or a seat number reaches the wrong person. So these rules live in one module, and the tests check every one of them.

RULE 1

Mutual reveal

You browse anonymously. A face only shows once both people have chosen to reveal.

RULE 2

Seat privacy

Seat numbers stay hidden until both people agree to share them.

RULE 3

Gone after landing

Trip data expires when the flight lands. It's designed to end at the gate.

Engineering

What's under the hood

Offline chat

People keep chatting in airplane mode

A custom Swift plugin connects matched travellers phone to phone over Apple Multipeer Connectivity. Messages are end-to-end encrypted with Curve25519 and ChaChaPoly, strangers learn nothing, and everything syncs after landing without duplicates.

AI

Claude with a safety net

The Claude API suggests profile lines as schema-validated output. It's rate-limited, and if the model fails, a local fallback takes over, so the button never dies.

Testing

Tests stop a bad deploy

$ pytest backend/tests test_reveal.py mutual reveal test_expiry.py two expiry clocks test_offline.py offline pass & sync test_pro_plan.py reveal limits 122 passed

Real data

Type a flight number, and the trip fills itself in

A live flight-data API fills in the trip from a flight number. The airport list covers 189 airports worldwide, up from 45 in Europe.

Security

Security reviewed

He ran his own security review: rate limits, Google ID-token verification, and a list of findings he's fixing one by one.

Operations

Run like a real service

Every push to main is tested and deployed to Fly.io automatically. Sentry catches errors, Litestream backs up the database continuously, and a service worker never serves stale code.

Next

What's next

Why this matters for a hiring team

He runs the operation and he builds the tools

Wingmate shows how Bernhard works: he sets clear rules, tests them, deploys automatically and keeps the service running. He's open to remote Technical Operations, AI Engineering and full-stack app development roles worldwide, as an employee or as a contractor.