In my previous job, I did a lot of interviews for our Java developer positions. We had a typical modern Java stack based on Spring framework and relational database. We usually hired junior devs right after school so our interview process was designed to find talented people with potential, not encyclopedical knowledge.
We had one in-person round and take a home coding assignment. This article will try to cover both.
This was the more important round of our process. Basically usually a team lead of the team that was hiring and one senior dev was conducting it. The goal was to determine if the person would be a good fit for a team, had some technical thinking capabilities and the most important could communicate.
In the first part, we had a small talk portion, that was around previous experiences, either their current job or a school project.
Typical questions here would be:
- What was the last project you worked on?
- What have you learned recently?
- What would be your dream project?
In the second part we did few technical questions. Around some basic Java or Spring things.
Typical questions here:
- Explain static keyword.
- Explain how to compare objects in Java. Equals and hasCode.
- Inversion of control and dependency injection.
In the third part, we had a technical challenge to solve. It was a simplified real problem we had to solve during last year (we were changing this to keep it interesting). It did not have one solution. Involved designing a simple alghoritm that strongly suggested use of recursion, but could be solved numerous ways.
The ultimate goal was to for the candidate to design a data structructure and use it in the simple alghoritm. We wanted candidate to communicate what they are doing and we usually helped them talk through everything. We never looked at the syntax or cared what language they used. We wnated to see the capabilities to design the structure to store the data and some basic thinking to see of they at least were able to talk through what should be done.
In the last part we gave space for any questions.
Take a home coding challenge
We had a very easy take a home coding challenge that was basically to implement CSV parser. Parse data in the CSV we provided and print it as HTML table and excel file.
We looked at theese concepts in the final code:
- Library usage
- Unit testing
We did not require a perfect solution, we even did recomend to implement as much as they are feel like and then just write comments explainging how to finish it. We did not had a time constrain and ultimate goal here was to see if the candidate would be able to write code at our standards.
Hope this article helped you can always ask me about anytihng on my Twitter..