Software Developer, Software Engineer, Embedded Software Engineer
Job Description
- Bachelor’s degree in software engineering, Computer Science, Information Technology or a closely related field
- Minimum 5 years professional experience with the C programming language
- Demonstrable passion for programming (pet projects, contributions to open-source software, etc.)
- Experience with embedded systems and bare metal programming
- Ability to see "the bigger picture"; suggest and implement process improvements
- Willingness to embrace AI for more efficient workflows
- Ability to communicate (verbal and written) clearly and accurately in English
- Efficient self-motivator with a proven ability to prioritize multiple streams of work and meet deadlines
- Excellent attention to detail
Bach-Simpson is the lead Event Recorder OEM in the North American Transit market. It designs, develops, and maintains various electronic equipment for trains. The monitoring team in this division is responsible for the Bach-Simpson monitoring products and projects.
How will you make a difference?As a member of the software team in Bach-Simpson, you will report to the Software Manager. You will be responsible for maintaining existing and architecting and implementing new software solutions across a range of technologies including embedded Linux and PC software.
What do we want to know about you?The following are the required qualifications for this role:
- Bachelor’s degree in software engineering, Computer Science, Information Technology or a closely related field
- Minimum 5 years professional experience with the C programming language
- Demonstrable passion for programming (pet projects, contributions to open-source software, etc.)
- Experience with embedded systems and bare metal programming
- Ability to see "the bigger picture"; suggest and implement process improvements
- Willingness to embrace AI for more efficient workflows
- Ability to communicate (verbal and written) clearly and accurately in English
- Efficient self-motivator with a proven ability to prioritize multiple streams of work and meet deadlines
- Excellent attention to detail
- Legal authorization to work in Canada is required
- International travel, including to the United States
The following are essential responsibilities for this role:
- Participating in daily stand-up meetings with the team
- Analyzing technical requirements
- Designing software to implement formal requirements
- Implementing software designs
- Debug, root cause, and correct software defects
- Creation and maintenance of formal software design documentation
- Assist other groups with understanding product behavior
- Work with product management to respond to customer comments
- Ability to lift, carry, and move test hardware and equipment up to 30 lbs.
- Ability to work at a lab bench performing hands-on testing, setup, and troubleshooting.
- Ability to connect and interact with small components, cables, and test fixtures.
- Ability to stand or sit for extended periods depending on testing needs.
- Ability to visually inspect hardware devices and test systems.
- Ability to work in an electronics lab environment following ESD and safety protocols.
- Ability to use hand tools (e.g., screwdrivers) for assembling and maintaining test setups.
- Ability to connect disconnect various connectors on a daily basis as testing needs.
- Have manual dexterity to be able to work with various hardware for testing purposes.
You may also be asked to perform other duties outside of your function or trade, for which adequate training will be provided if necessary. Our job titles may span more than one career level. The salary range for this role is between $65,900-$87,300 The actual salary offered to a candidate may be influenced by a…
(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).