GearUp

GearUp

Enterprise IoT

Automotive

B2C + B2B

One dashboard.
Eight integrated systems.
One vehicle, three readers.

One dashboard.
Eight integrated systems.
One vehicle, three readers.

I led design for a connected-vehicle platform that translated raw telemetry into decisions - for drivers who've never popped the hood, for service centers deciding who to call, and eventually for fleet managers watching dozens of vehicles at once.

Role

Role

Lead UX + Frontend +
Mobile development

Platform

Platform

iOS · Android · Web

Team

Team

5 - 7 designers led,
25+ mentored

Client

Client

Enterprise · Oil & Gas

01 - The Problem

01 - The Problem

Most car owners don't want more data. They want to know if something's wrong.

Most car owners don't want more data. They want to know if something's wrong.

An automotive enterprise wanted to bring more customers into their service centers - not by advertising harder, but by helping people actually understand their own vehicle. If the app helped drivers understand their car, they'd visit service centers when they actually needed to, not after something broke.

For someone who's never opened the hood, the entire product came down to one question: is my car okay right now, and what should I do about it?

The complication - a vehicle doesn't speak in plain language. It speaks in fault codes, sensor thresholds, and raw GPS traces.

The design challenge was translation: make complex telemetry feel simple, actionable, and trustworthy.

An automotive enterprise wanted to bring more customers into their service centers - not by advertising harder, but by helping people actually understand their own vehicle. If the app helped drivers understand their car, they'd visit service centers when they actually needed to, not after something broke.

For someone who's never opened the hood, the entire product came down to one question: is my car okay right now, and what should I do about it?

The complication - a vehicle doesn't speak in plain language. It speaks in fault codes, sensor thresholds, and raw GPS traces.

The design challenge was translation: make complex telemetry feel simple, actionable, and trustworthy.

02 - Scope

02 - Scope

Not one app. One ecosystem.

Not one app. One ecosystem.

The product connected to eight-plus integrated services - each with its own data shape, failure modes, and business logic - and had to feel like a single calm experience regardless of what was happening underneath.

The product connected to eight-plus integrated services - each with its own data shape, failure modes, and business logic - and had to feel like a single calm experience regardless of what was happening underneath.

01

OBD-II Bluetooth onboarding

02

Maintenance & diagnostics

03

Trips & driver score

04

Milestones & badges

05

Emissions testing

06

Roadside assistance

07

Geofencing & place detection

08

Voice assistance

09

Digital glovebox

10

Vehicle insurance scoring

11

Nearby services & search

12

Coupons & promotions

01

OBD-II Bluetooth onboarding

02

Maintenance & diagnostics

03

Trips & driver score

04

Milestones & badges

05

Emissions testing

06

Roadside assistance

07

Geofencing & place detection

08

Voice assistance

09

Digital glovebox

10

Vehicle insurance scoring

11

Nearby services & search

12

Coupons & promotions

01

OBD-II Bluetooth onboarding

02

Maintenance & diagnostics

03

Trips & driver score

04

Milestones & badges

05

Emissions testing

06

Roadside assistance

07

Geofencing & place detection

08

Voice assistance

09

Digital glovebox

10

Vehicle insurance scoring

11

Nearby services & search

12

Coupons & promotions

Home dashboard - six surface areas, each backed by a different integrated service

03 - Design Decisions

03 - Design Decisions

Each decision started with a user tension. Each answer cascaded through the whole product.

Each decision started with a user tension. Each answer cascaded through the whole product.

Decision A

Decision A

Status Ring - safety signal without location tracking

Status Ring - safety signal without location tracking

The core tension: family members wanted to know their loved ones were safe while driving. But nobody wants to feel watched. Showing location data felt like surveillance. Hiding everything felt unsafe.

The answer: show status, not coordinates. A coloured ring around each family member's avatar - green (safe), amber (alert), red (needs attention) - communicates driving state in one glance without any location data. Tapping it surfaces a contextual update: trip summary, a licence expiry reminder, feedback suggestions.

