Principal Java Developer

  • Wrocław
  • Mangopay
Job Description We're looking for a talented, driven and hungry Lead Backend Developer to join our growing team who can collaborate and help define the vision of our technical platform. You will be responsible for designing and building internal API, libraries and microservices on our platform and report to an engineering manager. What do we expect from you? Must have Experience in backend development and design using Java for at least 7 years Experience in Micronaut or other cloud native framework (Spring Cloud) Experience in Java 11 and higher Passion to deliver quality, high-performance and tested code, by promoting good practices: TDD, peer-programming, software craftsmanship, etc. Experience in building company-wide shared libraries Experience developing and designing microservices architecture and principles Experience developing and designing large scale highly available backend services The ability to create unit tests and functional with JUnit 5 or Spock Experience with the design and building of API Experience with multi-module builds - Maven Experience in AWS or other cloud environment The ability to work in an agile environment and adapt to change A learning and growth-focused mindset and a strong desire to share your skills and learn from those around you Excellent command of spoken and written English Nice to have Experience with GraphQL Experience with event driven architecture Experience with platform engineering What will you be responsible for? Designing, building and publishing APIs to support our platform using GraphQL and REST Take a hands-on role in influencing and guiding day-to-day development activities by leading architecture decisions, participating in designs, design review, code review, and implementation Ensure consistent implementation against existing architecture principles as well as improve and define new principles Designing internal libraries to be used across our microservices to support cross cutting concerns Practicing disciplined software engineering (e.g. automated testing, code reviews, and writing clean, simple and reusable code) Ensure the team adheres to best practices for monitoring and alerting Working with the engineering manager to propose and implement technical and/or organizational improvements in the team