Saltar para o conteúdo
Perguntas da entrevista
How to screen Groovy developer skills

How to screen Groovy developer skills

Perguntas da entrevista
How to screen Groovy developer skills

The Apache Groovy programming language is one of the oldest alternative programming languages running on JVM (Java Virtual Machine). The Java-syntax compatible Groovy script celebrates its 17th birthday in 2020. People might think that development or the buzz surroundings more recent JVM languages like Kotlin have made Groovy redundant.

Well, that couldn’t be further from the truth!

The Groovy community is more than alive and well and the Groovy syntax is still developed by a group of contributors. The language is one of the most downloaded libraries in the Java ecosystem and it is supported by a wide range of frameworks. One of the reasons for its popularity is that Groovy makes unit and automated testing easier. What’s clear is that when used correctly – Apache Groovy has the potential to give your tech a huge productivity boost.

In this guide you’ll find:

A guide to screening Groovy developer skills

If you’re not familiar with Groovy, have no fear. We’ve created a list of things you should know before you begin screening for your next Groovy developer.

What is a Groovy developer?1. What is Groovy?

Groovy or Apache Groovy is a JVM-based programming language. It is dynamic in nature, with static typing and static compilation capabilities. The Groovy programming language is aimed at improving developer productivity thanks to a concise, familiar and easy to learn syntax. Groovy is a Java enhancer because it provides greater flexibility and even introduces special features to applications (those that have already been developed can be improved or they can be made from scratch).

Groovy has convenience methods that make it seem somewhat similar to Python or Ruby. The beauty of the Groovy language is that it can reduce your boilerplate Java code by a substantial amount. What’s really great about Groovy is that it can be used really easily alongside Java in the same project.

1.1 What is the difference between Groovy and Java?

Groovy is an object-oriented programming language that also supports scripting whereas Java is an object-oriented programming language. Groovy syntax builds on top of Java which means Java code can mostly be copied and pasted into Groovy (with some exceptions), while not vice-versa.

Groovy is known as a JVM scripting language and a lot of Groovy developers are taking advantage of its flexible nature. There are a number of use-cases where Groovy is a better choice than Java.

When it comes to syntax, Groovy builds on top of Java. Groovy offers more flexible syntax alternatives than Java, which has to rely a lot on boilerplate code. Groovy adds many enhancements that reduce the amount of boilerplate code, all while supporting the Java syntax. This is a great benefit as it helps make the code more readable.

Groovy provides more comprehensive support for functional programming than Java. It offers robust runtime and compile-time meta-programming capabilities, strong support for creating DSLs and scripting capabilities.

For a beginner, Groovy is also probably easier to learn than Java as many basic things can be coded more intuitively.

1.2 What is similar between Groovy and Java?

For a programmer with previous knowledge of Java, starting to work with Groovy code is extremely easy. The learning curve is practically flat. Groovy allows you to do things that were overly complex in Java, but in a much neater fashion. This in itself is a joyous experience.

The syntax is quite similar for both, but because of Groovy’s enhancements, its code is much easier to read. The best part is that both can live together in the same project. The popular Spock testing framework is also built on Groovy.

With a few exceptions, you can copy/paste code from a .java to a .groovy file. Groovy provides out-of-the-box popular Java imports such as java.io.*, java.lang.*, java.math.BigDecimal, java.math.BigInteger, java.net.*, java.util.*. These can be used within Groovy code without having to add import statements.

It’s also easy to use both Java and Groovy within one Maven or Gradle project.

2. What is Groovy used for?

Groovy can be used as an independent project language as well as an additional language in Java projects. There are production applications built fully on top of Groovy, including many web applications built on top of the Grails framework (a Groovy-based framework similar to Ruby em Rails). A lot of prevalent JVM frameworks, including Spring, support Groovy. Also, a lot of tooling and “glue software” is written in Groovy.

