RoleProduct Designer, in-house
ScopeUX ResearchProduct StrategyUX & UI Design
Year2023 – 2024
Renamed for this portfolio. Designs shown are unreleased proposals from my tenure.
Lumo hero — app screens on a clean background

The product didn't have a design problem. It had a decision problem.

Feedback arrived as email: isolated reports, no volume signal, no way to tell a pattern from a one-off. To fill that gap, I built the research system in layers, each answering a different question.

Listen: Discord community where patterns showed up through repetition instead of one-off emails.

Measure: Survey to find out how widely those patterns held.

Understand: In-depth conversations with the most active users, to learn the reasons behind the numbers.

The ask going in was a visual refresh. What came back was more specific: synced lyrics was the one thing missing that actually mattered. Existing things working reliably mattered more than anything new. That kept the scope focused.

Research infrastructure for Lumo

Synced lyrics didn't exist. Users could add plain lyric text manually, but nothing highlighted in time with the song.

9:41

Velvet Lights

Luca Hart

0:05

3:20

Add lyrics

City whispers through the glass
Taxi headlights racing past
Your silhouette in amber glow
Like a scene I've always known

Empty words, half-finished drinks
Conversations hanging thin
Everything slows down tonight
When your eyes meet mine

We don't have to chase the morning
Time can wait outside the door
Every heartbeat tells a story
I've been waiting for

Paste

Cancel

Ok

iPhone hardware

Commercial lyric APIs introduced costs the business model couldn't absorb and licensing terms the product wasn't equipped to manage. I proposed sourcing from community-maintained lyric databases instead.

Copyright shaped how the feature works: lyrics are fetched on user request rather than cached or served automatically, which keeps the product out of legally ambiguous territory.

The entry point is strictly on-demand. Rather than preemptively flagging missing lyrics during playback, the option surfaces only when explicitly requested and quietly expires if ignored.

9:41

Velvet Lights

Luca Hart

0:05

3:20

No lyrics yet for this track

Add lyrics

Adding lyrics for

Velvet Lights

Luca Hart

Search online

Recommended

Find lyrics from the web

Import file

Add a .lrc file from your device

iPhone hardware

Lyric databases vary in accuracy. I kept source selection visible so users can judge before committing rather than having the choice made for them.

A preview is available before anything is applied.

Preview

LrcLib

•

Synced

City whispers through the glassTaxi headlights racing pastYour silhouette in amber glowLike a scene I've always known
Empty words, half-finished drinksConversations hanging thinEverything slows down tonightWhen your eyes meet mine
City whispers through the glassTime can wait outside the doorLet the night keep moving fastIf we disappear into the blueI could stay here next to you
Under velvet lightsWhere the shadows lose their shapeYou pull me closerAnd the whole world fades away
Street signs flicker on the rainYour perfume lingers in the laneEvery window catches fireEvery glance takes me higher

If no match is found, an import option surfaces in place rather than a dead end.

9:41

Velvet Lights

Luca Hart

0:05

3:20

Search results

No lyrics found for this track

Try importing a .lrc file instead

Import file

iPhone hardware

Not every set of fetched lyrics syncs perfectly. The first approach I considered was tap-to-sync: tapping each line as it starts. I ruled it out during brainstorming, before anything was prototyped. Response lag makes it unreliable, and one missed line corrupts everything after it. Correcting existing timestamps was safer than asking users to create them

The editor shows every lyric line alongside its timestamp, editable in place. Direct entry handles significant errors. Nudge controls handle smaller offsets. Two modes, two kinds of correction.

9:41

Edit lyrics

Velvet Lights

•

Luca Hart

City whispers through the glass

00:12.537

Taxi headlights racing past

00:16.284

Your silhouette in amber glow

00:20.071

Like a scene I've always known

00:24.163

Empty words, half-finished drinks

00:28.492

Everything slows down tonight

00:33.047

When your eyes meet mine

00:37.126

We don't have to chase the morning

00:41.318

City whispers through the glass

00:46.094

Let the night keep moving fast

00:50.082

If we disappear into the blue

00:54.217

I could stay here next to you

00:58.371

Cascade

iPhone Frame

