Embedded Software Engineer
Posted on 10/18/2023
INACTIVE
Locations
Toronto, ON, Canada
Experience Level
Entry
Junior
Mid
Senior
Expert
Desired Skills
Computer Networking
Data Structures & Algorithms
Git
Linux/Unix
Operating Systems
Python
CategoriesNew
Software Engineering
Requirements
- 5+ years of embedded software development experience
- Bachelor's degree in Computer Science or equivalent
- Strong software design and development skills, including algorithms, testing and debugging
- Proficiency in C/C++, especially in embedded topics such as interrupt handlers, concurrency, memory mapped peripherals, and hardware interfaces (SPI, I2C, CAN)
- Experience with embedded operating systems and build systems, including OpenEmbedded/Yocto and FreeRTOS
- Embedded Linux experience including writing kernel modules, device trees, and drivers
- Excellent communication skills
- Ability to effectively use git
Responsibilities
- Design and develop reliable, high quality software related to: On board software for our next generation of satellites
- Embedded Linux for both space and ground systems
- Firmware and drivers
- IoT modules
- Writing thorough tests and documentation
- Participating in software design review and code review processes
- Work with electrical, digital design, and operations teams to identify required features and solidify the system architecture
- Provide technical leadership and mentorship to junior engineers
- Identify shortcomings in existing software components and direct future development efforts
Desired Qualifications
- Master's degree
- Python development experience
- Experience developing software for aerospace applications
- Experience developing multi-stage bootloaders
- Strong knowledge of computer networking and modern networking protocols
- Experience with RTL (Verilog and/or VHDL) and embedded SoCs
- Hardware debugging experience (oscilloscopes, logic analyzers, etc.)
- Experience with ARM assembly