What are some of the technical roles software companies often recruit for, and what does each do?
- Front-end – focused on the user interface and how the product looks and reacts to user actions.
- Back-end – focused on databases, servers, and the infrastructure of the systems, more behind-the-scenes development work.
- Full-stack – skilled in both front and back-end, full-stack engineers can implement a project end to end and don’t rely on a specialty engineer.
Quality Assurance (rarer in startups) – once the company gets bigger and is at a later stage, then you’ll likely have a designated QA person to test the product. In startups, engineers are typically responsible for testing their own work prior to release.
DevOps (development operations) – internally focused, DevOps builds processes for the software development lifecycle and builds tools for software engineers. They focus on deployment, alerting, monitoring, and the general reliability of the systems. They could be software engineers or come from QA backgrounds.
Data Science – note: data scientists are different from data analysts. They are both responsible for analyzing large sets of data and interpreting the results, but data scientists have a more technical or scientific background. Data scientists process raw data, model the data, and might use machine learning or artificial intelligence in their work. The core programming language used by data science is Python (whereas data analysts commonly use SQL.
Product Managers – bridge the gap between engineering and the customer. They’re responsible for product success, as measured by business metrics. They partner closely with engineering, design, and other cross-functional stakeholders. The PM role is both internal-facing (coordinating across functions within the company) and external-facing (meeting with customers to collect feedback to influence the product roadmap).
How is recruiting for technical talent different from other positions?
Be direct and transparent in your communication and outreach – engineers want to cut to the chase: What’s the company? Where is the job located? What’s the compensation range? Be transparent vs. trying to entice with buzz words.
Move fast or move at their speed – the best talent is often working, and therefore may only have time to consider a handful of opportunities, so you need to move fast. Others will want to compare multiple opportunities. Therefore, they (typically) try to line up several opportunities in the same time frame and then make a decision after a defined time of interviewing. Be willing to move quicker or slower depending upon where they are in their process.
How should you think about crafting fair criteria for a strong scorecard? What are a few qualities that might be important for each of these different roles?
- Why – why are you hiring for this role? What are the business objectives? How do you define and measure success at 30/90/180 days?
- Who – who are you looking for? What are the skills that someone needs to have to meet these business objectives and be successful? Those skills are a combination of hard skills, experience, education/certifications, and behavioral attributes (aka. Culture fit/add).
- How – how will you assess these skills at each stage in the recruitment and interview process?
- What – what’s the scorecard? Define your rating scale, then break down what each interviewer is evaluating (including what’s a good answer vs. a bad answer vs. a great answer) so the interview team is aligned on how they score a candidate.
Use your scorecard to keep your scoring objective – avoid letting bias creep in and cause for subjective scoring. Stay disciplined about sticking to the scorecard.
Make sure the panel is aligned before you start scheduling – meet with the entire interview team, and ensure that there is alignment across the panel. Jumping ahead to scheduling interviews without clear communication on why you’re hiring and what and how you’re evaluating, often leads to wrong hires.
Role | Sample Scorecard Criteria |
Software Engineers | Technical skills – what you need depends upon your ability and bandwidth to train on the job. In either case, you should test their hard skills (see the later question on how):
|
DevOps | Technical skills
|
Data Science | Technical skills
Strong business acumen – ability to understand the business problems that need to be solved. |
Product Management | Hard skills:
|
For any role | Values/culture-add – you’ll want to assess how each person will fit in at your company and get along with other individuals on the team. Team gaps or leadership capabilities – if you have a particular skill gap on the team, or if you need someone who can step into a leadership role. Particularly important at startups: flexibility and adaptability are key, as priorities often change! Plus, the ability to move quickly under tight deadlines. |
What are typical compensation ranges for technical roles? Where can you find more specific benchmarks?
-
Engineers – $80K – $200K, $80K for an entry-level engineer outside large tech hubs up to $200K+ for a senior engineer in a top-tier city.
- A manager, or a very senior individual contributor (e.g. Principal Engineer or Architect), could be compensated more like an Engineering Manager, $200-270K.
- DevOps – $80-150K
- Data Science – $110-$200K+
- Product Managers – $100-180K
- Option Impact
- Pave
- Salary.com
- PayScale
- Glassdoor (free)
How should you think about writing strong job descriptions for technical roles?
- Make it appealing – show how your company is unique and display your value proposition.
- Illustrate what the hire might experience – this could be through specific projects or results that you’re looking for the person to achieve. Or, show impact and where the role expects to grow in the future.
- Use inclusive language – use gender-neutral terms, avoid biased phrasing.
- Include what’s in it for the candidate – the candidate is shopping around as much as the company is looking for a good fit.
- Be okay revising and testing it – run A/B tests; it’s okay to test and edit the JD, whether it’s specific content or even job titles.
- Make it a laundry list of skills and responsibilities – if you do need specific technical skills, explain why and how they’ll be applied.
- Use buzz words or generic jargon
How should you describe your company to entice top technical talent?
When you’re speaking to a broad audience (like in the JD), brag a little – highlight big wins the company has had, e.g. a product that was released, company growth, or a big funding round. Highlight technically challenging and interesting work to Engineers.
When you’re talking to an individual candidate, actively listen – for what the candidate is looking for, what’s important to them, and what they’re evaluating. Control your narrative to share specific examples of what they’re looking for.
Where should you look for strong technical talent?
1st Leverage your network – great people tend to know other great people, and they trust people they know
- Developer sites – e.g. StackOverflow, GitHub; reach out to candidates whose work is relevant (some sites have job boards, but it can be more effective to reach out to certain engineers and tell them that you like their work.)
- News sites and Forums – e.g. HackerNews or other news boards that engineers follow.
- Groups and communities – communities often form around a particular programming language.
- Underrepresented communities – e.g. for women and people of color in technical fields. These tend to offer candidate databases, job boards, or newsletters.
What messaging works well in outreach to technical candidates?
Be direct – don’t sound like an agency. You don’t want the prospect to be guessing what the company is. Include the company name, location, role, and possibly even the compensation range in your outreach.
- Personalize – find a common identifier like an interesting project they worked on or technology they love
- It’s a numbers game – you’ll need to reach out to a lot of candidates because not everyone is open to moving. It’s often about timing.
A/B test your messaging – test the subject, the copy, and who sent it (sent by the recruiter, or by/on behalf of the hiring manager).
Who should be involved in the hiring process?
- Recruiter
- Hiring Manager
- Direct team member
- Cross-functional peers – e.g. for engineering, have a product manager and designer, maybe a user researcher, and a couple of other engineers. For product managers, you’d want a similar interview team, but you might also include a go-to-market person, like a marketer. For DevOps, it’s going to be heavier on engineering. For data science, you might want other data scientists, engineers, and a product manager or business leader.
- A culture/values interviewer – this could be anyone. It can be valuable for this person to be someone who doesn’t directly work with that particular role, but who truly embodies the values of the company.
What do you need to do before you start talking to candidates?
Make a Hiring Plan – follow the framework for “hiring right.” Include the job profile, success metrics, the ideal candidate profile, and your elevator pitch. Write a job description.
Create an interview panel and scorecard – decide who’s going to be on the interviewing panel, and what will be on the scorecard. Before interviews begin, decide how to divide assessment responsibilities and collect feedback from the panel–you don’t want people asking all the same questions, or biasing each other.
Tune the Recruiter-Hiring Manager Partnership – this helps set expectations and establishes roles and responsibilities. The recruiter might bring 10 prospective profiles to the first meeting to align on what the final candidate should look like. You might also have a calibration period, to make sure everyone is on the same page for the types of candidates the recruiter is sourcing.
What are the typical steps in the hiring process for tech talent?
Step 1: Recruiter Screen – covering basic qualifications, background, and motivational alignment
Step 2: Hiring manager phone interview/assessment – diving deeper into more specific skills and experience.
Step 3: Technical screen – this can be a take-home or live assessment. It should assess the technical skills that you’ve identified as important for the role. For more junior or mid-level candidates, you could use a take-home assessment before the hiring manager interview.
Step 4: “On-site interview” – these may or may not actually be on-site, but can be replicated virtually. This is when the candidate meets with the other members of the panel.
Step 5: Hiring manager meeting – used as a follow-up conversation to keep building a relationship, especially since a lot of this technical talent is assessing multiple opportunities. Have the hiring manager go deeper into the types of projects they would work on.
Step 6: Senior Decision-maker meeting – this final meeting is a chance for the senior decision-maker to sell the company. For an early-stage startup, this could be a CEO or CTO.
How should you test for hard skills?
Provide a real coding environment – the test should replicate an environment similar to what developers are working in every day. Traditional “whiteboard” type assessments tend to test more for memorization of algorithms, and they can be a bad proxy for what an engineer’s job is really like. Instead, use a live coding platform, like CoderPad and their Drawing Mode.
Some interview tools provide question banks, or you can create your own – the structure of the test can vary a lot: you can have broad questions or you can create test cases.
Make your test more specific or more flexible, depending upon your needs – if you want to test someone’s JavaScript skills, you need to give them a JavaScript exercise. If you’re just assessing their technical skills more broadly, then you would give them a similar exercise and allow them to use any programming language they want.
When do you need a recruiter?
If the hiring manager doesn’t have the bandwidth to give candidates a great experience – make sure that the candidate has a single point of contact. That can be the hiring manager if that person really has the bandwidth and time to invest in recruiting, and can be that main point of contact and follow-up with the candidate on regular communications. If not, invest in a recruiter (internal or external).
If you’re hiring for multiple roles that are business-critical – hire a recruiter to focus on the harder-to-fill roles (like software engineering), and you can manage the other non-technical roles.
You might be able to start with a recruiting coordinator – whether you hire a recruiting coordinator or someone more experienced will depend on the amount of budget you have and the number of positions that you’re trying to hire for.
What’s in the recruiting tech stack?
Applicant Tracking System (ATS) – everyone needs a basic ATS beyond a Google spreadsheet. E.g. Lever or Greenhouse.
Call-scheduling tools – often, these are built into an ATS or using Calendly; they can be valuable time-savers.
Sourcing tools – while there are many free ways to reach technical talent (e.g. Linkedin groups, GitHub, in order to do high-volume reach outs, having access to some paid options is ideal, e.g. Linkedin (Recruiter Lite for accessing a wider network), Hired.
Job boards – places outside of the company’s website to get more inbound applicants (e.g. Linkedin or StackOverflow), but might also include an industry-specific location.
Email outreach tools, often with email-finding capabilities – e.g. Gem or Entelo that allow you to create email campaigns with various cadences, and track open/click rates. Some tools also have helpful “send as” capabilities, to let recruiters send messages on behalf of hiring managers.
What are the most important pieces to get right?
Know why you’re hiring and make sure the team is aligned – otherwise, you’ll make a wrong hire, or the team will interview a lot of candidates and have decision paralysis because they don’t know what they want – and both can be costly to the business
Create a solid scorecard – this will positively impact the candidate and interviewer experience.
Uphold the culture / don’t compromise, especially early on – this is one of the most important parts of the entire hiring process and company’s success.
What are the common pitfalls?
Not having clear evaluation criteria – without clear criteria, you get a lot of “middle-ground” feedback on candidates, which makes it hard to make a hire.
Confusing candidates – when you’re not clear on the requirements of the role, the candidate hears mixed messages from the panel. This might make them less likely to accept the offer.
Waiting too long to hire – recruiting quality talent takes time. Know your business goals and start the recruitment process early.