Shaping the Next Generation's Commute

EXECUTIVE SUMMARY

In 12 short weeks I battled to empower Amazon’s return-to-office scheme by developing their employee carpooling service. Co-operation with an Agile team of developers allowed me to hand off a functional MVP to our team of clients. ~95 hours worth of brainstorming sessions, research, design and rapid prototyping were poured into reducing the cost of commuting, helping employees be more productive at work, and boosting employee morale.


Primary role:

UX Designer & Frontend Developer

Time frame:

Jan–Apr 2025

Team size:

8


Background

Imagine trying to get your 1.56 million employees back into the office. Andy Jassy, CEO of Amazon Inc., has pushed for a full return to in-person work after noticing advantages in a phased transition. While you might not be Andy Jassy, you surely can imagine the logistics this involves. It takes the form of the all-dreaded commute.

The Challenge

Commuting is an Overhead Cost

Amazon noticed its employees driving to work through the same congested areas along similar routes. At first glance, the traditional commute had pointed to various problems:

But these issues were second to one that was hard to miss — driving proved to be mentally draining. The morning peak of mental alertness was wasted by employees in getting to the office. Productivity levels suffered when employees had already spent much of their focus on low ROI activities.

Kick-Off

Heroes of our Story

Three innovative software developers based out of the Ireland HQ had brainstormed a solution to Amazon’s woes:

With a vision in mind, the trio reached out to the SwEng Industry Projects program at my university — Trinity College Dublin. The initiative connects future engineers with companies to work together on real-life industry projects. These are proposed & mentored by select partners like Amazon. Having seen their project proposal, I was one of eight others to share their vision and act on it over the course of 12 weeks.

A Vision & Objective Worth Sharing

So, what was their vision?

Frances, Flavia and Paula (our partnered clients) saw potential in a cross-platform mobile application enabling a carpooling-to-work initiative. Amazon employees would thus be able to search for and offer rides to the office together with other employees at the firm.

The objective of this project encompassed the client being able to organize carpools with little effort through the app. In direct response to the identified problems, the project would:

Defining the Scope

Rooting for Clarity

The team was assembled. The vision and objective were settled. But, what now? We had one big gap separating us from knowing what features to build or leave out. The team was missing concrete product requirements.

Enter the Competitive Benchmark. Our first team meeting had me curious for initial impressions of how other carpooling services were approaching their software design. A weekend’s worth of work had me investigating two crucial aspects — the ride searching and ride posting features of comparable mobile apps.

Screenshot of competitive benchmark
Three carpooling apps were scrutinized from the home page down to the ride confirmation — using a set of heuristic techniques to appraise their UI & UX

The Discovery

The level of qualitative insights we got answered many unknowns:

Screenshot of insights formed into mindmap

Setting Product Requirements

In no time I got the team brainstorming on wider spans. After a quick debrief on the Competitive Benchmark, the team & clients were ready to sit down and collectively agree on the product requirements.

All Hands on Deck

Thinking of the Users

You need time for people to agree on something. We were already into Week 3 (out of 12) by the time the product requirements list was given the stamp of approval. And we had just 8 days to put together something tangible for our 1st Sprint Review.

Photo of team at client meeting Photo of teammate writing on whiteboard
Settling on the product requirements with our clients

Now, I tend to follow the UX process quite religiously. I’m a big believer in good research generating great products. For this reason, I wanted to push for more data — by conducting usability tests on carpooling apps I benchmarked. Did these apps match the mental models of users?

I had little time to answer that question. The team leader wanted me to move from research into design mode.

So I asked myself — “why not use the apps I benchmarked to influence our design decisions?” Given their longstanding availability and considerable user base, I hypothesized that they already underwent extensive user trials & feedback. Their information architecture (IA) must hence match the user’s mental models with a high level of confidence.

Creating the Scaffolding

There was one question on everyone’s minds: “How do we structure the app? Where do we even begin?” Inspired by the apps we benchmarked, I began mapping our own IA.

A User Flow diagram was the solution. At a high level, it proved practical in laying out various interactions & screen states. From the moment the user created an account, down to their ride confirmation. The combination would dictate what the user encounters & when during their navigation.

Screenshot of user flow diagram
Every interaction & screen state was mapped out to give essential structure to our app

At a lower level, however, I wanted to break down the most common problem in stages. What was the user’s goal at each stage of our app? That’s why I split the app navigation into “sub-flows”.

Screenshot of sub-flow in user flow diagram
This instance of a sub-flow focused on the passenger’s concern for selecting their ride to the office

By Week 4, a completed user flow had constructed the IA — bringing us closer to the first interface designs of our app.

Iterating App Designs

