Tech Leadership At A Startup: Introduction To Hiring Good Software Engineers

Tech Leadership At A Startup: Introduction To Hiring Good Software Engineers
Photo by LinkedIn Sales Solutions / Unsplash

Why are you hiring?

Every additional employee we hire in the organization should be a conscious decision rationalized by a clear present need or a real future need. That's why it is essential to analyze your current organization to find opportunities and risks.

Some of the risks/opportunities you should consider are:

  1. An employee resigns, and you don't have anyone to cover for them without creating overload.
  2. There is a very appealing business opportunity, or you must react to a new competing product.
  3. The organization's growth creates technical challenges that the team needs help to handle. The company needs people with more experience to lift the company to the next level.
  4. The organization has identified employees that do not meet expectations, and you need to find a replacement asap.

What talent do you need for the job?

After identifying the risks/opportunities you want to tackle, you need to clarify the "Job To Be Done" to capture those opportunities and the list of necessary skills essential to do the job. If you can't afford to train the current employees, you need to hire a new employee with those skills.

Next, you need to decide on the seniority of the new employee: think about how much you can afford to "babysit" the employee after they have joined:

  • Junior: Can you meet with them twice daily to clarify diverse tasks?
  • Staff: do you want to give a direction at the beginning of a month and expect them to flesh it out and carry on actions without or with a few additional instructions?
  • Mid and Senior are somewhere in between.

You can think you know all this when replacing an ex-employee, but I recommend going through the process again to analyze your assumptions, as they might be wrong.

When you have gathered all this information, you must write a formal job description. This document helps you have a clear source of truth for what you expect from the future employee. Also, as we will see below, it helps when communicating with recruiters and in the final interview.

Finding the right candidate

Now that you know what you are looking for, you need to find people who can do the job. As I write this guide primarily for startups, I assume you don't yet have a fully staffed internal recruiting department (or Talent Acquisition).

Four sources for the candidates

  1. Recruitment agencies: they have an extensive network of engineers at diverse levels of seniority that they can reach out to much faster than you. Good agencies create personal relationships with these talents, so much so that they are usually one text message away from offering them a new job. Also, talented professionals cherish these relationships as they create a job safety net and allow them they need to switch jobs quickly (I will write about this topic in another article series). So leverage that and work with good recruitment companies, as good as you can afford.
  2. Your current employees' network: Your employees can leverage their network of friends and ex-colleagues to find rare gems you would otherwise never discover. You should not only encourage them to recommend those people but you should incentives them to do it. Most companies I have worked for pay a recommendation fee to employees if their recommendation passes all the interviews and gets hired. Beware, incentivizing for recommendation increases the benefit of fraud in your hiring process, so only do this when you have a robust and unbiased hiring process with some way to double-check people's feedback during the interviews.
  3. People who engage with your content: I will talk later in the article about crafting the public image of your tech team, but as your company becomes more visible, people will start engaging with your content. Because these engineers are probably not your customers, it is logical to assume that their engagement with your content shows that they consciously or unconsciously consider working for you. So reach out to them and propose them a job.
  4. Leverage current events: Many companies had to lay off employees; some were high-caliber talent whose projects found themselves on the wrong side of the balance sheet. So reach out to them. Many of them have families, and being able to land a good job quickly after a layoff is a lifeline they are all looking for.

Why should they work for you?

If you are looking for software engineers at least halfway decent, you should know that you are not the only one doing it, and they probably already have a job. So, it would be best to give them reasons to move and work for you.

I have identified some points that you should focus on to increase the chance of candidates considering your company as the next step in their careers:

  1. You need to be known for providing a healthy and respectful culture. In this era of mental health awareness, more people realize that a salary is not worth the psychological trauma of working in an unhealthy and undignified environment. Although some people still put up with it because they don't have a choice, people fortunate to have achieved a state of choice and freedom because they are very good at their craft and are sought after by other companies will not entertain such an environment for long.
  2. It would help to have solid technical leaders (CTO, VP, etc.) who could guide and mentor. Engineering wants to improve because this society highly rewards the most skilled, and the best way for them to achieve financial security is to upskill quickly. If you can offer that, they will work for you.
  3. You need to be known as a company that conducts itself ethically. I remember after the Cambridge Analytica scandal, CNBC reported that Meta was less able to hire new candidates from top schools because, among other reasons, they didn't want to work in a company with privacy issues(CNBC:https://www.cnbc.com/2019/05/16/facebook-has-struggled-to-recruit-since-cambridge-analytica-scandal.html). This comes to show that it is crucial to maintain as good a reputation as people as a leader but also for the entire company.
  4. Long runway and reliable finances: No one wants to work for a company that can't pay its employees. Especially as a startup, you need to prove you can pay salaries for the next couple of years. You do this but talk about your business successes and funding round publicly. You don't need to divulge the amounts; people need to know you are winning.
  5. Provide good employee benefits: Long holidays, break rooms with games, access to online classes (LinkedIn learning and others), flexible working hours, healthcare, life insurance, etc.
  6. A productive working environment: Clean office, computers, and other tools.

