Kate Heddleston: How to Onboard Software Engineers

These are the notes I took while listening to an interview with Kate Hiddleston, a product engineer in San Francisco, about onboarding new software engineers.

The goal of onboarding a new engineer

is to get them to reliable independence , which is composed of three parts:

  • Technical knowledge. Does the engineer know Python?
  • Company structure, or domain specific engineering knowledge. How is the code laid out?
  • Personal development. Is the engineer confident? Able to research answers and debug independently? Do they have good judgment?

Problems of a non-existent or bad onboarding system

  • Women are left behind/hurt more than men when it comes to career growth (eg, promotions).
  • Higher attrition rates. Why spend so much money recruiting and paying a software engineer.. but not help them get started at the company?

Common mistake when onboarding new engineers

  • Senior engineers get burnt out when they’re responsible for the mentoring of each new engineer. Mentoring is hard. Having burnt out senior engineers might lead some companies to adopt policies like, “We don’t hire junior engineers any more at our company,” which may be indicative of some serious systematic problems at the company.

Kate’s suggestions about onboarding new engineers

  • The last person who joined (regardless of seniority) onboards the newest engineer. This helps spreading out the load of onboarding new engineers, which helps prevent senior engineers from burning out.
  • Set up goals and get them done. This can be created on Trello as first day goals (eg, push some code to production, no matter how small of a contribution it is), first week goals, and first month goals. Different levels of engineers (junior, mid, senior) may require different sets of goals. For example, junior engineers may require more guidance, while senior engineers may want more independence sooner.
  • Simply the process of setting up the dev environment. There’s little learning value from banging one’s head against the wall for hours trying to set up their computer to write even one line of code.. so instead, automate the process!

There are 2 ways to get great engineers

  • You steal them.
  • You create them.
  • You better have ways for both!