What Good Engineers Do

The best people embody high standards in whatever they do. In particular, we find that the best engineers excel in all of the following areas:

1. Know what’s important

When you're doing it well...

You habitually seek to ask what’s important.

You ask “why”, even in public, so that you’re clear on the reasons for what you’re doing.

People trust your judgment of what’s important and they frequently seek your opinion of priorities.

When you're not doing it well...

You get hung up on and endlessly argue about unimportant coding minutiae.

You can’t explain how what you’re doing benefits customers or the company.

You focus on what you’ve done and not on what you’ve achieved for customers or for the business.


2. Ship early and often

When you're doing it well...

You ship something that has some value nearly every day.

You turn big projects into several small ones, each of which delivers some value.

When you're not doing it well...

You make huge, infrequent commits rather than small, frequent ones.

You argue to spend months on costly rewrites that only deliver value upon completion.

People don’t trust that you’ll get important work done quickly.


3. Do the dirty work

When you're doing it well...

You understand the details of what you work on, even the gross ones. People seek you out for an explanation of the murky inner workings of feature.

You make others more productive by cleaning up confusing code and correcting inaccuracies in wiki documents.

You invest an appropriate amount of time in testing.

When you're not doing it well...

You only put your best effort into fun or highly visible projects.

You skimp on testing.

You incur hidden costs or risks that others need to clean up.

You don’t seek to understand suspicious behaviors, and find yourself saying things like, “I don’t know why it works this way. Chef sucks. We have this complex workaround.”


4. Take initiative

When you're doing it well...

You see flaws in how we do things and "manage up" to get changes made.

You tell your manager what needs to be done. “I need to work on this project this week in order to keep the site up next weekend.”

When you're not doing it well...

You tend to only do things when someone tells you to.

You tolerate recurring problems for weeks.


5. Earn trust under pressure

When you're doing it well...

You jump into on-call emergencies to help in any way, even by scribing.

You have a habit of fixing problems that you’ve never seen before.

You aggressively get help when you know you’re in over your head.

You’re reliable.

When you're not doing it well...

You’re invisible in on-call situations.

You don’t seek help when you need it.

In an ambiguous situation, you pass the buck and hope that someone else will bail out the problem.

You’re inconsistent. People don’t trust that they can count on you.


6. Set clear expectations

When you're doing it well...

You write clear Trello cards with believable estimates, and constantly update them.

You recognize when a deadline is at risk and communicate the bad news quickly, even when important stakeholders will be pissed.

You propose compromises that get the most important things done.

When you're not doing it well...

You write vague Trello cards.

You go silent when a project is at risk.

You take foolish risks because you’re scared to tell someone that you might miss a deadline.


7. Seek perspective

When you're doing it well...

You constantly ask for your colleagues to shoot holes in your ideas so that you can improve them.

You research how others outside the Company handle the problems you’re facing, and you share that research with your teammates.

You’re happy to embrace the ideas of others if they improve on your own.

When you're not doing it well...

You unilaterally decide how you’re going to do something and do it without bouncing it off someone else, only to find that the end product doesn’t quite meet expectations.

You become too attached to your own ideas and are immune to helpful suggestions.

You solve problems that others have already solved.