Full-stack developer · Vancouver, BC

Eren Yamic

I build small, useful software: apps, games and tools that solve one real problem well, then get out of your way. iOS and macOS, real-time systems, AI and security.

New game

Peekadoor

A Halloween horror game where the phone is the door.

Download Peekadoor on the App Store Join the Peekadoor beta on Android

On the App Store

LumenDesk

Your Mac, on your XR glasses, from your iPhone.

Download LumenDesk on the App Store
See the work
On the App Store

LumenDesk

Your Mac, on your XR glasses, from your iPhone.

Plug any USB-C display glasses into your iPhone and the Mac you left at home is right in front of you: sharp, private, with the phone as trackpad and keyboard. No vendor SDK, no cloud desktop. Your own Mac, streamed device to device.

  • End-to-end encrypted streaming that finds the fastest path: Wi-Fi, then peer-to-peer, then relay
  • Virtual monitors and a three-screen carousel, driven from the phone or by voice
  • Team Desk: teammates' Macs as extra screens, files dragged between them, a shared clipboard
  • Lumen, an on-device voice copilot. Nothing leaves the phone
  • Next: iPhone Duo, where the phone folds into a tiny laptop

SwiftScreenCaptureKitVideoToolboxWebRTCDurable ObjectsFoundation Models

XR glasses showing a Mac desktop
LumenDesk Connect, the Mac companion app
On the App Store

Peekadoor

A Halloween horror game where the phone is the door.

On a foldable, the hinge is the controller: open the phone a crack to peek through the door, fold it shut to slam it before he reaches you. Every other phone plays too, with a door you drag open.

  • A monster with a mind: he tracks what he hears, remembers how you play from night to night, and sets traps
  • Whisper orders to the others; they answer in their own words, understood on the phone
  • Up to four players, on phones nearby or anywhere through Game Center

Unity 6C#UIHingeInteractionFoundation ModelsSpeechGame Center

Peekadoor: looking through the crack of the door, the Host walks down the candlelit hall towards you Peekadoor: Who are you? Skye, the queen, with the Host behind her in the hall

New game · on the App Store · Android beta open

The phone is the door.

Halloween night, the Harrow house. Four of you are upstairs, and the only way out is the door at the end of the hall. It has three locks, and the keys are hidden in the bedrooms. Something else walks the house: the Host, a tall scarecrow with a burlap sack over his head and a jack-o'-lantern face glowing through it. He can't open a door. But he can pull a shut one.

Play online with players anywhere in the world, or with friends on a six-digit group code. Empty seats are filled by friends the phone plays, a cast of twenty that includes Mia, Skye, Leo, Nora and Theo.

Built for phones that open

How far you open the phone is how far you open the door.

On a foldable, the hinge is the controller. Drag the handle to open it, or press Listen.

0°
  1. Closed0–6°The door is shut. He can't open it, but he can pull.
  2. Peek6–45°Open it a crack and look through the gap.
  3. Wide45–65°Too wide: now he can see you too. He notices three times faster.
  4. Flung65°+Fling it open and he's on you.
  • iPhone DuoUIHingeInteraction
  • Galaxy Z Fold & Fliphinge-angle sensor
  • Pixel FoldJetpack WindowManager
  • Every other phonedrag the door open

Play it on Android now

Peekadoor for Android is in its beta on Google Play. Join with your Google account and you play it before everyone else, and every night you spend in the house helps bring it to every Android phone.

  1. 1 · Join the beta group
  2. 2 · Become a tester

Open the links in Chrome (not inside Instagram or WhatsApp) and sign in with the Google account you use on Google Play, then tap "Join group".

Then install it from Google Play. Use the same Google account for both steps, and stay in the beta for two weeks: Google asks that of every new game before it opens to all.

Peekadoor, Halloween horror: the Host walking the candlelit hall

New · a monster with a mind

He thinks. He listens. He remembers.

The Host isn't on rails. He keeps a map of where someone might be, and the friends you play with think and talk back.

A door moved while he wasn't looking.
TALKWhisper... a name, then what to do

A map of suspicion

Every sound he hears and every door that moves while he isn't looking warms a room. Rooms he searches and finds empty cool down. With nothing to chase, he creeps to the one he doubts most.

Quiet keeps you alive

