Position: Middle Java Developer for Ciklum (Cardano)
Company: Ciklum
Category: Java
Experience required: 3y
English level: upper

Project Description:
Our client is an award-winning UK workplace pension provider. We look after the pension savings of tens of thousands of employers and millions of members from a wide range of industry sectors.
This project is about Customer platforms in the pension funds domain. Goal is to achieve contribution monitoring (1000s of contributions into the pension scheme from employees and customers) & later a solution for data cleansing & data governance of the platform. Process automation, using a set of business rules and data quality rules, as well as data visualization is in the focus of the client.
Candidates will join the client’s team of 80 engineers already working on the solution.

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 years)
Testing frameworks (e.g.g. JUnit, PowerMock, WiresMock) (more than 1 years)
ORM (e.g. Hibernate) (more than 1 years)
RDBMS (e.g MySQL/MariaDB, PostgreSQL, Oracle) (more than 1 years)
Messaging systems (e.g. RabbitMQ, Apache Kafka, Active MQ, AWS SQS, Azure Service Bus, Google Pub/Sub)
Web Servers
Version control systems (GIT)
Docker
Continuous Integration tools (e.g. Gitlab Pipeline, Jenkins, TeamCity, Bamboo)
Builders
GraphQL

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)
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)
Drools
Camunda

Personal skills:
Curious mind and willingness to work with client in consultative manner to find areas to improve
Good analytical skills
Good team player, motivated to develop and solve complex tasks
Self-motivated, self-disciplined and result-oriented
Strong attention to details and accuracy

What's in it for you?
A Centre of Excellence is ultimately a community that allows you to improve yourself and have fun. Our centers of excellence (CoE) bring together all Ciklumers from across the organization to share best practices, support, advice, industry knowledge and to create a strong community
Close cooperation with client
A constant flow of new projects
Dynamic and challenging tasks
Ability to influence project technologies
Projects from scratch
Team of professionals: learn from colleagues and gain recognition of your skills
European management style