As a companion language in Java projects, it’s frequently used for testing (including the exquisite Spock testing framework), working with Strings, Collections, and JSON or XML files, as well as creating DSLs (Domain Specific Languages) and scripting. It’s important to say though that of all the features listed above, only scripting cannot be done in Java.

Groovy is also used for building build tool plugins and scripts and as a powerful scripting language within the deployment process (for example, Groovy DSL for Jenkins CI/CD).

Screen a Groovy developer: what should an IT recruiter know about Groovy?3. What is important for an IT Recruiter to know about Groovy?

Groovy integrates seamlessly with the vast Java ecosystem.  It can be used in conjunction with a significant number of the tools and frameworks that work with Java, including Maven and Gradle.  The language offers state-of-the-art testing frameworks (Spock, Geb) and easy-to-use web development frameworks (such as Grails and Ratpack).  Groovy is supported by various Java-based application frameworks, including the popular Spring framework. It even has its own framework for developing desktop applications (Griffon).

3.1 What tools and techniques should a Groovy developer be familiar with?

As with Java, knowledge of build tools, such as Maven and/or Gradle will be essential. In addition, a good working knowledge of an IDE such as IntelliJ is important.  Another thing to take into account is that a Groovy developer will be expected to be familiar with at least one application framework.

Screen a Groovy developer: Verify Groovy skills4. How to verify Groovy skills in the screening phase?

To evaluate a candidate’s Groovy skills, a recruiter may use one of the following mediums:

  • Programming tasks
  • MCQs (Multiple Choice Questions),
  • MAQs (Multiple Answer Questions)
  • Fill in the Blanks, Whiteboard Questions
  • Audio / Video Questions
  • LogicBox (AI-based Pseudo-Coding Platform)
  • Coding Simulators
  • True or False Questions, etc

4.1 Screening a Groovy developer using their resume

A candidate with experience developing applications, tools or libraries in Groovy would clearly be an advantage.

However, as learning Groovy is functionally simple for Java developers, hiring Java developers for Groovy positions might also be a good idea. Of course, only provided they are interested in learning and using Groovy on the job.

Both technologies require an understanding of the same underlying engine, so it seems like a decent match for starters.

4.2 What type of experience is important to look for in a Groovy developer?

This depends more on the type of project than the technology itself.

It might make sense to look for developers with experience in similar areas. However, it’s not something to treat as a necessary condition.

An open–source experience often has the advantage of allowing you to see the contributions that the candidate has already made. This knowledge can give you some insight regarding their skills and abilities.

Screen a Groovy developer: Groovy glossary4.3 A Groovy glossary for technical recruiters

Groovy versions
  • 2.5.x – most recent GA
  • 2.6.x – still alpha
  • 3.0.x – now available RC 2
Application frameworks
  • Spring (most recent GA: 5.2.2.RELEASE) – most popular,
  • Spring Boot (most recent GA: 2.2.2.RELEASE) – most popular,
  • Grails (now available 4.0.x) – relevant if used in the project that the recruitment is for,
  • Ratpack (most recent GA: 1.7.x) – relevant if used in the project that the recruitment is for,
  • Micronaut (most recent GA: 1.2.x) – relevant if used in the project that the recruitment is for,
  • Quarkus (now available 1.1.x) – relevant if used in the project that the recruitment is for.
Build tools
  • Maven
  • Gradle
IDEs
  • IntelliJ IDEA (probably most popular)
  • Eclipse

4.4 The different versions of Groovy

There have been many revisions of Apache Groovy but the most popular releases are as follows:

  • Groovy 1.0
  • Groovy 1.5
  • Groovy 1.6
  • Groovy 1.7
  • Groovy 1.8
  • Groovy 2.0
  • Groovy 2.1
  • Groovy 2.2
  • Groovy 2.3
  • Groovy 2.4
  • Groovy 2.5
  • Groovy 2.6
  • Groovy 3.0

4.5 Which versions are similar to each other? Which versions are different?

Groovy 2.0 has been for a long time the most recent line with GA releases and it’s the most broadly used.