Craft your public image.

As mentioned above, creating a good working environment isn't enough; you must craft your public image so people know you are a good employer. Your goal is that prospective employees you contact should know about your company. You should measure this and see how it evolves.

To achieve this, you need to communicate where your employees spend a lot of their time: Twitter, LinkedIn, Instagram, Youtube, and Tiktok. You should also craft your content depending on the platform you are publishing on, e.g.:

  1. Tiktok and Instagram: you should talk about the social aspect of your company, like events your leadership attends, hackathons, Diwali celebrations, pictures and videos of your office life, fun facts about your company, etc.
  2. Youtube, Twitter, and LinkedIn: Deep-dive into your architecture, technical innovation your company went through, business news about your company, new open positions, an opinion piece by one of your leaders, etc.

When you have a company event, Eid, Diwali, Iftar, etc., it is a golden opportunity to show people outside your company how it feels to work for you. Also, you need to incentive your employee to produce content for the company, whether it is a technical article about how you use RabbitMQ or a retrospective on your latest re-design. Your finance team can discuss the reality of maintaining clean financial documents at your scale.

You need to designate a proofreader to review all the content to ensure they are not unwillingly revealing company secrets.

The interviews

Technical assessment

As a startup, I recommend you implement two technical steps as you only have a few interviewers and must ensure you save their time.

Step 1: Use online interview platforms like Hackerank or send them a problem to solve and ask them to publish it on GitHub. The problem should be simple, so you only eliminate fake developers and terrible candidates. If you make it too hard, you will have many more fake negatives than you can afford when you are a startup (Feel free to increase the complexity if you have too many false positives).

Step 2: Organize a pair programming session between the candidate and one of your senior engineers or lead. Let them solve a real-world problem that your company just solved. Here you want to assess the candidate's problem-solving skills and ability to communicate and collaborate. You should also ask some system design questions.

Behavioral and Situational Interviews

When you read a candidate's CV, you find that they claim many things that make them look good, but you need to be sure they helped those achievements happen.

You should ask the interviewee to tell you about situations they went through in their experience. e.g., when they solved a challenging problem mentioned on their CV, disagreed with a manager, or had a reliability incident caused by one of their mistakes. They usually will answer you following the STAR Model (Situation, Task, Action, and Result); you can guide them a bit if they don't.

What you want to extract from this interview is some of these and more:

  • Their level of involvement in their team's success.
  • How they handle adversity.
  • How they debate and push for an idea they believe in.
  • If they will be a good fit for your team.
  • The most challenging thing they have ever done, etc.

The final interview

If you are the leader of a tech organization, you will typically delegate the previous interviews to engineers and squad leads, but you can't delegate the final interview. Later, when your organization is vast, and you have directors and VPs to help with the final interview, you can entrust it to them.

When an interviewee reaches the final interview, they have already proven that they can functionally work in your organization and that their working methods match your culture. But because human beings are fallible and biased sometimes affect people's judgments, it is your role in this interview to confirm some of the previous interviewers' claims and make your own opinion.

Hiring is ultimately your decision, and you must ensure the candidate is a good hire. Read the feedback from previous interviews to identify blindspots and contentious points. Then use the discussion to know the candidate better and to re-interview the points you recognized earlier.

Their onboarding

  • You want to ensure that you have bought all the equipment and configured all the accounts for the new joiner before their first day.
  • Ask your teams to prepare documentation and architectural documents to help onboard.
  • Ensure the manager and the whole team are in the office to welcome the new joiner and put a smile on their face.
  • You should organize pair-programming sessions for the new engineer to start delivering value quickly.

Beyond the onboarding

It would be best if you gave a month to a month and a half for the engineer to be fully able to deliver value and another three months for them to be indistinguishable from other engineers.

That's the aim, and if an engineer cannot match that, you probably have a bad hire or onboarding.