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:
- Get their development environment set up
- Make a pull request to the codebase
- 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.