New game
Peekadoor
A Halloween horror game where the phone is the door.
Full-stack developer · Vancouver, BC
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.
On the App StoreYour 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.
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.
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
On a foldable, the hinge is the controller. Drag the handle to open it, or press Listen.
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.
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.

New · a monster with a mind
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.
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.
When he isn't sure, he won't open the wardrobe or pull the door. Stay still and silent, and he moves on.
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.
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.
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.
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.








But he pulls shut ones. Tap fast to hold it closed.
In the wardrobe or under the bed. When he comes looking, hold your breath.
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.
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.
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.
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.
Witch, pumpkin, skeleton, vampire, ghost, frog, bee or sailor.
A very old voice that lives inside your phone, and tells you when he's near.
Every friend speaks in a voice of their own and answers you out loud. He talks too: low, slow, and close to the door.
Knocks, slams and a found key land as haptics. Choose how much horror you want to see.
Hold the phone either way. Every screen of the night is laid out for both.
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
Privacy policy · Delete your account
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 MacYour 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.
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.

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.

Now buildingA quiet privacy layer for the Mac.
Everything runs on the Mac. Nothing leaves it.
How I work
I'm not chasing the flashy thing. I'm chasing the thing you'll still use in a year.
A product should be explainable in one sentence and useful in the first minute. If it needs a tour, it's not done.
Your data stays on your devices whenever it can. Direct connections first, encryption always, no accounts you don't need.
Real users beat roadmaps. I ship small, watch what actually happens, and fix the thing that's actually broken.
Swift, SwiftUI, UIKit, AppKit, Metal, Core ML, Vision, ScreenCaptureKit, VideoToolbox, AVFoundation, CoreMediaIO, Foundation Models
WebRTC, WebSockets, NAT traversal with relay fallback, end-to-end encryption (X25519, ChaCha20-Poly1305), Network.framework
TypeScript, Cloudflare Workers, Durable Objects, D1, KV, Go, Node.js, PHP, Stripe
Unity 6 (URP), C#, native iOS and Android plugins, hinge and posture input
Threat modeling, AppSec, secret detection and redaction, risk management
On-device models, LLM tool calling, real-time voice agents, tooling for coding agents
Experience
Software Developer · AI, Mobile & Platform · Vancouver
IT Manager · Vancouver
Assistant R&D Specialist · Mobile Developer
Education
Grab one and throw it. Or shake the window.
Contact
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.