There are many articles about questions that are usually during an IT interview. If you google “[your-programing-language] interview questions”, you will find plenty of useful articles. If you answer them correctly, you will let your interviewer know, that you are worth a job. But how do you know that the company is a good fit for you?
I strongly believe that each recruitment is like a date. You need to get to know each other before you make a decision if you are interested or not. Do you imagine dating someone who knows everything about you, while you only know their name? Probably not. So, why would you like to do it when it comes to changing a job?
Typical recruitment process
In my opinion, a typical recruitment process looks like this:
-
- a recruiter finds a candidate,
- 2.a recruiter sends an offer,
- a candidate says whether he is interested in changing a job or not,
- if yes to the previous answer: an interview is being scheduled
- recruiter/interviewer tells about a company,
- a candidate is interviewed by tech guy(s),
- candidate asks about salary, contract type, benefits, etc.
- the decision is being made.
Later, it is possible that after 3 months in a new job, the new employee will find out that he doesn’t fit in the company. Great.
There is also another recruitment process in which a candidate sends his resumes to companies, but let’s not describe it now. In my opinion, this article is valid for both processes.
In this blog post, I will write how I try to minimise the risk of the above.
Prepare
Before each interview, I am going to have, I prepare myself.
I start with reading the job offer once again. Then I am doing a research about a company. I am trying to get more info about the people who will interview me. Does anyone have a blog? Is anyone a conference speaker? If yes, I’m reading their posts and listening to their’s prelections. While doing it, I am taking notes.
Later, I am writing down the questions I have. These are the questions I might want to ask. It may happen that they will bring them up during our conversation so I won’t have to ask them.
It looks like the process is short. I can tell you it is not. Nice research takes time. So why am I doing it? I am doing it as I want to be totally aware of what I am stepping into. I believe that the more I know about the potential company, the easier to decide if it is worth giving a shot or not.
While writing down questions, usually, I dive them into 3 groups: social, management and development (I will include all my questions at the end of this article).
The first group is getting to know a company. Their benefits, how are they organized, contract types etc. Basically, this is the part that can be answered by a recruiter. Nothing special but might tip the balance.
The second group is related to the project management. I am asking these because it really interests me & it is saying much about work organisation. Listen to answers and check reaction to questions. For example: if I know the company is working in SCRUM, I might ask:
Do you have all five SCRUM events? If not why did you decide to choose the one you have and skip others?
This question is kinda tricky. SCRUM is now trendy and many companies are saying “yes, we are working in SCRUM!”. The truth is: some of these companies don’t even work in ScrumBut. I am not saying that each company saying that they work in SCRUM is lying. Help God, I am not saying that. What I am saying is: it’s worth checking if they are not lying in their job offer. Scrum. CI. QA on board. TDD. Check if these are not only fancy buzzwords visible only on a paper.
Coming back to the question about the SCRUM. When asking this question you will also check how they work. Daily? Planning? Refinement? Retro? Demo? This is also a great opportunity to ask even more questions. For example when talking about planning: who is assigning tasks to people? Is client involved in planning? Will I have contact with him etc.
By the way, there is no good answer and a bad answer. You just want to know how they are working and why. Later you can decide on your own if you want to work with them or not.
Finally, in the last group, I am putting technical questions. Simple as that.
During an interview
Take fucking notes.
Thanks, that’s all.
I was just joking. Let’s say an interview lasts for 1h. The amount of information transferred between you and a potential company is so big. Probably, your interviewer is taking notes: either on a computer or in a notebook. Do you do the same?
If I see someone who is not taking notes during the interview (or any other meeting), I am always thinking:
damn, I want to have their memory. I want to remember all this stuff without noting it
That’s it. That’s all I that I wanted to say. If you have any questions feel free to write to me — it’s not that hard to find me.
As promised earlier, let’s move to questions I ask during interviews.
Social
-
- What are the benefits? (they will probably tell you on their own)
- Contract type?
- What are the differences between contract types?
- Is it possible to work remotely? If yes, on what conditions?
- How often do you have 1 on 1?
- How often do you have evaluation conversations?
- Who is deciding about salary rise?
- Do you have training budget?
- Do you have “hack days”? Are you giving time to learn new technologies?
- What is the company’s structure?
- Will you provide me with a career path?
- Do you have a team budget?
- How often do you have a team building meeting?
- What kind of clients do you have?
Management
-
- SCRUM? Kanban? Waterfall? ScrumBut? Other?
- Who are the members of a team? PM? PO? SM? Q&A?
- Jira? VSTS? Redmine?
- Can you show me a sample task/user story?
- How do you estimate tasks? Points? Men hours? T-shirts? Planning poker?
- Do you have all five SCRUM events? How long does the sprint last?
- Do you have a knowledge base? Confluence? Nuclino?
- Do you do EventStorming with a client?
- How does a typical week look like?
- Is it possible to change a project?
Technical
-
- How much test devices do you have? Do you have device farm? Are you using devices in a cloud? (regarding mobile development)
- What hardware are you using? What is provided? Do I need to bring everything on my own? (this is mixed: social/management/technical 😀 )
- Where do you have a repository?
- Do you have CI/CD? If yes which one? Who is responsible for configuring it?
- Who is choosing who will do a task?
- Do you have code reviews?
- What architectural patterns do you use?
- Who is choosing architecture?
- What libraries do you use? Can you recommend any?
- What tools do you use?
- Are you practising TDD? What about XP?
- Do you have static code analysis?
- How do you test you app?