Onboarding engineers is hard.

You need to set up your development environment, build context, navigate the codebase, navigate the organization, understand the system, the product โ€” and the list goes on.

I used to believe that the best way to onboard an engineer on day one is to make sure they:

  1. Get their development environment set up
  2. Make a pull request to the codebase
  3. Merge and deploy to production

You get an immediate hit of dopamine and experience the end-to-end flow of shipping a feature or fixing a bug.

There is still a lot of value in this process, but it biases toward engineers who want to do engineering.

At a large company, where a new engineering hire is needed to solve a specialized problem, this is still the way to go. At a small startup, where the product is the company, every engineer needs to be product-minded.

Rather than getting your development environment set up, get your user account set up. Rather than making a pull request to the codebase, use the product. Rather than deploying to production, find a bug in production.

Get engineers to use the product before they dive into the code.