5+ years of software engineering experience with Java applications and backend services.
Strong proficiency in Java and Spring Boot for enterprise applications and REST APIs.
Solid understanding of object-oriented design and software engineering principles.
Experience with REST APIs and distributed application integrations.
Familiarity with automated testing for Java applications, including unit and integration tests.
Proficient in Git and modern source-control practices.
Experience with CI/CD and DevOps tooling like Jenkins and Harbor.
Responsibilities
Design, develop, test, and maintain Java applications and REST APIs using Java and Spring Boot.
Produce high-quality, maintainable Java code following software engineering principles and secure development practices.
Implement RESTful APIs and integrations that are reliable, scalable, and secure.
Develop automated tests to enhance application quality and deployment confidence.
Participate in application architecture and technical design, focusing on API design and operational considerations.
Contribute to CI/CD pipelines and DevOps practices using tools like Git and Jenkins.
Support Java applications throughout their lifecycle, including troubleshooting and maintenance.
Benefits
Collaborative work environment with cross-functional teams.
Opportunities for continuous learning and professional development.
Focus on modernizing applications and improving software reliability.
Engagement in a culture of continuous improvement and innovation.
Full Job Description
About the Job
Software Engineer - Java & DevOps
About the Role:
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.
Camunda, Form.io, and BPMN.
JIRA and Agile software delivery methodologies.
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 logi