HR articles

Technical Interview and Developer: Complete Guide

Technical Interview and Developer: Complete Guide
Hiring developers is not just about filling a vacancy. It is a strategic advantage for the company that critically affects product quality and development speed. The IT industry has one characteristic: it is a talent market, where candidates dictate terms to employers. Against the backdrop of high demand for specialists and competitive battles for top engineers, each stage of the hiring process becomes critical. In this guide, we will explore the structure of the hiring funnel, assessment tools, common mistakes, and strategies that work in practice.

Structure and Roles in the Hiring Process

Main Stages of Developer Hiring Funnel

An effective developer hiring funnel includes several sequential stages:

1.Sourcing — finding passive candidates via LinkedIn, GitHub, communities
2.Resume screening — preliminary filtering by experience and technology stack
3.Technical interview — skills assessment (live coding, take-home assignments)
4.System Design interview — for middle and senior positions
5.Behavioral interview — soft skills assessment
6.Final round — meeting with manager / top management
7.Offer and negotiations — compensation, options, conditions
Key Roles in Hiring

IT Recruiter
  • Handles sourcing and candidate screening
  • Negotiates salary and conditions
  • Manages the entire cycle from first contact to offer
  • Requires deep knowledge of IT industry and company stack

Hiring Manager
  • Technical leader who sets job requirements
  • Conducts technical interviews or oversees them
  • Makes final hiring decision
  • Responsible for new employee outcomes

Engineer Interviewers
  • Conduct live coding sessions and pair programming
  • Assess solution quality, problem-solving approach, communication
  • Provide competency feedback

Note: IT recruiters earn salaries 2-3 times higher than regular recruiters, while freelancers earn $3–5 thousand per successful developer hire closure.

Key Positions and Developer Levels

Types of Developers
  • Frontend — interfaces, web applications (JavaScript, React, Vue, Angular)
  • Backend — server logic, databases, APIs (Python, Java, Go, C++)
  • Fullstack — frontend + backend + some DevOps
  • Mobile — Android, iOS applications (Swift, Kotlin)
  • Desktop — desktop applications (Electron, .NET, C++)
  • Database — database optimization, data architecture
  • DevOps — infrastructure, CI/CD, cloud

Besides developers, IT includes: QA engineers, analysts, designers, PMs, administrators, security specialists.

Developer Levels (from Radford)

The Radford competency model is a universal system that helps categorize people by levels. Used by companies like Wargaming, Buffer, and many others.
Level
Experience Required
Characteristics
Entry / Junior
2 years
Learns under guidance, requires instructions for new tasks, contributes to simple components
Middle
3–5 years
Works independently, solves diverse tasks, interacts with team, requires only general guidance
Senior
5+ years
| Leads complex projects, mentors juniors, makes architectural decisions, requires minimal oversight
Lead
7+ years
Drives technical strategy, manages people, responsible for team results
Expert
10+ years
Strategic level, influences product and culture, often consults
Important: Salary differences between levels are substantial. A Middle developer may earn 1.5–2 times more than a Junior, a Senior 2–3 times more than a Middle.
Where to Find Company Level Models

Many IT companies publish their competency models publicly ("sharing is caring" — IT culture). Check out:
  • Levels.fyi — comparison of levels and salaries in major companies
  • BetterWiki — collection of competency models from various IT companies
  • Github / Confluence pages — sometimes companies publish their levels there
  • Payscale, Salary.com — market salary data for each level

Sourcing: Where and How to Find Developers

IT is a talent market, not a labor market. Top specialists do not look for jobs: they are already employed and receive regular offers. Simply posting a vacancy on a job board is insufficient — you need to actively search for passive candidates.

Main Sources of Candidates

1. Job boards (active candidates)
  • hh.ru, Habr Career (Russia)
  • LinkedIn Jobs, Indeed
  • Stack Overflow Careers
  • GitHub Jobs

Pros: quick, already interested people Cons: high competition, often juniors and mid-level with <2 years experience

2. LinkedIn recruiting (passive search)
  • Boolean search by technology stack: "React" OR "Vue.js" AND "TypeScript" AND "3+ years" AND Ukraine
  • Targeted messages: personalized messages based on profile
  • Recommended for Middle and Senior positions

Tip: Don't send robotic "Hello! I'm inviting you to a developer position." Personalize: mention a project, technology, interesting fact from their profile.

