Software Engineer (Java, back-end)
Role details
Job location
Tech stack
Job description
As a Software Engineer, you will play an important role in the design, development, and maintenance of scalable applications and services, working closely with Product Owners, QA Engineers, Architects, and fellow developers throughout the software development lifecycle. You will contribute to translating business requirements into high-quality technical solutions that deliver value to customers and stakeholders.
You will be responsible for developing clean, maintainable, and efficient code using modern engineering practices and technologies, with a strong focus on application performance, reliability, scalability, and security. The role requires active participation in technical discussions, solution design, code reviews, testing activities, and continuous improvement initiatives within an Agile delivery environment.
The ideal candidate will bring strong hands-on experience in software development, excellent problem-solving skills, and a collaborative mindset. You will also contribute to the evolution of engineering standards and best practices while supporting and mentoring junior members of the team.
Key Responsibilities
-
Analyse business and technical requirements to design, develop, test, and maintain software components and services.
-
Design, develop, and support modern APIs, ensuring reliability, scalability, and maintainability.
-
Write clean, efficient, and scalable code aligned with established engineering standards and best practices.
-
Contribute to application and service design, including scalable and modular architecture approaches.
-
Perform unit testing, integration testing, troubleshooting, and defect resolution to ensure software quality and stability.
-
Collaborate with Product Owners, QA Engineers, and development teams throughout the Agile software delivery lifecycle.
-
Participate in code reviews, technical discussions, and continuous improvement initiatives to enhance engineering practices and delivery processes.
-
Provide technical guidance and mentorship to junior team members, supporting knowledge sharing and team development.
Requirements
Do you have experience in XML?, * Three or more years of hands-on software development experience.
-
Strong knowledge of Java 17+, Spring, Spring Boot
-
Good knowledge of Hibernate or equivalent ORM, and relational databases like MySQL, experience with NoSQL databases is a bonus.
-
Experience building JSON and XML APIs. Knowledge of RESTful principles is a plus
-
Experience working in an Agile (Scrum) environment.
-
Experience using Git SCM and CI/CD pipelines. GitLab experience would be beneficial.
-
Experience with cloud technologies such as AWS, Docker and Kubernetes would be beneficial.
-
Experience with micro-service and SaaS architectures.
-
Experience with Event Driven Architecture and Domain-driven design concepts a plus.
-
Excellent verbal and written communication skills.
-
Strong time management skills with the ability to prioritise workloads under pressure and meet deadlines.
-
A self-starter who is hands-on and knows how to find answers and work with ambiguity.
-
Values-driven and practical in your approach.
Benefits & conditions
Pulled from the full job description
- Employee discount
- Private medical insurance, * We offer a highly competitive benefits package including private healthcare and rail discounts.