Entreprise :
Constellio est un éditeur logiciel canadien (Québec). Constellio développe et commercialise des logiciels libres pour aider les entreprises à devenir performantes dans la gestion de leur information.
Ayant l’innovation au cœur de son ADN, la compagnie connaît actuellement une forte croissance et plusieurs grandes organisations de renom ont adopté nos solutions.
Constellio accompagne plusieurs organismes publics, ministères et municipalités de grande envergure dans leur transformation numérique.
Nous sommes une équipe de passionné(e)s où le plaisir au travail est une valeur fondamentale. Vous souhaitez que votre travail ait un impact sur des milliers d’utilisateurs en les rendant performants dans leur gestion documentaire ?
Vous souhaitez évoluer dans un environnement qui favorise la créativité et l’esprit d’initiative ? Constellio est le bon choix pour votre plan de carrière.
Description du Poste :
Le développeur Senior Java aura pour mission de concevoir, développer, et maintenir des applications robustes et évolutives en utilisant principalement les technologies Java, GitLab CI / CD, Gradle, Docker, Kubernetes, Keycloak, MinIO et Quarkus.
En tant que membre essentiel de notre équipe de développement, vous serez impliqué dans la création d'architectures logicielles résilientes, l'amélioration continue des pipelines CI / CD et la mise en œuvre de solutions cloud natives.
Une maîtrise des bonnes pratiques TDD avec JUnit, ainsi que l’expertise en programmation orientée objet, est requise. Vous devrez également appliquer des design patterns, des techniques de refactoring, et maîtriser les API REST, GraphQL et OpenID.
Responsabilités :
- Concevoir et développer des applications backend performantes et sécurisées en utilisant Java et Quarkus.
- Participer à la définition et à l'implémentation de l'architecture logicielle, en garantissant la scalabilité, la performance et la maintenabilité des systèmes.
- Gérer et optimiser les pipelines CI / CD sur GitLab pour assurer des déploiements fluides et automatisés.
- Collaborer étroitement avec les équipes DevOps pour orchestrer des déploiements sur Kubernetes, en s'assurant de l'intégration continue et du déploiement continu.
- Travailler avec Gradle pour gérer les dépendances et les builds des projets Java.
- Mettre en pratique les principes de Test-Driven Development (TDD) avec JUnit, en réalisant des tests unitaires et d'intégration.
- Appliquer des design patterns appropriés et des techniques de refactoring pour améliorer la qualité du code et l'efficacité du développement.
- Développer des solutions en utilisant ElasticSearch pour des besoins de recherche avancée et MongoDB pour la gestion de bases de données de documents.
- Intégrer et gérer des ORM comme Hibernate pour la gestion des bases de données relationnelles, ainsi que le stockage objet via S3.
- Concevoir et intégrer des API REST et GraphQL pour la communication entre les services.
- Identifier et résoudre les problèmes techniques complexes, en optimisant les performances des applications.
- Fournir un leadership technique et des conseils aux membres moins expérimentés de l'équipe de développement.
- Rester à jour avec les dernières tendances et innovations dans le développement Java, CI / CD, et les technologies cloud natives.
Compétences Requises :
- Expertise en développement Java avec une solide expérience dans les frameworks modernes comme Quarkus ou Spring.
- Connaissance approfondie des outils de CI / CD, particulièrement GitLab CI / CD.
- Expérience avec Gradle pour la gestion des builds et des dépendances.
- Compétences avérées dans l'orchestration de conteneurs avec Kubernetes.
- Maîtrise des bonnes pratiques TDD, avec une expérience dans les tests unitaires et d'intégration via JUnit.
- Expertise en programmation orientée objet, avec une solide compréhension des design patterns et des techniques de refactoring.
- Expérience avec ElasticSearch et des bases de données de documents comme MongoDB.
- Compétence dans l'intégration d'ORM comme Hibernate et le stockage d'objets avec S3.
- Maîtrise des API REST et GraphQL pour la conception et l'intégration de services.
- Familiarité avec les méthodologies de développement Agile et Scrum.
- Excellentes compétences en résolution de problèmes, en communication, et en travail d'équipe.
- Capacité à travailler de manière autonome et proactive dans un environnement dynamique.
Formation et Expérience :
- Baccalauréat en informatique, génie logiciel, ou domaine connexe.
- Minimum de 5 années d'expérience professionnelle en développement Java.
- Expérience significative avec GitLab CI / CD, Kubernetes, et Gradle.
- Expertise en ElasticSearch, MongoDB, Hibernate, S3, et API REST / GraphQL.
- Maîtrise des design patterns et expérience en refactoring.
- Une expérience antérieure en tant que leader technique ou architecte logiciel est un atout.
Avantages :
- Poste à 100% Télétravail
- Rémunération attractive.
- Opportunités de développement professionnel et de carrière.
- Environnement de travail stimulant et respectueux.
- Participation à des projets innovants avec des entreprises de renom.
Le développeur Senior Java jouera un rôle clé dans le développement de solutions logicielles avancées et innovantes. Si vous êtes passionné par la technologie et que vous êtes prêt à relever des défis stimulants, rejoignez notre équipe dès aujourd'hui.