As a developer, I had many opportunities to take part in a lot of technical interviews, sitting on both sides of the table. I was the interviewee and interviewer. I’ve been interviewing candidates for companies where I work and helped other companies as part of consulting services.
So now you know a little about my background but what are these questions?
- Tell me about your ideal app architecture and your current app architecture?
This can be a really deep question and it can develop into anything. Everyone knows what is architecture. This can be obvious how it should look, but everyone understands it through his own personal experience and can focus on different things. Great as opening one.
- What types of asynchronous communications do you know?
This is frontend specific, especially for Android apps where you have many options. What do you use? Why this, why not another one? What was used historically? Pros and cons of solutions?
- What do you like in Kotlin? (it will be valid for any language)
A language is just a tool, but it provides many great features. On which one do you focus the most? Do you interest in how language evolves? Do you know how it works under the hood? Can you compare this feature with for example with Java?
- How do you test your code?
Do you even test? What and when you test? What tools do you use? What naming you have in your tests?
- How would you implement screen X? (Enter some screen that is typical for your app)
This is a great question for a high-level conversation on how you understand the industry that you will be working in. You can tell about technologies, the business domain and what is the most important – how you connect the dots.
Why do I want to reveal my secret questions to you?
Because questions can be the same but the answers are always different. They are open questions and only start for the discussion. There are no good answers, but also no bad answers. When I ask these questions I note what the candidate says and there you can always find great “hooks” for the next questions. There is also one thing that is as important as knowledge.
I call it “The Vibe” – the flow of the whole conversation. It’s hard to find out how would look work with this person in the closed-form of the interview.
What can you do with these questions?
It depends on who asks 😉
- As a candidate – try to think about how would you answer, and don’t be afraid to think out loud. Contrary to the usual stereotype – in programming, you have to talk a lot. You will be a better developer when you are comfortable with talking. Even when you don’t get a job you can learn a lot. At least what you don’t know, and this can be very mind-opening.
- As an interviewer – try to ask these questions in the next interview and see what will happen. I am sure that you will find a lot of “hooks” for the discussion. Don’t forget about “The Vibe”, because you will work with these developers. Even if not (because you are an external consultant just like me), then you testify with your personal brand that the recommended person should be the chosen one.
- As an HR or Recruiter – why you should encourage your technical interviewers to open questions? Because nowadays programming is much more about creativity and teamwork than just writing the code. All these fancy agile methodologies force developers to expertise also in the business domain and contact not only with the source code. These skills can’t be easily found in the closed form of the interview. The hiring of the developer is very costly. Hire slowly, and be sure that you hire the right people.
See you on The Code Side!
All the best,
Extra bonus story:
My favorite job interview, was my first one. I was seated in front of the production app code, and the guy asked me to find out how work some things, how to add something, how I understand it. That was very nice experience, where we could exchange opinions ?