Enter the password to view this case study.
I redesigned a healthcare scheduling system — dashboard, schedule, templates, manager mobile — for a product that existed but wasn't keeping up. Two interfaces, one system: managers on desktop, nurses on mobile.
LastMinute had been shipping for years, but the interface grew piecemeal — bolted-on features, patched workflows, no consistency. I joined a team of three designers plus engineering to reimagine it. I owned the manager core (dashboard, schedule, templates, manager mobile) and drove the IA and cross-surface patterns the whole team built on.
Same system, completely different needs. This tension shaped every decision.
Schedule grid, request queue, coverage gaps, staff availability, templates, admin. One glance should answer: "Are we covered?"
Daily schedule, shift notifications, pick-up opportunities. Thumb-reachable, single column, 15 seconds of attention between patient rounds.
I led discovery and information architecture — mapping user flows, defining subsystems, establishing design patterns. Then we split: I took the manager core, teammates took admin, requests, and nurse mobile. Weekly crits kept it all aligned.
Interviewed charge nurses and hospital managers about real workflows — how shifts get filled, where the friction lives.
Mapped every critical path in FigJam: shift assignment, coverage request, PTO, shift swap, marketplace. These flows became the shared blueprint.
Defined the IA and design patterns: dashboard → schedule → templates → requests → admin. Shared components and conventions the whole team used.
Four versions: v2.0 → branding → v2.1 → v2.2. Weekly crits across all three designers. I facilitated cross-surface alignment at every stage.
The biggest design challenge was the connection between templates and the schedule. Hospitals already had staffing data in spreadsheets — I designed a flow where managers import their Excel, generate a reusable template, apply it to any week, then add custom shifts on top. Templates are the base layer; customizations sit above without breaking the blueprint.
Managers created templates in one place and applied them somewhere else. They'd build templates but forget to apply them, or edit the schedule directly and lose template changes.
I added apply-to-schedule directly in the template flow. But the schedule didn't distinguish template shifts from custom additions — managers couldn't tell what would change on a template update.
Template shifts and custom shifts became distinct visual layers. Updating a template propagates without touching customizations. Weekly crits pushed me to add import error handling and a "start from last week" shortcut.
My primary ownership. I redesigned the dashboard, scheduling grid, template system, and manager mobile app — the surfaces managers live in.
Redesigned around "action items" instead of the old "current state" view. Pending approvals, unfilled shifts, coverage warnings — one glance answers: are we covered?
Two views: by area (ICU, Pediatrics, ER) and by staff. Create regular and customized shifts, edit published shifts, manage overfilled positions. Constraints baked in.
Configure once, apply to any week. Roles, times, staff counts. I designed the creation flow, apply-to-schedule interaction, and empty-state onboarding.
Companion app: today's schedule, on-call staff with advanced filters, shift details, push notifications on lock screen. A quick-check tool for the hallway.
Departments, roles, user groups, shift times. Another designer owned these; I set the IA and patterns they built on.
PTO requests, coverage requests, shift marketplace. A teammate designed the flows; I defined the system model (draft → send → accept/decline).
A teammate owned the nurse app. I built the system architecture it plugs into — notification taxonomy, shift status model, data flows. When a nurse accepts a shift on mobile, the manager's grid updates instantly. That connection was my responsibility.
Today's shifts, times, location, staffing level. Tap for full details. Swipe for other days.
All / Updates / Actions. Call-outs, shift offers, swap requests. One tap to accept or decline. Push on the lock screen for urgent items.
Urgent coverage: big accept/decline. Availability calendar: mark which days you can work. PTO: pick dates, submit, get notified.
I built the dashboard and scheduling grid; a teammate built the nurse app. Core loop worked, but the mental model was wrong — managers treated scheduling as a task, not a strategy. That insight reshaped my dashboard in v2.1.
I led branding end-to-end. Explored many logo directions, landed on a purple-dominant palette with a bar-chart icon. Built the design system all three designers used.
I redesigned the dashboard around action items. A teammate built the Shift Marketplace flows against the system model I defined. Templates, admin, and the request system all came together in this round. Weekly crits kept surfaces aligned.
All three designers converged. I led the consistency pass — ensuring admin, requests, and nurse app followed the patterns from the manager core. Comprehensive dev handoff across every surface.
Three designers, seven months, one cohesive product. I owned the manager core and the system architecture everyone designed against.
Three designers covered a massive surface because the architecture was shared. User flows, component patterns, and naming conventions upfront meant everyone could work independently while staying cohesive.
FigJam caught more problems than any wireframe review. Understanding the system before designing the screens made every iteration faster.
The schedule grid worked once we stopped trying to make one layout answer every question. "By area" and "by staff" each did one job well — clearer than a single view with ten filters.
Users had muscle memory. Every improvement had to justify the disruption — especially where getting it wrong means an understaffed ward.