← Work
[PLACEHOLDER: Tersus Final Quote Screen — customer side]
[PLACEHOLDER: Tersus Current Job Screen — cleaner side]

MOBILE APP & WEB · SOLE PRODUCT DESIGNER

Tersus.

Two completely different users. One design system. I was the sole designer across the full product — both sides, mobile and web, from the first wireframe to developer handoff.

MOBILE APP & WEB SOLE PRODUCT DESIGNER ~1 YEAR

Context

Most cleaning services make you hand over your phone number before you see a price. Tersus was built to change that — instant, self-serve booking for customers, and a reliable job management experience for the cleaners doing the work.

[PLACEHOLDER: Full Flow Mosaic — zoomed-out Figma canvas showing screens from both sides side by side]

The Challenge

Two completely different users. One design system.

Customers needed to see a real price upfront, configure their service, and confirm a booking in minutes — no contact forms, no waiting for a callback.

Cleaners needed a dependable system for finding jobs nearby, understanding what a job involves before accepting, managing an active cleaning, and getting paid without friction.

Every design decision had to work for both. Midway through the project, scope expanded to include a full web product — requiring the mobile-first design system to scale to desktop without being rebuilt from scratch.

Research

Five rounds of usability testing. 30+ participants. Both sides of the platform tested across mobile and web. Testing ran on a rolling cycle — each phase fed directly back into the product while development continued forward.

[PLACEHOLDER: Research Table — Phase 1–5 with participant counts]

Design Decisions

Bringing Pricing to the Surface

Pricing was surfaced earlier and made transparent throughout the configuration steps — individual room prices, base costs, and premium service prices shown as users built their booking. By the time they reached the Final Quote screen, the total wasn't a surprise. It was a confirmation of decisions they'd already made.

[PLACEHOLDER: Final Quote screen showing itemized pricing breakdown + Single_Unit_Flow.mov embed]

Building a Guide for the Actual Clean

A service checklist and progress timer were added to the active job screen — not in the original scope, identified entirely through research. Cleaners could track rooms as they went, see elapsed time, access pre-job customer instructions, and reach a support link directly from the job.

[PLACEHOLDER: Current Job screen — timer, checklist, customer info card + Cleaner_Flow.mov embed]

Giving Cleaners Control Over Their Work Area

A dedicated Cleaning Area screen was added — not in the original scope, identified through research. Cleaners could set a preferred location by address or by drawing a radius directly on the map. A custom radius slider gave precise control over distance.

[PLACEHOLDER: Cleaning Area screen — map with teal radius circle, custom radius slider]

Outcome

One designer. Two platforms. Two completely different users. Roughly a year from first wireframe to developer handoff.

  • Customer and cleaner experiences designed in full — mobile app and web, both sides, simultaneously
  • 8+ screens added to scope mid-build, driven entirely by research findings
  • Rolling handoff to developers across the full year — annotated Figma files, interaction notes, and component specs updated continuously
  • Critical issues surfaced through structured pre-launch testing before reaching real users

Reflection

Tersus was my first real UX/UI project. I didn't know about design systems at the beginning — I jumped straight into designing screens. The component library came later, assembled from work that was already done rather than built as a foundation from the start. If I were doing this again, I'd slow down the first two weeks significantly and build the system before touching a single screen.

Most of all, this project taught me how to learn on the job at speed. The things I'd do differently aren't failures — they're exactly what this project gave me.