This version offers vast support when it comes to supporting Java syntax. One advantage is you can just copy/paste large amounts of Java code into Groovy classes and it compiles and runs without any issues.

A significant update to the language included the Groovy Parrot Parser (available by default in 3.0 and as opt–in from 2.6). This update supports more Java syntax, including Java loops, array initializers, default interface methods, lambdas and method references, offering nearly 1-to-1 syntax parity with Java.

Another difference is that Groovy 3.0 includes some changes to class/package names as compared to the previous versions.

4.6 How important are Groovy certificates for assessing a candidate’s coding skills?

There are no well-renowned certifications for the Groovy language. Oracle Java certifications might constitute an advantage, though; however, we would definitely not consider them a must-have.

4.7 Other things to look for on a Groovy developer’s resume

A computer science degree usually indicates a broader knowledge of the field and could certainly be seen as an advantage.

Look out for whether the candidate:

  • Has worked on a typical Groovy project
  • Has participated in large projects, dealing with unique and stringent requirements (if you are looking for someone to work on a complex enterprise system). If you are looking for someone to write libraries in Groovy or to work on the CI/CD tooling, this might not be an important criterion
  • Has participated in a similar project to the one you are recruiting for

Additionally, if the following are mentioned, these types of activity can be examined based on the publicly visible history of the candidate:

  • Speaking at conferences
  • Attending conferences
  • Writing articles to technical magazines
  • Writing a technical blog
  • Contributing to OSS
  • Contributing to answer sites (e.g. Stack Overflow)

Screen a Groovy developer: Groovy interview questions 5. Groovy interview questions to ask during a phone/video technical interview

It’s difficult to rely on just the words of a resume. After all, it’s important to challenge the candidate to determine whether they really have the skills they claim to have. Even if it’s just a phone interview, it can help you understand how the candidate thinks and goes about solving problems related to their craft.

5.1 Questions about the candidate’s experience

  • How long has the developer worked with Groovy and/or Java?
  • What kind of projects have they created with Groovy and/or Java? How many (web applications, distributed systems, tooling, DSLs, etc.)?
  • What version of Groovy did they work on?
  • More broadly, what software development projects have they worked on (also in other technologies)?

These questions will help you determine the level of professional experience the developer has with Groovy and/or Java. The greater amount of experience, as well as experience in projects similar to the one you’re recruiting for, must be considered an advantage.

If someone does not have experience working with Groovy but has broad experience with other technologies, they also might be a good fit provided they are a proven fast-learner.

5.2 Questions about the candidate’s knowledge and opinions

  • What are Groovy’s most important features?
  • What are the main differences between Groovy and Java?
  • What are some Groovy good practices when using the language?
  • What should I be aware of when working with Groovy?

These questions will allow you to understand how well the candidate knows the technology and if they are aware of the most common issues and pitfalls.

5.3 Behavioral Questions you should ask to understand how the candidate has acted in the past

  • What is your biggest programming achievement? Why did it happen? How can you repeat it?

This question will allow the candidate to present a success story and can indicate to the recruiter whether the candidate is more interested in solving the problem or getting the praise.

  • What was your biggest problem in programming? Why did it happen? How can you avoid repeating it in the future?

This question will prompt the candidate to describe a personal low-point, and will show the recruiter whether the candidate is comfortable speaking about it. It can additionally reveal if the candidate is interested in solving the problem or shifting the blame.

  • Would you like to mentor a junior developer? Why? How would you go about doing it? Do you have any experience mentoring other people?

This will allow the recruiter to gauge the candidate’s interest in and the necessary soft skills required for sharing knowledge.

Check out more qualities of a good developer.

Author – Olga Maciaszek-Sharma

