Position: Expert Java
Company: Ciklum
Category: Java
Experience required: 5y
English level: upper

On behalf of Ciklum Digital, Ciklum is looking for an Expert Java Developer to join our team on a full-time basis.
You will join a highly motivated team and will be working on a modern solution for our existing client. We are looking for technology experts who want to make an impact on new businesses by applying best practices and taking ownership.

Project description
Ciklum will build the collaborative sportswear design platform for TOP-5 company of the sportswear market. Scalable solution that will be used by famous worldwide sportswear designers to create and bring to market new sports fashion collections. Part of the larger Product Lifecycle Management ecosystem the platform delivered within the current project will become a market differentiator and key comparative advantage for multi-billion business. Project will use proven and edge technologies and concepts, such as SAFe, Behaviour-Driven Development, DevOps, Event-Driven architecture. 

Responsibilities
●	Lead development team; 
●	Lead and improve the decision-making process in design solution architecture, solution development, architecture and code review;
●	Back-end development to meet customer’s business needs and implement components according to modern software development environment (cloud-based platforms, microservice architecture, etc.);
●	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 architecture preparation, 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 10 years;
●	Excellent knowledge in Computer Science, Computing Theory:
○	Paradigm & Principles (OOP, SOLID, DDD, TDD, BDD);
○	Database theory (RDBMS, NoSQL);
○	Code testing practices;
○	Algorithms;
○	Data structures;
○	Architectural, Enterprise and Design Patterns;
○	Deployment patterns;
○	Security patterns, Reverse engineering resistance, Common attacks types (OWASP);
●	Understanding of network interactions:
○	protocols;
○	conventions (e.g. REST, RPC);
○	authentication and authorization flows; 
○	standards and practices (e.g. oAuth, JWT);
●	Excellent knowledge and experience in Java;
●	Practical commercial experience with:
○	REST API development;
○	Web application frameworks (e.g. Spring Boot Framework);
○	Testing frameworks (e.g. JUnit, PowerMock, WiresMock, Serenity BDD);
○	ORM (e.g. Hibernate);
○	RDBMS (e.g PostgreSQL, Oracle);
○	NoSQL (e.g. MongoDB, ElasticSearch, Cassandra);
○	Search Engines (e.g. ElasticSearch, Apache Solr);
○	Messaging systems (e.g. Apache Kafka, Active MQ, AWS SQS);
○	Web Servers;
○	Version control systems (GIT);
○	Cloud solutions (AWS);
○	Integration with 3rd party solutions;
○	Quality tools (SonarQube);
○	Orchestration and containerisation (Kubernetes);
○	Docker;
○	Continuous Integration tools (e.g. Gitlab Pipeline, Jenkins, TeamCity, Bamboo);
○	Builders;
●	Experience with:
○	Leading Team;
○	Troubleshooting, profiling and debugging applications;
○	Creation software architecture and design of complex applications, platforms, microservices solutions with Event-Driven design and CQRS; 
○	API Documentation (Swagger);
○	Agile software processes and technologies;
○	Code Review process;
○	Refactoring process;
●	Fluent in English;
What's in it for you?
●	Close cooperation with client;
●	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;
●	Continuous self-improvement.