Backend Developer
Job description
As a Senior Software Developer, you will be responsible for:
- Designing, developing, and maintaining Java-based applications using Spring Boot and related frameworks.
- Building microservices and REST APIs that integrate with various systems and services.
- Collaborating with cross-functional teams to gather requirements, design solutions, and deliver high-quality software on time.
- Working with MongoDB and SQL databases to design efficient, scalable, and high-performing data models.
- Using gRPC for efficient communication between microservices and clients.
- Writing clean, maintainable, and well-documented code.
- Reviewing code, providing technical guidance to junior developers, and ensuring adherence to best coding practices.
- Troubleshooting and resolving complex issues in production and pre-production environments.
Required Skills and Qualifications:
- Minimum 5+ years of experience in software development, with a strong focus on Java-based technologies.
- Strong hands-on experience with Java 8+, including knowledge of intermediate and advanced concepts:
- Java Streams and Lambda expressions.
- Concurrency and multi-threading in Java.
- Exception handling and design patterns.
- JVM tuning and performance optimization.
Proficiency in building applications with Spring Boot and understanding its intermediate and advanced concepts:- Spring Security and OAuth2.
- Spring Data JPA and Spring Batch.
Experience with Microservices architecture and RESTful APIs.Familiarity with gRPC for service-to-service communication.Knowledge of one or more cloud platforms such as AWS, Azure, or Google Cloud Platform (GCP).Strong debugging and problem-solving skills.Experience with version control tools (e.g., Git), build tools (e.g., Maven, Gradle), and CI/CD pipelines.Excellent communication and collaboration skills, with the ability to work effectively in a team environment.Preferred Skills:
- Familiarity with containerization technologies such as Docker and Kubernetes.
- Experience with message brokers like Kafka, RabbitMQ, etc.
- Familiarity with automated testing frameworks such as JUnit, Mockito, and integration testing.