Online Java
Coding Challenges

- Test your Java Development skills

- Test your candidate's Java skills

Start 14 day free trial*Detailed reviewer comments. Clear and easy to understand candidate ratings.

Trusted by these brands

  • Bulb
  • Lyst
  • Sky Scanner
  • Compare the Market
  • Just Giving
  • Thriva
  • Payoneer
  • e-bot7
  • Auticon
  • Bibliu

Bulb hired 70 developers in 12 months using Geektastic’s assessments, saving 58 days of engineering resource

Lauren HallHeadshot of Lauren Hall
Senior Tech Recruiter at Bulb
Change testimonial. Use index. Edit testimonial
  • 70Engineers hired in the last 12 months
  • 44Hours per week of engingeering time saved
  • 50%Reduction in time to hire
  • 408Technical assessments outsourced
Start 14 day free trial*

Where our expert review team work by day

  • Sky Scanner
  • Amazon
  • Disney
  • Capgemini
  • Freshbooks
  • Accenture
  • Google
  • Toptal

Hire Java developers, faster with Geektastic Code Challenges

When you are developing a Coding Challenge for a specific programming language, designing a challenge to demonstrate knowledge of core and key language features and strengths is the main priority. Some of the most important considerations to incorporate in a Java Programming challenge include:

  • Object-Oriented design
  • structuring a programme and encapsulating functionality through Classes
  • understanding of generics
  • and potentially depending on the requirements of the position requiring candidate evaluation, knowledge of thread-safety and concurrency handling.

We have written a broader blog post about creating challenges which you can read here.

If you are going to create a Java Coding Challenge to assess a software engineer’s skills, a major consideration is “application build”.

How should the code be compiled and run?

Of course there are plenty of Java challenges online that use the simplest form: command line compilation and a class with a main() method which outputs directly back to the command line via System.out(). In fact, this is how many automated code testing platforms work. A candidate’s test solution is validated by the command line output from the programme. But this is of course severely restrictive in terms of the types of test that can be produced i.e. mainly algorithm-focussed problems. To provide more sophisticated Code Challenges utilising interesting real world problems that really evaluate a candidate’s ability, a more sophisticated build system is necessary. Java is not known for the ease and transparency of its build systems. Maven is the oldest, most established and enterprise-level incumbent and is familiar to many Java developers. Gradle is a newer and considerably simpler build tool that addresses some of the complexities of Maven-based configuration and build. Ideally a java programming challenge would incorporate both Maven and Gradle build skeletons that the candidate can choose between and add to if required. It would be surprising to find a good Java developer without familiarity with at least one of these build automation tools.

Java programming challenges or Java coding/programming exercises are not only used by potential employers to assess the technical skills of their job applicants, they can be used as Java practice, to benchmark your skills against your peers. Since all Geektastic’s take home code challenges are reviewed by super talented reviewers all submissions receive a thorough review - you can read more about how we review here.

Java has been around for a long time in programming language terms. It was developed at Sun Microsystems (since acquired by Oracle) and the first version was released in 1995. Although peak interest in Java as assessed via Google Trends was some years ago, Java is still the dominant programming language in the world today by a number of different measures e.g. PYPL PopularitY and TIOBE Index.

 

Whereas languages such as its principal forerunner C are in decline, Java has held on to its dominant position. It’s probably no accident that Java’s appearance coincides with the beginning of the exponential growth of the internet and the growth of software development as a whole that has come about to support and leverage the internet . Although Java also now seems to be somewhat in decline, there are a number of languages (many using functional paradigms) in the ascendancy rather than a single main challenger. In fact, it may be that no future language will hold the position of dominance that Java does now or did in the last decade or more.

 

The Java Virtual Machine

Java gained considerable initial traction based on the write once, run anywhere (WORA) paradigm which was revolutionary in the 1990s. The JVM (Java Virtual Machine) - an environment for running compiled Java code on the processor / OS platform of choice - was what enabled this functionality and was one of the strands that has lead to the current strength and growth of virtualisation: virtual machines of all flavours, cloud infrastructure and Docker amongst many other developments. The robustness of the JVM has also lead to the development of other languages using alternative paradigms to Java’s that can be run on the JVM and the porting of languages such as Python and Ruby that can be run in the JVM (as Jython and JRuby) with equivalent or better performance that native language interpreters. Examples of other languages running in the JVM include Clojure which is a Lisp dialect emphasising functional programming approaches; Groovy which is a dynamic language sharing some features with languages such as Ruby and Python and which can also be used for scripting; Scala which is a statically-typed functional language and Kotlin a new statically-typed functional language which runs on the JVM but can also be compile to JavaScript code and which has recently been accorded first class support on the Android platform.

