We are seeking a Senior Software Engineer – Java & DevOps to join the Information Technology team in the Americas.
In this role, you will design, develop, enhance, deploy, and operate Java-based applications and backend services, with a strong focus on Spring Boot, REST APIs, application integration, automation, and DevOps practices.
You will contribute throughout the complete software development lifecycle—from solution design and hands-on Java development through testing, CI/CD, deployment, production support, monitoring, security remediation, and continuous improvement.
Working closely with development, infrastructure, cybersecurity, and business teams, you will help build reliable, secure, maintainable, and operationally resilient applications, while continuously improving how software is built, deployed, and supported.
Key Responsibilities:
Design, develop, test, and maintain Java applications, backend services, and REST APIs, primarily using Java and Spring Boot.
Produce high-quality, maintainable Java code following established software engineering principles, design patterns, coding standards, and secure development practices.
Design and implement RESTful APIs, integrations, and application services that are reliable, scalable, secure, and maintainable.
Develop automated unit, integration, API, and system tests to improve application quality and deployment confidence.
Participate in application architecture and technical design, including API design, data models, application integrations, error handling, logging, and operational considerations.
Contribute to CI/CD pipelines and DevOps practices using technologies such as Git, Jenkins, Harbor, and related build, deployment, and orchestration tools.
Support Java applications throughout their complete lifecycle, including development, deployment, production operations, troubleshooting, maintenance, upgrades, and modernization.
Troubleshoot application and production issues by analyzing logs, application behavior, integrations, database interactions, infrastructure dependencies, and deployment configurations.
Improve application observability, reliability, performance, and operational resilience, including effective logging, monitoring, health checks, alerting, and support procedures.
Maintain and enhance application databases and data-access components, including solutions using Microsoft SQL Server and Transact-SQL.
Maintain application environments hosted in private cloud infrastructure and collaborate with infrastructure teams on application runtime, configuration, connectivity, and deployment requirements.
Identify and remediate application and dependency vulnerabilities, and proactively address outdated Java libraries, frameworks, runtime components, and other technology obsolescence.
Develop supporting automation and engineering utilities using Python, JavaScript, PowerShell, APIs, Selenium, or other appropriate technologies when required.
Participate in code reviews and promote engineering best practices related to code quality, automated testing, security, maintainability, and operational readiness.
Produce clear technical documentation, including architecture and design documentation, deployment procedures, operational runbooks, troubleshooting guides, and knowledge-transfer materials.
Collaborate with cross-functional and global IT teams to deliver shared application and technology solutions.
Contribute to the continuous improvement of software development, CI/CD, deployment, and production support practices.
Required Qualifications:
5+ years of software engineering experience, with strong hands-on experience developing Java applications and backend services.
Strong proficiency in Java and Spring Boot, including the development of enterprise applications, services, and REST APIs.
Strong understanding of object-oriented design, software engineering principles, design patterns, and clean, maintainable code.
Experience designing, developing, integrating, and supporting REST APIs and distributed application integrations.
Experience with automated testing, including unit and integration testing of Java applications and services.
Strong experience with Git and modern source-control and code-review practices.
Experience with CI/CD and DevOps tooling, including Jenkins, Harbor, or comparable build, artifact management, and deployment technologies.
Experience supporting applications in production environments, including deployments, troubleshooting, incident resolution, monitoring, maintenance, and upgrades.
Experience working with relational databases and SQL, preferably Microsoft SQL Server and Transact-SQL.
Experience with modern Java development environments, particularly IntelliJ IDEA, or comparable IDEs.
Understanding of secure software development, dependency management, vulnerability remediation, and technology lifecycle management.
Ability to troubleshoot issues across the application stack, including application code, APIs, databases, configuration, deployment pipelines, and infrastructure dependencies.
Preferred Qualifications
Experience with one or more of the following would be considered an asset:
Python, JavaScript, and/or PowerShell for scripting, tooling, and operational automation.
Additional Spring ecosystem technologies and Java build/dependency management tools.
Docker, containerized applications, and container orchestration technologies.
Jenkins, Harbor, and advanced CI/CD pipeline automation.
Application monitoring, logging, observability, and performance troubleshooting.
Selenium and automated functional testing.
PostgreSQL.
Insomnia or similar API development and testing tools.
Autosys or similar workload automation and scheduling platforms.
Private and/or public cloud environments.
Infrastructure and application configuration automation.
What You Bring
Strong Java software engineering skills and an interest in building reliable, maintainable, and production-ready applications.
A DevOps mindset, with an understanding that software engineering includes not only writing code but also testing, deploying, operating, monitoring, and continuously improving applications.
Strong analytical and troubleshooting skills across development and production environments.
A pragmatic, results-oriented approach and the ability to translate technical challenges into sustainable engineering solutions.
Ability to take ownership of applications and technical initiatives from design and development through deployment and production support.
Strong collaboration skills and the ability to work effectively with developers, infrastructure engineers, cybersecurity teams, and business stakeholders.
Clear written and verbal communication skills, including the ability to explain technical concepts to different audiences.
Strong documentation, code-review, and knowledge-sharing practices.
A continuous-improvement mindset and an interest in modernizing applications, automating delivery processes, reducing operational effort, and improving software reliability.
Language Requirements:
English: Fluent – required. The successful candidate will regularly collaborate with colleagues, stakeholders, and partners in the United States.
French: An asset.
Version française
Ingénieur(e) logiciel – Java et DevOps:
À propos du poste:
Au sein du Global Chief Operating Office (GCOO), le département Global Technology Services (GTS) fournit des services d'infrastructure TI sécurisés, fiables et évolutifs à l'échelle de l'organisation. GTS soutient notamment les applications d'affaires, les plateformes infonuagiques, les services de connectivité et l'environnement de travail numérique, tout en contribuant activement à la transformation numérique de l'organisation.
Nous sommes à la recherche d'un(e) Ingénieur(e) logiciel senior – Java et DevOps pour se joindre à l'équipe des Technologies de l'information dans les Amériques.
Dans ce rôle, vous serez responsable de la conception, du développement, de l'amélioration, du déploiement et de l'exploitation d'applications et de services backend Java, avec un accent particulier sur Spring Boot, les API REST, l'intégration applicative, l'automatisation et les pratiques DevOps.
Vous contribuerez à l'ensemble du cycle de développement logiciel, de la conception de solutions et du développement Java jusqu'aux tests, à l'intégration et au déploiement continus (CI/CD), à la mise en production, au soutien opérationnel, à la surveillance, à la correction des vulnérabilités et à l'amélioration continue.
En étroite collaboration avec les équipes de développement, d'infrastructure, de cybersécurité et d'affaires, vous contribuerez à la réalisation d'applications fiables, sécurisées, maintenables et résilientes, tout en améliorant continuellement les méthodes utilisées pour développer, déployer et exploiter les solutions.
Principales responsabilités:
Concevoir, développer, tester et maintenir des applications Java, des services backend et des API REST, principalement à l'aide de Java et Spring Boot.
Produire du code Java de haute qualité et facilement maintenable en appliquant les principes de génie logiciel, les patrons de conception, les normes de développement et les pratiques de développement sécurisé.
Concevoir et mettre en œuvre des API REST, des intégrations et des services applicatifs fiables, évolutifs, sécurisés et maintenables.
Développer des tests unitaires, d'intégration, d'API et système automatisés afin d'améliorer la qualité des applications et la fiabilité des mises en production.
Participer à l'architecture et à la conception technique des applications, notamment la conception des API, les modèles de données, les intégrations, la gestion des erreurs, la journalisation et les considérations opérationnelles.
Contribuer aux pipelines CI/CD et aux pratiques DevOps à l'aide de technologies telles que Git, Jenkins, Harbor ainsi que d'autres outils de compilation, de déploiement et d'orchestration.
Automatiser, lorsque pertinent, les activités de compilation, de test, de packaging, de déploiement, de configuration et d'exploitation des applications.
Assurer la prise en charge des applications Java tout au long de leur cycle de vie, notamment le développement, le déploiement, l'exploitation en production, le diagnostic, la maintenance, les mises à niveau et la modernisation.
Diagnostiquer les problèmes applicatifs et de production en analysant les journaux, le comportement des applications, les intégrations, les interactions avec les bases de données, les dépendances d'infrastructure et les configurations de déploiement.
Améliorer l'observabilité, la fiabilité, la performance et la résilience opérationnelle des applications, notamment grâce à la journalisation, à la surveillance, aux contrôles d'état, aux alertes et aux procédures de soutien.
Maintenir et améliorer les bases de données applicatives et les composants d'accès aux données, notamment les solutions utilisant Microsoft SQL Server et Transact-SQL.
Maintenir les environnements applicatifs hébergés dans une infrastructure infonuagique privée et collaborer avec les équipes d'infrastructure concernant les environnements d'exécution, la configuration, la connectivité et les exigences de déploiement.
Identifier et corriger les vulnérabilités applicatives et celles liées aux dépendances, et gérer de façon proactive l'obsolescence des bibliothèques Java, des frameworks, des environnements d'exécution et des autres composants technologiques.
Développer, au besoin, des outils complémentaires d'automatisation à l'aide de Python, JavaScript, PowerShell, API, Selenium ou d'autres technologies appropriées.
Participer aux revues de code et promouvoir les meilleures pratiques en matière de qualité du code, de tests automatisés, de sécurité, de maintenabilité et de préparation opérationnelle.
Produire une documentation technique claire, notamment la documentation d'architecture et de conception, les procédures de déploiement, les guides opérationnels, les procédures de diagnostic et les documents de transfert de connaissances.
Collaborer avec des équipes TI transversales et internationales afin de concevoir et de mettre en œuvre des solutions applicatives et technologiques communes.
Contribuer à l'amélioration continue des pratiques de développement logiciel, de CI/CD, de déploiement et de soutien en production.
Qualifications requises:
Au moins 5 ans d'expérience en génie logiciel, avec une solide expérience pratique dans le développement d'applications et de services backend Java.
Excellente maîtrise de Java et Spring Boot, notamment pour le développement d'applications d'entreprise, de services et d'API REST.
Solide compréhension de la conception orientée objet, des principes de génie logiciel, des patrons de conception et des pratiques favorisant un code propre et maintenable.
Expérience dans la conception, le développement, l'intégration et le soutien d'API REST et d'intégrations applicatives distribuées.
Expérience avec les tests automatisés, notamment les tests unitaires et d'intégration d'applications et de services Java.
Solide expérience avec Git ainsi qu'avec les pratiques modernes de gestion du code source et de revue de code.
Expérience avec les outils et pratiques CI/CD et DevOps, notamment Jenkins, Harbor ou des technologies comparables de compilation, de gestion des artefacts et de déploiement.
Expérience dans le soutien d'applications en environnement de production, notamment les déploiements, le diagnostic, la résolution d'incidents, la surveillance, la maintenance et les mises à niveau.
Expérience avec les bases de données relationnelles et SQL, préférablement Microsoft SQL Server et Transact-SQL.
Expérience avec des environnements modernes de développement Java, notamment IntelliJ IDEA, ou des outils comparables.
Bonne compréhension du développement logiciel sécurisé, de la gestion des dépendances, de la correction des vulnérabilités et de la gestion du cycle de vie technologique.
Capacité à diagnostiquer des problèmes touchant différentes couches d'une solution, notamment le code applicatif, les API, les bases de données, la configuration, les pipelines de déploiement et les dépendances d'infrastructure.
Qualifications souhaitées:
Une expérience avec une ou plusieurs des technologies ou pratiques suivantes constitue un atout:
Python, JavaScript et/ou PowerShell pour le scripting, le développement d'outils et l'automatisation opérationnelle.
Technologies complémentaires de l'écosystème Spring et outils Java de compilation et de gestion des dépendances.
Docker, applications conteneurisées et technologies d'orchestration de conteneurs.
Jenkins, Harbor et automatisation avancée des pipelines CI/CD.
Surveillance applicative, journalisation, observabilité et analyse de performance.
Selenium et tests fonctionnels automatisés.
PostgreSQL.
Insomnia ou des outils similaires de développement et de test d'API.
Automatisation de la configuration des applications et des environnements.
Compétences recherchées:
Solides compétences en développement logiciel Java et intérêt marqué pour la conception d'applications fiables, maintenables et prêtes pour la production.
Une culture DevOps, avec la compréhension que le génie logiciel englobe non seulement le développement, mais également les tests, le déploiement, l'exploitation, la surveillance et l'amélioration continue des applications.
Excellentes capacités d'analyse et de diagnostic dans les environnements de développement et de production.
Approche pragmatique et axée sur les résultats, avec la capacité de transformer des enjeux techniques en solutions d'ingénierie durables.
Capacité à prendre en charge des applications et des initiatives techniques de la conception et du développement jusqu'au déploiement et au soutien en production.
Excellent esprit de collaboration et capacité à travailler efficacement avec les développeurs, les équipes d'infrastructure et de cybersécurité ainsi qu'avec les parties prenantes d'affaires.
Excellentes aptitudes en communication écrite et orale et capacité à expliquer des concepts techniques à différents types d'interlocuteurs.
Rigueur dans la documentation, les revues de code et le partage des connaissances.
Esprit d'amélioration continue et intérêt pour la modernisation des applications, l'automatisation des processus de livraison, la réduction des efforts opérationnels et l'amélioration de la fiabilité des solutions.
Exigences linguistiques:
Anglais: maîtrise professionnelle requise. La personne retenue devra collaborer régulièrement avec des collègues, des parties prenantes et des partenaires situés aux États-Unis.