Job Description
We are seeking a highly skilled Java Backend Developer to join our dynamic team. The ideal candidate will have extensive experience in designing, developing, and deploying scalable microservices using Spring Boot and Kafka. As a Backend Developer, you will be responsible for leading technical initiatives, mentoring junior developers, and ensuring the high performance and reliability of our microservices-based architecture.
Key Responsibilities:
Design and Development:
- Design, develop, and maintain microservices architecture using Spring Boot.
- Implement robust, scalable, and highly available microservices that adhere to industry best practices.
- Develop and maintain RESTful APIs to support business functionalities.
Kafka Integration:
- Design and implement event-driven architectures using Apache Kafka.
- Develop Kafka producers, consumers, and streams to handle high-throughput messaging and data processing.
- Ensure reliable message delivery, topic partitioning, and message ordering in a distributed environment.
System Architecture:
- Collaborate with architects to design and implement microservices architecture that meets business and technical requirements.
- Contribute to the evolution of the system’s architecture, making it more scalable and resilient.
Performance Optimization:
- Analyze and resolve performance bottlenecks in the system.
- Optimize microservices for maximum performance, scalability, and reliability.
Cloud Deployment:
- Deploy microservices on cloud platforms (e.g., AWS, Azure, GCP) using containerization tools like Docker and Kubernetes.
- Implement CI/CD pipelines for automated deployment and continuous integration.
Security:
- Ensure all microservices are developed with security best practices in mind.
- Implement OAuth2, JWT, and other authentication/authorization mechanisms.
Code Quality and Mentorship:
- Write clean, maintainable, and testable code, following the principles of TDD (Test-Driven Development).
- Conduct code reviews and provide constructive feedback to peers.
- Mentor and guide junior developers, promoting knowledge sharing within the team.
Collaboration:
- Work closely with cross-functional teams including Product Management, QA, and DevOps to deliver high-quality software solutions.
- Participate in Agile ceremonies such as stand-ups, sprint planning, and retrospectives.