- Test your Java Development skills
- Test your candidate's Java skills
Java Coding Challenges
We have many programming challenges, Java being one of the most popular.
Are you looking for a platform to peer review Java Code Challenges?
Bulb hired 70 developers in 12 months using Geektastic’s assessments, saving 58 days of engineering resource
- 70Engineers hired in the last 12 months
- 44Hours per week of engingeering time saved
- 50%Reduction in time to hire
- 408Technical assessments outsourced
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 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.
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.
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?
Frequently Asked Questions
So what is Geektastic? I hear it’s more than a technical assessment platform
Let’s face it - the current process for hiring software engineers has (lots of) room for improvement.
At its core Geektastic is a platform that manages code challenges. We believe a candidate is worth more than a score and humans perform much better reviews than machines.
There is more to coding than solving an algorithm.
We help employers and recruiters assess the technical skills of software engineering candidates through deeply insightful, code challenges.
We have built our own unique bite-size Express Code Challenges for our developer community to enjoy before they commit to taking our 2 hour Peer Review Take Home challenges.
We also help match developers from our community with employer’s roles. Because our community take code challenges to complement their profile they can show off their skills to potential employers.
The very best engineers in our community (those that ace our code challenge with 4-5 stars across the board) join our well paid UberGeek Review Team and earn a secondary income reviewing code challenges in their spare time (£25 per 30 minute review).
Our UberGeek review team also approve express code challenges which have been created by the community just to make sure they are 100% - we pay £10 for each express code challenge reviewed and published.
What programming languages does Geektastic cover?
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.
I am a developer, please tell me how Geektastic works?
So why should I join Geektastic as a Developer?
Good question! We welcome developers from all over the world to join our fast growing community. 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
- You can earn a secondary income doing code reviews in your spare time. We pay £25 per 30 minute review peer review and £10 per express code challenge review.
- 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.
- You can benchmark your skills against a global developer community. We show you where you compare to other developers in our global community.
- You can create and share Express Code Challenges with our community. Once you have taken a couple you an start to create your own. We have created some guidelines you can read here.
I’m sold. So what’s the process for a Developer joining Geektastic?
- To benchmark your skills, to join the paid review team 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.
- 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 peer review code challenge - we use these to assess your all round programming skills, if you ace the peer review you are in the paid review team.
- If you are looking for a new role you will need to set yourself to ‘actively’ or ‘passively’ looking. This will mean you start matching with roles on the platform. We have signed an exclusive partnership with a tech recruiter called Third Republic. Our matchmaking algorithm start 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?
How do I take a peer review code challenge to try out for the review team?
First you have to complete 20 Express Code Challenges in a given 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 Peer Review challenge. We are looking for a developer to rank in the top 5% globally before we can open up a peer review.
Can I share my review with companies who aren’t yet on the Geektastic platform?
Of course. You’ll be investing sound 30 minutes on our Express Challenges or 2 hours of your precious time completing one of our peer review 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 to 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?
What step 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).
- First you need to register and validate your email (1 minute)
- Create a profile - we are mainly interested in your core programming languages so we can allocate you the appropriate qualifying challenge (2-5 minutes)
- 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).
- If you get in the top 5% you will open up a peer review qualifying challenge.
- Take one of our peer review qualifying code challenges (2 hours).
- Our review team will then thoroughly evaluate your solution and provide you a detailed review (we aim to have this back in 24-48 hours)
- If you get voted to join the team (you’ll need to be 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)
- 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.
- 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.
- 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.
- 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 [email protected]with 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.
Why is Geektastic the best technical assessment platform?
How much does this amazing service cost?
Prices start at £250 per month - no annual fees, you can pay everything monthly (or €300 or $375)
Each review done by our review team is £50 per review (or €60 or $70)
You can license our challenges from just £20 per month (or €24 or $30)
All our pricing can be found here Geektastic Pricing,
Does Geektastic use machine based automated candidate testing?
Nope. We use real human reviewers to perform our reviews. Please have a read of this blog post for more on our thoughts about how to perform code challenges
How long does it take to review a candidate’s code challenge submission?
Most come back the same day. We aim to complete all reviews in 24 working hours but when throughput volume is high we can take up to 48 hours to respond.
Do you integrate with third party ATS platforms?
You’ll need any account with both Geektastic and Greenhouse/Workable to operate our code challenges on their platform.
Once you are ready to start sending out invites you just request and 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.
Can I try before I buy?
Yes, we offer a free trial to test out our assessments before you buy. You can have two free assessments on the house.
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 candidate you need to register as a Hirer and either license a Geektastic Challenge or create a custom code challenge.
You then invite them to take a challenge by entering their email, first name and surname and the challenge you want them to take into Geektastic.
The system automatically triggers an email to the candidate asking them to take part in the challenge.
Each challenge usually requires certain tools such as an IDE to be set up on the user’s machine in advance of the challenge (the challenge instructions warn them about this prior to the clock starting to tick away).
The candidate also needs to find a time window (usually two hours) where they can log into the platform and carry out the challenge. Once they have completed the challenge they upload their solution as a zip file.
Can I use my own challenges rather than the Geektastic challenges?
Yes, you can upload your own challenges using our code challenge builder tool. 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?
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'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.