So you want to join Producement as a Product Engineer? Here are a few quick tips on how to pass the technical interview.
Our hiring process at Producement consists of 4 major steps:
- 15min multiple choice quiz where you need to score more than 65%
- 30min screening call with our HR people
- 1h 30min technical interview
- 1h product interview
This blog post will focus on the 3rd step – the technical interview.
The tech interview consists of 5 blocks:
- Background and skills
- Coding task
- Technical questions
- Questions from the candidate
Candidates with good motivation have usually done some prior research about the company like reading through its website, blog posts, or even background research about the founders/team.
Moreover, it’s important to understand why we do what we do. The best way to get this understanding about the candidate as an interviewer is to go through the Five Whys. While going through the five whys, the candidate should demonstrate the 3 main pillars of motivation:
- Autonomy – Our desire to be self-directed
- Mastery – The urge to get better skills
- Purpose – The desire to do something that has meaning and is important
Background & Skills
It’s critical to be able to talk about your background and skills while focusing on the most important things. More often than not, we have a long list of previous experiences in our CV, but not all of them are relevant today. Make sure you filter out the important bits and focus on them.
Furthermore, good candidates have a history with our technology stack (Full-stack Java/Kotlin and React/Redux) and development methodologies (Lean, OOP, TDD). Make sure you understand the importance of writing unit tests and can demonstrate that.
The coding task aims to assess whether you’re able to do abstract problem solving and write basic code. Usually, the task is to write some OOP Java code that solves a real-life problem. It’s conducted as a live screen-sharing session using a website like codeshare.io.
It’s important to remember that:
- The best candidates do Test-Driven Development
- Good candidates write tests after writing their production code
- Weak candidates need to be reminded about writing tests
Some technical questions are about the coding task. For example, why did you make a certain design decision? Why does the API look like that? Why did you name a variable like that? Why did you use a certain data structure or data type? What is the time complexity of your solution? How do you improve it? What is the best way of handling errors or missing data?
Other technical questions could be more fundamental. What’s Object-Oriented Programming? What’s the difference between Java and Python? What are SOLID principles? Design patterns, algorithms, data structures, their time and space complexities. Spring Framework, SQL.
Questions from the candidate
Good candidates usually ask educated questions about Producement. They could be about the mission of the company, how we work, our engineering principles, daily routines, what are our main challenges, etc. Bad candidates don’t have any questions – they’re just not motivated enough or don’t really care about where they spend 8 hours of their day. Better to reject them and move on to the next, hopefully, more motivated candidate.
That’s mostly it. Surely, it will make your life easier in our technical interview round. Don’t worry if you don’t pass – our hiring process has a success rate of 1% and that, unfortunately, means that we tend to reject a lot of good candidates (make false-negative decisions). Making bad hires is incredibly costly to a company in terms of lost time, team morale, etc. and that’s why we prefer to keep our hiring funnel very strict.