8 key considerations when interviewing a Java developer
By Jamie Mercer
The Java marketplace is huge. There are so many skilled Java developers available, and knowing how to interview them can turn your good hire into a great one.
Still the most widely used programming language in business, holding a 13% market share, Java is primarily used to build large-scale projects.
When looking for a developer to suit your needs, it can be difficult to qualify candidates and nail down the developer with the skillset you need, especially with so many options available.
To help you dig up the information you need to make the best hiring decision, we’ve put together some top tips for interviewing your next potential Java developer.
Make sure they know the basics
Developing software takes time and planning. Before you begin the development process, you’ll need to decide on the skills you require to get your project off the ground.
Most developers will have a grasp of the fundamentals associated with Java if it’s their primary programming language. But you can be faced with those who’ll try and pass off theoretical knowledge as practical experience.
There’s a massive difference between the knowledge of a language and the practical application. Just because a developer can explain a process doesn’t necessarily mean they can code a solution.
Having a technical expert take part in your interview can help you decipher whether a developer meets the needs of your business. Alternatively, if you require extra help, a qualified recruiter can provide you with some assistance in finding a skilled developer.
One further thing to consider when interviewing Java developers is those fresh out of academia won’t have the same practical experience to support their knowledge of Java.
But choosing to bring in a graduate can be a sound option. These developers are a blank canvas, and allow you to mould your new hire to fit with your development plans while also building on the basics they’ll have learnt at university.
Test their Java version knowledge
Java is continuously evolving as a programming language, and although having core skills should be a vital part of the remit, you’ll also need to hire a developer who is familiar with the particular versions you’re using.
A developer will usually list the versions they’ve used most recently on their CV, but if they don’t, bring up the topic in the interview if you want to know more.
The most common version required as part of a tech stack is Java 8, the current LTS version of the language. This should be the primary focus when questioning a developer.
They should also be able to demonstrate that they’re up to date with most recent releases of Java, Java 9 and Java 10, both of which are rapid release versions. Of course if you’re using a particular version of Java (and plan to stick to it) then make sure they have experience with older versions too.
Getting this type of information out of a developer should be easy. Simply question their knowledge of what elements were released with each version, or which ones they would use for a specific project.
Find out which Java frameworks they can use
Choosing a Java framework that suits your development needs is a key part of the planning process, and when deciding a developer to bring onto your development floor, previous and relevant experience should be a top priority.
When developing any piece of software, each framework utilised will allow you to create different elements, and merge them into one application that suits the needs of your business.
The Java ecosystem is packed full of frameworks compatible with the language, and if you’re going down a specific route, you’ll need to find a developer who matches your specifications and can complete the job on time.
When you finally get down to the interview process, familiarity with your chosen framework should be a priority; the developer should be able to discuss this framework freely when questioned.
Ask them to describe instances where they’ve used the framework in a business scenario, what elements they’re most familiar with, and how they can implement these frameworks to make your current processes better. All of these will be key gauges of their experience.
By discussing their previous work you may discover that they have previous experience of the Java frameworks your business utilises, even if it isn’t the one they’ve used most recently. For example, if they’re more familiar with Spark, it doesn’t mean they won’t be able to use Spring.
You’ll also need to remember that all frameworks undergo changes and updates which your business will need to keep on top of. So when considering any developer, their ability to stay up to date with the latest trends should be a key talking point.
And what about Java tools?
The ability to implement Java tools and manipulate the language is also essential.
If a developer is skilled in the basics of Java, they should have knowledge of JDKs that allow them to compile, run the environment, and use Java APIs to complete development tasks.
You’ll need to quiz a developer and verify their proven skills with Java tools, as junior developers may have the knowledge in their arsenal, but not the practical expertise to get it done.
Choosing a programmer won’t only come down to their experience of the basics, and if you require them to use a specific tool to complete everyday tasks, a Java interview is a perfect time to question their expertise.
This could be a specific build environment tool such as Maven or Gradle. It could also be previous knowledge and practical application of continuous integration (CI) tools such as Jenkins.
During the interview process, you should also question their experience of web services in Java, particularly SOAP and REST.
SOAP has been around for a little while, and developers should be familiar with its concepts. But if you’re choosing to use REST, the new kid on the block, you may have to dig a little deeper to find out whether a developer has both the knowledge and experience required to utilise it.
Which developer methodologies are they familiar with?
The most significant change in software development has been the shift in methodologies. Updates to methodologies can enable developers to create applications faster, but they can also lead to delays if your developers aren’t up to speed with the latest practices.
There are many methodologies available for a business to use, many of which can be combined, so asking a developer about their experience during an interview is a big telling point in whether they’re right for you.
Currently, the most favoured methodology is Agile, which promotes cross-collaboration between everyone involved in the development process. It also encourages businesses to develop in sprints, that, once completed, will enable the work to be tested and evaluated before deployment.
Discovering a developer who has this expertise can help you uncover a developer who matches the job description. But to find out their experience of Agile, Waterfall or Scrum, you’ll need to ask the questions that focus on their experience.
Agile isn’t the only methodology commonly used today, however. Waterfall development, combined with scrum and the use of regular stand-ups, is now becoming more popular, as it allows for quick and controlled app production.
Having a developer who is experienced in more than one primary methodology can be beneficial, so ask a developer to explain their knowledge of both.
Which software development process are they familiar with?
When committing to the development of any piece of software, you’ll need to choose a Java developer who is not only familiar with your development methodology but can also navigate the process you follow.
Creating, testing and deploying any software will take time, and if one element is missing or behind schedule, it’ll mean delays or unfinished projects.
Finding out which development processes a candidate is familiar with should be a key part of the interview scenario. Most will only have used one during their career. By discovering whether they favour TDD or BDD early in the process, it will help you decide whether they’re the suit the current development style of your business.
The two common processes, BDD and TDD, work equally as well as the other, but your business will probably favour one. You’ll need a developer who has previously worked with your chosen process in a practical environment.
Question a developer on whether they prefer to test, fix and then run a deployment, or alternatively, if they prefer to create, run and then fix a piece of software.
Give them a technical test
If you want to hire the right developer first time around, it’s not enough that they can talk the talk, you also need to make sure they can walk the walk.
When it comes to checking knowledge of programming languages, the best route for your business to take is giving them a written or online technical test, or asking them to perform a code review.
There are many tools available for your business to create tests suitable for your needs, including Codility. If you choose to go down this route, these tests should be created and analysed by a technical interviewer.
If you prefer to use fully automated tests, platforms such as Tests4Geeks offer a full library of coding tests specifically for Java.
Live coding is another way you can assess the coding knowledge of a developer, and it also provides an excellent opportunity to introduce them to the rest of your business.
Offering your chosen candidate a chance to see the way your company does things will allow you to see if they have the skills to keep up with the rest of the team. This is also a strong telling point as to whether they’re a good cultural fit.
But if you’re unable to open up your current project, or decide on specific Java coding interview questions, a Hackathon is a great substitute. Allowing you to test coding proficiency in an active environment, if you have more than one potential candidate, you can test each of them remotely to find the best fit for your business.
Ask them to describe the latest project they’ve worked on
Finding out about a developer’s knowledge and expertise is an important part of the Java interview process, as choosing a person who fulfils your business requirements won’t only come down to what they’ve learned on a course or in a textbook.
Practical experience should be the main indicator of whether a developer is suitable for your business. To find out how much hands-on experience they have, ask them to describe the last project they’ve worked on from start to finish.
It’s during this explanation you’ll find out which tools they’re comfortable using, how they worked with the rest of the team, and how they handle the Java language.
All this practical experience should be a major talking point in the interview, and if you find common ground, they could be the perfect hire for your business.
Whether you believe a developer is suitable after a first look at their CV, by delving deeper into their experience of the language, frameworks, and methodologies, you could give rise to a fruitful relationship.