Interview manifesto
...or how to drive your interview and hire people. Based on real life examples and experience.
General
- Etiquette
- Say hello!
- Ask how is a candidate?
- Is everything okay?
- Suggest a water/coffee/tea/juice/etc.
- Simple things to make a situation less stressful.
- Introduce yourself
- Every interview is a stress for a candidate (and also for an interviewer).
- Make the situation more enjoyable.
- Try to make it comfy and relaxed.
- To make this - start a simple dialog.
- Introduce yourself.
- What is your experience?
- Describe your current project.
- How long do you work here?
- What makes it cool?
- (Maybe) what can be done better?
- Ask about candidates experience
- That's a starting point to understand who is in front of you.
- CV is a good thing, same as Github, Stackoverflow or personal blog.
- But during real conversation you will get much more details.
- Off course if you will ask for them.
- What technologies are you familiar with?
- You will see how deep or wide candidates knowledge is.
- What parts of your language/framework sucks?
- What other technologies are you interested in but don't have ability to try?
- Any personal projects? own business? or plans?
- Do not ask 'Why do you want to work here?'
- Money, everything else is a bullshit.
- Looks for the candidates that:
- Is able to grow with a team (junior-middle)
- Is able to grow a team and company (middle-senior)
- Is able to introduce new things to a team (junior-middle-senior)
Junior developer
-
TODO
-
Check candidates logic
-
Why programming makes candidate happy?
- money, for sure, as everyone
- but what makes it more enjoable?
-
Who does candidate looks for the answer?
- Is he/she able to Google the answer?
-
How a web service can be debugged?
- is this an app or infra problem?
- are logs/metrics/traces were mentioned?
- did someone talk to the teammates?
- Ask computer science basics
-
Types of sorting
- simple question to see compute science background
-
Why do we need databases?
-
What is the type in the language?
- what is the difference between int and string?
-
What data structures do we have and why?
- Splay-tree is cool, but have you used it personally?
- Don't ask something that goes far beyond regular development day.
- Do not rush into documentation questions
- Don't ask all the implementation of
IList
in language XXX- are we interested in those who remembers everything
- or those who can investigate the problem and find a solution?
Developer (aka middle developer)
-
TODO
-
How to keep code clean and usable?
- Linters, static analysis tool
- Code review
- Good abstractions
- ...
- Implement a basic function (like
len
,map
,filter
so on)
- You will be amazed how many developers cannnot make it.
- Even with 3+ years of experience.
- Also a good question to switch to the editor and talk about it.
- Why do we need indexes in databases?
- What type of indexes do we have?
- Pros and cons of them.
- and off course when we do not need them?
- Ask about previous project in details
- What was the load?
- What about storage?
- Is everything is fine?
- Why exactly XXX?
- Do not expect to see best code ever
- Candidate has a stress.
- Keep errors as something inevitable.
- Care to help after few minutes of stuck.
Senior developer
-
TODO
-
How to develop a new project?
-
How to build a team?
-
What problems you had on previous jobs?
- how to solve them?
- are you ok that this might appear here too?
- System design
- How good candidates asks for the clarifications?
- How deeply it explains things?
- Pros and cons before selecting a tool.
- Trade offs.
- Maintain.
QA
TODO
DevOps/SRE
TODO
Team leader
TODO
Architect
TODO