3. GitHub / GitLab (code-based search)
  • Find active contributors in needed languages/projects
  • Check code quality and consistency
  • Find portfolio examples

4. Communities and Conferences
  • Meetup.com for local communities
  • Conferences (PyCon, RustConf, etc.)
  • Slack/Discord channels for developers
  • Forums (Habr, dev.to, Reddit r/programming)

5. Referrals (gold standard)
  • Employees recommend friends / colleagues
  • Referral bonus programs ($500–$5000 per successful hire)
  • Often better candidate quality, higher results

6. Outbound hunting
  • Directly reach out to candidates from competitors
  • Email/LinkedIn for "cold" contact
  • Requires persistence and good writing
How to Write a Job Posting That Attracts Top Talent

Typical mistake: Huge list of mandatory requirements (React 5+ years, TypeScript 3+ years, Node.js experience, Docker, Kubernetes…). Strong candidates don't apply, thinking "this is not for me".
Correct approach:

``` Looking for Middle/Senior React Developer
What we do:
  • Product for [description]
  • Tech stack: React, TypeScript, Node.js
  • Team of 8 engineers, remote

What matters:
1.Experience developing web applications (3+ years)
2.Knowledge of React or similar framework
3.Communication skills, interest in development

Bonus (not required):
  • TypeScript
  • GraphQL
  • Startup experience
  • English B2+

What we offer:
  • $4–6k/month (depends on level)
  • Flexible schedule, remote
  • Equipment of your choice
  • Healthcare, fitness, education benefits

How to apply:
  • GitHub profile or code samples
  • Tell us why this role interests you
```

Key points:
  • Be honest about requirements: Junior cannot be Middle
  • Don't overload: no more than 5 main requirements
  • Talk about company: culture, mission, interesting challenges
  • Salary transparency: attracts better candidates
  • Clear call to action: how and where to apply

Technical Interview: Tools and Methods

Live Coding vs Take-Home

Live Coding (algorithm on whiteboard / IDE, 45–60 min)

Pros:
  • See candidate's thought process in real time
  • Can ask clarifying questions
  • Tests stress resistance

Cons:
  • Stressful, may eliminate good candidates
  • Sometimes "whiteboard writing" matters more than logic
  • Labor-intensive, requires 1 hour interviewer time

Take-Home Assignment (task for several hours, done at home)

Pros:
  • Real conditions, candidate not under stress
  • Can show code quality, architectural approach
  • Candidate can spend as much time as needed

Cons:
  • Don't see the process (others may have helped)
  • Labor-intensive review

Recommendation: Combine both. Take-home as first filter, live coding for finalization.
Example Live Coding Task

Middle Level (30–45 minutes)

``` Task: Function to search for a target in a rotated sorted array
Given an array of integers sorted in ascending order, which was rotated at some point. Find the index of the target number. If not found, return -1.
Examples: Input: nums = [4,5,6,7,0,1,2], target = 0 → Output: 4 Input: nums = [4,5,6,7,0,1,2], target = 3 → Output: -1

Requirements:
  • O(log n) time complexity
  • O(1) space complexity
```

What is assessed:
1.Problem understanding (asks clarifying questions?)
2.Approach (Binary Search? Brute force?)
3.Implementation (syntax, edge case handling)
4.Communication (explains solution?)
5.Optimization (after basic solution)

Typical interviewer questions:
·"Why did you choose binary search?"
·"How will you handle the case if target = 5?"
·"Are there any edge cases you missed?"
·"If you needed to find a range [target, target], how would you modify your solution?"

Behavioral Interview (for Technical Specialists)

Behavioral interviews assess not technique, but soft skills and ability to fit in the team.

Standard STAR Format Questions

STAR = Situation, Task, Action, Result

Question 1: "Tell me about a situation when you faced a conflict in your team. How did you resolve it?"

Poor answer: "I just told my colleague he was wrong, and then the manager agreed with me."

Good answer:
·S: There was a disagreement on the team: colleague wanted Node.js, I proposed Python for a microservice.
·T: We needed to choose a stack in 2 days.
·A: I proposed designing both approaches in 4 hours, comparing by metrics (development speed, performance, scalability). I had a discussion to understand my colleague's concerns.
·R: We chose Python, the project finished a week early, and my colleague said: "I see why you chose Python, good decision."

