We are currently looking for an experienced and skilled Java Backend Developer to join our team. In this role, you will play a crucial part in the development and maintenance of our applications.
Responsibilities
Developing new features and supporting the current application
Participate in all phases of the software development life cycle (SDLC)
Provide test coverage (unit and functional tests)
Fixing bugs in different project modules
Prepare necessary technical documentation
Work with third-party integrations (payment systems, services, etc.)
Perform work in preparing the developed software for release and producing its release
Conduct debugging of the developed software and correct it in the process of completion
Collaborate with the front-end developers, DevOps, and other team members to establish objectives and design more functional, cohesive codes to enhance the user experience
Perform and optimize problems, particularly at a large scale, and demonstrate an ability to diagnose and prevent these problems
Requirements
Java development experience of more than 3 years and desire to develop at the backend in general
Good knowledge of Spring Framework
Experience with gRPC and sockets
Knowledge of relational databases (PostgreSQL, MySQL, etc) and query optimization (indexes, partitioning, concurrency)
NoSQL database experience (MongoDB)
Experience with caching systems (Redis)
Docker, experience in writing Dockerfiles or base images
Experience with Git
Knowledge and understanding of OOP principles, design patterns, and clean code
Knowledge, understanding, and following the principles of DIE, YAGNI, KISS, DRY, and SOLID
Knowledge of Unix systems
At least basic knowledge of Unit testing
English Level should be enough to read technical documentation and communicate with colleagues (B1+)
Nice to have
Experience with message broker systems (RabbitMQ, Redis pub/sub, etc)
Experience with event streaming platforms (Kafka)
Knowledge of JavaScript and TypeScript, experience in Node.js