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++