Sign in to apply on web or download the app for more options.
Job Description
## Job Description
**Overview**
We are looking for a skilled and experienced **Full Stack Java Senior Developer / Developer** to join our development team. The ideal candidate will have a solid background in object-oriented programming, strong experience with the Spring Framework, and practical frontend experience with React JS.
This role requires a collaborative mindset, a sharp eye for detail, and an interest in developing high-quality, scalable, and maintainable software systems.
**Key Responsibilities**
- Design, develop, test, and maintain high-performance, reusable Java applications.
- Develop and maintain responsive frontend components using React JS, JavaScript, and related technologies.
- Develop and optimize SQL queries for relational databases such as DB2 or Oracle.
- Work with messaging systems such as RabbitMQ.
- Develop scalable solutions using microservices architecture to ensure modularity, availability, and ease of deployment in distributed systems.
- Build and consume RESTful APIs to enable backend-to-frontend integration
- Analyse requirements and propose effective technical solutions considering functional and non-functional requirements.
- Participate in the full software development lifecycle (SDLC), including design, implementation, testing, deployment, and support.
- Write automated unit and integration tests using JUnit and Mockito.
- Write and maintain documentation of software components and code.
- Conduct and participate in peer code reviews and design discussions.
- Ensure performance, security, and availability of applications.
- Identify and address technical risks and issues; propose and implement practical solutions.
- Conduct demos and facilitate acceptance discussions with Product Owners to validate deliverables.
- Maintain a proactive attitude toward learning and adopting new tools and frameworks.
## Qualifications
**Required Skills and Qualifications**
- Overall 5+ years of experience
- Degree in Computer Science, Engineering, or a related field, or equivalent professional IT qualification.
- Proven experience in Java development, preferably with **Java 17** (minimum **Java 8**).
- Strong knowledge of **Spring Framework 6**, **Spring Boot 3**.
- Experience in **Test-Driven Development (TDD)** and **Behaviour-Driven Development (BDD)** with hands-on use of **JUnit** and **Mockito**.
- Demonstrated experience in frontend development using **React JS** and **JavaScript**.
- Hands-on experience with **relational databases,** **DB2** or **Oracle**.
- Solid understanding of **RESTful API** design principles.
- Experience with **microservices** architecture.
- Hands-on experience with messaging systems such as **RabbitMQ**, **IBM MQ**.
- Experience with **Maven**, **Docker**, and **Jenkins**.
- Experience with GIT and understanding of standard branching strategies (Release Flow or GIT flow).
- Understanding of secure coding standards (e.g., **OWASP**, **CWE**, **SEI CERT**).
- Broad experience in IT projects and an understanding of enterprise systems architecture.
- Awareness of DevOps tools/practices is beneficial.
- Strong problem-solving, analytical, and debugging skills.
- Attention to detail with a commitment to producing high-quality results.
- Effective communication and collaboration skills, including code reviews and knowledge sharing.
**Nice to have**
- Exposure to **Apache Camel** or other integration frameworks.
- Experience working in Banking or Payments industry
- Comfortable working in Agile/Scrum environments with tools like JIRA, HP ALM, etc.
- Understanding of automation testing frameworks, with a willingness to learn, contribute to, and support the continuous improvement of the automation test suite
## Additional Information
At Endava, we’re committed to creating an open, inclusive, and respectful environment where everyone feels safe, valued, and empowered to be their best. We welcome applications from people of all backgrounds, experiences, and perspectives—because we know that inclusive teams help us deliver smarter, more innovative solutions for our customers. Hiring decisions are based on merit, skills, qualifications, and potential. If you need adjustments or support during the recruitment process, please let us know.
Key Responsibilities
Design, develop, test, and maintain high-performance Java applications.
Develop responsive frontend components using React JS and JavaScript.
Optimize SQL queries for relational databases like DB2 or Oracle.
Work with messaging systems such as RabbitMQ and IBM MQ.
Develop scalable solutions using microservices architecture.
Build and consume RESTful APIs for backend-to-frontend integration.
Analyze requirements and propose effective technical solutions.
Participate in the full software development lifecycle including design, implementation, and testing.
Write automated unit and integration tests using JUnit and Mockito.
Write and maintain documentation of software components and code.
Conduct peer code reviews and design discussions.
Ensure performance, security, and availability of applications.
Identify and address technical risks and implement practical solutions.
Conduct demos and facilitate acceptance discussions with Product Owners.