This is the list of badges that are available for earning:

GIT Apprentice

GIT Apprentice is capable of using basic Git commands when working on a programming task. They are capable of collaboratively working with other developers on the same project that is kept on a dedicated online server (e.g. Github).

JUnit Tester

JUnit is a unit testing framework for the Java programming language. A unit test is a piece of code written by a developer that executes a specific functionality in the code to be tested. A unit test targets a small unit of code, e.g., a method or a class, and they ensure that code works as intended. JUnit has been important in the development of test-driven style of programming.

JavaDoc Documenter

Javadoc is a documentation generator for generating API documentation in HTML format from Java source code. The HTML format is used to add the convenience of being able to hyperlink related documents together. The "doc comments" format used by Javadoc is the de facto industry standard for documenting Java classes.

J-Swing Apprentice

Swing is a GUI widget toolkit for Java. It is used to provide a sophisticated graphical user interface (GUI) for Java programs. Swing provides a native look and feel that emulates the look and feel of several platforms, and also supports a pluggable look and feel that allows applications to have a look and feel unrelated to the underlying platform.

Three-tier Designer

Three-tier architecture (Model View Controller - MVC), in software engineering, is a client–server architecture in which presentation, application processing, and data management functions are physically separated. It provides a model by which developers can create flexible and reusable applications. By segregating an application into tiers, developers acquire the option of modifying or adding a specific layer, instead of reworking the entire application. A three-tier architecture is typically composed of a presentation tier (user interface), a business rules tier (functional process logic), and a data storage and access tier.

JSON Rookie

JSON (JavaScript Object Notation) is a lightweight data-interchange format. Data objects in JSON are consisted of attribute–value pairs. JSON is easy for humans to read and write. It is easy for machines to parse and generate. Although originally derived from the JavaScript scripting language, JSON is a language-independent data format. Code for parsing and generating JSON data is readily available in many programming languages.

Maven Beginner

Maven Beginner Badge demonstrates the ability of a badge holder to create Maven projects, perform basic project setup and run default Maven goals. Badge holder also understands Maven dependencies system, how to find add a dependency and add it to a project.

The Collector

A Java collection is simply an object that groups multiple elements into a single unit. Collections are used to store, retrieve, manipulate, and communicate aggregate data. Typically, they represent data items that form a natural group, such as a poker hand (a collection of cards), a mail folder (a collection of letters), or a telephone directory (a mapping of names to phone numbers). All collections frameworks contain the interfaces (the abstract data types that represent collections), implementations (the concrete implementations of the collection interfaces), and algorithms (the methods that perform useful computations).

Multi-thread Wrestler

A thread is a program's path of execution. Most programs written today run as a single thread, causing problems when multiple events or actions need to occur at the same time. Multithreaded applications deliver their potent power by running many threads concurrently within a single program. From a logical point of view, multithreading means multiple lines of a single program can be executed at the same time.