Select a topic

Java is one of the most popular programming languages in use and hiring the right Java developers for the technology function is essential for several organizations. According to Stackify, Java is the most in-demand programming language among employers, with more job listings on Indeed (as of March 2017) seeking developers with Java skills than any other language. 

Java is the closest thing to a Lingua Franca (idiom meaning common language) in the IT industry. It is a computing platform used for portable codes for desktop and server environments. In simple terms, it helps develop an application and share it across platforms. Java is an object-oriented programming language which comes with the niche facility of a just-in-time compiler.

The Java developer checklist

Java is often used in every possible application in software. Thus it is essential to understand that learning it in college or getting basic certifications are hardly useful unless the recruitment is for a beginner’s role.

Java is changing almost every year and with new build and framework releases, hands-on experience in the latest or required libraries and framework should be the priority. These libraries contain pre-written essential required functions; you can save time by not having to rewrite anything. A candidate working on J2SE 5.0 released in 2004 may not be knowledgeable enough to work in Java 8 released in 2014.

Before we begin discussing the process of hiring Java developers, one should understand common terms used in Java hiring. Many of these terms are often used interchangeably, and we will be sharing only the important ones.

Check out this glossary of all the Java terms here .

Skills to test for an entry level Java developer role

While looking at hiring fresh talent in Java, it is important to test candidates on their proficiency in the language, with a strong knowledge of its ecosystems. The candidates should also have a clear understanding of object-oriented programming. In addition, they should also be familiar with data types, threads, and Servlets and the basics of the class loading mechanism.

Skills which can be assessed for a Java fresher role

Skills to test for a Junior Java developer role

Here, a candidate typically falls in the experience range of 0 to 2 years. Candidates who fit the bill should be good at writing readable and clean Java code. He/she should have a good understanding of JavaScript, Servlets, Servlet methods, and parameters.

Skills which can be assessed for a Java Junior developer role

Hiring a developer for a network or distributed application

If you want to hire a junior Java developer for a network or distributed application, the candidate should have knowledge of protocols such as IP, HTTP, FTP, etc., and sockets such as RMI and RPC.

Hiring a developer for Java-based web applications

A developer for Java-based web applications should be skilled at service-oriented architecture or web services such as SOAP and REST. He/she should also have knowledge of web technologies (HTML, CSS, JavaScript, and jQuery), JSP/Servlets, markup languages such as XML, and web frameworks such as Struts and Spring.

Hiring a developer to work on Java UI

If a developer needs to work on  Java UI, he/she should be good at Triggers, Cursors, Stored procedures, and querying using SQL.

Skills to test for a Senior Java developer role

When you want  to hire a senior Java developer, you should be looking at someone with 3 to 6 years of experience in Java. Such candidates should have the skill of writing optimized code that is clean and readable. They should have a strong foundation in object-oriented programming and in-depth knowledge of J2EE. They should also be good at error handling and debugging. As this role would also require the writing of some complex SQL queries, developers will need to have hands-on experience with query handling. As memory-related problems are very common, great Java developers have a good knowledge of runtime and garbage collection.

Skills which can be assessed for a Senior Java developer role

Skills to test for a Java Architect role

Java architects tend to have the most experience coding in Java. They must be proficient at handling exceptions, multithreading, class fundamentals, and data types. They should have experience in J2EE and have in-depth knowledge of Hibernate and Core & Session interfaces. They should also be great at design patterns and be proficient in SQL.

Skills which can be assessed for a Java Architect role

Java developer salaries in United States

Entry level Java developer

According to Glassdoor, the national average salary for an Entry Level Java Developer is $77,761 in the United States.

Junior Java developer

According to Glassdoor, the national average salary for a Junior Java Developer is $75,697 in the United States. 

Senior Java developer

According to Glassdoor, the national average salary for a Senior Java Developer is $106,542 in the United States.

Java Architect

According to Glassdoor, the national average salary for a Java Architect is $103,944 in the United States.

According to Payscale, Java developer salaries depend on the following factors -

Experience level

