Senior Java/Spring Developer (f/m)

Posted 7 days 23 hours ago by T-Systems Iberia

Permanent
Not Specified
Other
Andalucía, Spain
Job Description

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.

8. Architectural Patterns

  • 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
  • Java EE
  • Spring (Core, Boot, Cloud Stream, Cloud Function)
  • CDI
  • MVC
  • OPENAPI
  • OPENFEIGN
  • DDD
  • OOD/OOP
  • TDD
  • CQRS
  • OAuth2
  • OIDC
  • JDBC
  • JPA
  • AMQP
  • IoC & DI
  • AOP
  • JPQL
  • JWT
  • 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.