[{"_1":2},"routes/case-study",{"_3":4},"data",{"_5":6,"_7":8,"_9":10,"_11":12},"unlocked",true,"cs",{"_17":165,"_285":6,"_19":166,"_21":167,"_23":123,"_25":168,"_27":286,"_29":30,"_37":172,"_39":173,"_174":175,"_41":82,"_43":176,"_287":187,"_288":289,"_290":291,"_292":293,"_294":295,"_296":297,"_298":299,"_300":301,"_302":303,"_304":305,"_306":307},"meta",{"_17":165,"_19":166,"_21":167,"_23":123,"_25":168,"_27":169,"_29":30,"_137":170,"_35":171,"_37":172,"_39":173,"_174":175,"_41":82,"_43":176,"_143":177,"_178":179},"more",[13,14,15,16],{"_17":130,"_131":132,"_19":133,"_21":134,"_23":75,"_25":135,"_27":136,"_29":30,"_137":138,"_35":139,"_37":140,"_39":141,"_41":82,"_43":142,"_143":144},{"_17":109,"_19":110,"_21":111,"_23":112,"_25":113,"_27":114,"_29":115,"_116":109,"_35":117,"_37":118,"_39":119,"_41":82,"_43":120,"_84":121},{"_17":72,"_19":73,"_21":74,"_23":75,"_25":76,"_27":77,"_29":30,"_31":78,"_35":79,"_37":80,"_39":81,"_41":82,"_43":83,"_84":85},{"_17":18,"_19":20,"_21":22,"_23":24,"_25":26,"_27":28,"_29":30,"_31":32,"_33":34,"_35":36,"_37":38,"_39":40,"_41":42,"_43":44},"slug","oroom","order","07","title","The hotel already had the trust. The website didn’t.","client","OROOM","discipline","Web design · hospitality","tags",[69,70,71],"cover","stack","loop",{"_45":57,"_58":54,"_59":60,"_48":61,"_50":62,"_63":64},"shot",{"_45":54,"_48":55,"_50":56},"logo",{"_45":46,"_47":24,"_48":49,"_50":51,"_52":53},"accent","#c2186f","accentBright","#f279b4","accentInk","#fdf4f8","cardSummary","A hotel website rebuilt around the decision a guest is actually making — sell the stay, not the room inventory.","src","/logos/oroom.webp","alt","width",447,"height",80,"scale",0.85,"/tiles/oroom-rooms-poster.webp",1200,546,"/tiles/oroom-loop.webp","poster","video",{"_65":66,"_67":68},1000,455,"matte","#150515","mp4","/tiles/oroom-loop.mp4","webm","/tiles/oroom-loop.webm","Freelance","End-to-end","Conversion","timesheet","05","The timesheet kept getting more complicated. The interface didn’t have to.","Toggl 2.0","Product design · continuous ownership",[106,107,108],{"_45":91,"_87":92,"_58":93,"_94":95,"_59":96,"_48":97,"_50":97,"_98":99},{"_45":86,"_87":88,"_47":75,"_48":89,"_50":90},"#4A5578","#8B96C4","#FFFFFF","One surface, still evolving. As the Timesheet grew from a flat entry grid to four levels of grouping and richer summaries, the work was deciding what people needed to see, and when.","lockNote","Shipped client work. The write-up quotes production internals, so it’s shared on request rather than published.","/logos/toggl-2-dark.svg","srcDark","/logos/toggl-2-0-on-dark.svg",249,60,"/tiles/timesheet.webp","/tiles/timesheet-dark.webp","/tiles/timesheet-poster.webp","posterDark","/tiles/timesheet-dark-poster.webp",{"_65":100,"_67":101,"_102":103,"_104":105},800,"fit","contain","/tiles/timesheet.mp4","/tiles/timesheet.webm","mp4Dark","/tiles/timesheet-dark.mp4","webmDark","/tiles/timesheet-dark.webm","Research-grounded","Product critique","Shipped","navigator","04","Sometimes the right move is to change the question.","Toggl","Product design · originator, then advisor",[127,128,129],"grid","story",{"_45":122,"_47":123,"_48":124,"_50":125,"_52":126},"#3F6B5C","#6FA893","Asked to redesign an onboarding screen, I argued the screen wasn’t the problem. The feature navigator that came out of it is still running — and the pattern was rebuilt for Toggl 2.0.","Shipped client work. The write-up quotes production outcomes, so it’s shared on request rather than published.","/logos/toggl-track.svg","Toggl Track",568,367,1.5,"Scope refusal","Instrumentation","V1 → V2","toggl-mobile","kind","gallery","03","Sole designer for the first versions of the brand-new mobile app","Mobile · 0 → 1",[162,163,164],"devices",{"_149":150,"_151":141,"_152":153,"_154":6},{"_45":148,"_87":88,"_47":75,"_48":89,"_50":90},"#8a3fb0","#c15ee7","A companion app designed from a brief in three months, then — when Track users started arriving — the recovery, the in-app importer and phone sign-in that brought them across.","pill",{"_21":145,"_146":147},"Toggl 2.0 mobile","sub","First version · moving Track users across","/logos/toggl-2-0.svg","previews",[155,156],"previewBg","previewBgDark","#2e1838","previewBgInk",{"_45":160,"_47":161},{"_45":157,"_47":158,"_159":6},"/tiles/mobile-phone-screen.webp","A phone in front showing the mobile calendar in dark mode, a week of colour-coded time blocks","dark","/tiles/mobile-phone-2-screen.webp","A phone showing the Timer screen in light mode","0 → 1","Migration","Design in code","track-mobile","02","Simplifying the timer without simplifying away what mattered.","Mobile · iOS and Android",[283,284,108],{"_149":267,"_151":268,"_152":269},{"_45":122,"_47":123,"_48":124,"_50":125,"_52":126},"#ad4e2c","#e87161","accentLarge","#c4613e","The one sheet every Track user touches on iOS and Android, simplified with the engineers, shipped, measured, and corrected when reviews said a shortcut had gone.",{"_21":265,"_146":266},"head",{"_180":6,"_181":182,"_183":184,"_21":185,"_186":187,"_188":189,"_190":191,"_192":193},"carriesEvidence","context","Native mobile · Toggl Track · iOS + Android","eyebrow","A core mobile interaction, redesigned from the inside out.","Simplifying the timer\nwithout simplifying away what mattered.","lede","I redesigned Track’s core timer experience across iOS and Android — reducing a dense edit sheet to the things people actually needed, while keeping the interactions experienced users relied on.","proof",[253,254],"facts",[239,240,241,242],"process",{"_21":194,"_195":196},"One sheet. Prioritised, researched, redesigned, shipped, corrected.","stages",[197,198,199,200,201],{"_202":231,"_203":232,"_146":233,"_206":234},{"_202":166,"_203":225,"_146":226,"_206":227},{"_202":133,"_203":218,"_146":219,"_206":220},{"_202":110,"_203":212,"_146":213,"_206":214},{"_202":73,"_203":204,"_146":205,"_206":207},"n","name","Ship","Released, then corrected","art",{"_45":208,"_47":209,"_48":210,"_50":211},"/work-assets/track-mobile/stage-ship.webp","The corrected sheet on iOS and Android, with Set to last stop and Round stop time back",1556,1806,"Design","Before → after",{"_45":215,"_47":216,"_48":210,"_50":217},"/work-assets/track-mobile/stage-design.webp","The old edit sheet beside the redesigned one",1966,"Flows","New, past and duration-only entries",{"_45":221,"_47":222,"_48":223,"_50":224},"/work-assets/track-mobile/stage-flow.webp","The user flow: starting a new entry, adding a past one, and duration-only mode",2400,1957,"Concept testing","Eight interviews, two concepts",{"_45":228,"_47":229,"_48":210,"_50":230},"/work-assets/track-mobile/stage-research.webp","Two concepts tested with users: a widget Home and the My activity tab",1624,"01","Prioritise","Ideas → audit",{"_45":235,"_47":236,"_48":237,"_50":238},"/work-assets/track-mobile/audit-hd.webp","An audit of the edit sheet: every element tagged as no function, duplicate information, to be dropped, or useful, against usage data (figures blurred)",4000,2186,{"_243":251,"_245":252},{"_243":249,"_245":250},{"_243":247,"_245":248},{"_243":244,"_245":246},"label","Scope","value","Research →\nflows → UI →\nrelease + follow-up","Team","PM\nTech lead\niOS + Android engineers\nDesign lead","Timeline","Mar 2025 –\nJan 2026","Role","Sole product designer",{"_245":261,"_256":262,"_243":263,"_259":264},{"_245":255,"_256":257,"_243":258,"_259":260},"4.6","unit","Google Play rating","from 26,000+ ratings","info","4.61 out of 5 from 26,107 ratings, and 1M+ installs on Google Play, October 2026.","4.8","App Store rating","from 27,000+ ratings","4.76 out of 5 from 27,056 ratings across the App Store's storefronts, October 2026.","Toggl Track mobile","Simplifying the timer · iOS and Android",[270,271],"#fceaf8","#26142b",{"_45":274,"_275":276,"_47":277},{"_45":272,"_47":273},"/tiles/track-phone-screen.webp","Toggl Track's Timer screen on iOS, with suggestions, today's activity and a running entry.","/tiles/track-phone-2-screen.webp","place",{"_278":279,"_280":281,"_48":282},"The redesigned edit sheet: one time row, Set to last stop and Round stop time, and the duration wheel.","left","44%","top","0%","50%","Research","Native mobile","ungated",[283,284,108],"hook","year","2025","role","Product designer","timeline","Mar 2025 – Jan 2026","team","PM, iOS and Android engineers, design lead","platform","iOS · Android","metrics",[625,626],"inShort",[613,614,615,616],"showcase",{"_21":588,"_589":590,"_465":6,"_591":592,"_353":593},"tldr",[308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,337,338,339,340,341,342,343],"blocks",[308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343],{"_131":391,"_243":584,"_393":585,"_395":586},{"_131":384,"_384":579,"_27":580},{"_131":378,"_243":379,"_380":576},{"_131":460,"_45":235,"_47":572,"_355":573,"_574":575,"_464":6,"_48":237,"_50":238},{"_131":378,"_243":379,"_380":570},{"_131":557,"_558":6,"_464":6,"_559":560,"_355":561},{"_131":391,"_243":553,"_393":554,"_395":555},{"_131":384,"_384":225,"_27":549},{"_131":352,"_444":6,"_353":535,"_355":536},{"_131":378,"_243":379,"_380":533},{"_131":352,"_444":6,"_353":517,"_355":518},{"_131":503,"_504":505,"_506":507},{"_131":378,"_243":379,"_380":501},{"_131":344,"_345":499,"_347":491,"_290":500},{"_131":378,"_243":379,"_380":497},{"_131":493,"_494":495,"_355":496},{"_131":344,"_345":490,"_347":491,"_290":492},{"_131":391,"_243":487,"_393":488,"_395":489},{"_131":384,"_384":212,"_27":486},{"_131":465,"_466":467,"_468":469},{"_131":460,"_45":461,"_47":222,"_355":462,"_463":6,"_464":6,"_48":223,"_50":224},{"_131":352,"_444":6,"_353":445},{"_131":391,"_243":440,"_393":441,"_395":442},{"_131":384,"_384":436,"_27":437},{"_131":416,"_243":417,"_353":418},{"_131":378,"_243":379,"_380":413},{"_131":344,"_345":410,"_347":411,"_290":412},{"_131":344,"_345":407,"_347":408,"_290":409},{"_131":352,"_353":398},{"_131":391,"_243":392,"_393":394,"_395":396},{"_131":384,"_384":385,"_27":386},{"_131":378,"_243":379,"_380":381},{"_131":344,"_345":376,"_347":348,"_290":377},{"_131":352,"_353":354,"_355":356},{"_131":344,"_345":350,"_347":348,"_290":351},{"_131":344,"_345":346,"_347":348,"_290":349},"quote","text","THANK YOU for bringing back the “SET TO LAST STOP TIME” button and moving the “ROUND STOP TIME” button. This UI now is honestly the best it’s ever been!","author","Google Play review","Android 8.5, January 2026","Many thanks for the “Set last stop” returning!","January 2026","phones","items",[357,358,359,360],"caption","Draft caption — three ways to bring it back, and the corrected sheet.",{"_361":373,"_45":374,"_47":375,"_48":365,"_50":211},{"_361":370,"_45":371,"_47":372,"_48":365,"_50":211},{"_361":366,"_45":367,"_47":368,"_48":365,"_50":369},{"_361":362,"_45":363,"_47":364,"_48":365,"_50":211},"kicker","Android","/work-assets/track-mobile/dec-android.webp","The corrected sheet on Android",750,"Words","/work-assets/track-mobile/dec-words.webp","Chosen: Set to last stop as a visible text pill",1782,"Icons","/work-assets/track-mobile/dec-icons.webp","Option: icons with labels","Capitals","/work-assets/track-mobile/dec-caps.webp","Option: LAST STOP TIME in capitals","The new look is sleek and clean. However, it’s difficult to “go to last stop time”.","December 2025","prose","","paragraphs",[382,383],"To promote the wheel interaction, the simplification moved **Set to last stop time** one tap deeper on iOS — and accidentally removed the shortcut from Android. Experienced users noticed.","I spotted the pattern in the reviews, brought it back to the team, and explored three ways of restoring the action: capitals, icons and words. **I argued for words** because the action was too important to hide behind an ambiguous icon.","stage","Ship + learn",[387,388,389,390],"iOS shipped","Android test","reviews","correction","chapter","Simplification doesn't end at launch","summary","A release can tell you what your design missed.","image",{"_45":367,"_47":397},"The corrected sheet with Set to last stop as words",[399,400],{"_361":404,"_45":405,"_47":406,"_48":365,"_50":211},{"_361":401,"_45":402,"_47":403,"_48":365,"_50":211},"Native picker","/work-assets/track-mobile/android-picker.webp","The Android clock picker with minute shortcuts","Android · Automatic","/work-assets/track-mobile/android-auto.webp","The Android Automatic sheet","It feels like it’s the first time we’re testing our work like this — I mean, doing it so early during the development.","iOS engineer","On testing early builds","Overall love the new look. It looks so clean — even the extra interactions like clicking on the time to manually input the start and end time feel easier to understand.","Product manager","Testing the TestFlight build",[414,415],"The design changed during implementation. Android’s native picker couldn’t support the shortcuts where I’d placed them, so **I moved them below**. I changed a transition after seeing the engineer’s implementation and kept the existing font and row heights where they worked better on a phone.","Early TestFlight builds also caught issues that weren’t visible in Figma — including **the keyboard covering the sheet**.","highlights","iOS | Android",[419,420],{"_21":429,"_422":430,"_206":431},{"_21":421,"_422":423,"_206":424},"Keyboard and picker constraints","body","**iOS** — the keyboard no longer covers the sheet when it opens. **Android** — the native picker’s fixed layout decided where the shortcuts could go.",{"_45":425,"_47":426,"_48":427,"_50":428},"/work-assets/track-mobile/hl-android-picker.webp","Android’s native start-time picker, its fixed layout leaving the -15, -5, +5 and +15 minute shortcuts below it",650,444,"Native pickers","**iOS** — the time pickers as the platform draws them. **Android** — Material pickers, with the shortcuts moved below where the picker couldn’t hold them.",{"_45":432,"_47":433,"_48":434,"_50":435},"/work-assets/track-mobile/hl-ios-picker.webp","The iOS sheet with its native picker expanded: date, hour and minute wheels, Set to last stop time above and the -15, -5, +5 and +15 minute shortcuts below",664,584,"Build",[438,362,439],"iOS","TestFlight","Designed with the platform, not around it","Native pickers, real constraints and early builds changed the design — on purpose.",{"_45":402,"_47":443},"The Android native time picker with minute shortcuts","large",[446,447,448],{"_361":456,"_45":457,"_47":458,"_48":365,"_50":459},{"_361":452,"_45":453,"_47":454,"_48":365,"_50":455},{"_361":449,"_45":450,"_47":451,"_48":365,"_50":211},"Duration-only","/work-assets/track-mobile/mode-duration.webp","The duration-only sheet with preset chips","Manual","/work-assets/track-mobile/mode-manual.webp","The Manual sheet for a past entry",1628,"Automatic","/work-assets/track-mobile/mode-auto.webp","The Automatic sheet for a running timer",1714,"figure","/work-assets/track-mobile/flow.webp","Draft caption — Automatic, Manual and Duration-only, mapped before the screens.","center","wide","compare","labels",[484,485],"rows",[470],{"_21":471,"_472":473,"_474":475,"_476":477},"The edit sheet","before",{"_45":482,"_47":483,"_48":365,"_50":217},"after",{"_45":453,"_47":481,"_48":365,"_50":455},"changes",[478,479,480],"**One time row** instead of two stacked rows","**Duration wheel kept**, but stripped back","**Rounding moved** into the wheel","The redesigned Manual sheet","/work-assets/track-mobile/old-sheet.webp","The old edit sheet","Before","After",[456,452,449],"Reduce, don't remove","The redesign kept the useful parts and got out of the way of the task.",{"_45":453,"_47":481},"It’s actually pretty cool. Oh yeah, I can play with this. That’s really cool. Yeah, that’s a really nice animation.","Interview participant","on finding the duration wheel, 2025","trackWheel","beside","The interviews said otherwise: **nobody found the wheel until it was shown to them — and then they loved it.** So we decided to simplify it and keep it, with an animation and tooltips to show what it does.","The wheel as it shipped, drawn live: drag the start back to add time — or tap Set to last stop, and it snaps to where the last entry ended.",[498],"The wheel had a history. In 2022 Track removed it from Android, users complained, and it was put back. This time the PM wanted to remove it completely.","Most of the time I just find an old task and click start.","Trial user, 2025",[502],"That changed the scope. Instead of redesigning the whole app, I focused on **the one interaction every user ultimately comes back to: ==the timer sheet==.**","converge","columns",[508,509,510],"outcome","The timer sheet — the one thing all three come back to",{"_243":515,"_422":516},{"_243":513,"_422":514},{"_243":511,"_422":512},"Insight","Totals and trends, in reports","Reviewing","What I logged — the list and the calendar","Tracking","What’s running now, and starting again",[519,520,521],"Draft caption — the Home concept’s sections as they were tested.",{"_361":529,"_45":530,"_47":531,"_48":365,"_50":532},{"_361":526,"_45":527,"_47":528,"_48":365,"_50":230},{"_361":522,"_45":523,"_47":524,"_48":365,"_50":525},"Pomodoro","/work-assets/track-mobile/ut-pomodoro.webp","The Home concept with Pomodoro expanded",2688,"Heatmap","/work-assets/track-mobile/ut-heatmap.webp","The Home concept with the heatmap expanded","Favourites","/work-assets/track-mobile/ut-favorites.webp","The Home concept with Favourites expanded",2060,[534],"I tested two directions with 8 users. **Both lost to the existing navigation.** People naturally separated Track into modes — **tracking, reviewing and insight** — and combining them made the product harder to understand.",[537,538,539],"Draft caption — where Track started, the Home I proposed, and the existing tabs redrawn. The tabs won.",{"_361":546,"_45":547,"_47":548,"_48":365,"_50":230},{"_361":543,"_45":544,"_47":545,"_48":365,"_50":230},{"_361":540,"_45":541,"_47":542,"_48":365,"_50":230},"The existing tabs, in a new version","/work-assets/track-mobile/ut-activity.webp","The existing tabs kept, with My activity redesigned as a list and calendar","My Home concept","/work-assets/track-mobile/ut-home.webp","The customisable Home concept: monthly total, goals, suggestions and favourites as sections","Initial state","/work-assets/track-mobile/old-timer.webp","The Timer tab as it was: suggestions, the running timer and recent activity on one screen",[550,551,552],"8 interviews","two concepts","the existing tabs","Research changed the direction","I tested the bigger idea. Research told me to make it smaller.",{"_45":544,"_47":556},"The customisable Home concept tested with users","figureGrid","together","images",[562,563],"The revamp file with ideas and our discussions",{"_45":567,"_47":568,"_355":569},{"_45":564,"_47":565,"_355":566},"/work-assets/track-mobile/revamp-discussion.webp","The same file in Figma, covered in comment threads from the PM, the design lead and the engineers — photos blurred for privacy","The same file, after the team","/work-assets/track-mobile/revamp-ideas.webp","The Mobile apps revamp file: current and new on iOS and Android, the app structure, Favourites, a Home tab with reorganised sections, hidden features for the free plan, and the heatmap","The ideas, drawn",[571],"The exploration went **wide before it went deep**: current and new side by side on iOS and Android, **drawn rather than written** so everyone discussed the same thing — then opened to **the PM, the design lead and the iOS and Android engineers**.","The existing edit sheet mapped element by element: what had no function, what was duplicated, what couldn't be used while running, what affected start time, and what users actually interacted with","Auditing the existing timer: functionality, duplication, usage and constraints mapped before touching the UI. The usage figures are blurred for privacy.","badge","Usage metrics blurred for privacy",[577,578],"The timer had accumulated **years of decisions**: overlapping controls, information that wasn’t actionable, and interactions that behaved differently depending on whether a timer was running.","I mapped the sheet element by element and combined that with usage data and the history behind the wheel to separate **what looked important from what actually was**.","Audit",[581,582,583],"the existing sheet","usage data","the wheel's history","Start with the mess","Before simplifying the UI, I simplified the problem.",{"_45":235,"_47":587},"The audit of the edit sheet","The edit sheet, from the old one to the corrected one.","layout","row","hero",{"_45":610,"_47":611,"_48":365,"_50":217,"_243":484,"_600":612},[594,595,596],{"_45":606,"_47":607,"_48":365,"_50":455,"_243":608,"_600":609},{"_45":602,"_47":603,"_48":365,"_50":604,"_243":108,"_600":605},{"_45":597,"_47":598,"_48":365,"_50":369,"_243":599,"_600":601},"/work-assets/track-mobile/sheet-fix.webp","The corrected sheet with Set to last stop and Round stop time as visible text","Corrected","note","Shortcuts back, January 2026","/work-assets/track-mobile/sheet-shipped.webp","The sheet as shipped on iOS",1770,"iOS, August 2025","/work-assets/track-mobile/sheet-redesign.webp","The redesigned Manual sheet: one time row and a cleaner wheel","Redesign","One time row, the wheel kept","/work-assets/track-mobile/sheet-before.webp","The old edit sheet: stacked start and stop rows, a dense numbered wheel and rounding controls","Every control at once",{"_243":623,"_422":624},{"_243":621,"_422":622},{"_243":619,"_422":620},{"_243":617,"_422":618},"What changed","A **dense edit sheet** became **simpler** Automatic, Manual and Duration-only flows, with a cleaner wheel and **fewer competing actions**.","What I designed","**Automatic, Manual and Duration-only** flows, with a **cleaner edit sheet**, **simplified duration wheel** and fewer competing actions.","The approach","**Audited** the existing experience, **tested broader mobile concepts**, and narrowed the work to **the core timer**.","The brief","Simplify Track’s **mobile timer** without losing the **functionality people depend on**.",{"_245":629,"_243":630},{"_245":627,"_243":628},"~53k","App Store and Google Play ratings","1M+","Android installs — the app this sheet sits in"]