Java initially also held the promise of being able to write consumer facing applications for desktop machines running Java using the Swing GUI toolkit (and its intended successor JavaFX) although it would not be unfair to say that that has rarely been realised beyond areas such as software development tools and custom financial services or scientific applications for example. In the enterprise space though, Java as a language for backend, server-side applications has proved dominant in many situations right through to enterprise level critical applications.

 

 

 

History

Although Java has previously suffered from somewhat confusing release nomenclature - this seems to have standardised on whole numbers - and the current version is Java 8 which was first released in March 2014. Java 9, after a number of delays, is at the time of writing scheduled for release in September 2017.

In recent years Java has adopted some of the ideas of functional programming in response to the challenges in maximising performance and efficiency when running on multi-core processors. There is considerable complexity in handling concurrency and mutable state in Java applications through management of threads. There are several excellent books concerning concurrency management using Java including what is a generally regarded as the “classic”: Java Concurrency in Practice by Brian Goetz et al.

 

Open Source

It could also be claimed that Java was significant in gaining traction for the Open Source movement. Java has an extremely strong and extensive collection of open source libraries under active development. Some of those frameworks and approaches from the open source community have proved superior to those originated by the core industry itself e.g. Hibernate over Enterprise Java Beans (EJBs - adopted by Sun Microsystems from an IBM specification) and the Spring Framework (and all the associated libraries and products that developed from that project). A number of very sophisticated IDEs (Integrated Development Environments) such as Intellij Idea and Eclipse were initially developed to support the creation of Java code (and indeed are themselves desktop Java applications).

 

Libraries and Frameworks

As with libraries and frameworks in any programming language there is sometimes an opposition between ease of use and the flexibility to innovate. The maturity of Java as a language and the maturity of many of the open source libraries means that many key problems have been solved many times. Solutions to problems have frequently converged and as they should, libraries have built upon the innovations and shortcomings of earlier projects. There are now relatively standard ways of delivering core application features particularly for the web and services-based architectures. Again, Spring projects have frequently lead the way in terms of standardising common functionality and delivering support for web applications: web MVC (Model-View-Controller) architecture; delivery of REST services; standardisation of interaction with message brokers and with a wide range of datasources; batch processing and security. Spring projects and libraries generally build upon lower level libraries: JDBC; JSP; JSON and XML handling for example and are positioned more as libraries and approaches for application construction. Spring still supports both XML- and annotation- based configuration, although annotations have generally been regarded as the future. By annotating application classes Spring can connect beans together at application start up and add lots of “boilerplate” functionality to an application in a few lines of code. The more recent Spring Boot project is a logical development of the Spring ethos for application creation in that it allows the creation of a standalone Spring application or embedding of application servers such as Tomcat or Jetty without the need for creation of a .war file and deployment to separately managed application server.

The Spring Boot project effectively allows a short Code Challenge - with a timeframe of hours - to yield a fully runnable and testable application. A Code Challenge focussed on Spring might therefore supply a partially or fully configured Spring Boot application that can form a base on which the candidate adds code to implement the requirements of the challenge.

 

Looking to find out more about take-home code challenges and what makes a good challenge?

Check out of page where we talk about take-home code challenges

Start 14 day free trial*

*The 14 day free trial only applies to the £250 (€300 or $375) per month platform fee and any code challenge license fees, the free trial includes the first two Geektastic Code Challenge reviews, thereafter they are charged at £50 (€60 or $70) per review.

Frequently Asked Questions

General Questions

So what is Geektastic? I hear it’s more than a technical assessment platform

​​​We founded Geektastic with two main objectives.

1. Create a great candidate experience for anyone taking a Geektastic technical assessment.

2. Provide Hiring Teams deep technical insight into a developer’s all-round technical skills.

We welcome Hiring Teams looking to assess the skills of their software engineering candidates.

We also welcome Developers to join our global community where they can test their skills against our 25,000+ developers and share their own code challenges. 

The very best engineers in our community join our paid review team and earn a side gig reviewing code challenges in their spare time (£25 per 30-minute review).

We also help match developers from our community with our Talent partner’s roles. Because our community take code challenges to complement their profile they can show off their skills to potential employers.

What programming languages does Geektastic cover?