How to screen Groovy developer skills author Olga Maciaszek-SharmaOlga Maciaszek-Sharma is a Senior Software Engineer on the Spring Cloud Team at Pivotal, where she works primarily on Spring Cloud Commons (Spring Cloud LoadBalancer), Spring Cloud Contract, Spring Cloud Netflix, and Spring Cloud Gateway. She has gained experience while working with microservices where cutting-edge solutions were used as well as with complex legacy systems, implementing both new business features and solutions aimed at improving the process of continuous deployment and setup of applications. Olga is also a contributor to various other OSS projects, including JFairy, Jenkins Pipeline Plugin, Jenkins Stash Pull Request Builder Plugin, and Java Gitlab Client. Before switching to development, she worked for more than 3 years as a Quality Assurance Engineer, specialized in test automation.

Screen a Groovy developer: Groovy coding tests6. Technical screening of a Groovy developer’s skills using an online coding test

The number one concern you should have with recruiting a Groovy developer is whether they have immaculate coding skills. Groovy is a simple language which makes coding easier, but like all languages, it does require good coding skills What is for certain, a resume screen and phone screen will help you filter through some of your candidates. That said, the last thing you want is to invite a candidate to a technical interview only to find that they never had the coding skills you require. Nightmare.

6.1 Which Groovy online programming test should you choose?

When looking for the right Groovy online programming test you should make sure it matches the following criteria:

  • The test reflects the quality of professional work being carried out
  • The duration is not too long, one to two hours max
  • The test can be sent automatically and is straight-forward in nature
  • The difficulty level matches the candidate’s abilities
  • The test goes beyond checking whether the solution works – it checks the quality of the code and how well it works in edge cases
  • It’s as close to the natural programming environment as possible and allows the candidate to access relevant resources
  • It provides the candidate the opportunity to use all the libraries, frameworks, and other tools they regularly come across

6.2 DevSkiller ready-to-use online Groovy developer coding assessment tests

DevSkiller coding tests use our RealLifeTesting™ methodology to mirror the actual coding environment that your candidate works in. Rather than using obscure algorithms, DevSkiller tests require candidates to build applications or features. They are graded completely automatically and can be taken anywhere in the world. At the same time, the candidate has access to all of the resources that they would normally use including libraries, frameworks, StackOverflow, and even Google.

Companies use DevSkiller to test candidates using their own codebase from anywhere in the world. To make it easy, DevSkiller also offers a number of pre-made Groovy coding tests like the ones here:

Spring Boot
JÚNIOR
Competências testadas
Duração
54 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de Java, Spring Boot

Lacunas no código

avaliar o conhecimento de Java

Tarefa de programação - Nível: Fácil

Java | Spring Boot | HATEOAS Bike Station - Finish the implementation of HATEOAS to the REST API.

Groovy
MEIO
Competências testadas
Duração
40 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de Groovy, Java

Tarefa de programação - Nível: Médio

Java | Groovy | Flight manager app | Seats reservation and flights analysis - Implement missing features of the flights' data management application like seats reservation and flights analysis.

Java Script
MEIO
Competências testadas
Duração
80 minutos no máximo.
Avaliação
Automático
Resumo do teste

Tarefa de programação - Nível: Médio

Java | Flights manager | Implementar uma aplicação responsável pela gestão dos dados dos voos

Tarefa de programação - Nível: Médio

JavaScript | React | Formulário de contacto - Otimizar o formulário de preenchimento para os utilizadores do site

Java
MEIO
Competências testadas
Duração
55 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de Java API padrão

Tarefa de programação

Na aplicação de gestão de voos, o candidato tem de implementar dois métodos comerciais para encontrar voos entre duas cidades e gerar uma lista de lugares para um avião. Requer Java conhecimento.

Java
JÚNIOR
Competências testadas
Duração
45 minutos no máximo.
Avaliação
Automático
Resumo do teste

Perguntas de escolha

avaliar o conhecimento de Java API padrão

Tarefa de programação

Na aplicação Flights manager, o candidato deve aplicar dois métodos comerciais para encontrar voos e reservar um lugar, o que exige conhecimentos básicos sobre Java

Comece a utilizar
DevSkiller hoje

Descubra como o DevSkiller pode ajudá-lo a crescer.