Aversan Inc. (www.aversan.com) is a trusted multi-service engineering and electronics manufacturing company. Aversan delivers leading-edge and reliable safety-critical electronics and software systems to the aerospace, defense, and space industries.
We are currently seeking a qualified Senior Embedded Software Engineer to work on leading-edge technology products. Location: Burnaby, BC Schedule: Onsite Compensation: Base pay + Performance based Quarterly Bonus + Equity + Stock options
Description We are looking for a Senior Member of Technical Staff (SMTS) with deep expertise in embedded software to play a critical role in architecting, developing, and optimizing software for our next-generation embedded systems. In this position, you will lead complex development efforts, contribute to platform architecture decisions, and help guide junior engineers through technical challenges.
You’ll work closely with cross-functional teams including hardware design, system architecture, and applications engineering to deliver high-performance 3D sensing reference designs.
Responsibilities.
Architect, develop, and maintain embedded software across the full stack - from low-level drivers and kernel modules to middleware and user-space applications using C/C++ and Python.
Design and customize Linux-based embedded systems, including building and maintaining Yocto-based distributions and Board Support Packages (BSPs).
Lead bring-up and integration of custom hardware platforms, including bootloader, kernel, and driver development.
Develop and debug device drivers and peripheral interfaces (SPI, I2C, UART, USB, Ethernet).
Drive performance optimization of networking stacks and real-time data processing in embedded Linux systems.
Analyze and troubleshoot system-level issues across hardware/software boundaries using tools such as JTAG, logic analyzers, and profiling utilities.
Contribute to system architecture, interface design, and long-term platform scalability.
Define and implement software development best practices, including CI/CD pipelines, code reviews, and automated validation.
Mentor and support junior engineers, conduct technical reviews, and provide guidance on complex issues.
Create detailed technical documentation, design specifications, and debugging procedures.
Basic Qualifications
Master’s degree in computer science or equivalent work experience.
8+ years of embedded software development.
Expert-level proficiency in C and C++, with experience in Python.
Strong experience with Linux kernel, driver development, and Yocto build system.
Hands-on experience with networking protocols (TCP/IP, UDP, MQTT, etc.).
Familiarity with bootloaders, BSP development, and real-time constraints.
Experience debugging embedded systems using JTAG, oscilloscopes, and logic analyzers.
Knowledge of system profiling, memory management and performance optimization.
Ability to read and interpret data sheets to inform implementation.
Expertise of working in Linux environments.
Expertise in Source code version control (Git).
Strong problem-solving skills and ability to work in a fast-paced environment.
Experience in Lidar, 3D Sensing Systems or real-time imaging systems.
Hands-on experience of real-time operating systems (RTOS) and bare-metal development.
Familiarity with hardware bring-up and board support package (BSP) development.
Understanding of security best practices for embedded systems.
Familiarity with Atlassian tools (Jira, Confluence, Bitbucket).
Familiarity with working in Agile environments (Scrum / Kanban).
Familiarity with embedded software development e.g. C, C++