We are looking for a Senior Java / Spring Developer (f / m) to join our team in Iberia and participate in a challenging international project.
The position is open in Barcelona, Madrid, Reus, and Andalucia. Would you be interested in joining us? Take on the challenge!
Requirements & Experience
1. Java
- Expertise in modern Java versions and language features (e.g., Java 17+).
- Mastery of Gradle for build management, including custom plugin development.
- Proficient in debugging and profiling (remote / local) complex applications.
- Extensive experience developing frameworks or libraries for internal or public use.
- Solid knowledge of Domain-Driven Design (DDD) principles and patterns.
- Expertise in OOP Fundamentals : Object vs Class, Code reuse, Replace conditions with polymorphism, SOLID principles.
2. Concurrency & Scalability
- Expertise in diagnosing and resolving race conditions in multi-threaded environments.
- In-depth knowledge of Java's concurrency features, including modern techniques (e.g., CompletableFuture, ExecutorService, virtual threads in Project Loom).
- Strong understanding and implementation experience with thread-safe design patterns, synchronization techniques, and non-blocking algorithms.
- Proven ability to optimize concurrent code for performance and scalability in high-traffic systems.
3. Clean Code & Best Practices
- Adherence to Clean Code principles, focusing on simplicity, readability, and maintainability.
- Ability to write self-documenting code and comprehensive unit / integration tests.
- Extensive experience conducting code reviews and promoting coding standards within a team.
- Proficient in API-first design approaches, including tools like OpenAPI.
4. Spring Framework / Spring Boot
- Expertise with both servlet-based and reactive REST APIs, including a deep understanding of request lifecycle.
- Strong understanding of RestTemplate and WebClient for service-to-service communication.
- Experience with creating custom annotations, aspects, and extending Spring Boot frameworks.
- In-depth understanding of JPA, JPA Auditing, Hibernate, L1 / L2 caching, and advanced ORM optimizations.
- Expertise in Spring Security with OAuth2 / OIDC, including client and resource service implementations.
- Solid experience in Spring Cache (local and distributed caching solutions).
5. Spring Cloud
- Advanced knowledge of Spring Cloud Streams and Spring Cloud Functions.
- Experience with Spring Cloud OpenFeign for service integration.
- Expertise in building resilient distributed systems with proven resiliency patterns.
- Proficient in Spring Cloud Config for centralized configuration management.
- Knowledge of distributed locking mechanisms, such as Redisson or Zookeeper.
6. Observability & Monitoring
- Expertise in distributed tracing, metrics, and logging (preferably with OpenTelemetry and Micrometer).
- Skilled in designing and implementing monitoring solutions for event-driven systems.
- Proficient in analyzing and optimizing application performance using monitoring tools.
7. Database Management
- Strong understanding of RDBMS (e.g., PostgreSQL, MSSQL) with hands-on experience in query optimization.
- Proficiency in schema design, including normalization, indexing, and database migrations.
- Familiarity with NoSQL databases and their appropriate use cases.
- Deep understanding of application architecture styles and high-level design.
- Expertise in application design / composition and modular architecture.
- Proficient in designing and implementing microservices following best practices.
- Strong understanding of MVC, CQRS, Transactional In / Out-Box, SAGA, Actor models.
- Expertise in microservices communication patterns like Pub / Sub and event-driven design.
- Solid understanding of anti-patterns and how to avoid them.
9. Cloud-Native Development
- Proficient with Kubernetes for deployment, scaling, and service discovery.
- Experience with containerization tools (e.g., Docker) and orchestration strategies.
- Expertise in local development with Docker Compose or Podman.
10. Application Integration / Messaging Systems
- Extensive experience with messaging systems (e.g., AMQP, MQTT, STOMP, OpenWire).
- Strong knowledge of Spring Integration for application messaging workflows.
- Expertise in designing reliable, scalable messaging architectures.
11. DevOps
- Proficient with Git and version control workflows.
- Expertise in modern CI / CD pipelines, preferably with GitLab.
- Hands-on experience with Helm for Kubernetes deployments.
- Familiarity with Infrastructure as Code (IaC) tools like Terraform.
Technologies (Years for Self-Assessment)
- Java
- OPENAPI
- OPENFEIGN
- OOD / OOP
- CQRS
- OAuth2
- OIDC
- JDBC
- AMQP
- IoC & DI
- JPQL
- SPEL
- PUB / SUB
- SOLID
- Micrometer
- OpenTelemetry
Soft Skills
- Strong ability to mentor and guide less experienced developers.
- Proficient in technical decision-making and architectural governance.
- Excellent communication skills to articulate trade-offs and solutions to stakeholders.
- Adaptability to evolving technologies and willingness to learn new paradigms.
- Strong collaboration skills with cross-functional teams to align technical direction with business goals.