Full Job Description
On behalf of Ciklum Digital, Ciklum is looking for an Lead Java Developer to join the 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 business by applying best practices and taking ownership.
Responsibilities
Design and implement a set of various types of tests (unit, integration, functional, etc)
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
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 7 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 (more than 5 years)
Practical commercial experience with:
REST API development
Web application frameworks (e.g. Spring Boot Framework) (more than 4 years)
Testing frameworks (e.g.e.g. JUnit, PowerMock, WiresMock) (more than 4 years)
ORM (e.g. Hibernate) (more than 2 years)
RDBMS (e.g MySQL/MariaDB, PostgreSQL, Oracle) (more than 4 years)
NoSQL (e.g. MongoDB, ElasticSearch, CouchDB)
Search Engines (e.g. ElasticSearch, Azure Search, Apache Solr)
Key-value storages (e.g. Redis, Memcached)
Messaging systems (e.g. RabbitMQ, Apache Kafka, Active MQ, AWS SQS, Azure Service Bus, Google Pub/Sub)
Version control systems (GIT)
Cloud solutions (e.g. AWS, Google Cloud Platform, Microsoft Azure)
Integration with 3rd party solutions
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
Agile software processes and technologies
Code Review process
Refactoring process
Desirable
Certifications on:
Java
Spring Frameworks
Cloud providers
Kubernetes
Kafka
Delivery processes (SAFe, Agile, etc)
Experience with Leading and Supporting medium to large size solution delivery projects
Understanding of orchestration and containerisation (e.g. Kubernetes, Swarm)
Practical commercial experience with:
Serverless architecture
Provisioning tools (e.g. Terraform, Ansible)
Quality tools (e.g. SonarQube)
Personal skills
Fluent or Advanced English
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
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
Continuous self-improvement