1. 程式人生 > >What Makes a World-Class Engineer?

What Makes a World-Class Engineer?

As an engineering manager at Creative Market, my entire job description can be summarized in one statement: build a world-class engineering team. We want to make Creative Market into a world-class company with a world-class product and world-class engineers to build it.

The good news is that we already have a group of incredible engineers who make that job pretty easy. But the obvious questions must be asked: What would take this team (and each individual on it) to the next level? What are our strengths, and how can we maximize them? What are our weaknesses, and how can we improve them?

So, over the past couple of weeks, I’ve asked each of my engineers what they think our team does well and what we don’t do quite as well. Across the board, everyone pretty much agreed on our greatest strength: we are great at being excellent to each other.

Bill and Ted would be so proud.

Our engineering team is supportive, caring, kind, humble, and gosh-darn-it, people like us. That makes for an incredibly rare and positive environment. A lot of engineering organizations optimize for technical prowess and/or speed of delivery at the price of hostility, drama, one-upmanship, and credit stealing. It’s just not like that here. And this most excellent

culture is one of the things that makes Creative Market a wonderful place to work. I have zero desire to take away that positive, friendly atmosphere.

But the team had some frustrations too, and most of those centered around a feeling that we aren’t shipping features quickly enough or making enough progress on the things that matter to them, like replacing older, problematic portions of our codebase. They felt that, in general, we are a great engineering team, but there’s room for improvement. Because, of course, a friendly person does not a world-class engineer make, and none of us would be satisfied working in a place where everybody’s nice to each other all the time, but little of value is ever shipped (at least, not on time).

However, it became obvious that we also didn’t have a clear picture of how best to improve our team or even what it means to be successful as an engineer at Creative Market. So I followed up and asked some of my fellow engineers (those who have been around longer than I have) what they see as the difference between a good engineer and a great engineer. I also wrote down some of my own thoughts based on the behaviors and attitudes that separate our best engineers from the pack.

Here are a few things we came up with:

  • Good engineers excel at delivering quality code. World-class engineers also excel at delivering impact. (paraphrased from Chris Winn)
  • Good engineers code quickly. World-class engineers also work to improve speed of delivery across the team: better planning, better tooling (snippets, linters, etc.), better automation, etc.
  • Good engineers solve problems. World-class engineers also take initiative and ownership before something becomes a problem. (paraphrased from Steven Rathbauer)
  • Good engineers accomplish the tasks they’ve been assigned. World-class engineers also have a personal backlog of things they want to fix/change/improve, and they work on this list in the gaps.
  • Good engineers are satisfied with writing good code. World-class engineers also continue to look for ways to improve it and make it even better. (paraphrased from Kyle Arch)
  • Good engineers write the code. World-class engineers also write the documentation.
  • Good engineers care about their work, their career, and their team. World-class engineers also have a passion for the product they are building. (paraphrased from Chris Madrigal)
  • Good engineers receive feedback well, take it to heart, and improve themselves. World-class engineers also give useful feedback to their peers and their managers.
  • Good engineers are learners. World-class engineers are also teachers. (paraphrased from Steven Rathbauer)
  • Good engineers ask the right questions to understand scope, and they ship features on time. World-class engineers also ask the right questions to course-correct and improve scope before writing a line of code.
  • Good engineers can work with code. World-class engineers can also work with people. (paraphrased from Sarah Alexander)

Bonus list for those in technical leadership roles:

  • Good engineers adopt and play by the team’s rules about code styles, technology adoption, code reviews, and deployment. World-class engineers also have strong, well-formed opinions that they share to shape and improve those rules over time.
  • Good engineers get tasks out the door. World-class engineers also understand the code ecosystem from a bird’s-eye view and are able to question the bigger task at hand with internal questions like: Is this something we need? What are we really trying to solve here? (paraphrased from Alana Anderson)
  • Good engineers think through the current sprint before building. World-class engineers also think several sprints ahead and prepare their code for upcoming features (without creating a bunch of extra work for themselves or others).