9:41

Edit lyrics

Velvet Lights

•

Luca Hart

City whispers through the glass

00:12.537

Taxi headlights racing past

00:16.284

Your silhouette in amber glow

00:20.071

Like a scene I've always known

00:24.163

Empty words, half-finished drinks

00:28.492

Everything slows down tonight

00:33.047

When your eyes meet mine

00:37.126

We don't have to chase the morning

00:41.318

Let the night keep moving fast

00:50.082

Cascade

iPhone hardware

While designing the editor I noticed that sync issues rarely affect individual lines. More often, everything from a certain point shifts by the same amount.

I designed cascade to handle this: when enabled, any adjustment propagates to every following line simultaneously. It's off by default. Enabling it incorrectly would cause more problems than it solves.

9:41

Edit lyrics

Velvet Lights

•

Luca Hart

City whispers through the glass

00:12.537

Taxi headlights racing past

00:16.284

Your silhouette in amber glow

00:20.071

Like a scene I've always known

00:24.163

Empty words, half-finished drinks

00:28.492

Everything slows down tonight

00:33.047

When your eyes meet mine

00:37.126

We don't have to chase the morning

00:41.345618

City whispers through the glass

00:46.94

Let the night keep moving fast

00:50.82

If we disappear into the blue

00:54.17

I could stay here next to you

00:58.71

Under velvet lights

01:02.14

Where the shadows lose their shape

01:06.38

You pull me closer

01:10.73

Cascade

Save

iPhone hardware

The first time a user opens the editor, a walkthrough runs automatically to explain how it works before anything is touched. The same walkthrough is reachable from the More menu afterward. Undo and reset handle mistakes.

Edit lyrics

Velvet Lights

•

Luca Hart

City whispers through the glass

00:12.537

Taxi headlights racing past

00:16.284

Your silhouette in amber glow

00:20.071

Like a scene I've always known

00:24.163

Empty words, half-finished drinks

00:28.492

Everything slows down tonight

00:33.047

When your eyes meet mine

00:37.126

We don't have to chase the morning

00:41.318

City whispers through the glass

00:46.094

Let the night keep moving fast

00:50.082

If we disappear into the blue

00:54.217

I could stay here next to you

00:58.371

Under velvet lights

01:02.614

Cascade

9:41

How editor works

Tap a row to select it and edit

Tap a timestamp to type a new value

Use − and + to nudge by 0.1 seconds

Cascade shifts all following lines

Tap anywhere to continue

iPhone hardware

Changes saved

9:41

Edit lyrics

Velvet Lights

•

Luca Hart

City whispers through the glass

00:12.537

Taxi headlights racing past

00:16.284

Your silhouette in amber glow

00:20.071

Like a scene I've always known

00:24.163

Empty words, half-finished drinks

00:28.492

Everything slows down tonight

00:33.047

When your eyes meet mine

00:37.126

We don't have to chase the morning

00:41.318

City whispers through the glass

00:46.094

Let the night keep moving fast

00:50.082

If we disappear into the blue

00:54.217

I could stay here next to you

00:58.371

Under velvet lights

01:02.614

Where the shadows lose their shape

01:06.438

You pull me closer

01:10.573

And the whole world fades away

01:14.329

Street signs flicker on the rain

01:18.681

Your perfume lingers in the lane

01:22.746

Every window catches fire

01:26.793

Every glance takes me higher

01:30.967

Reset everything?

All timestamps and text will revert
to the original imported values

Reset to original

Cancel

iPhone hardware

The synced lyrics design settled the harder question: how to bring synced lyrics to an offline player without licensing costs, copyright exposure, or leaving users stuck with timing they can’t fix. I designed it end to end, from source discovery through timing correction.

The research system was built to outlast the project: a community, a survey and a direct line to users that could give the team a more reliable way to decide what to build next.

The most durable thing I built wasn't a feature. It was a way for the team to keep asking the right questions.

Next Projects

Docscan background
Docscan mockup
DocscanDocument Scanning & Editing App
Finnvoice background
Finnvoice
FinnvoiceHelping Freelancers Get Paid Faster
ThedesignpracticeofSurajKumar