Question 2: "Tell me about a project you were proud of the code you wrote. Why were you proud of it?"

Question 3: "Was there a time when you made a mistake? How did you fix it and what did you learn?"

Good answer shows:
  • Responsibility (don't blame others)
  • Reflection (understand what went wrong)
  • Action (how I fixed it)
  • Integration of learning (what I changed in future)

Question 4: "How do you learn new technologies?"

Red flag: "I just jump in and learn on the fly." Green flag: "I start with documentation, search for examples, read blog posts, then write a small project to understand basics. Then I dive deeper into specifics."

How to Make an Offer and Negotiate

Main Offer Components

``` OFFER LETTER

Position: Senior React Developer Level: L4 / Senior Salary: $6,000 per month (gross) Options: 0.2% of company pool (4-year vesting with 1-year cliff) Bonus: up to 15% for performance (annually) Vacation: 22 days + 5 sick days Remote: Yes, can work from anywhere Start date: 2026-05-15

Benefits package:
  • Health insurance (company pays 100%)
  • Sports and wellness ($500 USD/year)
  • Professional development ($2,000 USD/year)
  • Home Office Setup ($1,000 USD one-time)

Trial period: 3 months (for both parties)

Appendix:
  • Job Description
  • Compensation details (options specifics)
  • ```

Compensation Negotiation

Why do developers ask for more?
  • Know their value (many offers in the market)
  • Experience shows negotiation is possible (first offer rarely final)

Negotiation Scenario:

Candidate: "I was looking for around $7,500, but you're offering $6,000."

You (wrong): "That's the maximum we can offer."

You (right):
·"Thank you for being honest. Why do you need exactly that amount? What offers have you had before?"
·"We offer $6,000 base salary + 0.2% options (could be worth $10K–100K over 4 years) + up to 15% bonus. Combined, this could exceed $7,500."
·"Also we have flexible schedule, full remote, good tech stack. Is there anything besides money that's important to you?"

Options (equity) — how to explain
"You get 0.2% of company stock with 4-year vesting and 1-year cliff. This means:
·Until 1 year: nothing happens
·After 1 year: 25% of options unlock (~0.05%)
·After 4 years: all 0.2% is yours

If the company goes public or is acquired for $100M, your 0.2% could be worth $200K. But it's a risk — could also be $0."

Common Offer Mistakes

❌ Mistake 1: Slow process What happens: You take a week to decide on offer, candidate gets another offer in the meantime. Solution: Decide within 24 hours.

❌ Mistake 2: Weak offer What happens: You offer higher salary than competitors, but lower on options and benefits. Solution: Offer complete package, not just salary.

❌ Mistake 3: No feedback after rejection What happens: Candidate declined, you disappear. They may reconsider later. Solution: "Thanks for declining. If something changes, let us know. We're always open."

❌ Mistake 4: Pressure and rush What happens: "Need answer by Friday or we offer to another candidate." Solution: Give 3–5 days to think.

Advanced Candidate Assessment at Interview

A-player (Top performer)
  • Asks clarifying questions (doesn't code silently)
  • Proposes multiple approaches, then picks optimal
  • Talks through thinking process aloud
  • Reacts calmly to mistakes: "Oh, I forgot about the edge case"
  • Writes clean code (variable names, comments, structure)
  • Tests their solution themselves (doesn't wait for you to point errors)
  • Asks: "What else can I improve?"

Middle-performer
  • Codes without asking questions
  • Writes code that works, but without optimization
  • Reacts defensively to mistakes
  • Dirty code (a, b, c instead of meaningful names)
  • After finishing: "Done"

Company profit difference:
  • A-player: writes code that works for 2–3 years without rewriting
  • Middle-performer: writes code needing refactor after a year

❌ Anti-patterns in Interviews

❌ "Hiring by resume" Candidate with beautiful resume may not solve simple problem. Solution: Live coding test is mandatory.

❌ "No feedback" Interview ends, candidate leaves not knowing why they didn't pass. Solution: Even if not hiring, give constructive feedback: "Good problem-solving, but didn't explain your process. Next time think aloud. For System Design, you need more practical experience. I recommend Designing Data Intensive Applications."

❌ "One interview decides everything" Candidate might not focus once. Solution: Minimum 3 interviews (technical + system design + behavioral).

❌ "Asking complex tasks for juniors" "Implement LRU cache, then write a load balancer." Solution: Match complexity to level.

📋 Hiring Stages Checklist

Pre-hire (Before posting vacancy)
[ ] Position and level defined (Junior/Middle/Senior)
[ ] JD written with honest requirements
[ ] Compensation agreed ($X base + options + bonus)
[ ] Interview panel formed (3 people)
[ ] Test tasks and questions prepared

Sourcing (Search)
[ ] Posted vacancy on job boards (hh.ru, Habr)
[ ] Started LinkedIn recruiter search
[ ] Outbound messaging to top candidates
[ ] Requested referrals from team

Screening (Filtering)
[ ] Read 50+ resumes
[ ] Selected 10–15 candidates for first call
[ ] Conducted 30-minute intro calls (culture, motivation, level)

Technical interview (45–60 min)
[ ] Live coding or take-home assignment
[ ] Code pushed and discussed with interviewer
[ ] Feedback provided (what was good, what wasn't)

System Design (Senior / Middle, 45–60 min)
[ ] System designed
[ ] Trade-offs discussed
[ ] Depth of knowledge demonstrated

Behavioral (30–45 min)
[ ] Previous projects discussed (STAR format)
[ ] Communication and teamwork assessed
[ ] Candidate motivation understood

Offer & Negotiation
[ ] Decision within 24 hours
[ ] Offer sent with complete package
[ ] Negotiations completed or declined

Onboarding
[ ] First week planned
[ ] Buddy (mentor) assigned
[ ] Equipment ready (laptop, access, etc.)

Example Interview Questions

Frontend (Middle level)

1. What is event delegation and why is it needed?
Checks: Understanding of DOM and performance
```javascript // Bad document.querySelectorAll('.item').forEach(item => { item.addEventListener('click', () => { / ... / }); });
// Good document.addEventListener('click', (e) => { if (e.target.classList.contains('item')) { / ... / } }); ```

2. Difference between `let`, `const` and `var`?
Answer interviewer is looking for:
·var — function scope, hoisting, outdated
·let — block scope, can't redeclare
·const — immutable reference (object can change, variable reference can't)

3. How to optimize React component performance?
·useMemo for expensive calculations
·useCallback for callbacks
·React.memo for Props
·Code splitting (lazy loading)
·Profiling in DevTools

Tools for IT Recruiting

Essential Resources for Learning IT

Understanding IT Terms
  • GlossaryTech — browser plugin highlighting tech terms on any page
  • Tech Terms — site with 10 levels of knowledge depth (basic to expert)
  • Habr (habr.com) — Russian-language articles on technology, developer network

Compensation Information
  • Levels.fyi — levels and salaries at Google, Meta, Microsoft, etc.
  • Payscale.com, Salary.com — average salaries by position and region
  • Radford — level system used by major companies

Competency Model Examples
  • Netflix Culture Memo — book "No Rules Rules" about company culture
  • Spotify Engineering Culture — video on engineering culture
  • BetterWiki — collection of competency models from various IT companies
  • Work Rules! (Google HR) — book on recruiting at Google

Supporting Tools
  • ChatGPT — ask for definitions, code examples, explanations
  • Deepl.com — translator for documents and candidate communications
  • Grammarly — plugin for English error checking

Building a Hiring Culture

How to Embed Good Practices
1.Document the process — write internal playbook for interviewers
2.Train interviewers — not everyone naturally knows how to interview
3.Give feedback to interviewers — if interview didn't convert, investigate
4.Track metrics:
  • How many interviews → how many offers (conversion rate)
  • What % of candidates pass technical
  • Time from first contact to offer (cycle time)
  • Retention of new hires at 6 months

5.Involve the team — developers want to participate in hiring

Knowledge-Sharing Culture
  • Use GitHub for interview code examples (with candidate consent)
  • Conduct retros after each hire ("What worked, what didn't?")
  • Share best questions with team
  • Publish articles about your hiring process (like Netflix, Spotify, Google)
Invest in the hiring process, and your company will benefit in terms of development speed, product quality, and team stability.

Hiring Software Developers is a course on how to search for and find developers. You'll learn about the different types of developers, the programming languages ​​they work with, their differences, explore 30 specialized developer search resources, and how to formulate search queries. Learn how to evaluate and interview developers.