Embedded Software Engineer
Posted on 10/18/2023
INACTIVE
Kepler Communications
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