Java, as a language, has been around for a long time, resulting in a rich ecosystem of frameworks and tools. To find out which – if any – were the most commonly used amongst Java users, and whether or not there were any clear trends to be found, we analysed our network of 663 Java Developers over the last 4 months to get a snapshot of the Java market as it stands today.
To get a view of the capabilities available on the job market in 2019, we analysed what Java-centric skills they knew, based on both questionnaire responses and their professional documentation. The results we found were as follows.
The Ins & Outs of Java Tooling
The basics of what a Java Developer needs to know are fairly standardised (how object-oriented languages work, the specific Java code, syntax and structures, etc.), but due to the sheer breadth and depth of frameworks and tools, it is impossible for a single developer to be a champion of every single one. For that reason, most Java Developers choose to focus their efforts on becoming experts in a few select tools, thereby avoiding a “jack of all trades, master of none” situation.
The impact on hiring is that your desired skillset needs to be well-defined and clearly communicated. It should be obvious from your job adverts and interview process exactly what software and tooling you need an applicant to know, ensuring that any potential confusion or misunderstandings are prevented.
You also need to be aware of the pros and cons associated with frameworks and Core Java Developers. For example, Core Java Developers are highly skilled in writing code that is potentially more complex, scalable, and faster, but they tend to be heavily sought after by financial institutes. Frameworks may be less performant, but they offer other benefits such as pre-defined functionality, simpler learning curves, and overall standardisation of the software development lifecycle.
The result of these differences and specialisations is that no two Java Developers are alike, despite the uniform title. That fact can be seen clearly in the following cross-section of the reported skills from a subset of our pool of Java Developers.
As you can see from the table, no two applicants had identical skillsets. In fact, there is no single skill that can be found in every one of these Java Developers. The most prevalent skills are the Spring framework (including Spring Boot), Hibernate, and Maven. The most niche skills were tooling and frameworks such as Spring Cloud, JBoss, Racket, Bamboo, Karaf, and Thymeleaf.
On top of skills, a potential employer also needs to consider the work style of developers. Within Java, as with any other coding specialisation, there will be a need for testing. Developers may test their own code, work in a TDD fashion, or work in pairs. Each of these methods has its own pros and cons – and each developer will have a preferred working style!
Another consideration is the increasing commonality of employers seeking out Full-Stack Java Developers: Java Developers capable of both doing back-end and front-end work. As roughly 90% of Java Developers tend toward the back-end, the question then is whether it is fair or realistic to search for a Full-Stack Java Developer
Experience & Capability > Specific Skills & Frameworks
For most technology specialisations, we recommend being more flexible with job criteria, particularly in regard to frameworks and tooling that can be learnt on the job. For a language as established as Java – with its resultant strong pool of professionals and potential applicants – it may seem that an employer can afford to be more specific with their requirements, demanding certain skills.
However, the huge number of potential skills and the extreme variation in which developers may learn these skills means that, even with a larger talent pool to leverage, it can still be hard to find developers with the exact set of skills that you need.
So, while the process of hiring a Java developer almost necessitates some element of specificity, a certain amount of flexibility is still necessary on the employer’s part. Instead of focusing on explicit skills, choose instead to focus on comparable projects and experience that matches the needs of your business.
Determine what skills are needed in your role and advertise accordingly.
To find the best fit for your company, you should drill down to the heart of what the job requires and ensure the job advert states the necessary tooling clearly. Don’t be afraid of being specific with the exact stack versions and frameworks that the new hire will need to know.
Once this is done, if you have the time and resources, you can always choose to hire a developer with a slight mismatch in skills in order to give them a growth curve. However, it is still good to be transparent about the needs of the job from an early stage.
If you need a Full-Stack Java Developer, consider cross-training an interested Java Developer into the role.
Full-Stack Java Developers are incredibly hard to find – and those that are available tend to be expensive hires, commanding salaries upwards of £70k. If you need a Full-Stack Java Developer and have a limited budget, consider instead finding a solid Java Developer with the back-end skills your company requires, and have them cross-train into the front-end languages and tooling they will need.
Doing this will not only save you money in the short-term, but it will give your new hire an enticing learning curve and career development path that will help keep them engaged and interested in their job.
To attract developers, showcase the newer technology that your company uses.
Developers are always attracted to newer technology that can help them progress in their career. Stagnating in roles where they use nothing but legacy tech is one of the biggest work-related reasons that developers look for new opportunities. Likewise, one of the biggest attractors – besides salary and benefits – for ambitious developers is the chance to actively learn and use newer technology stacks in their work.
So, if your company uses more modern tools or frameworks – or even if it intends to expand into new technology in the near future or is open to it – be sure to highlight these facts in the job advert and role description. But a note of warning: make sure you fulfil those promises! Failure to do so will leave you with a high developer turnover and a poor reputation within the job market.
Focus on potential and willingness (and ability) to learn.
As shown in the above table, it can be hard to pin down Java applicants with a specific mix of skills; even if you do manage to find one, there is no guarantee that they will also have the experience or capabilities necessary to succeed in your company.
Instead of focusing on explicit, existing skills, choose instead to prioritise a developer’s potential and ability to pick up new skills quickly. If an applicant has demonstrated an aptitude for learning and thinking on their feet, they will likely be a good candidate for picking up the new skills they will need in your role. Focus on core engineering principles and best practices and don’t restrict yourself to asking for ‘specific’ tools or frameworks if the knowledge is transferable.