Java Engineer
Job Description
Lendscape is a leading technology provider to the global secured finance market.
We're dedicated to helping financial institutions unlock cash flow and provide enhanced lending experiences for their SME customers through innovative technology. Today, our technology and software underpins the secured lending offerings of over 120 banks and finance providers worldwide.
Headquartered in London, and with regional offices in California and Singapore, Lendscape employs over 180 people around the world.
About the role and our Engineering teamAs a member of a team that is spread across various parts of the world, you will gain exposure to diverse cultures and perspectives. Being a part of Lendscape while we are venturing into new countries puts you at the forefront of expansion!
Our Software Engineering team is our biggest function, with 80 colleagues spread across 10 squads they play a key role ensuring we continue to be leaders in our field.
We have some exciting new developments and are committed to introducing 3 additional teams to take us to over 100 colleagues in Engineering.
Key Responsibilities Design and Develop GraphQL APIs- Lead the design and implementation of GraphQL APIs to meet business requirements.
- Collaborate with cross-functional teams to gather and understand API requirements.
- Utilise your strong proficiency in Java to develop and maintain high-quality software applications.
- Implement best practices for code quality, maintainability, and performance.
- Contribute to the overall system architecture and design decisions.
- Ensure scalability, reliability, and security of the software systems.
- Conduct thorough code reviews to maintain code quality and consistency.
- Provide guidance and mentorship to junior developers in the team.
- Integrate GraphQL APIs with existing systems and third party services.
- Develop and execute comprehensive unit and integration tests.
- Demonstrable experience of TDD.
- Collaborate with product managers, UX designers, and other stakeholders to ensure alignment between business requirements and technical solutions.
- Participate in Agile/Scrum development processes, including sprint planning, stand ups, and retrospectives.
- In-depth knowledge of Java programming language features, syntax, and constructs.
- Mastery of core Java concepts such as OOP (Object Oriented Programming), multithreading, and exception handling.
- Proficiency in the Spring Framework, including Spring Boot, Spring MVC, Spring Data, and Spring Security.
- Understanding of inversion of control (IoC) and dependency injection (DI) principles.
- Expertise in Hibernate or JPA for object relational mapping and database interaction.
- Familiarity with web development technologies such as HTML, CSS, andJavaScript and / or TypeScript.
- Experience with front end frameworks/libraries (e.g., Angular, React, or Vue.js).
- Knowledge of building and consuming RESTful APIs using frameworks like Spring REST or JAX RS.
- Strong understanding of GraphQL concepts and best practices.
- Proficientin working with relational databases like PostgreSQL and a good understanding of database design principles.
- Experience in working with execution plans to understand performance bottlenecks and where improvements can be made.
- Extensive experience with testing frameworks such as JUnit, Mockito and TestNG for unit testing and integration testing.
- Familiarity with build tools like Gradle for dependency management.
- Proficient in using a version control system like Git for source code management.
- Knowledge of CI/CD pipelines and tools like Bamboo.
- Understanding and application of design patterns for creating scalable and maintainable software.
- Expertise in writing concurrent and multithreaded applications, including synchronisation mechanisms.
- Awareness of security best practices in Java development, including secure coding principles and vulnerability mitigation.
- Ability to optimise code for performance and diagnose and resolve performance related issues.
- Experience with logging frameworks (e.g., SLF4J) andapplication monitoring tools.
- Strong collaboration skills and the ability to write clear and concise technical documentation.
- Familiarity with Agile development methodologies, particularly Scrum.
- Proficient in troubleshooting and debugging Java applications using various tools.
- Demonstrated commitment to continuous learning and staying updated with the latest Java and industry trends.
About This Role
Career insights for Software Developers positions