If you want to hire a junior Java developer for a network or distributed application, the candidate should have knowledge of protocols such as IP, HTTP, FTP, etc., and sockets such as RMI and RPC

Location

If you want to hire a junior Java developer for a network or distributed application, the candidate should have knowledge of protocols such as IP, HTTP, FTP, etc., and sockets such as RMI and RPC

Java Developer’s in New York earn an average of 13.8% more than the national average.

Skills

If you want to hire a junior Java developer for a network or distributed application, the candidate should have knowledge of protocols such as IP, HTTP, FTP, etc., and sockets such as RMI and RPC

Skills in Java/J2EE and Spring are correlated to pay that is above average. Skills that pay less than market rate include JavaScript, SQL and Java.

Top companies hiring Java developers

According to Indeed, these are the most popular companies for Java developers in the US –

Cognizant Infosys Accenture Wipro Deloitte Arthur Lawrence Leidos JP Morgan Chase Capgemini Verizon Bank of America IBM

Sourcing Java developer talent

Tech communities are full of potential hires waiting to be discovered. Here are 2 such communities from where you can source talent for free.

Hiring Java developers from GitHub

GitHub is one of the world’s largest code hosts, with close to 31 million developers. It’s like a tech recruiter’s dream. A developer’s GitHub profile gives you a wealth of information.

Before you start shortlisting profiles on GitHub, make sure that the Java developer is open to recruiters approaching him with jobs. Once this is sorted, follow these steps to find the best talent on GitHub:

  • The first step is to create a profile on GitHub
  • Once the profile is created, run a search using 3 parameters – language, location, and followers
  • By default, GitHub shows results for the list of repositories. You can change this to users by choosing it from the left hand side menu. You now have a list of developers you can reach out to.

Here are a few things to remember before you connect with potential Java developers.

  • Check their repositories to familiarize yourself with their work. This would be mutually beneficial as you can filter out candidates who you think will not fit into the job role on offer.
  • Cross-reference their profiles on either Linkedin or Twitter to be doubly sure if they would be a perfect fit or not.
  • Don’t judge profiles on how active or complete they are. Sometimes developers do not tend to share code publicly for security reasons. Also, not having a great social following is not an indication of how good their tech skills are.

For more info, download our in-depth e-book on hiring GitHub developers.

Hiring developers from StackOverflow

StackOverflow is a Q&A site for professional and enthusiast programmers. Just like GitHub, StackOverflow is also a great platform to hire amazing Java talent.

The process of shortlisting Java developer profiles is similar to GitHub. However, here are a few things to remember before connecting with your first Java developer via StackOverflow:

StackOverflow is more of a Q&A site where developers post and answer technical questions. You would need to look at candidates addressing such specific questions to see if they fit your requirements.

Developers are segregated based on their user badges and reputation scores. An ideal candidate ranks high for both.

Every question which is posted has tags associated with  it. You can use these tags to find users who fit the bill.

Some other places to find great developer talent include HackerEarth, Reddit, Kaggle, etc.

JDs for Java developer roles

Here is a sample Java developer job description for hiring challenges at HackerEarth –

Java developer Job Description

Company Introduction

HackerEarth provides enterprise software solutions that help organisations with their innovation management and technical recruitment needs. HackerEarth has conducted 1000+ hackathons and 10,000+ programming challenges till date. Since its inception, HackerEarth has built a developer base of over 2 million+.

Responsibilities

  • Working independently and as part of a team to design, develop, test and implement web based java applications -Ensure the quality of deliveries and ensure conformance to processes and practices.
  • Delivering well structured, maintainable and fully tested systems to time and budget
  • Working through the development and support phases of project delivery.
  • Update and maintain documentation for team processes, best practices, and software runbooks.
  • Understanding technical design and associated design documentation, and participate in design reviews.
  • Intuitively coalesce towards problems with an open mind, within the context of a team
  • Collaborate with globally-located cross functional team in building customer-centric products.