Sketching was the way to go for rapid ideation over app designs. I often partnered with our frontend developer to incorporate frequent feedback into drafted designs for screens. It helped us avoid components debated as “too difficult” to implement down the line.

Incremental changes were also less likely to be disputed. We achieved quick agreement over design ideas — proving the power of working in an Agile environment. I delivered the sketches and my partner developed the screens in React.js.

Photo of sketches for app designs
Rapid ideation over app designs
Screenshot of native prototype being coded
Sketches were quickly developed into a native prototype to cover much ground ahead of the Sprint Reviews 2 & 3

Our dynamic held strong from Week 5 until almost the end of the project. I also found myself coding too! To meet tight deadlines while building frontend intuition, I took over smaller tasks I knew I could deliver.

A Respectable Finish

Finalizing the Prototype

For many weeks we had a steady stream of code pushing the native prototype to completion. It was by Week 10 when things started getting heated…

Our app worked. It was functional. It met a lot of criteria on the product requirements list. Except for one — “the users to find this experience as smooth as possible”. There was nothing smooth about the inconsistency of our UI design. As a consequence of rapid prototyping, we favoured functionality over user perception.

It was for THE COMMUTERS that we were building this app. We couldn’t deliver a confusing-looking product that would add to their mental exhaustion. The team would be solving one less problem motivating this project.

Adding Some Flair

I took it upon myself to deliver a well-rounded interface with just 2 weeks to go. It was time to leverage a design system.

I drew substantial inspiration from Google’s Material Design 3. Put together by their powerhouse of designers, I was in safe hands by covering 80% of Tapacar’s use cases with their readily-designed UI components. Of the tweaks I made were app-specific redesigns to components & adaptations to color tokens to match Tapacar’s branding.

Photo of components designed for the app
Google’s Material 3 components had been adapted to match Tapacar’s use case & branding — while being mindful of the contexts they’re presented in & how they respond to interactions

Had I designed a UI from scratch, the app would’ve never materialized its visual potential. It takes too much time to figure out spacing, typography, colors in a unified context by yourself.

The Solution

Wow, are you still reading?! You must be hooked to see the final result. I have something that won’t disappoint…

Presentation of app prototype with refined interface

Talk about a carpooling app now! Presenting Tapacar — the next generation of mobility to the office. Our MVP has the required capabilities you need to enjoy a pleasant commute:

SEARCH A RIDE

Passengers (i.e. employees in need of a lift) are able to search a ride by logging their destination and the date & time to leave at. They also input the number of seats to book for that ride. Results of rides offered by drivers are then presented. The user picks one and requests the driver’s confirmation before the booking is settled.

PUBLISH A RIDE

Drivers (i.e. employees looking to provide lifts) can offer a ride by logging their departure point, destination and time they will leave at. They also input the number of seats available for that ride. These parameters are used to publish their availability for offering a ride to others. This ride will be presented to any passengers searching for rides with similar parameters.

PASSENGER-DRIVER INTERACTIONS

Drivers have a say over what passengers to pick up. Each passenger must wait for the driver’s confirmation before they avail of the ride.

ECO REPORT

Drivers & passengers have a summary page outlining their energy/pollution savings as a result of carpooling activity. It acts as a tangible method for users to understand their impact on the environment.

Resolution

Making an Impact

The whole project behind Tapacar was motivated by three problems related to traditional commutes. How well does our solution target them? Let’s take another look with a fresh perspective:

KEY PROBLEM

SUB-PROBLEM #1

SUB-PROBLEM #2

SUB-PROBLEM #3

With these checkboxes ticked, our clients were delighted to see a well-grounded project that was handed off on the right tone.

What's Next

Twelve weeks offered us the opportunity to bootstrap a respectable MVP. However, we cut a lot of corners to meet tight deadlines. For one, we were left with no time to test our shiny digital prototype with our target audience. Let alone code it natively after a successful testing run.

As such, a usability testing would be long due. User feedback would need to be incorporated before the app rolls out and receives additional features.

What I Learned

Any project will have its setbacks, chaos and unpredictability. It’s the nature of the game. And we de-risked it as much as possible by following Agile principles backed by frequent Scrum meetings.

I’ve picked up valuable lessons on staying agile in a tight timeframe. If you want to win at the game, you must plan & research before anyone else. A finished Competitive Benchmark, for instance, should’ve been presented at the first team meeting. That’s a week’s time gained right there. Think you can do something else in that period? Conduct a usability test on competitors’ apps and leverage more insights to drive the design of a better-tailored solution. That eliminates a lot of unknowns, especially if Tapacar were to actually hit the markets. I would not let a real life product go without a testing session.

Photo of team

What questions do you have for me?

I would love to know what you think! If you want more context to show you what I can do for your business, let's do it over an interview.