Backend Engineer - Spain

Posted 3 hours 24 minutes ago by Endeavour Recruitment

£42,000 - £62,000 Annual
Permanent
Not Specified
Other
Not Specified, Spain
Job Description

Backend Software Engineer - Java/Spring Boot

Location: Málaga, Spain
Working arrangement: Hybrid - 3 days in the office and 2 days working from home
Language: English-speaking environment

The Opportunity

We are looking for a Backend Software Engineer to join a software development company based in Málaga, Spain.

You will play a key role in designing, developing and maintaining robust, scalable and high-performance Back End applications. Working closely with software architects, product managers and fellow engineers, you will contribute to the development of reliable software solutions, RESTful APIs and distributed systems.

You will be involved throughout the software development life cycle, from technical design and implementation through to testing, deployment and continuous improvement. The role offers the opportunity to work with modern Java technologies, microservices architecture, cloud-native tools and distributed data platforms.

This is an excellent opportunity for a Back End-focused engineer who enjoys solving complex technical challenges, writing clean and maintainable code, and contributing to high-quality software in an agile environment.

Key Responsibilities

  • Design, develop and maintain Back End applications and services using Java and Spring Boot.
  • Build and maintain RESTful APIs and microservices to support scalable, distributed applications.
  • Contribute to system architecture, technical design and integration between services.
  • Develop efficient, reliable and secure solutions, with a strong focus on performance and scalability.
  • Apply concurrency and Multithreading techniques to optimise application performance.
  • Write and maintain automated tests, including unit, integration and contract tests.
  • Contribute to CI/CD pipelines, containerisation and deployment processes using Docker and Kubernetes.
  • Follow software engineering best practices, including code reviews, version control, security and maintainable coding standards.
  • Collaborate with cross-functional teams in an agile environment to deliver business value through iterative development.

Required Skills and Experience

  • Strong Back End development experience with Java, ideally using recent versions of the language.
  • Hands-on experience with Spring Boot and a good understanding of Spring-based application development.
  • Experience designing and developing RESTful APIs and microservices.
  • Understanding of distributed systems, software architecture and service integration.
  • Experience with automated testing, particularly unit and integration testing, using tools such as JUnit.
  • Knowledge of concurrency, Multithreading and Back End performance optimisation.
  • Experience with Git, Maven and modern software build and dependency management practices.
  • Familiarity with DevOps principles, CI/CD pipelines and containerisation using Docker and Kubernetes.
  • Understanding of software security, code quality and maintainable development practices.
  • Experience working with Agile methodologies and collaborating effectively within multidisciplinary teams.
  • Professional working proficiency in English.

Technology Stack

Core Back End technologies

  • Java (recent versions)
  • Spring Boot
  • Spring Cloud
  • RESTful APIs and microservices

DevOps and infrastructure

  • Docker
  • Kubernetes
  • CI/CD pipelines
  • Git and Maven

Testing and quality assurance

  • JUnit
  • Integration and contract testing
  • Automated testing and code quality practices

Additional beneficial technologies

  • JavaScript and Angular (useful for understanding Front End integration)
  • Selenium, JBehave and other testing tools

What We're Looking For

We are particularly interested in engineers with a strong Back End mindset, solid software engineering fundamentals and a passion for building reliable, scalable applications.

You should be comfortable taking ownership of technical tasks, contributing to architectural discussions, identifying opportunities for improvement and working collaboratively to deliver high-quality solutions.

A willingness to learn new technologies, experiment with different approaches and continuously improve your technical skills is essential.