
0-to-1 · iOS App · AI-Assisted
ReDance
Learning a dance from a video means fighting the video. ReDance is the practice player that fights it for you — slow any clip down, mirror it, and loop the hard part until the moves stick.
Now in TestFlight beta — I posted the build on social media, dancers signed up, and I invited them in to test it.

Role
Product Engineer
Timeline
Feb 2026 – Present
Team
Solo
Scope
0-to-1 (Research, Design, Develop, Test, Launch)
Every dancer's practice tool is a video player that won't cooperate
I'm a dancer. So this started as my own frustration — then I heard the same three complaints from nearly everyone I practice with. They aren't vague wishes; each one points at a specific, fixable failure of the tools beginners already use.

I find a routine I love on TikTok — but at full speed, I can't follow it at home.
For a 30-second routine, I drag that tiny progress bar back and forth a hundred times before the moves stick.
Dancing is exhausting enough. Running between the mirror and my propped-up phone makes it worse.
Beginners are forced to learn on tools built for watching, not drilling
Before designing a single screen, I looked at the three apps dancers already live in — YouTube Shorts, Instagram Reels, and TikTok. The same gaps showed up across all of them.
Stuck at full speed — gone before you catch it
To learn a step, a beginner needs to drop the clip to half speed or slower and actually see where the feet and arms go. On Shorts there's no playback-speed control at all — you can switch the captions or push the quality to 1080p, but the one setting that would help is missing. So the move keeps flying past at full speed, and “practice” becomes replaying the same blur, hoping it sticks.
YouTube Shorts · the full menu, no speed changeNo mirror — so you learn every move backwards
A front-facing video is reversed: the dancer's left is your right. Without a mirror toggle you either flip every move in your head while trying to keep up, or prop the phone by a wall mirror and physically shuttle between the two. Reels offers Save, Remix, Sequence, even an Auto-scroll toggle — but nothing to flip the video, so every move arrives mirror-wrong.
Instagram Reels · no way to edit the videoManual scrubbing — the workaround everyone hates
The fallback is dragging a tiny progress bar back and forth by hand — hundreds of times for one short routine. It's the single most-mentioned pain, and it's pure friction between watching a move and owning it.
TikTok · dragging the tiny progress barThe reframe: ReDance isn't a better video player. The job is to remove the friction between watching a move and owning it — and each of these three pains maps to one feature.
Slow it down without losing the rhythm
The Problem
Full speed is unfollowable; coarse speed controls overshoot
At 1× a beginner can't catch the footwork. But YouTube-style speed jumps (1× → 0.5× → 0.25×) skip right past the speed where a specific count finally clicks.
The Solution
Fine-grained slow playback, tuned for muscle memory
Precise control over playback speed so dancers can settle on the exact pace where they can follow and keep the count — then ramp back up as the move sticks.
Mirror it, so you follow instead of translate
The Problem
Facing the screen, the dancer's left is your right
Following a front-facing video means mentally flipping every move — or physically shuttling between a mirror and a propped-up phone. Both drain energy that should go into dancing.
The Solution
One-tap mirror flip — the screen becomes your mirror
Flip the video so the on-screen body matches yours. Practice facing the phone, copy directly, and skip both the mental translation and the trips back to the wall mirror.
A running start — be in position before the music hits
The Problem
Rushing back into position breaks your focus before you even begin
You set the phone down by the mirror, hit play, and then scramble back to your spot — hoping you make it before the first beat drops. Sometimes you do. Sometimes the music is already two counts in and you've already lost the beginning. The setup should take zero mental energy. Instead it costs you every single take.
The Solution
A countdown gives you time to get there
A few seconds between hitting play and the music starting — enough time to walk back, find your position, and be ready. No rushing, no replaying the intro just to catch the start. You begin every take on your own terms.
Designing what's next: an AI practice coach
The MVP ships with no AI inside it — and I want to be precise about that. But the clearest next step is one: record your practice, let AI compare it against the original, and surface where your movement drifts. Designing it surfaces the real questions of building an AI feature people will actually trust.
Building trust
A beginner won't trust a bare number. So the AI shows its work: a side-by-side of your take and the original, with the specific moments it flagged — feedback framed as a coach pointing, not a judge scoring.
Handling AI error
Pose detection breaks on bad lighting, loose clothing, and odd angles. Rather than inventing a confident-but-wrong correction, low-confidence reads degrade honestly — “couldn't read this clearly, try a wider angle” beats a false verdict that erodes trust.
Dynamic output → UX
Every take produces different, probabilistic output. So the UI can't be binary. It surfaces confidence, focuses on the 1–2 highest-impact differences instead of 30 demoralizing nitpicks, and frames everything as progress toward the move.
No engineering team — I was the engineering team
The rare part of this project isn't a single screen; it's that one person owned the whole line, from problem to shipped iOS app. I designed it and I built it.
Owned end-to-end
Problem framing, IA, user flows, UI, and the production build — all solo. Shipped as a native iOS app in React Native, no handoff, no spec lost in translation between design and dev because they were the same person.
AI-assisted workflow
With the AI assistance of Figma Make and Claude Code, I turned the concept from wireframe to working prototype in weeks. It let a designer ship real, interactive product alone — and it's exactly the fluency the market now expects.
Tested with real dancers — the core held, the roadmap sharpened
As a solo maker, I inverted the usual order: a sharp personal insight justified building a focused MVP fast, so I could learn from a real, working app instead of a deck. To recruit, I posted the beta on social media — the posts drew genuine interest, and I invited those dancers in as TestFlight testers. Eight tested this round: the exact target user, most of them strangers rather than friends.
The core held. Zero crashes and zero jank across all 8 testers; a 6.5-minute clip played back smoothly; and the craft got called out unprompted — one tester summed it up:
“Aesthetically pleasing… and so easy to use.”
What the testers sharpened
Frame-by-frame scrubbing
The most-requested precision ask — three independent testers, one a dance teacher who spec'd it exactly: press anywhere on the frame and drag, video follows your finger frame by frame. The clearest on-thesis signal for the next build.
Side-by-side compare
The strongest validated concept: play your take next to the original. Testers already hack this together in CapCut — and the unlock they named is an auto-aligned timeline, the part that's hardest to do by hand.
Honest discoverability gaps
Not just praise — real misses. The countdown toggle silently waited for the next loop (“nothing happened”), and a hidden ±5s gesture went undiscovered despite a first-run hint. Cheap, high-leverage fixes I'd have missed without real users.
Next round: turn feedback into a before/after
- →Ship the top fixes plus frame-by-frame scrubbing as the first, headline iteration.
- →Capture it as a before/after — the most valuable artifact this project can produce: a real user pain, tracked to a shipped change.
- →Let the findings gate what's next — including whether the AI coach concept earns a place on the roadmap.
Reflection
ReDance is the clearest proof of how I work: I find a real problem I understand from the inside, frame it tightly enough that every feature has to earn its place, and then take it all the way to something that runs on a phone. Designing and building it myself collapsed the usual design-to-dev gap entirely. If I were to do one thing differently, I'd line up testers before the build wrapped — the personal insight was strong enough to justify building first, but the moment I put it in real dancers' hands, they sharpened the roadmap faster than I could alone.
Next Project
IKEA Food Mobile — O2O Experience Redesign