I’m skeptical of all the talk of progress to make the world a better place. Sometimes I feel out of place in the tech industry because I don’t share the unqualified enthusiasm that I see when I read about new app ideas or the latest frameworks. While I do think about the future, my immediate focus is effecting change now for people who really need it. When I joined Uber’s driver growth team as an Android developer intern in January 2016, I wondered whether my work would directly impact people using the app.
The initial team updates, emails, and meetings were intriguing but enigmatic. I had a lot to learn—I had to adjust to the internal tools, libraries, and development methodologies—as my teammates asked questions about our features’ impact on driver partners. The entire driver engineering team dedicates itself to addressing the real-world impact of our app, from features to Uber Greenlight locations. I was excited to see how I would add to this. As I got my very first diff setup and landed after lots of feedback, I remember nervously sitting in front of the computer and hoping that nothing broke!
Earnings Page Redesign
As my internship progressed, more responsibility came my way. Collaborating with a backend engineer, a designer, and my mentor (every new hire gets paired with an onboarding buddy that helps to navigate the codebase and internal systems), we redesigned the earnings tab in the driver partner Android app. I refactored code into a more efficient implementation and used our UI library to build the various elements while others modified our backend earnings service to supply the necessary information. My first unit tests ensured the behavior of the elements on the page, and when the changes finally shipped, I felt a mild sense of disbelief. Millions of driver partners around the world saw how they were making money in a clearer way, and I was a key part of making that change.
The partner earnings page shows a breakdown of earnings components.
Next, I was tasked with representing cash earnings in the app for the first time. Working with the India Growth team on that feature gave me a chance to understand just how important this was to everybody at the company. I worked again with a small cross-functional group. I tested continuously, made sure the math in the earnings page added up, and checked that the icons clearly indicated earning type.
Cash earnings added to the earnings page.
My confidence grew and I would speak up more during meetings and planning. I influenced what I worked on, and I learned from the mistakes I made quickly, working hard to be better at what I did while contributing to the iterative feature design process.
Xchange Entry Point Development
For my final project as an intern, I implemented entry points and flows for the Xchange Leasing program in our Android driver app. Any driver signing up to our platform can now apply for the Xchange Leasing program from inside the application. Prior projects under my belt, I delivered something to the Vehicle Solutions team with minimal guidance.
I created a card in the home feed in the Android partner app. I learned about how we feed our cards through to the screen. I designed the card from scratch, repurposing some UI elements from previous cards, and vigorously tested everything. Finally, I worked with a backend engineer on Vehicle Solutions to ensure that information came through and that everything was set up properly. Here’s what the end result looked like:
To be frank, when I added this feature, I underestimated its potential impact. I thought its design and implementation was useful and that maybe I’d see some positive numbers from a data scientist—but I didn’t expect to see its tangible effects firsthand.
But one evening toward the end of my internship, I got into an Uber to go home. I usually talk with drivers to see what they think of the driver app and their overall experience. This driver’s story was different; he was a disabled veteran who previously couldn’t find any work. He was struggling to retain disability payments when he got his vehicle through Xchange Leasing. He told me that Uber had helped save his life. I’d never realized just how much the vehicle leasing program helped people without a qualifying vehicle who want to drive.
All I had done was introduce a new feed card to the app. It involved a little bit of basic design, a few hundred lines of code, and vigorous end-to-end unit tests. For many of the front-end features I worked on, the engineering was straightforward. But in a complex world, the impact of this simple idea on people’s lives is tremendous.
At Uber Engineering, I felt I had the power to make a change. My team was patient with me, accepted me, and gave me the chance to contribute to a movement that is only growing in importance: transportation as reliable as running water everywhere, for everyone. I got to work with talented engineers who develop inclusive and exciting software solutions that apply to Uber riders and drivers in over 400 cities around the world. Most impressively, I saw zero cases of progress for progress’s sake.
My advice for engineers interested in getting up and running at Uber? Your impact here will be significant to both Uber and the drivers who use it, even as an intern!
Nikhil Ramakrishnan studies electrical engineering at the University of Waterloo in Canada and interned on the Driver Growth team from January to May 2016.