We support a wide range of programming languages and DevOps skills including :

  • JavaScript (inc. frameworks such as Node.js, React.js React Native and Angular)
  • Java
  • PHP
  • Python (inc Django)
  • C#
  • Android
  • Swift & Objective C
  • Scala
  • MySQL
  • C++
  • Ruby
  • Golang
  • Rust
  • Dart (inc Flutter)
  • AWS
  • Terraform
  • Ansible
  • CI/CD

We are constantly adding new languages, if you have a language we are not covering please contact us at hello@geektastic.com

How secure is my data on Geektastic?

We are fully GDPR compliant. We operate a fully secure platform using SSL encryption and we never store your passwords in plain text.

All developer profiles are anonymous, as a developer you join and create a profile. You can use OAuth like Google or Github to authorise the application or you can use a local username and password.

How can Geektastic help me assess my candidates' technical skills?

How much does Geektastic cost to assess my candidates?

NO ANNUAL FEES - EVERYTHING IS PAID MONTHLY

Take-home code challenges:

£250 (€300/$375) per month Platform Fee

£75 (€90/$95) per Take-home solution reviewed by our expert review team.

Express Multiple-choice code challenges:

£125 (€150/$175) per month Platform Fee - this includes 50 candidates

£2.00 (€2.50/$3.00) for any candidate you assess after you have used the 50 included in your monthly Platform Fee

Discounts are offered if you combine both services

All our pricing can be found here Geektastic Pricing

What makes Geektastic different from platforms like HackerRank and Codility?

For our Take-home code challenges, we use real human reviewers to perform our reviews.

We believe a human is much better at analysing a user’s code than a machine.

Candidate experience is vastly improved when they know they will be properly assessed and receive detailed feedback.

To see an example review please email hello@geektastic.com and tell us what language you’d like to see.

How long does it take you to review a candidate’s code challenge submission?

Most reviews come back the same day.

We aim to complete all reviews in 24 hours, but when the volume is high we can take up to 48 hours to complete the assessment.

Do you integrate with third party ATS platforms?

Yes, we are integrated with Greenhouse, Lever and Workable.

You’ll need an account with both Geektastic and Greenhouse/Lever/Workable to operate our code challenges on their platform.

Once you are ready to start sending out invites you just request an API key and send it over to your ATS provider (with Greenhouse you send it to your account manager, with Workable they provide a self-service interface on their website)

After they are connected you can then invite your candidates and view the results directly from your ATS.

Do you have a Free Trial?

Yes, we offer a free trial to evaluate our assessments before you buy.

We offer 2 candidates assessed using our Take-home assessments and/or 50 candidates assessed using our Express challenges for free.

Would you like to test out a Geektastic code challenge on a candidate for free? Register now

How do candidates take the challenges?

Before you can invite your candidates please register as a Hirer and either license a Geektastic Challenge or we can port your own challenge to the platform.

You then invite them to take a challenge by entering their email, first name and surname and the challenge you want them to take.

The system automatically triggers an email to the candidate asking them to take part in the challenge. You can track your candidates’ progress via our dashboard.

If you are using our Take-home code challenges then the candidate will need to have an IDE set up on their machine in advance of the challenge (the challenge instructions warn them about this prior to starting the challenge).

Our Take-home code challenges take around 2 hours to complete.

Our Express Challenges take just 30 minutes and they are completed on the platform rather than in the candidate’s IDE.

Can I use my own challenges rather than the Geektastic challenges?

Yes, in fact, we actively encourage it.

All you need to do is send us the challenge and we port it across. 

Very importantly, we also set up a short call with your development team to understand what you are looking for from our review and we draft a set of review guidelines to help our team review as if they were your in-house team

These challenges remain private and will only be used by you on your candidates.

Can you help us grow a more diverse team?

All our reviews are completely anonymous. The reviewer has no idea who they are reviewing - this means they can be completely impartial.

Removing unconscious bias is crucial in recruitment flows. If the same team that carry out the review carried out the initial phone screen or first round of interviews they will have started to build up opinions, both conscious and unconscious - there is a risk that these will flow through to the review they perform on the code challenge submission.

Using Geektastic’s platform removes the risk of these biases affecting the review.

Do my candidates remain my candidates?

100%. 

You have spent a lot of time sourcing and wooing your candidates. When you invite them to take a code challenge on our platform they remain ringfenced to you.

They do not register on the platform, they do not create a profile - they simply come to the platform to take a code challenge and receive their review.

