Position: Middle Java Developer for Lottoland
Company: Ciklum
Experience required: 2y
English level: intermediate

On behalf of Ciklum Digital, we are looking for Middle Java Developer to join our team on a full-time basis.

**Project description:**
To support our development teams in Malaga, we are looking for a Middle Backend Developer who is very experienced and passionate about software development, who love to push product development using state-of-the-art technology, and who have very high-quality standards.
As a Java Developer, you will work in one of the multi-disciplinary Marketing teams implementing new and improving the existing functionality of the gambling platform. You will use your experience and knowledge to support and make architectural decisions together with the software architects, play a part in the selection of new technologies, and promote knowledge transfer both within your team and between teams. You will be also responsible for reviewing the work of your colleagues as well as supporting junior developers.

**Responsibilities:**
Back-end development to meet customer’s business needs and implement components according to modern software development environment;
Taking part in the decision-making process in application code design, solution development, code review;
Develop and review feature design documents and provide inputs/update to specifications for the solution;
Design and implement a set of various types of tests (unit, integration, functional, etc);
Proactive position in solution development, processes improvements;
Working in an international distributed team in an Agile environment;
Communicate with PMs, engineers, Architects, QA and other colleagues and stakeholders;
Delivering the product roadmap and plannings;
To use high coding standards, software best practices and write highly testable, automatable and performant code over the whole SDLC.
 
**Requirements:**
Experience in software development for more than 3 years;
Strong knowledge in Computer Science, Computing Theory:
Paradigm & Principles (OOP, SOLID);
Database theory (RDBMS);
Code testing practices;
Algorithms;
Data structures;
Design Patterns;
Understanding of network interactions:
protocols;
conventions (e.g. REST, RPC);
authentication and authorization flows; 
standards and practices (e.g. oAuth, JWT);
Strong knowledge and experience in Java (more than 2 years);
Practical commercial experience with:
REST API development;
Web application frameworks (e.g. Spring Boot Framework) (more than 1 year);
Testing frameworks (e.g.e.g. JUnit, PowerMock, WiresMock) (more than 1 year);
ORM (e.g. Hibernate) (more than 1 year);
RDBMS (e.g MySQL/MariaDB, PostgreSQL, Oracle) (more than 1 year);
Web Servers;
Version control systems (GIT);
Docker;
Continuous Integration tools (e.g. Gitlab Pipeline, Jenkins, TeamCity, Bamboo);
Builders;

Experience with:
Agile software processes and technologies;
Code Review process;
Refactoring process;
Upper-Intermediate English;
 
**Desirable:**
Knowledge in:
TDD, BDD;
Architectural, Enterprise Patterns;
Security patterns, Common attacks types (OWASP);
Deployment patterns;

**Experience with:**
Troubleshooting, profiling and debugging applications;
Microservices; 
Practical commercial experience with:
Key-value storages (e.g. Redis, Memcached);
Messaging systems (e.g. RabbitMQ, Apache Kafka, Active MQ, AWS SQS, Azure Service Bus, Google Pub/Sub);
Cloud solutions (e.g. AWS, Google Cloud Platform, Microsoft Azure);
Serverless architecture;
Integration with 3rd party solutions;
NoSQL (e.g. MongoDB, ElasticSearch, CouchDB);
Search Engines (e.g. ElasticSearch, Azure Search, Apache Solr);
Quality tools (e.g. SonarQube);
 
**What's in it for you?**
A dynamic and highly motivated international team of skilled and experienced professionals
An open culture defined by passion for developing software, fun and mutual respect.
State of the Art technology environment: Java11, springBoot, react, webComponents, MongoDB, Kafka, AWS, K8s, docker, helm, git, Maven, gitlab ci/cd tools, cloud services, etc.
Unique and agile working environment where you communicate and work directly with client
Continuous learning based on a training & development program