Senior/Principal Java Developer

Qinshift Logo

Qinshift


Lokalizacja
Kraków
Rodzaj pracy
Na Miejscu
Rodzaj zatrudnienia
Pełny Etat
Poziom doświadczenia
Poziom starszy
Data publikacji
30.04.2025

Senior/Principal Java Developer

This is us

At Qinshift and Avenga we are merging together to start a new era of technology that matter. Leveraging the power of innovations, we are on a journey to shape the future of work, and we are inviting you to co-create it with us.

This is the job and the team

We are looking for a passionate Senior/Principal Software Engineer to join the Platform Scalability

Engineering Team based in Poland and France. Our team is dedicated to scaling our primarily monolithic application while facilitating the emergence of microservices by addressing cross-cutting concerns. As we modernize, modularize, and expand our distributed system, we seek expertise in Event-Driven Architecture and Domain-Driven Design. In this role, you will lead initiatives to implement these architectural principles across our company. The ideal candidate will adeptly navigate the complexities of our domain while being mindful of the constraints posed by our legacy tech stack, embracing these challenges with enthusiasm and a commitment to driving transformative change.


This is you

  • 8+ years of experience in Java development (Spring) and working with distributed
    systems
  • Practical knowledge of good development practices: TDD/BDD, DDD, OOP, FP,
    Hexagonal Architecture, Event-Driven Architecture, Clean Code, API design, CI/CD
  • Ability to improve and refactor legacy code
  • Familiarity with deployments and observability (alerts, metrics)
  • Experience with database design and strong working knowledge of SQL
  • Effective day-to-day communication skills in English, both verbal and written
  • Positive and team-oriented attitude, eagerness to learn and grow, proactive approach,
    engineering mindset, and strong problem-solving skills
  • Nice to have experience with Kubernetes


This is your role

  • Define and lead the implementation of a structured, maintainable, and scalable distributed system, balancing the evolution and decomposition of the existing monolith with the development of new microservices.
  • Investigate and evaluate existing code to identify areas for improvement and propose rewrites to address limitations and persistent issues.
  • Design and develop robust solutions in collaboration with the Agile Team.
  • Ensure high-quality outcomes through modern modular design and test-driven development.
  • Take ownership of the performance and reliability of your software.
  • Drive continuous improvement in processes, technology, and best practices.

We take pride in the diverse skills and character of our teams, welcoming everyone to apply and contribute to our collective strength.