Overview
Job Summary:
We are looking for a skilled Senior Software Engineer with 8-10 years of experience in developing robust applications using Java 17 and related technologies. The ideal candidate will have a strong background in Microservices architecture, cloud-native design principles, and a deep understanding of both SQL and NoSQL databases along with Azure Cloud. This role requires a proactive individual who can work collaboratively in an Agile environment and contribute to the design and implementation of scalable solutions.
Key Responsibilities:
1. Software Development:
- Design, develop, and maintain applications using Java 17, Spring Boot, Spring Batch, and Spring Data JPA.
- Implement Hibernate for ORM and ensure efficient database interactions.
2. Architectural Implementation:
- Develop applications following Microservices, Service-Oriented Architecture (SOA), and Event-Driven Architecture patterns.
- Apply design principles such as the 12-Factor App methodology and Cloud Native Architecture in application development.
3. Database Management:
- Design and optimize SQL databases (e.g., MS SQL Server, PostgreSQL) and NoSQL databases (e.g., MongoDB, Cassandra) to meet application requirements.
- Implement in-memory caching strategies (e.g., Redis, Hazalcast) to enhance application performance.
4. DevOps and Deployment:
- Collaborate with DevOps teams to build CI/CD pipelines and automate deployment processes.
- Implement deployment strategies such as blue-green deployments to ensure minimal downtime and high availability.
5. Integration and Messaging:
- Work with Pub/Sub models to facilitate communication between microservices and enhance event-driven capabilities.
- Integrate APIs and services according to best practices and design specifications.
6. Collaboration and Agile Practices:
- Participate in Agile ceremonies, including sprint planning, stand-ups, and retrospectives, to ensure smooth project execution.
- Collaborate with cross-functional teams to gather requirements and provide technical expertise.
7. Quality Assurance:
- Write unit and integration tests to ensure code quality and application stability.
- Conduct code reviews and provide constructive feedback to peers.
Technical Skills and Qualifications:
- Core Technologies:
- Proficient in Java 17, Spring Boot, Spring Batch, Spring Data JPA, and Hibernate.
- Experience with Azure Cloud services and deployment practices.
- Architecture Patterns:
- Strong understanding of Microservices, SOA, and Event-Driven Architecture.
- Database Proficiency:
- Experience with SQL and NoSQL databases, including performance optimization techniques.
- Design Principles:
- Familiarity with design principles such as the 12-Factor App methodology and Cloud Native Architecture.
- DevOps Knowledge:
- Knowledge of DevOps tools and practices, including CI/CD pipelines and deployment strategies like blue-green deployment.
- Caching and Messaging:
- Experience with in-memory caching solutions and Pub/Sub messaging systems.
- Soft Skills:
- Strong analytical and problem-solving skills.
- Excellent communication and interpersonal skills, with the ability to work well in a team-oriented environment.