I am a developer, please tell me how Geektastic works?

So why should I join Geektastic as a Developer?

We welcome developers from all over the world to join our fast growing community (26,000 and growing). As you might have gathered we are trying to change the way software engineers are hired.

There are a number of reasons you should join

  1. You can earn a secondary income assessing code challenge solutions in your spare time. We pay £25 per 30 minute review peer review
  2. You can review challenges created by others and earn £10 per Express Code Challenge you approve.
  3. You can earn royalties from Express Challenges you create that are then used by our customers. We pay 2p each time one of your challenges is used on a candidate. That might not sound like a lot but it can quickly add up if you create a great challenge.
  4. You can be fast tracked for some amazing software engineering roles, whether you are looking for an office based role or you want to work as part of a remote/distributed team. Most of our roles are remote - we’re a remote-first company after all.
  5. You can benchmark your skills against a global developer community. We show you where you compare to other developers.
  6. You can create and share Express Code Challenges with our community. Once you have taken a couple you can start to create your own. 

I’m sold. So what’s the process for a Developer joining Geektastic?

  1. To benchmark your skills, to join the paid review team or get fast tracked to a great new role you’ll need to complete around 20 Express Challenges per language (these take an average of 1-2 minutes to complete). 
  2. If you are keen to join the paid review team you’ll need to get in the top 5% of the global community. You will then be issued with a Take-home code challenge - we use these to assess your all round programming skills, if you ace the Take-home you are in the paid review team (if you don’t receive your challenge please email hello@geektastic.com)
  3. If you are looking for a new role you will need to set yourself to ‘actively’ or ‘passively’ looking.  We work with a hand picked selection of Talent Partners who in turn work with some of the most exciting tech businesses globally. Our matchmaking algorithm starts the process of matching you with roles but their expert team will then manually review your profile to ascertain whether you are a good fit for the role. You can apply to them directly if you see a role you like the look of, also they will be in touch with you to see if you are interested in anything they think is a good match.

What type of roles do you have posted on the platform?

They change all the time (obviously) - but they are all software engineering and DevOps jobs.

