Senior Backend Engineer (Java)
Job Description
We are looking for a Senior Backend Engineer (Java) with strong experience in building scalable, high-performance backend services and REST APIs using Java and Spring Boot. The ideal candidate will have hands-on experience developing microservices, event-driven systems, and distributed applications that operate reliably under heavy load.
The role involves designing and developing backend services, working with relational databases and caching technologies, implementing event-driven architectures, and optimizing application performance. You will also contribute to CI/CD pipelines, automated testing, code reviews, and software design practices.
Key Responsibilities
- Design, develop, and maintain high-performance backend services and REST APIs using Java and Spring Boot
- Build and maintain scalable microservices with a focus on reliability, maintainability, and performance
- Develop event-driven architectures and asynchronous processing flows using Kafka or similar streaming platforms
- Design and optimize relational database solutions, including PostgreSQL, with a strong focus on query performance and efficient data handling
- Implement and optimize caching solutions using Redis, Ignite, or similar technologies
- Develop and integrate gRPC services for efficient communication between distributed services
- Design and implement multi-tenant backend services, ensuring appropriate tenant isolation, scalability, and security
- Containerize and deploy services using Docker and Kubernetes
- Contribute to CI/CD pipelines and automated deployment processes
- Write unit, integration, and performance tests to ensure application reliability and quality
- Apply appropriate design patterns, clean code principles, and software engineering best practices
- Participate in code reviews, technical discussions, and architectural decisions
- Perform performance profiling, troubleshooting, and tuning to optimize services under heavy workloads
- Monitor and analyze application performance, database queries, resource utilization, and system bottlenecks
- Collaborate with other engineers and teams to design and deliver reliable distributed systems
Requirements
- 5+ years of professional software development experience, with strong hands-on experience in Java
- Strong production experience with Java and Spring Boot
- Proven experience building microservices and REST APIs at scale
- Hands-on experience with Kafka or similar event-streaming platforms
- Strong knowledge of PostgreSQL or other relational databases, including query optimization and database performance
- Experience with Redis, Apache Ignite, or similar caching technologies
- Experience with gRPC and distributed service-to-service communication
- Experience designing multi-tenant applications and services
- Experience with Docker and Kubernetes
- Good understanding of CI/CD practices and deployment automation
- Strong knowledge of unit testing, integration testing, and automated testing practices
- Good understanding of software design patterns, clean code, and SOLID principles
- Experience participating in code reviews and collaborative software development
- Practical experience with performance profiling, load testing, troubleshooting, and application tuning
- Strong understanding of scalable, reliable, and distributed backend architectures
Technical Stack
Java | Spring Boot | Microservices | REST APIs | Kafka | PostgreSQL | Redis / Apache Ignite | gRPC | Docker | Kubernetes | CI/CD