
Embedded Software Engineer
- Waterdown, ON
- Training
- Full-time
- Design, develop and validate real-time embedded software for complex electro-optical surveillance systems
- Work with other disciplines including electrical, mechanical, electro-optics and systems engineering to meet project objectives
- Provide support to manufacturing and customer support teams to solve software issues as needed
- Produce technical documentation as needed to document your project work
- Participate in design and code reviews for your projects
- Assist in the development of test and verification plans as required
- Contribute to department level improvement initiatives such as code refactoring, test development and establishing design & coding guidelines
- Mentor junior team members on technical aspects of their work
- Provide technical leadership to small scale projects or initiatives
- Embedded software development with C and/or C++
- Background in one or more of the following:
- Arm processors
- FPGA based systems
- Real time operating systems (RTOS), particularly ThreadX or vxWorks
- Embedded Linux
- Embedded systems interfaces such as I2C, SPI, CAN, Ethernet, etc.
- Python for scripting and automation
- MATLAB for simulation and data analysis
- Experience in any of the following areas:
- Navigation and stabilization control software
- Camera, imaging, or laser control & interfacing
- Video or image processing
- Avionics and/or defense applications
- Development of software for complex electronic and FPGA systems.
- Automated software test methodologies tailored to embedded systems
- Development of software using simulation or emulation environments
- Experience with “tools of the trade” such as IDEs/editors, debuggers, compilation toolchains and source control management systems
- Experience with design patterns and architectures for complex embedded software
- Ability to read and understand technical papers, datasheets, and interface control documents (ICDs)
- Familiarity with both Windows and Linux as host operating systems
- Familiarity with Agile software development practices
- Good communication and interpersonal skills
- University degree or College diploma in Software Engineering, Computer Engineering, Electrical Engineering, Computer Science or a related discipline.
- Preferred internship or co-op experience in industry embedded software development