GithubHelp home page GithubHelp logo

engineer-character-sheet's Introduction

This project was created to help standardize sets of engineering skills while also pretending my job is exciting as an RPG. This will help you create character sheets (or personas) out of various skills to better hire and support well functioning engineering teams.

Why did you do this?

Hiring is hard. There is no one "best" person for a job. Everyone is a mixed bag of skill levels and experiences. If you focus only on one skill (such as algorithms or language fluency) you can miss out on professional skills that can enhance or drag down your team. When you hire someone it is better to know exactly the level your new employee is at so you know what they can teach and where they need coaching.

This is also a method of standardizing to reduce bias. I've been in those meetings where someone's identity affects whether "they have potential" or are "too junior for the role". Both of those phrases are equally vague. What exactly were they missing? By using a rubric you can pin down what you are trying to measure and question your assumptions.

How do I use this?

This is designed to be used from before you write your job description, to the interview, to setting expectations for the job and future promotions.

Job Description Questions

Ask yourself these questions to help you figure out which questions to ask.

  • Why are you hiring?
  • What is the new project you want to complete, but don't have the resources to do?
  • What are the current skills of your team and what would you like them to have?
  • Where is the most friction in your development pipeline?
    • If you have tickets piling up for release, maybe it's someone to build a deployment pipeline?
    • If you have too many half done features, maybe you need a leader to help your team focus?
    • If you have too many bugs going out to production, maybe you need an expert in testing?
    • If you have features go out, but utilization is low, maybe you need someone to communicate with stakeholders or write better documentation?

Designing Character Sheet

Once you know what the problem areas, go through the skill examples. Mix & match skills from all 3 main skill categories to build the ideal character sheet.

Each skill category has sub groups that have specific skills with levels. For example, under Technical there is a group "Programming Language" with 5 possible skills and levels. The person can have skill "Main language used by team almost every day" with level "Completed bugs or small features for professional or popular open source project."

Now you can use them to build your job description. Remember these things:

  • The more skill points you want, the more you have to pay
  • You probably want more skills than exists in a person, so prioritize.
  • Missing skills can be learned and coached. Self-awareness and aptitude for learning can make up for missing skills.

For inspiration, see example character sheets.

Interviewing

Ask questions designed to find out if they have the skills you are looking for. Don't try to trick them or be clever. Direct questions will get direct answers. I recommend the Star Method

  • Tell me about a major feature you released and your role in getting it complete.
  • Tell me about a time you had to quickly triage and fix a problem in production.
  • Tell me about a conflict you had with a coworker and how you remedied it.

Technical interviews should reflect the actual skill. They should be designed to let the candidate at their best and not an exercise in stress management and showmanship. Here's some examples, but if you're not sure you can ask the candidate how they would best demonstrate the skill you are looking for.

  • System Design: How would you design to do a service applicable to our company?
  • Code Collaboration: Here is a ticket and pull request, what comments would you add?
  • Testing: Here is a ticket and the code, how would you test this?

Setting Expectations

You have hired a great match for your team and now it is time to set expectations. Y ou want to help them find a mix of tasks that will match their current skills, the team's needs and level them up.

You want your new employee to know:

  • Exactly why you hired them and what you want accomplished for the team/company.
  • Skills that would benefit from leveling up.
  • How you will be evaluating them in 3, 6 and 12 months.

You want to know:

  • If everything you said was understood.
  • They are comfortable discussing the advantages/disadvantages of different tasks in terms of their skills and team impact.
  • Anything you can do to make them successful in meeting their 3, 6, 12 goals.

Promotions

Since you already have the levels the employee is at, and where you want them to be, you can use that to build the next level of their career. When their skills match a team or company need, they're ready for the new challenge.

How do I contribute?

Submit an issue

Submit a Pull Request

Code of Conduct

Contact Directly

Influences & Thanks

This project was influenced by my years in tech and also inspired by the many other people who write/speak on the subject. Like this project, this list is a living document and I welcome additions.

FAQ

What about just using years of experience?

Years of experience is not a measure of actual skill. One person can do escalating, difficult work in 6 months while another can do the same thing everyday for 10 years. A chef in a 5 star restaurant and a diner may both have 5 years experience but they're going to have different skills.

engineer-character-sheet's People

Contributors

michellelynne avatar

Stargazers

Brett Nekolny avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.