Embedded Software Developer
Listed on 2026-10-20
-
Software Development
Software Engineer, Embedded Software Engineer, Python, Unix/Linux
Embedded Software Developer
Date: 6 Oct 2026
Company: Alstom
At Alstom, we understand transport networks and what moves people. From high-speed trains, metros, monorails, and trams, to turnkey systems, services, infrastructure, signalling and digital mobility, we offer our diverse customers the broadest portfolio in the industry. Every day, more than 80 000 colleagues lead the way to greener and smarter mobility worldwide, connecting cities as we reduce carbon and replace cars.
Alstom is experiencing unprecedented growth in Canada. To meet the challenges of tomorrow's transportation, we are looking for talents ready to combine global expertise with local impact.
Are you passionate about the railway world and complex systems? The Train Control & Monitoring Systems (TCMS) team opens its doors to you (St-Bruno office, QC).
The Train Control and Monitoring System (TCMS) team is involved in the improvement and troubleshooting of our customers active train fleets. The typical projects span from issue troubleshooting, obsolescence management to functional improvements.
The TCMS has an onboard and a wayside application:
The onboard portion acquires train data, apply control rules and activates outputs for train operation. It also gathers multiple train health metrics that are sent to the wayside software over wireless links. The wayside application receives, processes, archives and makes this data available for consultation. This data is used for efficient train operation, preventive and reactive maintenance.
The team needs to increase its capacity into a distributed system with multi Operating Systems and programming languages environment, articulated through Network protocols, to fulfil our customers projects.
Key ResponsibilitiesAs an onboard Software developer
, you will be responsible for the maintenance and improvement of the various software componentsas well as being a key player in the related design and troubleshooting of train software and build process tools.
The Software developer works in close relationship with the Software Testers and System Engineers towards the delivery of a reliable and issue free software in compliance with established processes in a continuous build, integration and delivery fashion.
You are responsible to:
- Analyse data to define and validate technical solutions.
- Implement software solutions corresponding to client requirements.
- Troubleshoot, debug and assess onboard existing issues.
- Maintain and improve software development ecosystem (coding, configuration management, continuous integration, test tools, etc…)
- Participate in the entire software development lifecycle (analysis, design, development, testing, deployment, and maintenance).
- Write technical reports that comply with company standards.
You will have a demonstrable knowledge and capability across a range of different computer operating systems, medium-high software programming and network knowledge.
Candidate must be versatile, resourceful, autonomous and handy at intervening on existing SW components.
Profile & Technical Skills- Bachelor’s or Master’s degree in Software Engineering, Computer Science, Electrical/Electronic Engineering, or equivalent.
- 3–5 years of experience in embedded software development.
- Strong programming skills in C, C++, C#.
- Good knowledge of scripting/programming languages such as Python, Bash/Shell scripting, and Power Shell
. - Experience with RTOS and
embedded Linux
. - Comfortable working in both Windows and Linux development environments.
- Good understanding of embedded systems
, multithreading
, memory management
, inter-process communication
, and r
eal-time constraints
. - Knowledge of communication protocols and interfaces such as Ethernet, TCP/IP, UDP, CAN, UART, SPI, and I²C
. - Experience with…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).