Staff Embedded Software Designer
Kepler Communications
Design
Toronto, ON, Canada
Key Responsibilities:
Design, develop, and maintain reliable, high-quality embedded software for both spacecraft and ground-based systems supporting a growing fleet of satellites
Linux networking infrastructure, including routing, control-plane, and dataplane integration
Developing software for FPGA-based platforms, including bring-up, driver integration, and optimization of memory-mapped interfaces between processing cores and custom IP.
Develop automated tests, validation tools, and technical documentation to support robust software delivery and long-term maintainability
Participate in software architecture discussions, design reviews, and code reviews to ensure software quality and system reliability
Collaborate closely with cross-functional teams to define system requirements, debug complex issues, and evolve system architecture
Identify performance gaps, reliability risks, and architectural shortcomings in existing systems, and drive improvements across the software stack
Provide technical leadership, mentorship, and guidance to junior engineers while contributing to engineering best practices and development standards
Required Skills & Qualifications:
5+ years of embedded software development experience
Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, or equivalent experience
Strong proficiency in C and modern C++
Experience developing software for embedded Linux environments
Experience working close to operating system internals, including concurrency, IPC, synchronization, memory management, and hardware/software interfaces
Experience integrating and debugging complex software systems across multiple abstraction layers
Experience with embedded build systems and toolchains such as Yocto/OpenEmbedded, Buildroot, CMake, or similar
Ability to debug and optimize software in resource-constrained or performance-sensitive environments
Strong communication and collaboration skills in cross-functional engineering environments
Ability to work effectively across distributed teams and time zones
Bonus Points:
Master's degree in Computer Science, Computer Engineering, or related field
Experience developing software for aerospace applications
Experience implementing embedded security solutions such as secure boot, hardware security modules (HSMs), certificate/key management, authentication, or encrypted communications
Familiarity with Linux networking concepts and infrastructure, including routing, interfaces, netlink, or packet-processing pipelines
Experience developing multi-stage bootloaders
Strong knowledge of computer networking and modern networking protocols
Experience with RTL (Verilog and/or VHDL) and embedded SoCs