The core tension: family members wanted to know their loved ones were safe while driving. But nobody wants to feel watched. Showing location data felt like surveillance. Hiding everything felt unsafe.

The answer: show status, not coordinates. A coloured ring around each family member's avatar - green (safe), amber (alert), red (needs attention) - communicates driving state in one glance without any location data. Tapping it surfaces a contextual update: trip summary, a licence expiry reminder, feedback suggestions.

Status ring states: idle · new trip update · reminder · all caught up

Status ring states:
idle · new trip update · reminder · all caught up

Why this cascaded: This single decision changed notification architecture, widget design, backend prioritisation, and the home screen information hierarchy - all to serve one insight: what matters to families isn't location, it's status.

Why this cascaded: This single decision changed notification architecture, widget design, backend prioritisation, and the home screen information hierarchy - all to serve one insight: what matters to families isn't location, it's status.

Decision B

Decision B

Driver Score — a diagnosis, not a verdict

Driver Score — a diagnosis, not a verdict

A single 0 - 100 score tells you nothing actionable. "Your score dropped to 72" doesn't help anyone improve. The question was: how do you make a metric feel like a coaching tool, not a judgment?

A single 0 - 100 score tells you nothing actionable. "Your score dropped to 72" doesn't help anyone improve. The question was: how do you make a metric feel like a coaching tool, not a judgment?

Split the score into dimensions. Efficient driving, safe driving, trip frequency - each visible separately, each with a trend. Drivers could see exactly which habit was moving the needle instead of watching a number change for no visible reason.

Split the score into dimensions. Efficient driving, safe driving, trip frequency - each visible separately, each with a trend. Drivers could see exactly which habit was moving the needle instead of watching a number change for no visible reason.

Score view - overall gauge + behaviour breakdown (Behaviour / Safety / Efficiency tabs)

The score wasn't a black box

The score wasn't a black box

The gauge and the trip log were the same data - two zoom levels apart. A driver could see why Thursday's trip pulled their score down: two harsh accelerations, one speeding event, one phone pickup. Making events traceable to the score was what turned Driver Score from a mystery metric into something people trusted enough to act on.

The gauge and the trip log were the same data - two zoom levels apart. A driver could see why Thursday's trip pulled their score down: two harsh accelerations, one speeding event, one phone pickup. Making events traceable to the score was what turned Driver Score from a mystery metric into something people trusted enough to act on.

Key principle: Show the cause, not just the effect. Transparency earns trust faster than any score alone.

Key principle: Show the cause, not just the effect. Transparency earns trust faster than any score alone.

Decision C

Decision C

Milestones & Badges - progress that keeps you opening the app

Milestones & Badges - progress that keeps you opening the app

A good score alone doesn't change behaviour. People need a reason to open the app on an ordinary Tuesday - not because something is wrong, but because they're close to the next milestone.

A good score alone doesn't change behaviour. People need a reason to open the app on an ordinary Tuesday - not because something is wrong, but because they're close to the next milestone.

Badges were made repeatable. "Smooth Operator" could be earned every month - turning a one-time reward into an ongoing habit loop. Milestones tracked real-world progress: 500 miles, 1000 miles, a third vehicle onboarded.

Badges were made repeatable. "Smooth Operator" could be earned every month - turning a one-time reward into an ongoing habit loop. Milestones tracked real-world progress: 500 miles, 1000 miles, a third vehicle onboarded.

Milestones: real-world usage streaks with completion dates - Badges: repeatable (×12, ×10, ×7 earned) alongside locked ones still to unlock

Decision D

Decision D

Goal-setting - conversational, not a form

Goal-setting - conversational, not a form

Drivers don't engage with dropdown forms. They engage with decisions they feel they made themselves. Instead of asking users to fill fields, I designed a sentence-builder: "I want to reduce speeding by 10% for the next 15 trips with sensitivity level strict."

Drivers don't engage with dropdown forms. They engage with decisions they feel they made themselves. Instead of asking users to fill fields, I designed a sentence-builder: "I want to reduce speeding by 10% for the next 15 trips with sensitivity level strict."

