A Bullet-Proof 5-Step Approach to Describing Experiences on Your Resume

Yitian Zou
The Startup
Published in
5 min readSep 9, 2020

How many times have you gotten the question “Tell me more about your work experience at …” or “Describe an experience when you had to overcome a technical challenge”? Is your answer solid and bullet-proof every single time you have to respond? If not, I have a simple but powerful 5-step approach to describing experiences in the context of a software engineering interview.

The 5-Step Approach:

  1. Give background information.
  2. Why did you do the project?
  3. Which tech stack did you use?
  4. What was your individual contribution? What unexpected technical challenge did you have to overcome?
  5. What did your project accomplish in terms of results?

Let’s break down these five steps into more detail.

Background Information

  • Which company did you work for? For which class or organization did you build the project? Which team were you on?
  • How long did it take to finish the project? Were you on a team or were you working solo?
  • What does the company do? What was the class or organization about?

I interned at Uber as a software engineering intern in the Fall of 2019. I was on the Order Platform team, which was responsible for ingesting and post-processing incoming data payloads. Every day, we process hundreds of thousands of terabytes of data coming from front end apps like Rides and Eats.

Why?

You have to drive home the impact of the project. Why did your company or organization want you to work on this project? Class projects are less optimal for this 5-step approach, but you can try to re-frame it around what topics the class was trying to teach. Some ideas for explaining the rationale behind the project:

  • Were you trying to solve a business need? How many employees were experiencing this problem, and how frequently? How many man-hours or dollars did you save by implementing this project?
  • Were you solving a customer pain point? How many users did your project benefit? Are there customer ratings, survey results, or other metrics that help to quantify your impact?
  • Was your organization trying to empower a certain segment of the population, or do something good for the community?
  • Were you working on a tool that would increase developer productivity by de-duplicating coding efforts? Does your project centralize a particular functionality or feature? Is there an aesthetic redesign that makes the tool friendly to use for either employees or customers?

We publish the processed data payloads onto a stream that other backend teams at Uber can subscribe to. However, most teams only require a small subset of the datastream, eg. the Risk team only cares about trips flagged with a security issue. Because of this, each team has to individually implement its own filtering logic to filter out the irrelevant data. Eventually engineers realized that there was a lot of duplicated efforts, so our team decided to launch a new centralized service to implement filtering logic. The other teams would subscribe to my service with their filtering preferences, and the service would give them only the payloads relevant to their workflow.

Tech Stack

This section should be straightforward.

  • Which programming languages did you use for the backend, frontend, and/or middleware?
  • Did you use frameworks or libraries?
  • What kind of database were you interacting with?
  • Did you have to put your data into message queues or streams? Manage configurations or dependencies?
  • Did you use continuous integration? Testing libraries? Deployment frameworks?
  • How did you monitor for errors after deploying to production?

Programming language: Go
Interface definition language: Thrift
Configuration management: Flipr
Dependency injection: UberFX
Database: Uber Schemaless (distributed key-value storage, sharded mySQL)
Message queues: Kafka
Data serialization format: Protobuf

Individual Contribution + Unexpected Technical Challenge

This is really the meat of your entire description. You have to make it very clear which part was your work, instead of the work of your teammates and classmates. Use pronouns to clearly denote which part was your individual contribution.

On the unexpected technical challenge — make sure this is a real challenge. Learning a new language or framework is not the best example. Try to think deeper than that. Did you have to deal with inconsistent data models? Legacy code whose developers left the company long ago? Non-existing documentation? Pre-existing code that is buggy and untested? Working cross-functionally with many other roles or teams? Working on a different part of the stack than your usual expertise? Changing the architecture for scaling purposes? Doing a lot of independent research to discover solutions to unsolved problems? Really sink into the details here.

At the time, the Uber Engineering organization was in the middle of a data model migration from the Trips model to the Orders model. Instead of the Trips model which just consists of a single trip, we wanted the new Orders model which consists of 1 trip to the restaurant, 1 trip to the customer’s house, and an associated job (delivering food to the customer). This was to account for Eats becoming a much more prevalent part of the business. Different teams were in different stages of implementing the migration, so data schemas often didn’t line up from team to team, or from the documentation to the actuality. I had to go in and talk to multiple teams to clarify their assumptions about the data model and make sure my service worked for them in an agnostic way. Even though many backend engineering teams were in a state of flux in regards to the Trips -> Orders data model transition, I was able to successfully complete my project to subscribe and filter the incoming data stream.

Result

Ideally your project was completely finished, tested, deployed, and saved the company millions of dollars. In the absence of any of the above, try to focus on the successful completion of the project and positive feedback from senior management. Talk about any opportunities you had to present the work to a panel. Did you improve the performance of a particular functionality? Write up the documentation and/or blog post? Complete the project ahead of deadline? Help out with extra tasks during your internship or project? Gave a live demo of the project to a large group of people? Anything that indicates your ability to both write about and verbally communicate about your project to a group of people is a positive signal to your interviewer.

By the end of my 3-month internship, I successfully integrated my datastream selection service with the Risk team to help them reduce engineering efforts needed to filter their input stream. My project also helped them to reduce their query execution time for input collection by close to 50%.

Try using this 5-part approach on any of the work experiences or projects on your resume today! Feel free to jot down some bullet points for each of the 5 parts, and practice going through them fluidly as if you are in a real interview situation. I can guarantee that this formula will help you to achieve more detailed descriptions and better storytelling.

--

--