A purpose-built mobile browser app that replaced a slow, third-party browser tool for ISP field technicians, turning multi-step installations into a guided flow, from the doorstep to a verified connection.
This project was built for a large US Internet Service Provider. When a customer places a residential or small-business order, it has to travel through several systems before a technician ever knocks on a door.
Customer places a residential or small business internet order.
Order lands in Dynamics, the system of record for bookings.
Manager assigns the job by service area and technician availability.
Technician receives, completes, and closes the job, on site.
The old version of that last step was a third-party web app, opened inside a mobile browser. It worked, technically. In practice, it was slow, hard to tap through in the field, and quietly created rework for everyone downstream.
The new technician tool is still a mobile browser app: no app-store install, no device provisioning overhead for IT. What changed is everything about how it's built: purpose-designed for the job instead of adapted from a desktop tool, and optimized for one-handed use in the field.
Pulled from requirement-gathering sessions with technicians and managers: the recurring complaints behind the redesign.
Browser performance was slow, especially on weaker in-field signal.
Serial numbers and MAC addresses were entered manually and often wrong.
No fast way to see the day's upcoming appointments at a glance.
Jobs couldn't be transferred to a nearby tech with open capacity.
Installations required too many manual, repeatable steps.
Customer info was hard to pull up while standing on-site.
Manager notes on a booking were easy to miss or never seen.
No real-time help: a hard issue meant calling around, not chatting in-app.
Install time and customer experience varied tech to tech.
Every screen had to work for the person standing at a customer's router, and the person managing thirty of them at once.
On the road most of the day, moving between jobs against an SLA clock. Needs information fast, hands mostly full, sometimes on a ladder or in a crawl space.
Works primarily in Microsoft Dynamics, but needs visibility into the Technician App to keep bookings moving and unblock technicians in real time.
The real app menu: six top-level areas, each covering a distinct part of a technician's day, from the actual job in hand to the tools and recognition around it.
This is the core of the app: the sequence a technician runs on every install. Click a step to walk through it the way a technician would.
The finished UI for the home menu, booking management, device activation, and facility lookup: the real screens technicians use in the field.
High contrast, large touch targets, and a status language that reads clearly whether a technician is checking their phone in a dim basement or bright sun.
Working within an existing system: the company already had brand and UI guidelines in place, so my job was adapting them for a field-technician context rather than inventing new patterns from scratch. I built the components on top of Ionic's component library to keep them implementation-ready, since engineering builds the final UI in Angular.
Fallback to manual entry with format validation, so a damaged label doesn't stall the whole job.
Steps queue locally and sync once connectivity returns, so nothing has to be redone.
Transfer flow shows nearby technicians with open capacity, keeping the manager's notes attached.
App surfaces a contextual next step instead of a raw error, before escalating to specialist chat.
Early concepts leaned on richer micro-interactions during the scan and activation steps. Working with engineering, we scaled that back.
"I traded a few polish points for a build that performed reliably on older field devices, shipped faster, and stayed easy to maintain."
A few of the constraints I was actually designing against, not just the clean version that makes it into a final flow.
The client wasn't fully certain of requirements upfront, so the flow went through multiple rounds of iteration as expectations sharpened, not one clean pass from wireframe to final UI.
Balancing a fast, one-handed field experience for technicians against the oversight managers needed, without splitting into two disconnected products.
The company's brand and component guidelines were already set. That meant less room for novel patterns and more focus on adapting them well for a field context.
Bookings lived in Microsoft Dynamics, so every flow had to respect data and status coming from a system outside the team's control.
Gloves, glare, patchy signal, and one free hand meant usability rules that never show up in a typical desk-based usability test.
Some interactions had to be simplified once we checked what was realistically buildable in the engineering team's Angular implementation and timeline.
This wasn't a one-and-done redesign. It started as a from-scratch mobile browser experience and has stayed in active development ever since, adding device coverage as the ISP's product line grew.
Replaced the old third-party browser tool entirely: new information architecture, a guided booking-to-activation flow, and a UI actually designed for a technician's hands, not adapted from a desktop admin panel.
Once the core flow proved out in the field, the same patterns extended to more of the technician's day-to-day work.
New device types meant new edge cases: more branching activation flows, without losing the simplicity technicians relied on.
The platform continues to grow: new device types, new workflows, and new features are still being designed and added as the ISP's product catalog evolves.
Directional outcomes reported by technicians and managers after rollout. Drop in real numbers from the project if available.
Pulled directly from Microsoft Clarity, tracking the technician app in production: real sessions, real recordings, real friction points.
Note on the numbers below: these screenshots were captured while sitting in the IST timezone. The field technicians using this app work in PST and MST, hours behind IST, so at the moment of capture, most of their shift hadn't started yet. That's why "live users" reads low here; session totals and event counts for the full day are unaffected.
Requirement sessions with technicians surfaced constraints (gloves, glare, one free hand) that no stakeholder deck would have.
Cutting the micro-interactions with engineering didn't weaken the app. It made the core flow faster and more dependable, which mattered more in the field.