The system also suggested goals based on actual driving patterns - so the goal felt personal, not prescribed. Once set, goals tracked live alongside the driving data that caused them.

The system also suggested goals based on actual driving patterns - so the goal felt personal, not prescribed. Once set, goals tracked live alongside the driving data that caused them.

Why this mattered: Users who constructed their goal themselves showed 3× higher retention than those who skipped goal-setting. The interaction pattern - writing it rather than selecting it - created ownership.

Why this mattered: Users who constructed their goal themselves showed 3× higher retention than those who skipped goal-setting. The interaction pattern - writing it rather than selecting it - created ownership.

Goal flow - empty state · personalised · sentence builder · live tracking

UX: Conversational approach

04 - Scaling the system

04 - Scaling the system

One system, four brands, different rules

One system, four brands, different rules

After launch, the same core product had to ship again - and again - under different brand names, each with its own regulatory constraints. Some regions couldn't show emissions data at all. Some partners didn't offer roadside assistance. One brand's insurance partner scored risk differently from another's.

Instead of forking the product per brand, I built brand and feature governance into the design system itself - same components, same interaction patterns, different theme and feature flags per deployment. A new brand variant went from a multi-month redesign to a configuration exercise.

After launch, the same core product had to ship again - and again - under different brand names, each with its own regulatory constraints. Some regions couldn't show emissions data at all. Some partners didn't offer roadside assistance. One brand's insurance partner scored risk differently from another's.

Instead of forking the product per brand, I built brand and feature governance into the design system itself - same components, same interaction patterns, different theme and feature flags per deployment. A new brand variant went from a multi-month redesign to a configuration exercise.

05 - The pivot

05 - The pivot

Same vehicle data.
A completely different reader.

Same vehicle data.
A completely different reader.

Consumer adoption was hard to earn - most people won't download an app just for their car. The business shifted toward fleet operators, who had a much clearer reason to care: visibility across dozens of vehicles at once, not just one.

I designed a parallel, web-first fleet management platform on the same underlying data model. A driver's single trip in the consumer app became one row in a fleet manager's risk report. The interface changed completely - dashboards instead of trip cards, aggregates instead of individual scores - but the translation logic underneath, raw signal to actionable insight, stayed the same.

Consumer adoption was hard to earn - most people won't download an app just for their car. The business shifted toward fleet operators, who had a much clearer reason to care: visibility across dozens of vehicles at once, not just one.

I designed a parallel, web-first fleet management platform on the same underlying data model. A driver's single trip in the consumer app became one row in a fleet manager's risk report. The interface changed completely - dashboards instead of trip cards, aggregates instead of individual scores - but the translation logic underneath, raw signal to actionable insight, stayed the same.

06 - Team & Leadership

06 - Team & Leadership

Design had no fixed lane in this team

Design had no fixed lane in this team

In an agile org where roles were fluid, I led design directly, stayed close to how it got built, and mentored across functions - not just within the design team.

In an agile org where roles were fluid, I led design directly, stayed close to how it got built, and mentored across functions - not just within the design team.

5-7

5-7

Designers led directly across consumer and fleet platforms

Designers led directly across consumer and fleet platforms

25+

25+

Cross-functional designers and engineers mentored over four years

Cross-functional designers and engineers mentored over four years

2

2

Parallel platforms kept in sync - mobile-first consumer, web-first fleet

Parallel platforms kept in sync - mobile-first consumer, web-first fleet

Thoughts - What I'd do differently

Thoughts - What I'd do differently

If I designed this today I'd push that translation one step further. Instead of "harsh braking detected," show the pattern: "harsh braking is up 40% on Thursday evenings." With the reasoning visible, not just the alert. That's the shift from reporting what happened to explaining why - and it's the design problem I want to work on next.

If I designed this today I'd push that translation one step further. Instead of "harsh braking detected," show the pattern: "harsh braking is up 40% on Thursday evenings." With the reasoning visible, not just the alert. That's the shift from reporting what happened to explaining why - and it's the design problem I want to work on next.

Create a free website with Framer, the website builder loved by startups, designers and agencies.