← Back to the editor

Ethan Tan

Solo developer building products end to end. I’m a current CS student at Case Western Reserve University, graduating May 2027, and open to new-grad SWE roles anywhere in the US.

Resume (PDF) · GitHub · LinkedIn · ethanntann.dev@gmail.com

Projects

Gamertaggd

Letterboxd and Strava for games, built and shipped solo: an iOS app, its API, a website and a Windows tracker. Live on the App Store since September 2026.

Why this

I track a lot of my life: workouts on Strava, films on Letterboxd. Games had nothing. When friends, or strangers, get competitive about games, we compare how many we've played, on what, how many we've 100%'d and how many hours we've sunk in, and nobody actually knows. So I built the app I wanted in my pocket: one true record of everything I play that I can pull up and show someone, and that uses the same data to tell me what to play next when I'm in a slump.

Key decisions

  1. One record across every store. Steam, Epic and GOG all number the same game differently, so everything is keyed on one catalog (IGDB). Hours from your PC and a rating from your phone add up on the same game.
  2. Automatic logging. Start a game on Steam and Gamertaggd picks it up and times the session live on your iPhone Lock Screen. For games that don't track their own playtime, a small Windows tracker logs it for you, even offline. Hours were the number nobody knew, so you never have to type them in.
  3. Your whole library in one tap. An empty app is a dead app, so the first thing you can do is import your whole Steam library in one tap. Imports run as jobs that retry safely, so a big library never half-imports or duplicates.
  4. Made to be shown. The point is pulling it up for someone. Blends, which compare your taste with a friend's, and recaps are shareable links that open as a proper preview in any chat, no app needed.
  5. What to play next, from your own games. The backlog planner suggests games you already own based on your mood, and AI-built lists can only pick real games, so a suggestion is always something you can actually play.

Gamertaggd on the App Store · gamertag.gd · GitHub

Salience

A Fortnite auto-clipper built by a competitive gamer for competitive gamers: it keeps the clips you would have kept.

Why this

Clipping a moment always pulled me out of it. Hitting a hotkey or saying “clip that” meant stepping out of a funny moment with friends, out of the immersion of the game, or out of flow in the middle of a hard play. It’s like carrying a camera everywhere, waiting for the right shot instead of living the moment.

So Salience does the watching for me. It records in the background and looks back over every moment once the match is over, so I can just play. It also had to beat the usual triggers: when I measured them on my own footage, a live trigger caught only 5 of the 15 moments I actually kept. And a good clip is personal, so it learns what you keep.

I’m a competitive gamer and a former budget gamer with a potato PC, so performance was everything. Squeezing every last frame out of a new PC was a ritual, and at some point I realised part of what I was fighting was bloatware: software quietly slowing the hardware down. So Salience had one rule: you should never notice it’s running while you play.

Key decisions

  1. Invisible while you play. Recording runs on the graphics card’s built-in video encoder, at about 3% of one CPU core (my first version took 63–112%). Every bit of analysis waits until the game closes, because doing it live cost about 11 fps, and no competitive player gives up 11 fps.
  2. Look at everything, not just triggers. A vision model describes every 8-second window for about $0.003 each, chosen from 8 models at 1/20 the price of the best.
  3. Your taste, measured. A model trained on your keep/skip ratings puts 97.4% of kept/skipped pairs in the right order.
  4. Keep data local. Only gameplay frames leave the PC. Audio, transcripts, inputs and ratings stay on it.
  5. No game hooks. Capture uses the same Windows APIs as any screen recorder, so anti-cheat sees nothing unusual, and there’s no OBS to set up.

Salience on GitHub

Experience

Case Western Reserve University: B.A. Computer Science, minors in Japanese and Computer Gaming, graduating May 2027.

Languages: Python, TypeScript, JavaScript, Java, C#, Rust, SQL. Frameworks and tools: React, React Native, Expo, Next.js, Node.js, FastAPI, GraphQL, Tauri, PyTorch, FFmpeg, Unity, Docker, AWS, PostgreSQL, Supabase.

Off the clock

Off the clock, I enjoy going to the gym for powerlifting and bodybuilding. I love playing video games and also make games on the side, and I like to get my hands dirty building PCs. The rest of the time, I enjoy shooting content, editing videos, travelling and learning new languages like Japanese! I believe technology is a vessel for documentation, which is why I create content, use apps like Letterboxd and Strava, and build apps like Gamertaggd.

Video editing: YouTube. Gaming: currently playing Fortnite. Making games: itch.io. Japanese: N4 level. Bodybuilding: going for a bench PR.

Contact

Open to new-grad software engineering roles from summer 2027, anywhere in the US. Based in Cleveland, open to relocating.

ethanntann.dev@gmail.com · LinkedIn · GitHub

Ethan's Editor
00:00:00:00
DAY
V1
A1
00:00
Detailsmore ▾