Java Backend Developer
Job description
We are looking for a Java Backend Developer who thrives on building scalable, high-performance systems that power large-scale applications. You will own the development and delivery of backend services, RESTful APIs, and event-driven architectures, working closely with product managers, architects, and cross-functional engineering teams to translate complex business requirements into elegant technical solutions. The ideal candidate brings deep Java expertise, a strong command of modern frameworks and design patterns, hands-on experience with both relational and NoSQL databases, and a forward-looking mindset toward leveraging AI-powered developer tools to accelerate delivery and improve code quality.
Key Responsibilities Design, develop, and maintain robust, scalable backend services and RESTful APIs using Java 8+.
Build and evolve microservices-based architectures using Spring Boot, ensuring high cohesion and loose coupling.
Implement asynchronous and event-driven services using reactive programming models (CompletableFuture, Project Reactor, or Vert.x).
Apply domain-driven design (DDD) and SOLID principles to deliver maintainable, production-ready code.
Design and implement data models and integrations with relational databases (MySQL, PostgreSQL) and NoSQL stores (MongoDB, Cassandra, Couchbase).
Leverage Spring Data JPA and Hibernate for ORM and efficient data access patterns.
Integrate with internal systems, third-party services, messaging platforms (Kafka, RabbitMQ), and external APIs.
Write comprehensive unit and integration tests using JUnit 5, Mockito, or TestContainers; maintain high code coverage standards.
Actively use AI coding assistants (e.g., GitHub Copilot, Claude Code, Gemini etc. ) to boost productivity, generate boilerplate, and explore solutions.
Apply prompt engineering techniques to leverage LLMs for debugging, code review, documentation generation, and test case creation.
Work in an Agile/Scrum environment with iterative delivery cycles, sprint planning, and continuous improvement.
Required Skills & Qualifications 5+ years of hands-on backend development experience; Java as the primary language.
Java 8+ Strong proficiency in Streams, Lambda expressions, Optional, Concurrency utilities (CompletableFuture, ExecutorService, Fork/Join)
Strong understanding of Java memory model and garbage collection fundamentals
Spring & Spring Boot Deep expertise in Spring MVC, Spring Security (OAuth2 / JWT), Spring Cloud
Strong knowledge in Dependency injection, AOP, auto-configuration, and Actuator
Hibernate and Spring Data JPA Proficient with Entity lifecycle, lazy vs. eager loading, N+1 problem prevention
Strong knowledge in Query optimization, transactions, and connection pooling
Strong understanding of asynchronous programming patterns: callbacks, futures, reactive streams.
Experience with event-driven architectures using Kafka or RabbitMQ for decoupled, scalable system design.
Familiarity with reactive frameworks (Project Reactor, RxJava, or Vert.x) is a strong plus.
Proven experience building and operating microservices at scale.
Experience working with relational (MySQL, PostgreSQL) and NoSQL (MongoDB, Cassandra, Couchbase) databases.
Experience with unit testing frameworks: JUnit 5, Mockito, AssertJ.
Practical, daily use of at least one AI coding assistant (GitHub Copilot, Claude Code, Gemini, or equivalent).
Ability to critically evaluate, refactor, and improve AI-generated code — not just accept suggestions blindly.
Awareness of prompt engineering for software development tasks (refactoring, documentation, test generation).
Experience with cloud platforms: AWS or GCP (compute, storage, managed databases, messaging).
Containerization and orchestration: Docker and Kubernetes basics.
CI/CD: Jenkins, GitHub Actions, or equivalent pipelines.
Experience with Spring Security for authentication and authorization layers.
¿Te interesa este puesto?