Senior Software Developer

IBMRemoteFull-timeSenior, 5–8 yearsListed 1 hour ago

Apply now

About this role

At IBM Software, we transform client challenges into solutions. Building the world's leading AI-powered, cloud-native products that shape the future of business and society. Our legacy of innovation creates endless opportunities for IBMers to learn, grow, and make an impact on a global scale. Working in Software means joining a team fueled by curiosity and collaboration. You'll work with diverse technologies, partners, and industries to design, develop, and deliver solutions that power digital transformation. With a culture that values innovation, growth, and continuous learning, IBM Software places you at the heart of IBM's product and technology landscape. Here, you'l have the tools and opportunities to advance your career while creating software that changes the world. As a Senior Software Engineer, you will design, build, test, deploy, and operate reliable backend systems in production. You will work in an Agile, collaborative environment to translate stakeholder needs into scalable software solutions, improve service performance and resilience, and contribute to strong engineering and operational practices across the delivery lifecycle. Your primary responsibilities will include: Design, develop, test, and deliver backend services and component-level software solutions that are ready for integration and production use. Build, scale, and operate reliable production systems, balancing performance, availability, consistency, and maintainability. Contribute to distributed systems, including event-driven architectures, high-throughput services, and large-scale data pipelines. Develop and improve automated continuous integration and deployment pipelines, quality controls, and modern release practices. Deploy and operate cloud-based services using containers and orchestration platforms. Improve observability through meaningful metrics, logging, and tracing; participate in incident response, root-cause analysis, and blameless postmortems. Diagnose customer-reported issues, design and implement code fixes, and collaborate with stakeholders through resolution. Communicate technical decisions, risks, and tradeoffs clearly to technical and non-technical stakeholders. Collaborate with engineers, product partners, and other stakeholders in an Agile environment to deliver outcomes aligned with team goals. Experience building, scaling, and operating backend systems in production. Proficiency in at least one major backend programming language, such as Java, Go, C/C++, or Python. Strong fundamentals in data structures, algorithms, and system design. Experience with distributed systems, such as event-driven architectures, high-throughput services, or large-scale data pipelines, with an understanding of consistency, fault tolerance, and performance tradeoffs. Experience running services in a public cloud environment, such as AWS, Google Cloud, or Microsoft Azure. Hands-on experience with containers and orchestration, such as Docker and Kubernetes, as well as modern deployment practices. Experience with observability and operational excellence, including metrics, logging, tracing, incident response, and postmortems. Experience with automated continuous integration and deployment pipelines, unit testing, debugging, and production issue resolution. Strong communication and collaboration skills, including the ability to explain complex ideas clearly to technical and non-technical stakeholders. Bachelor’s or master’s degree in computer science, engineering, or a related field, or equivalent practical experience. Experience with support engineering practices and resolving complex customer-reported production issues. Experience applying DevOps principles to improve delivery automation, service reliability, and operational efficiency. Experience with front-end development technologies or contributing across the full software stack. Chez IBM Software, nous transformons les défis de nos clients en solutions. Nous concevons des produits de premier plan, natifs pour le cloud et fondés sur l'intelligence artificielle, qui façonnent l'avenir des entreprises et de la société. Notre héritage en matière d'innovation offre aux collaborateurs d'IBM des opportunités infinies d'apprendre, de se développer et d'avoir un impact à l'échelle mondiale. Rejoindre la division Software, c'est intégrer une équipe animée par la curiosité et la collaboration. Vous travaillerez avec des technologies, des partenaires et des secteurs variés pour concevoir, développer et déployer des solutions qui propulsent la transformation numérique. Grâce à une culture qui valorise l'innovation, la croissance et l'apprentissage continu, IBM Software vous place au cœur de l'écosystème technologique et des produits d'IBM. Vous y trouverez les outils et les opportunités nécessaires pour faire progresser votre carrière, tout en créant des logiciels qui changent le monde. À titre d’ingénieur logiciel principal, vous concevrez, développerez, testerez, déploierez et exploiterez des systèmes backend fiables en production. Vous travaillerez dans un environnement Agile et collaboratif afin de traduire les besoins des parties prenantes en solutions logicielles évolutives, d’améliorer la performance et la résilience des services, et de contribuer à de solides pratiques d’ingénierie et d’exploitation tout au long du cycle de livraison. Vos principales responsabilités seront les suivantes: Concevoir, développer, tester et livrer des services backend et des solutions logicielles au niveau des composants, prêts à être intégrés et utilisés en production. Construire, faire évoluer et exploiter des systèmes de production fiables en équilibrant performance, disponibilité, cohérence et maintenabilité. Contribuer aux systèmes distribués, notamment aux architectures événementielles, aux services à haut débit et aux pipelines de données à grande échelle. Développer et améliorer les pipelines automatisés d’intégration et de déploiement continus, les contrôles de qualité et les pratiques modernes de mise en production. Déployer et exploiter des services infonuagiques à l’aide de conteneurs et de plateformes d’orchestration. Améliorer l’observabilité grâce à des métriques, des journaux et des traces pertinents; participer à la réponse aux incidents, à l’analyse des causes profondes et aux post-mortems sans blâme. Diagnostiquer les problèmes signalés par les clients, concevoir et mettre en œuvre des correctifs de code, et collaborer avec les parties prenantes jusqu’à leur résolution. Communiquer clairement les décisions techniques, les risques et les compromis aux parties prenantes techniques et non techniques. Collaborer avec les ingénieurs, les partenaires produit et les autres parties prenantes dans un environnement Agile afin d’atteindre des résultats alignés sur les objectifs de l’équipe. Expérience dans la conception, la mise à l’échelle et l’exploitation de systèmes backend en production. Maîtrise d’au moins un langage de programmation backend majeur, comme Java, Go, C/C++ ou Python. Solides bases en structures de données, algorithmes et conception de systèmes. Expérience des systèmes distribués, comme les architectures événementielles, les services à haut débit ou les pipelines de données à grande échelle, avec une bonne compréhension des compromis liés à la cohérence, à la tolérance aux pannes et à la performance. Expérience de l’exploitation de services dans un environnement d’infonuagique publique, comme AWS, Google Cloud ou Microsoft Azure. Expérience pratique des conteneurs et de l’orchestration, comme Docker et Kubernetes, ainsi que des pratiques modernes de déploiement. Expérience de l’observabilité et de l’excellence opérationnelle, notamment les métriques, la journalisation, le traçage, la réponse aux incidents et les post-mortems. Expérience des pipelines automatisés d’intégration et de déploiement continus, des tests unitaires, du débogage et de la résolution de problèmes en production. Solides compétences en communication et en collaboration, notamment la capacité d’expliquer clairement des idées complexes à des parties prenantes techniques et non techniques. Baccalauréat ou maîtrise en informatique, en génie ou dans un domaine connexe, ou expérience pratique équivalente. Expérience des pratiques d’ingénierie de soutien et de la résolution de problèmes complexes en production signalés par les clients. Expérience de l’application des principes DevOps afin d’améliorer l’automatisation de la livraison, la fiabilité des services et l’efficacité opérationnelle. Expérience des technologies de développement front-end ou contribution à l’ensemble de la pile logicielle. Canada Software Engineering Remote Professional Multiple Cities Calgary Markham Toronto Vancouver Ottawa Montreal (0026) IBM Canada Limited - IBM Canada Limitee Debugging Engineering Front-end Development Integration Readiness Software Testing Agile Coding Continuous Integration/Continuous Delivery Back-end Development Collaboration Unit Testing Continuous Integration/Continuous Delivery Pipelines Stakeholder Requirements DevOps Engineering