Back to index

Case study / 2026 — Shipped

MultiTimer

Keep a focused session moving. A sequence of named timers that carries unused time forward and separates elapsed time from work actually finished.

Open app
MultiTimer application interface

The problem

A single countdown does not represent an interview or work session with several parts. A timer reaching zero also does not mean the task is finished. Treating those as the same event can hide unfinished work.

Who it serves

People running timed interviews, practice sessions, or focused work with a planned sequence of tasks.

My contribution

I built the native Mac app and adapted its timer model into a browser companion. The work spans interaction design, a deterministic state machine, persistence, audio cues, and the browser interface.

Product decisions

Each stage advances on schedule, while completion remains an explicit action. Finishing early transfers unused time to the next stage. Earlier unconfirmed work remains visible without stopping the schedule.

Designing around browser limits

Absolute deadlines preserve elapsed time when a tab is inactive or restored. The browser version saves the session locally and catches up when reopened. Alerts require an open, awake browser; native menu-bar and always-on-top behavior stay in the Mac app.

What shipped

One to eight named stages, editable order and durations before start, automatic handoffs, completion acknowledgment, pause and resume, reset confirmation, audio cues, and local session restoration.

Outcome

A usable browser companion to the native Mac app, with sequential timing, explicit completion, early-finish carryover, and session restoration. Timing behavior is covered by deterministic tests.