Once you’ve hired a software engineer, it’s easy to feel like the recruiting process is over. However, the first few days and weeks of your new engineer’s experience are critical to their long term success and happiness at your startup. In this last part of our series on hiring software engineers as the CTO of a startup, we’ll talk about how we onboard software engineers at Blue Matador and the insights I’ve gained in this part of the CTO experience.
If you’re just starting on this series, here are links to the rest of this series:
One of the major themes of this entire series has been to give candidates the best chance of successfully meshing with your team and increasing your overall team productivity. This theme continues even after your new team member signs their offer letter. By being intentional about the way you onboard them, they can come up to speed more quickly, earn their teammates’ respect faster, and be happier that they chose to join your startup. Here are three of the best things you can do to ensure your new developer’s success:
At a previous job, I was one of the guys who helped new developers set up their development environment. That meant every year during the first few days of “intern season,” I spent hours helping to create databases, run patches, troubleshoot dependencies, etc. At a startup, everyone’s work is incredibly visible, and taking days to get setup can make even the smartest engineer seem a little less than competent.
There are some architectural choices that can make setup easier (like using Docker and docker-compose). However, the most important part of making the development environment easy for new software engineers is to create a tested and repeatable process that is documented. Having a blueprint to run through means that they can run through the steps and get setup with minimal assistance.
I can’t emphasize enough how important this is. The week before Blue Matador’s newest engineer started, I ran through the process with a brand new laptop and documented all the things I did. As a result, our new hire was writing code on his first day, and made his first commit the next morning. This boosted the respect the entire team felt for him, and helped him feel like everything was well organized.
Startups sometimes make the mistake of assuming that if they hire someone talented, they can immediately increase the productivity of the dev team. There’s a feeling that adding another person will magically increase your velocity.
It’s important to remember, no matter how much experience they have, your new hire does not know your codebase.
There are inevitably idiosyncrasies and poor design choices due to the pace at which any startup iterates. Therefore, it’s important to introduce new software developers to your code gently.
The week before your new developer starts, sit down as a team and look at the backlog. Plan at least the first month worth of work in a way that incrementally introduces additional parts of the system. Double estimates of how long you think things will take. Remember, learning the intricate details of your codebase will take time, and believing otherwise is a recipe for disappointment and lost respect.
I highly recommend making the first task something trivial that can be done in a couple hours. Being able to make a commit that hits master during the first couple days is psychologically powerful for the new hire and for your team’s impression of them. Next, give them a slightly bigger project that should take a couple weeks and will introduce them to a wide swath of the codebase by the time it’s done.
Being intentional about the projects you assign your new software engineer will help them learn faster and will build the whole team’s respect for them. This will result in increased team cohesion.
Your new teammate’s first day will leave an important first impression. We’ve already covered some of the logistics of the first day, but there’s still more to be done. In particular, you’ll want to make sure your new hire feels welcomed as a person, and not just another worker. Doing so will help them immediately feel like the whole team is happy to have them there. As they feel like an integral part of the group, they will feel safe to make suggestions and improve your codebase.
What you do to welcome your new teammate will depend on your company culture. At Blue Matador, we all sign a card with personal messages and deck out their desk with swag. We play a board game at lunchtime to start bonding over fun experiences. Take time to talk with your team to determine what makes you feel like a part of the team.
In this series, we’ve talked about the practical steps of hiring a new software engineer for your startup. We’ve also shared a lot of our own philosophy on hiring, the most important of which is being intentional about what you’re looking for and then taking actions to accomplish that result. So far, we’re very proud and pleased with our hiring process. As CTO of your own startup, you have the ability to consider the needs of your company and steer the ship when it comes to hiring. Feel free to reach out and ask us if you have any questions about this series. We’d be happy to help a fellow startup.