This year, Java turned 24 years old - but the language remains incredibly popular. In fact, there are 7.6 million Java developers all over the world and applications of this programming language include IoT, mobile and web development.
The popularity of Java creates a great demand for knowledgeable Java developers. Every company wants to develop high-performing robust software products and for that, it needs to carefully approach the process of recruiting and hiring Java experts.
It is easy to get misled by Java “rockstar’s” years of experience and number of certificates during the candidates’ screening, but in reality, that’s not enough and certainly not a guarantee of quality. To help you improve your recruitment process and ensure it separates the gold from the silver, we’ve collected together the very best practices for hiring Java developers alongside a handy job description template.
Search In The Right Places For Java Developers
What comes to your mind when you think about where to search for Java developers? Most probably, it’s LinkedIn - but there are other places where you can easily find experienced developers too.
First, you can start from communities, forums and niche platforms that are dedicated to Java and software development: Stack Overflow, GitHub, Reddit (why not?), CodeProject. These are the places where people come with real questions and get answers from expert developers so naturally, you can monitor these platforms and get in touch with users who showcase their knowledge.
Second, go to different Java conferences and hackathons. This is a perfect opportunity to introduce yourself, meet developers in person and talk about their work, goals, and interests. Even if you do not end up offering a job, you will at least be able to expand your network and meet new people who may become your colleagues in the future.
Optimize The Job Description
Because there are so many applications for Java and so many different requirements, you will be looking for a person with a specific set of skills. So first and foremost, state these preferred qualities in the job description.
An informative job description for a Java developer usually includes:
- Years of experience
- Preferred skill set
- Level of expertise (Junior, Middle, Senior, Architect)
- Required soft skills
- Project domain
- Key responsibilities
As well, you may include the company’s perks and benefits but many developers are interested in the project first.
To make it easier, create a competency framework which is a list of required skills, attributes, and knowledge for the Java developer. Such a framework is created with the help of a Project Manager or a tech lead in order to precisely identify the needed skills and include them in the framework.
Pay Attention To Java Certifications
Java offers developers the opportunity to gain the following certifications:
- Certified Professional Java EE Business Component Developer
- Certified Professional Java EE Web Component Developer
- Certified Professional Java ME Mobile Application Developer
- Certified Master Java SE Developer
The main aim of these certifications is to validate the developers’ knowledge and prove that their work corresponds to the expected quality standards. In addition, certifications indicate that a developer went the extra mile to improve their skills and knowledge, and invested some time to prove them. A developer with Java certifications is capable of solving complex tasks, finding flaws and errors, and overall operating on a more global scale.
Do Not Get Too Excited About “Rockstars”
By “rockstar” people usually mean talented developers that seem to perform much better than the “average” developers. The temptation of having a superstar on the team is enormous - but there are also a few concerns to consider first.
Software products are not created by individuals but by a team of specialists. One person simply cannot handle all the load of the project and you cannot make one person responsible for the whole project. So it’s usually better to have a strong team of knowledgeable and experienced specialists than one “rockstar” and a few mediocre assistants.
There are obviously certain benefits that a “rockstar” may bring: sharing knowledge with team members, handling complex project issues etc. But when choosing between an “average” developer and a “rockstar”, first, assess your priorities and see who will bring more value to the specific project.
Always Test Skills And Knowledge
A knowledgeable Java developer should be familiar with the following:
- JVM languages: Apache Groovy, JRuby, Clojure,
- Frameworks: Spring Boot, Spring Cloud,
- Tools: Git, Jenkins, Docker, Maven, Gradle, Selenium.
These are the essential tools that Java developers work with so it’s important that your candidate is aware of them and can confidently use them. Of course, the level of skill and knowledge will vary depending on the candidate’s level but it is expected that the person knows about:
- Cache coherence
- SQL queries
- Memory Management
- Java Virtual Machine
- Data structures
To assess a candidate’s knowledge, conduct a tech interview together with a tech lead or project’s PM and give the candidate a test task. A test helps reveal whether the candidate’s code is clean, bug-free and easy for understanding.
Example Job Description Template For A Java Developer
Below you will see a job description template for the Java developer. We will take the J2EE level as an example.
Brief Description of a Role and the Project
In this area, you introduce your company and explain why you need a Java developer. In addition, you can outline the main responsibilities and your expectations from a specialist.
Here, you will list down all the responsibilities for the specialist that are related to the specific project. Do not hesitate to make this section descriptive so the person can get a good understanding of the future job.
Another important section of the job description that covers your expectations of the developer. It is crucial to be specific in the requirements as you want to find a matching candidate and not just any old Java developer.
Also in this section, you can list the needed years of experience, set of skills and tools that a developer should be familiar with.
About the Project
What many companies do in this section is to describe the project and its tech stack so the developer can see whether he will be a good fit. This area normally includes the project domain, main tasks, tech stack, and objectives.
Another important thing to include in the project description is a few words about the team: whether it’s in-house development, distributed or an outsourced team. In addition, you should describe the management and some of the key processes that the developer needs to know about.
Note: When writing a job description, avoid cliches (i.e. “friendly team” or “comfortable office”) and try to be as specific as possible. Developers tend to ignore job propositions that have too much vague wording so clearly state your offer.
As well, try making your job description different and to help it stand out from the competition. List down the unique perks that the company offers, any interesting facts about the project or even testimonials from employees. Anything that can be of interest to a potential applicant should be included in the job description.
Hiring a Java developer is the same as hiring any other experienced software engineer. You need to look for a person with a confident skillset, certain soft skills, and correspondence to the project requirements.
Make sure to follow this checklist and the hiring process will become that much easier:
- Outline the project goals and requirements
- Create a detailed job description
- Expand your search and go beyond LinkedIn
- Conduct a technical interview and offer a test task
- Pay attention to soft skills
Editor's Note: This is a guest post by Alex Zubel at Digital Knights partner SoftTeco. SoftTeco has successfully completed over 200 custom software development projects using a highly professional team of software engineers to clients from the USA, Europe, UK and Canada. They use the latest and most efficient technologies to adhere to high industry standards and ensure seamless quality and performance.