Position: Java Back End Lead
Company: GeeksForLess Inc.
Category: Java
Experience required: 5y
English level: upper

**Details**
Project description: The client is an Irish-domiciled multinational company that provides consulting and processing services. The client's customers include 91 of the Fortune Global 100 and more than three-quarters of the Fortune Global 500.

**Requirements**
Functional programming: monads, functors, type classes;
free monads, optics;
Meta programming: shapeless;
Big Data: understanding shuffle, data skew, partitioning/bucketing, etc;
Data: CAP theorem, understanding different types of databases and where to use them;
Streaming: Event sourcing, CDC, actor pattern, consumer/producer pattern, etc;
Libraries used: Cats framework, cats-effects, cats-free; http4s; circe (JSON library); monocle; spark; Kafka and Kafka Connect (here we have some code in Java where we extend current connectors and create custom SMT (single message transformers);
Spark: batch and structured streaming;

Strong experience in agile delivery methodology (ideally Spotify model);
Experience in using agile delivery tools (e.g. Jira, etc).

**Would be a plus:**
Shapeless 
Reactive manifesto, Actor pattern Akka