When he isn't sure, he won't open the wardrobe or pull the door. Stay still and silent, and he moves on.

He sets traps

From the second night he waits by the door out once the keys are nearly in; only a big noise draws him away. From the third, he pretends to go downstairs and comes back without a sound. Almost.

He remembers you

From one night to the next: where you like to hide, the room you start in, whether you come back for your friends. He tells you so, and plays around it.

Whisper your orders

Hold TALK and whisper: search room four, come here, hide, cut me down, go to the door out, hush, where is he? Speak too loud and he hears you too.

Understood on the phone

Your voice becomes text on the phone and never leaves it. The game reads short orders itself; longer sentences go to Apple's on-device model, which also writes the kid's reply.

Whisper. They answer: you whisper to Leo to search room 4, and he answers
Hold your breath: from inside the wardrobe, the Host stands in the room
Who are you tonight? Twenty friends, costumes and tattoos to earn
Your friends can save you: a sack over your head, tied to a post in the sewing room
Sideways: whisper to your friends and they answer
Sideways: hold your breath in the wardrobe while he stands in the room
Sideways: Who are you? Skye, the queen, and the Host behind her
Sideways: tied to a post, your friends have to find you and cut you down

He can't open doors

But he pulls shut ones. Tap fast to hold it closed.

Hide

In the wardrobe or under the bed. When he comes looking, hold your breath.

Caught isn't the end

You wake up tied to a post among the scarecrows in the sewing room. Your friends have to find the real you and cut you down. Sometimes one of the scarecrows is him.

One of you is his

From the second night, one of the four quietly helps him: hides a key, leaves a door open, lies about where he went. Watch who breathes no smoke in the cold.

Every night is different

Power cuts, storms, locked rooms, crows that wake if you run. Find a lantern, a cassette player or a jar of salt, and use it well.

Halloween night

On 31 October he goes door to door. Three knocks, then: trick or treat? Keep still till he goes. Play that night for the Lantern Crown.

Pick a costume

Witch, pumpkin, skeleton, vampire, ghost, frog, bee or sailor.

The whisper

A very old voice that lives inside your phone, and tells you when he's near.

Their own voices

Every friend speaks in a voice of their own and answers you out loud. He talks too: low, slow, and close to the door.

Felt in your hand

Knocks, slams and a found key land as haptics. Choose how much horror you want to see.

Upright or sideways

Hold the phone either way. Every screen of the night is laid out for both.

Private by design

Playing alone needs no account. Online, the server keeps only your name, your nights and your friends: no e-mail, no analytics. What you whisper is understood on the phone and stays there.

Unity 6 · URP · C# · native hinge, speech and WebRTC plugins · Cloudflare Workers · Apple Foundation Models on device

The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License.

Coming soon for Mac

LumenCam

Your windows, in your hands.

A spatial camera for the Mac. You're cut out of your room, your apps float around you as glass panels, and you move them by hand, with the webcam you already have. Records in 4K, re-renders any take vertical, and works as a camera in any call.

  • On-device matting in Core ML, glass panels with light spill and parallax, all in Metal at 4K
  • Pinch, throw, focus and spotlight; air-click real apps with a cursor that snaps to controls
  • Non-destructive takes: change the theme or aspect ratio after recording

SwiftMetalCore MLVisionCoreMediaIO

Built for myself

Friday

My own autonomous software engineer.

Friday runs around the clock on the MacBook at home. I hand it work from my watch, my phone or just by voice, and it passes each job to an agent that writes the code in its own git worktree, runs the tests and opens a pull request. When a step is risky, it asks me on my wrist first.

  • Talk to it from Apple Watch, iPhone or with "Hey Friday" on the Mac; it answers in whatever language you speak
  • Parallel workers: every task gets its own branch and worktree, then test, commit, push and pull request
  • A risk policy lets routine work through; pushes, deploys and secrets wait for my approval, and destructive commands are always refused
  • Sees and steers the Mac when asked: the screen, mouse and keyboard, apps, sleep and the lock screen

TypeScriptClaude Agent SDKSwiftUIwatchOSLive ActivitiesScreenCaptureKitSQLite

Friday's menu bar panel on the Mac: its hands (mouse and keyboard, the screen, apps), the Hey Friday wake word and sleep settings
Friday on Apple Watch: standing by, with a Talk button
Friday listening on the Mac after hearing its name
Live

