About this role
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