We are committed to continuously improving enterprise systems, modernizing existing platforms, and delivering scalable cloud-based solutions that support critical business operations and digital transformation initiatives.
Our Montréal Service Center provides opportunities to work on mission-critical applications, collaborate with global teams and business stakeholders, and contribute to continuous improvement initiatives within a dynamic Agile environment.
Role Overview:
We are seeking an experienced Senior C#/.NET Software Developer to design, build, enhance, and support mission-critical banking applications in an Azure-based environment.
The successful candidate will participate in the full software development lifecycle, from requirements analysis and technical design through development, testing, deployment, and production support. The role involves close collaboration with business stakeholders, architects, DevOps, infrastructure teams, and other technology partners to deliver scalable, reliable, secure, and maintainable solutions.
This position offers the opportunity to work with modern .NET technologies, Azure cloud services, distributed systems, CI/CD pipelines, containerized applications, and modern front-end technologies while contributing to the modernization and evolution of existing enterprise platforms.
Key Responsibilities:
Design, develop, test, deploy, maintain, and enhance mission-critical banking applications and services using C# and .NET.
Lead and contribute to the end-to-end development lifecycle, from requirements analysis and solution design through implementation, deployment, and production support.
Develop scalable REST APIs, distributed application components, and enterprise integrations.
Design and develop reliable multithreaded and concurrent application components where required.
Participate in the modernization and evolution of existing applications and enterprise platforms.
Collaborate with business stakeholders and technical teams to analyze and refine business, functional, and technical requirements.
Contribute to architectural discussions, application design, technical solutioning, and technology decisions.
Apply object-oriented design principles, software design patterns, and engineering best practices to produce maintainable and scalable solutions.
Develop and optimize data access solutions using relational databases and SQL.
Contribute to front-end application development using technologies such as Angular or React.
Build and deploy applications within Microsoft Azure and modern cloud-based environments.
Collaborate with DevOps and infrastructure teams to improve CI/CD pipelines, deployment processes, observability, and operational practices.
Work with containerization and orchestration technologies such as Docker and Kubernetes.
Ensure software quality through automated and manual testing, code reviews, documentation, static analysis, and continuous integration practices.
Participate in Agile/Scrum ceremonies, estimation, planning, and continuous improvement initiatives.
Support application deployments, release management, and production activities.
Troubleshoot complex application and production issues and participate in incident resolution when escalated.
Monitor and improve application performance, reliability, scalability, and operational stability.
Collaborate across teams and provide clear and regular status updates to technical and business stakeholders.
Required Qualifications
Education and Experience:
Bachelor's degree in Computer Science, Software Engineering, or a related field, or equivalent professional experience.
8+ years of professional software development experience with strong expertise in C# and .NET.
Demonstrated experience designing, developing, testing, and supporting complex enterprise applications.
Strong experience with multithreaded and concurrent application development.
Experience working in complex enterprise IT environments and across the complete software development lifecycle.
Experience supporting business-critical or high-availability applications in production environments.
Technical Skills:
Strong proficiency in C# and Microsoft .NET development.
Strong experience with ASP.NET and REST API development.
Strong understanding of object-oriented programming, SOLID principles, software architecture, and design patterns.
Strong understanding of multithreading, concurrency, asynchronous programming, and application performance.
Strong experience with Microsoft Azure and cloud-based application development and deployment.
Strong experience with SQL and relational databases, such as SQL Server, Oracle, or PostgreSQL.
Experience designing and working with distributed application architectures and enterprise integrations.
Experience with modern front-end technologies such as Angular or React.
Experience with Git, Jenkins, and CI/CD practices.
Experience with Docker and Kubernetes or comparable containerization and orchestration technologies.
Understanding of DevOps practices, automated testing, code quality, deployment automation, and production support.
Preferred Qualifications:
Experience in the financial services or banking industry.
Experience with capital markets, collateral management, or trading-related systems.
Knowledge of exchange-traded products, including equities and futures.
Experience with messaging technologies such as IBM MQ, RabbitMQ, Azure Service Bus, or similar technologies.
Experience with monitoring, logging, and observability technologies such as Grafana.
Experience with Elasticsearch or similar search and analytics platforms.
Experience with enterprise DevOps and software delivery tools such as SonarQube, Artifactory, or XL Deploy.
Experience designing and supporting distributed, highly available, and scalable systems.
Skills and Aptitudes:
Strong analytical, troubleshooting, and problem-solving abilities.
Strong software design and engineering skills.
Ability to independently own complex technical deliverables from design through production.
Excellent communication and collaboration skills.
Ability to work effectively with business stakeholders, architects, developers, infrastructure, and DevOps teams.
Strong sense of ownership and accountability.
Ability to manage multiple priorities in a complex and fast-paced environment.
Familiarity with Agile/Scrum methodologies and modern software development practices.
Commitment to software quality, maintainability, reliability, and continuous improvement.
Ability to communicate effectively in English, both orally and in writing.
Language Requirement:
Ability to communicate in English, both orally and in writing, is required, as the person in this position will collaborate regularly with colleagues and partners in the United States.
Additional Requirement:
Due to U.S. Federal Securities laws that may apply to this position, candidates may be required to undergo enhanced background screening, including the collection of fingerprints by a third-party vendor selected by the Financial Industry Regulatory Authority (FINRA).
Développeur logiciel (Senior) – C#/.NET
À propos de nous:
Nous nous engageons à améliorer continuellement les systèmes d’entreprise, à moderniser les plateformes existantes et à fournir des solutions infonuagiques évolutives qui soutiennent les opérations d’affaires critiques et les initiatives de transformation numérique.
Notre Centre de services de Montréal offre l’occasion de travailler sur des applications critiques, de collaborer avec des équipes mondiales et des parties prenantes d’affaires, et de contribuer à des initiatives d’amélioration continue dans un environnement Agile dynamique.
Présentation du rôle:
Nous recherchons un Développeur logiciel C#/.NET Senior expérimenté pour concevoir, développer, améliorer et soutenir des applications bancaires critiques dans un environnement basé sur Microsoft Azure.
La personne retenue participera à l’ensemble du cycle de développement logiciel, depuis l’analyse des besoins et la conception technique jusqu’au développement, aux tests, au déploiement et au soutien en production. Le rôle implique une étroite collaboration avec les parties prenantes d’affaires, les architectes ainsi que les équipes DevOps, Infrastructure et autres partenaires technologiques afin de livrer des solutions évolutives, fiables, sécuritaires et faciles à maintenir.
Ce poste offre l’occasion de travailler avec les technologies .NET modernes, les services infonuagiques Azure, les systèmes distribués, les pipelines CI/CD, les applications conteneurisées et les technologies front-end modernes, tout en contribuant à la modernisation et à l’évolution des plateformes d’entreprise existantes.
Principales responsabilités:
Concevoir, développer, tester, déployer, maintenir et améliorer des applications et services bancaires critiques à l’aide de C# et .NET.
Diriger et contribuer au cycle de développement de bout en bout, depuis l’analyse des besoins et la conception de solutions jusqu’à l’implantation, au déploiement et au soutien en production.
Développer des API REST évolutives, des composants d’applications distribuées et des intégrations avec les systèmes d’entreprise.
Concevoir et développer, lorsque requis, des composants applicatifs fiables utilisant la programmation multithread et concurrente.
Participer à la modernisation et à l’évolution des applications et plateformes d’entreprise existantes.
Collaborer avec les parties prenantes d’affaires et les équipes techniques afin d’analyser et de préciser les exigences d’affaires, fonctionnelles et techniques.
Contribuer aux discussions d’architecture, à la conception des applications, à l’élaboration des solutions techniques et aux décisions technologiques.
Appliquer les principes de conception orientée objet, les patrons de conception et les meilleures pratiques d’ingénierie logicielle afin de produire des solutions évolutives et faciles à maintenir.
Développer et optimiser les solutions d’accès aux données utilisant SQL et des bases de données relationnelles.
Contribuer au développement d’applications front-end à l’aide de technologies telles qu’Angular ou React.
Développer et déployer des applications dans Microsoft Azure et dans des environnements infonuagiques modernes.
Collaborer avec les équipes DevOps et Infrastructure afin d’améliorer les pipelines CI/CD, les processus de déploiement, l’observabilité et les pratiques opérationnelles.
Travailler avec des technologies de conteneurisation et d’orchestration telles que Docker et Kubernetes.
Assurer la qualité logicielle au moyen de tests automatisés et manuels, de revues de code, de documentation, d’analyses statiques et de pratiques d’intégration continue.
Participer aux cérémonies Agile/Scrum, aux activités d’estimation et de planification ainsi qu’aux initiatives d’amélioration continue.
Soutenir les déploiements applicatifs, la gestion des versions et les activités de production.
Analyser et résoudre des problèmes applicatifs et de production complexes et participer à la résolution des incidents lorsque requis.
Surveiller et améliorer la performance, la fiabilité, l’évolutivité et la stabilité opérationnelle des applications.
Collaborer avec les différentes équipes et fournir des mises à jour claires et régulières aux parties prenantes techniques et d’affaires.
Qualifications requises
Formation et expérience:
Baccalauréat en informatique, en génie logiciel ou dans un domaine connexe, ou expérience professionnelle équivalente.
Plus de 8 ans d’expérience professionnelle en développement logiciel avec une solide expertise en C# et .NET.
Expérience démontrée dans la conception, le développement, les tests et le soutien d’applications d’entreprise complexes.
Solide expérience en développement d’applications multithread et concurrentes.
Expérience de travail dans des environnements TI d’entreprise complexes et avec l’ensemble du cycle de vie du développement logiciel.
Expérience dans le soutien d’applications critiques ou à haute disponibilité en environnement de production.
Compétences techniques:
Excellente maîtrise du développement C# et Microsoft .NET.
Solide expérience avec ASP.NET et le développement d’API REST.
Excellente compréhension de la programmation orientée objet, des principes SOLID, de l’architecture logicielle et des patrons de conception.
Solide compréhension de la programmation multithread, de la concurrence, de la programmation asynchrone et de la performance applicative.
Solide expérience avec Microsoft Azure ainsi qu’avec le développement et le déploiement d’applications infonuagiques.
Solide expérience avec SQL et les bases de données relationnelles, telles que SQL Server, Oracle ou PostgreSQL.
Expérience dans la conception et l’utilisation d’architectures applicatives distribuées et d’intégrations avec les systèmes d’entreprise.
Expérience avec des technologies front-end modernes telles qu’Angular ou React.
Expérience avec Git, Jenkins et les pratiques CI/CD.
Expérience avec Docker et Kubernetes, ou des technologies comparables de conteneurisation et d’orchestration.
Bonne compréhension des pratiques DevOps, des tests automatisés, de la qualité du code, de l’automatisation des déploiements et du soutien en production.
Qualifications souhaitées:
Expérience dans le secteur des services financiers ou bancaires.
Expérience dans les marchés des capitaux, la gestion des garanties (collateral management) ou les systèmes liés aux activités de négociation.
Connaissance des produits négociés en bourse, notamment les actions et les contrats à terme (futures).
Expérience avec des technologies de messagerie telles qu’IBM MQ, RabbitMQ, Azure Service Bus ou des technologies similaires.
Expérience avec des technologies de surveillance, de journalisation et d’observabilité telles que Grafana.
Expérience avec Elasticsearch ou des plateformes similaires de recherche et d’analyse.
Expérience avec des outils DevOps et de livraison logicielle d’entreprise tels que SonarQube, Artifactory ou XL Deploy.
Expérience dans la conception et le soutien de systèmes distribués, hautement disponibles et évolutifs.
Compétences et aptitudes:
Solides capacités d’analyse, de diagnostic et de résolution de problèmes.
Solides compétences en conception et en ingénierie logicielle.
Capacité à prendre en charge de façon autonome des livrables techniques complexes, de la conception jusqu’à la mise en production.
Excellentes compétences en communication et en collaboration.
Capacité à travailler efficacement avec les parties prenantes d’affaires, les architectes, les développeurs ainsi que les équipes Infrastructure et DevOps.
Fort sens des responsabilités, de l’autonomie et de la prise en charge.
Capacité à gérer plusieurs priorités dans un environnement complexe et dynamique.
Bonne connaissance des méthodologies Agile/Scrum et des pratiques modernes de développement logiciel.
Engagement envers la qualité, la maintenabilité, la fiabilité des logiciels et l’amélioration continue.
Capacité à communiquer efficacement en anglais, tant à l’oral qu’à l’écrit.
Exigence linguistique:
La capacité de communiquer en anglais, tant à l’oral qu’à l’écrit, est requise puisque la personne occupant ce poste devra collaborer régulièrement avec des collègues et des partenaires situés aux États-Unis.
Exigence additionnelle
En raison des lois fédérales américaines sur les valeurs mobilières qui peuvent s’appliquer à ce poste, les candidats pourraient devoir se soumettre à une vérification approfondie de leurs antécédents, pouvant notamment comprendre la prise d’empreintes digitales par un fournisseur tiers sélectionné par la Financial Industry Regulatory Authority (FINRA).