LumenChat

Share an AI chat without leaking your secrets.

Paste a conversation, a prompt that worked or a whole Claude Code session and get a clean link. API keys, private keys, tokens, connection strings, emails, card numbers and IBANs are replaced with stable placeholders in your browser before anything is uploaded; the server scans again as a second gate.

TypeScriptCloudflare WorkersD1 + FTS5Turnstile

chat.lumendesk.devLumenChat home page: share the AI chat, keep the secrets
Now building

LumenHush

A quiet privacy layer for the Mac.

  • Clipboard Guard warns before an API key, token or password is pasted into the wrong app
  • Screen Share Shield hides sensitive windows the moment you start sharing
  • Agent Firewall swaps secrets for placeholders before a coding agent's traffic leaves the Mac
  • Project Scanner finds secrets an AI assistant wrote in the wrong place

Everything runs on the Mac. Nothing leaves it.

SwiftNetwork.frameworkSecret detection

LumenHush app icon

How I work

Boring on purpose.

I'm not chasing the flashy thing. I'm chasing the thing you'll still use in a year.

01

One problem, done well

A product should be explainable in one sentence and useful in the first minute. If it needs a tour, it's not done.

02

Private by design

Your data stays on your devices whenever it can. Direct connections first, encryption always, no accounts you don't need.

03

Ship, then listen

Real users beat roadmaps. I ship small, watch what actually happens, and fix the thing that's actually broken.

Apple platforms

Swift, SwiftUI, UIKit, AppKit, Metal, Core ML, Vision, ScreenCaptureKit, VideoToolbox, AVFoundation, CoreMediaIO, Foundation Models

Real-time & networking

WebRTC, WebSockets, NAT traversal with relay fallback, end-to-end encryption (X25519, ChaCha20-Poly1305), Network.framework

Web & cloud

TypeScript, Cloudflare Workers, Durable Objects, D1, KV, Go, Node.js, PHP, Stripe

Games

Unity 6 (URP), C#, native iOS and Android plugins, hinge and posture input

Security

Threat modeling, AppSec, secret detection and redaction, risk management

AI

On-device models, LLM tool calling, real-time voice agents, tooling for coding agents

Experience

Where I've worked.

  1. Androvega Software

    Software Developer · AI, Mobile & Platform · Vancouver

    • Features across a restaurant POS suite: order taking, kitchen displays, self-checkout kiosks, a driver app with live location, loyalty and online ordering, with Moneris and Clover payments on iOS, Android, Windows and Linux.
    • A real-time voice ordering assistant (Gemini Live) with a WebRTC avatar driving 39 tools: menu search, cart, coupons, store selection, scheduling.
    • A Go WebSocket relay that keeps the model's API key out of the browser: signed single-use tickets, session caps, origin allow-listing.
    • Native ordering apps in SwiftUI and Jetpack Compose, with a promotions engine whose server-side pricing keeps the shown and charged amounts identical.
  2. Esthete Home Services

    IT Manager · Vancouver

    • Internal IT and cloud integrations, workflow automation, and security across the company's devices and accounts.
  3. Reeder Technology

    Assistant R&D Specialist · Mobile Developer

    • Flutter apps for iOS and Android with on-device machine learning; embedded software for medical and consumer devices.

Education

  • Cybersecurity Risk Management with Co-opCCTB, Vancouver
  • Computer Programming, Associate DegreeOndokuz Mayıs University
  • Management Information Systems, Bachelor'sAnadolu University

The stack

Grab one and throw it. Or shake the window.

  • Swift
  • SwiftUI
  • UIKit
  • Metal
  • Core ML
  • Vision
  • ScreenCaptureKit
  • VideoToolbox
  • Foundation Models
  • WebRTC
  • Network.framework
  • CryptoKit
  • TypeScript
  • Cloudflare Workers
  • Durable Objects
  • D1
  • Go
  • Node.js
  • Kotlin
  • Jetpack Compose
  • Unity 6
  • C#
  • Stripe
  • Threat modeling

Contact

Say hello.

Working on something in the same neighbourhood, like AI products, security, iOS, games or tools people actually open? I'd like to hear about it.

hello@erenyamic.com