Responsibilities:
- Design and develop complex software systems using Java technologies;
- Collaborate with business stakeholders, project managers, and other developers to understand project requirements and develop technical solutions that meet business needs;
- Lead the development team in implementing technical solutions that meet business requirements;
- Ensure that software solutions are scalable, reliable, and maintainable;
- Write clean, efficient, and well-documented code;
- Participate in code reviews, testing, and debugging to ensure high-quality deliverables;
- Develop and maintain technical documentation for software solutions;
- Stay up-to-date with the latest Java technologies, tools, and best practices;
- Provide technical leadership and mentorship to other developers in the team.
Requirements:
- Bachelor's or Master's degree in Computer Science or related field;
- At least 5 years of experience in Java development, with a proven track record of designing and developing complex software systems;
- Understanding algorithms and data structures;
- Strong experience with Java 8 and higher;
- Strong experience with Spring, SpringBoot, Spring WebFlux;
- Proven experience with OpenID and OAuth 2.0;
- Experience with microservices architecture and related technologies such as Kubernetes;
- Knowledge of concepts and experience with Message Brokers (Kafka, RabbitMQ);
- Experience with database design and development, including SQL and NoSQL databases;
- Strong knowledge of software architecture patterns and best practices;
- Strong problem-solving and analytical skills;
- Strong communication skills, both written and verbal;
- Ability to work independently and as part of a team;
- Proven ability to provide technical leadership and mentorship to other developers in the team.