证明您履历表经验的防弹五步法

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.

我于2019年秋季在Uber实习,担任软件工程实习生。我在Order Platform团队工作,该团队负责提取和后处理传入的数据有效负载。 每天,我们都会处理来自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.

我们将处理后的数据有效载荷发布到Uber的其他后端团队可以订阅的流上。 但是,大多数团队仅需要数据流的一小部分。 风险小组只关心标记有安全问题的旅行。 因此,每个团队都必须单独实施自己的过滤逻辑以过滤掉不相关的数据。 最终,工程师意识到进行了很多重复的工作,因此我们的团队决定启动一项新的集中式服务,以实施过滤逻辑。 其他团队将使用其过滤首选项订阅我的服务,并且该服务将仅向他们提供与其工作流程相关的有效负载。

科技栈 (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: GoInterface definition language: ThriftConfiguration management: FliprDependency injection: UberFXDatabase: Uber Schemaless (distributed key-value storage, sharded mySQL)Message queues: KafkaData serialization format: Protobuf

编程语言:GoInterface定义语言:Thrift配置管理:FliprDependency注入:UberFX数据库:Uber Schemaless(分布式键值存储,分片mySQL)消息队列:Kafka数据序列化格式: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.

当时,Uber工程组织正处于从Trips模型到Orders模型的数据模型迁移的中间。 而不是仅由一次旅行组成的“旅行”模型,我们希望使用新的“订单”模型,该模型包括到餐厅的一次旅行,到客户的房屋的一次旅行以及与之相关的工作(向客户提供食物)。 这是因为Eats成为业务中更为普遍的部分。 不同的团队处于实施迁移的不同阶段,因此,数据模式通常不会在团队之间,从文档到实际情况下保持一致。 我不得不与多个团队进行交谈,以澄清他们对数据模型的假设,并确保我的服务以不可知的方式为他们服务。 即使许多后端工程团队在Trips-> Orders数据模型转换方面处于不断变化的状态,我仍然能够成功完成我的项目,以订阅和过滤传入的数据流。

结果 (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%.

在结束为期3个月的实习后,我成功地将我的数据流选择服务与Risk团队集成在一起,以帮助他们减少过滤输入流所需的工程工作量。 我的项目还帮助他们将输入集合的查询执行时间减少了近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.

立即尝试将这种5部分方法用于简历上的任何工作经验或项目! 随意记下这5个部分中的每个要点,并练习流畅地遍历它们,就好像您处于真实的采访环境中一样。 我可以保证,该公式将帮助您获得更详细的描述和更好的故事讲述。

翻译自: https://medium.com/@yitianzou/a-bullet-proof-5-step-approach-to-describing-experiences-on-your-resume-5e7875c4f5e

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值