Essential

  • Will have a proven track record delivering Java/J2EE based applications gained through commercial experience
  • Excellent knowledge of Java 7/8
  • Java 8 – Collection, Concurrency, Lambda Expressions etc
  • Full stack Java developer [JEE, Spring, Hibernate, App Servers].
  • Excellent knowledge of spring framework (Spring Boot/REST), Restful WebServices.
  • Excellent knowledge of micro-services and API design principles (Mulesoft, and API development) -Good knowledge of Java design patterns and software principles.
  • Knowledge of architecture and design concepts, object-oriented design and techniques. Exposure to design patterns is expected.
  • Continuous integration and continuous delivery using DevOps tools like Ant, Maven, Jenkins etc
  • Experience in working on tools for Performance testing and Performance tuning.
  • Knowledge of containers and container management technologies like Docker, Kubernetes.
  • Experience of ORM and knowledge of SQL and basic database concepts.
  • Strong proficiency in: Distributed systems, Low-latency services, NoSQL and relational databases.
  • Experience with design and implementation of functional and non-functional test strategies, including related frameworks and tools.
  • Agile Scrum Experience, BDD Evangelist, champion and coach.
  • Websphere Application Server / Tomcat / Liberty
  • Good communication skills both written and verbal.
  • Pragmatic / lean / agile development techniques

Nice to have:

  • Knowledge of HTML5 – JavaScript, Angular 4 and React JS, Redux
  • Knowledge of tools like Selenium and Cucumber.
  • Knowledge of NoSQL database like MongoDB
  • Knowledge in AWS or GCP or Azure
  • Knowledge of Finance domain and Banking Products

Recruiter email templates

Outreach email

Subject – Join our amazing team of developers at <Company name>

Dear <First_Name>

I am <Name> and I work as a Recruiter for <Company name>. I came across your profile on <Social media or Job board> and I was very impressed with your skills especially <describe a project or a particular programming skill set>.

We are currently looking for a Java developer to join our amazing team and I think you would be a great fit. Here are some of the cool projects that we are working on currently – <provide a link to projects at your organization>

If this is something that interests you, please write back to me and I will be happy to explain more over a call.

Have a great day, and I hope to hear back from you soon!

Best,

<Your name>

Follow-up email

Subject – Following up!

Hi <First_Name>,

Hope you are doing great! 

Have you had a chance to read my previous mail?

We are looking for some super talented Java developers to join our team at <Company name> and I thought you would be a great fit. 

Our team of developers has been working on some cool projects <link some of your work> and I thought you would find them interesting.

And if you are wondering what it is like to work for <Company name>, here is a short video of what our employees think – <Include an employer branding video>

If you are interested in this opportunity, do drop me an email so we can take this forward. Have a great day!

Best,

<Name>

Assessing Java developers using a developer assessment software

HackerEarth’s developer assessment software helps to set yourself apart from competing employers and find better talent for your Java development needs.

Entry level and Junior Java developers

A sample basic programming question that can be included in the test for freshers in Java:

A few MCQs that you can test candidates on:

Senior Java developers

The following is a test created on HackerEarth’s developer assessment software for a senior Java developer role:

A sample programming question with difficulty level hard

A few MCQs that you can test candidates on

Java Architects

The following is a test created for a Java architect role:

A sample programming question with difficulty level hard

A few MCQs that you can test candidates on

Java interview questions

According to Geeksforgeeks, these are the most frequently asked interview questions for Java professionals –

  • Explain JVM, JRE and JDK?
  • Explain public static void main(String args[])?
  • Why Java is platform independent?
  • Why is Java not pure Object-oriented?
  • Define class and object. Explain them with an example using java?
  • What is a method? Provide several signatures of the methods?
  • Explain the dierence between instance variable and a class variable?
  • What are the dierent ways to create objects in Java?
  • What’s the purpose of Static methods and static variables?
  • Why static methods cannot access non-static variables or methods?
  • What is a static class?

Numbers at a glance

Hackerearth assessment candidate screened

3 million

developers

1,000+ customers

worldwide

18,000+ tests

created

"70% of the candidates that passed the assessments were hired"
Phuong Huynh
Technical recruiter, Zalora