Skip to content

Instantly share code, notes, and snippets.

@lox
Last active June 7, 2017 04:46
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save lox/57cb770de0ce25f17b67fcfd839eddfa to your computer and use it in GitHub Desktop.
Save lox/57cb770de0ce25f17b67fcfd839eddfa to your computer and use it in GitHub Desktop.
Engineering Requirements

Engineering Requirements

This is my list of qualities that I see as key to being a top-performing engineer. I'll be using these to assess individual growth and performance in your role over time.

You can self-assess on this list. See which ones you currently tick off. If you tick of at least half, you are doing fine. If less than half, some more work is needed, if you don't tick off any, we need to talk. If you tick off all of them we can talk about raises.

  • Delivery

    • Understand the goals of the tasks you are working on
    • Able to estimate problem sizes to avoid over/underengineering
    • Follow the process and communicate early if you have concerns
    • Focus on delivering solutions that solve problems and solve the need
    • Take ownership of getting tasks from idea to live in production
  • Focus on Code quality

    • Write code that you are proud of
    • Code that is well encapsulated and easily removable
    • Code that is correctly formatted and commented appropriately
    • Leave things better than you found them, always
    • Consistency! Care about the details folks!
  • Testing

    • Understand integration tests vs unit tests
    • Write tests as you write code
    • Add tests often for old code and always for new code
  • Good tools technique

    • Use of github branches and pull-requests with small deltas of change
    • Well written commit messages and pull request descriptions
    • Proactively update and link to Jira/ZenHub tickets and update progress
  • Communication

    • Know when to ask for help, and how to do so in a constructive manner
    • Discuss technical decisions and get others input
    • Communicate more broadly to the broader team when there are technical issues
    • Respond promptly when I ask questions or ask for action
  • Problem Solving

    • Research! I want to see that you've researched the solutions you decide on
    • Understand context and why things are a built a certain way, and be able to articulate why you've made decisions
    • Root cause analysis when things go wrong
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment