176
Forward Deployed Software Engineer at Palantir4 years ago
Some additional questions:
- Does it vary between big companies and small companies?
- Do you need to work a lot to be a high performer?
28.8K28.8K Views
88 Comments
- 132Alex ChiouRobinhood, Meta, Course Hero, PayPal4 years agoThis is going to vary a lot across teams/orgs/companies, so I'm going to start with a couple commonalities I've noticed across low performers in general:
- Didn't take feedback well - This led to them being unable to course correct, which was just asking for trouble.
- Uncollaborative - I don't think I have ever seen an engineer who was very active socializing and working well with other members of the team (asking great questions, helping them out) also be a low performer. When I saw engineers get cut for performance, they were either toxic and actively didn't get along with teammates or were more lone wolves that stayed in their own corner and did their own thing.
- When it comes to big companies, I've seen low performance from poor communication and code quality (on top of the above 2 things). Expanding on the poor code quality portion, they often had bad attention to detail in general.
- In small companies, I feel like it's more about code velocity, since that's a much higher leverage thing to do there, especially in startups. However, smaller companies have a ton of variance, so this won't be true a lot of the time - I know small companies that actually do value code quality over speed.
- Generally yes, but it's not required. I am assuming the more "traditional" definition of working hard meaning a decent amount of hours.
- Some companies equate many hours of work to quality of work, which is rough.
- In the end, software skill is largely a matter of doing, which requires time. This means that it's inherently hard to become a good software engineer without spending a lot of time. I've rarely seen software engineers who just "got it" and were able to have tons of impact and growth while only working 2-4 hours per day or something.
- 90Philip SuEx-Microsoft, Ex-Meta, Ex-CEO of tech nonprofit4 years agoTo riff on Anna Karenina, great performers are all like; every poor performer is poor in their own way.Somewhat tongue-in-cheek, but these things are all true of high performers:
- Higher impact than others of the same level. (Remember, all performance is relative. Any high performer would be a complete dog if you promoted them to the right level.)
- Responsible / reliable. You don't doubt they'll get done what they say they will.
- Great collaborator. Increasingly fewer companies continue to value high-impact jerks.
- Great at self-improvement. Alex's comment about taking feedback is spot-on here. The best performers are self-aware, accept others' feedback, and implement feedback effectively.
- Icarus. People who ask to be promoted too aggressively will likely land at a level they can barely compete in. Since all performance is relative, getting promoted too quickly is one of the fastest ways to become a poor performer.
- Self-unaware. There's a t-shirt that says, "The only common thing in all your failed relationships is you." Setting the joke aside, there's some real wisdom in there. If you could instantly accept and implement any piece of feedback given to you, you'd be an amazing superstar. The fact is that people don't accept feedback half the times, and the other half, they struggle with implementing said feedback.
- Motivationally challenged. "There are no boring things. Only boring people." Anybody who thinks it's their manager's job to make their job interesting is going to struggle long-term. Smart people are curious and they find the interest in nearly everything. You need to have your own goals and a strong drive to succeed.
- Lackadaisical. If you're just as smart as everyone else, and you work just as hard as everyone else, you're average. By definition — not being cheeky. When I started at Microsoft, I had a sleeping bag in my office and worked ridiculous hours. While I now view that period of my life as foolish, you can bet I outperformed everyone else my level, and by a significant margin. Anyone telling you that you can Have It All™ — work only 40 hours a week, marry a supermodel husband/wife, have IPO after IPO fall on your head — is selling something. You will outperform others only through three means: 1. luck, 2. talent, and 3. hard work. You can't control 1 or 2.
- 51
Seed ZengStaff Software Engineer @ DoorDash, ex-FB, ex-Klaviyo4 years agoThis is a good question but also very generic. It really depends on the level, the context and the priorities of team. The expectations & areas of focus are very different for different levels.If I must generalize, a "high performer" are able to do two things compared to a "low performer"- be self sufficient and able to drive large changes on her/his own.
- be able to share their learnings with others and increase the team efficiency as a whole.
- 45Alex ChiouTech Lead @ Robinhood, Meta, Course Hero4 years agoTaro has come a long way since I originally commented on this post, so I have a bunch of new thoughts. In particular, I didn't cover high-performers too much before, so I'll do it now.When it comes to high performers, there are 2 big core traits I have noticed:
- They are exceptional at learning from others from them, both directly and indirectly.
- They develop higher-level skills that are applicable everywhere across any team, any tech stack, and any given situation.
Learning Through Osmosis
By being able to quickly absorb good behaviors, expertise, and skills from their peers, this makes it so that once a high-performer finds a great team, they are going to grow like a rocket ship. Here are some excellent resources covering this:- Use Code Review Feedback For Hypergrowth - Meta Prodigy Engineer Story
- This Is How You Get Feedback - Making The Process Smooth
- Suppress Your Instincts And Treat All Feedback As A Gift
- Properly Learning From Software Engineers More Senior Than You
Developing Better Skills
What would you rather have:- 1 skill that makes you tremendously useful in 1 type of situation?
- 10 skills that make you at least moderately useful in 1,000+ different types of situations?
- 38Rahul PandeyTech Lead/Manager at Meta, Pinterest, Kosei3 years agoI'll illustrate high performance with the story of my friend from college. We were taking the classic Stanford weeder class, CS107, systems programming in C. This class was extremely difficult since it was the first time we were exposed to:
- Writing sophisticated C code
- Managing our own memory, e.g. malloc() and free()
- Using the command line and CLI-based text editors like vim/emacs
- Figuring out how to compile and run programs with Makefiles
- Proper decomposition led to focus. At a certain complexity scale, you need to break problems down and tackle them one at a time. You need to not only figure out the decomposition, but also how the pieces fit together once you solve each piece.
- Attempting everything results in achieving nothing. You can't learn AI, blockchain, and the newest JavaScript framework simultaneously.
- Steady progress led to deeper understanding. One pernicious trait of weaker engineers is second-guessing themselves: they'll think component A is responsible for a bug, but then some other data leads them to another conclusion.
- Same thing with building systems. You want to make methodical progress so that you emerge with a rock-solid understanding of the tool/system (can you teach others?)
- 27
PresidentComstock Software, Inc4 years agoIn both cases, it comes down to business impact. Write and rank your list of priorities by business and economic impact. Identify the highest-ranked priorities. Talk about your assessment of business impact with your manager. Work on them all the time. Do not let the tyranny of the urgent keep you focused on low-value work. - 5Akhilesh GandotraSMTS at VMWare2 years agoThis is just a personal answer which I have seen in many high performers:
- They try to be very much involved in meetings/discussions. They listen to what people are saying and do have some valuable questions and points to add up in the discussion.
- They are always well prepared in meetings. Easily able to answer questions/ doubts of participants.
- They invest their times reading the codebase and introduce improvements while working on the project.
- Will time they will keep trying to increase the complexity of the tasks in hand. Often times we stick with keeping up the same tasks at work. But these people will keep finding better work for themselves and add up their contribution.
- 1John VandivierStaff Software Engineer @ Guideline2 years ago
- a high performer makes impact
- a high performer is perceived as making an impact
- a low performer doesn't do (1 AND 2)
Senior Software Engineer at Self
3 years ago
9.1K views
4 comments
Mid-Level Software Engineer at Yahoo
4 years ago
6.9K views
2 comments
Mid-Level Data Engineer [L4] at Google
5.1K views
7 comments
Anonymous User at Taro Community
Software Engineering Intern at Meta
2 years ago
4.3K views
Explore Interview QuestionsTaro 75Google Interview QuestionsMeta Interview QuestionsAmazon Interview QuestionsApple Interview QuestionsNetflix Interview Questions
Explore Interview ExperiencesOpenAI Interview ExperiencesAnthropic Interview ExperiencesPerplexity Interview ExperiencesWindsurf Interview ExperiencesMistral AI Interview Experiences