They are all broken down by Programming language (eg Java, Python, PHP, C#, JavaScript, Scala etc), tech skills (eg React.js), years of experience, how much salary you will be paid (before the tax office gets their hands on it) and whether they are based at a particular location or are remote.

We have partnered with a selection of hand-picked Talent Partners who in turn work with a wide variety of global tech businesses to give you a wide variety of roles

How do I complete a Take-home code challenge to try out for the review team?

First, you have to complete 20 Express Code Challenges in a single language.

These are the multiple choice challenges created by our expert team of reviewers and members of the community who have a high enough rating to become an author. Score well in the Express Challenges to unlock your qualifying Take-home code challenge.

We are looking for a developer to rank in the top 5% globally before we can open up a Take-home code challenge.

Can I share my review with companies who aren’t yet on the Geektastic platform?

Of course! 

You’ll be investing 30 minutes on our Express Challenges or 2 hours of your precious time completing one of our Take-home code challenges. 

You can then share your public profile which shows off your results. 

You can post it on your LinkedIn profile, Personal Website or create a QR code and tattoo it on your arm if you like.

We hope that prospective employers will use that instead of asking you to take another tech screen. 

How can I become a reviewer on Geektastic?

What steps do I go through?

We have a number of steps to becoming one of the review team. For obvious reasons we have to be very thorough (clients expect our team to the same quality as their in-house team).

  1. First you need to register and validate your email (1 minute)
  2. Create a profile - we are mainly interested in your core programming languages so we can allocate you the appropriate qualifying challenge (2-5 minutes)
  3. Complete some Express Code Challenges to show us your skills.  These take around 1-2 minutes each. You will need to complete up to 20 challenges (this is how we obtain a true ELO score). 
  4. If you get in the top 5% you will open up a peer review qualifying challenge.
  5. Take one of our Take-home qualifying code challenges (2 hours).
  6. Our review team will then thoroughly evaluate your solution and provide you with a detailed review (we aim to have this back in 24 hours)
  7. If you get voted to join the team (you’ll need to be getting 4-5 stars across the board to be voted in) we then ask you to carry out two dummy reviews as we need to make sure your reviewing skills are as awesome as your coding skills - we do give you some guidance to help you understand what we look for in a reviewer (this takes approx 1hour)
  8. Assuming your reviews are up to scratch you are upgraded to Ubergeek Review team status, we’ll add you to Slack and you’ll start to receive messages from the system inviting you to carry out reviews. We pay you £25 for each peer review you perform and £10 for each express challenge you approve. We accrue all reviews and pay you the amount due at month end - either by bank transfer if you are in the UK or by Wise, Revolut or Payoneer.
  9. Once you are in the team we’ll add you to our Slack group, this notifies each team (JS_Ubergeeks for example) when a new solution has been submitted or Express Challenge has been created which needs reviewing.
  10. You can pick up as many or as few as you like, we don’t have a minimum you need to complete in a week or month, we also don’t guarantee how many you’ll be able to review as we are beholden to our clients’ candidates submitting. Some of our Ubers did write an answer someone posed on Quora on this point. All we ask is you complete a review within a few hours of starting it so we can get the results back to the candidate who will be waiting.
  11. Oh and lastly, we’ll send your UgerGeek T-Shirt and decal.

Sound exciting? Register to become an Uber Geek today Register now

Why should I join Geektastic to carry out code reviews?

Geektastic is a great way to earn a secondary income. You choose when you work and for how long. We pay you a flat rate for reviewing candidate’s submissions straight into your bank account at the end of the month. You also get to collaborate with other Uber Geeks. We call it earning and learning.

Can I work from home?

Of course, that’s the great thing about Geektastic, you can work from wherever you like.

Can I join the UberGeek Review Team from outside the UK?

We have Uber Geeks from all over the world, from Argentina to Australia, LA to Beijing.

I specialise in a programming language not covered by Geektastic?

We are always looking to add new programming languages. Please email hello@geektastic.comwith your details, and your chosen language and we’ll be in touch.

Do you have a cap on how many challenges I can review?

You are limited by the number of challenges the platform creates for you to review. There are client generated solutions (i.e. where they have invited a candidate to take a Geektastic challenge) or where a developer has joined our platform. As all challenges are anonymous you will not be aware of which type you are reviewing. The volume of challenges is driven by the number of clients inviting candidates, the number of developers joining the platform and how many other UberGeeks there are doing the reviews. Please note this is not a full time role as demand fluctuates.

I've been invited to take one of your code challenges, what next?

I am applying for a job and have been asked to take a Geektastic code challenge

You will receive an email from the system which contains instructions detailing what you need set up on your machine (this varies depending on your technology stack) and how long the challenge will take to complete. 

Once you are ready you follow the link in the invite to our site.

Once at Geektastic you can choose to start the challenge when it suits you.

All challenges are carried under time limited conditions (some are 2hours, others you can spend as long as a week working on your solution). Once you are ready to go you hit the ‘start challenge’ and the challenge is revealed.

Once completed you upload your challenge solution in a .zip file.

Are your challenges time constrained?

Yes, all challenges have a fixed time - otherwise they could run forever and that’s not good for anyone. They tend to fall into two categories, short time constrained challenges (usually 1-3hrs) or what we call ‘open ended’ (but what we mean is you have a week to 10 days to complete the challenge).

Before you start your challenge it will let you know how long you have to complete your challenge. Please give yourself enough time at the end of the period (i.e. when the clock starts going red on the page) to zip up your solution and upload it to the platform so it can be reviewed.

Do I have to use a browser based IDE?

Nope, you can use your own IDE.

We know how annoying it can be to be asked to take a code challenge, let alone have to code the solution is some unfamiliar, browser based IDE which is also recording your every move. That’s a bit like asking someone to take their exam on one of those crazy kneely chairs and use chalk to write your answers on a blackboard

When do I find out the results of the assessment?

We perform a line by line review, star ratings for categories like code quality, solution design and problem solving skills and provide high level summary points, then you receive an email from the system to take you to the review and also allows you to feedback your thoughts on the analysis.

What happens if I don’t complete the challenge in time?

We advise all candidates to submit whatever they have at the end of the period, regardless of whether they have finished or not. 

If you don’t submit in time it’s not all over. We do provide clients the tools to open up the challenge to allow you more time to complete it - so if you suffer the old ‘dog ate my homework’ scenario then please contact the person that invited you and they will be able to decide whether to open the challenge up again.

Do you allow multiple submissions?

You can upload multiple submissions during the challenge window. However we always assess the last submission so please ensure the last submission is your ‘final answer’.

What do I do if I have problems whilst working on my code challenge?

Please contact the person that issued the code challenge if you have any issues with your challenge, they can then contact Geektastic support if they can’t resolve the issue.