Position: Expert Java Developer
Company: Ciklum
Experience required: 5y
English level: fluent

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 business by applying best practices and taking ownership.

**Responsibilities**
Lead development team
Lead development of new and change of existing integrations
Plan and execute data and functionality migrations
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
Experience in event-based and SOAP-based integration design and development
Experience with complex data migrations and batch processing
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 8+ years
Practical commercial experience with:
Spring Boot Framework 6+ years
Messaging systems, specifically Apache Kafka 4+ years
SOAP and REST API development
Search engines, either Elasticsearch 4+ years
NoSQL, specifically Cassandra or Mongo
Kubernetes
Linux
ORM (e.g. Hibernate)
RDBMS (e.g PostgreSQL, Oracle)
Web Servers
Version control systems (GIT)
Cloud solutions (AWS)
Integration with 3rd party solutions
Quality tools (SonarQube)
VMWare and Linux
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 English
**Desirable**
Certifications on:
Java
Spring Frameworks
Cloud providers
Delivery processes (SAFe, Agile, etc)
Experience with Product Lifecycle Management solutions
Experience with Leading and Supporting large size solution delivery projects
Practical commercial experience with:
Monitoring & Logging tools (e.g. ELK, AWS CloudWatch)
Service Discovery & Configuration tools
API Gateways
Serverless architecture
Provisioning tools (e.g. Terraform, Ansible)
Personal skills
Good analytical skills
Good team player, motivated to solve complex tasks
Strong communication and problem-solving skills
Self-motivated, self-disciplined and result-oriented
Strong attention to details and accuracy
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