
Engineer, Embedded Software
- Vancouver, BC
- Permanent
- Temps-plein
- Collaborate with digital design teams to architect and implement System-on-Chip (SoC) solutions.
- Work closely with SoC architects to identify and address firmware and system-level design improvements.
- Develop proof-of-concept software and sample code for performance analysis and profiling.
- Design and implement microcode and kernel drivers for SoC platforms.
- Define and develop bootloaders, system initialization routines, and startup sequences.
- Create test procedures and automation scripts to validate firmware functionality.
- Bachelor’s or Master’s degree in Electrical Engineering, Computer Engineering, or a related field, with 2+ years of firmware development experience
- Hands-on experience in firmware and software development for embedded systems.
- Proficiency in debugging hardware and software using IDEs and JTAG-based tools.
- Solid understanding of real-time operating systems (RTOS) concepts; experience with FreeRTOS, Zephyr, and/or embedded Linux is a plus.
- Strong programming skills in C and/or C++, with adherence to best software development practices.
- Good understanding of RISC architectures; familiarity with RISC-V and ARM microcontrollers and bus architectures is advantageous.
- Excellent communication skills and a proactive, collaborative mindset.
- Familiarity with the silicon design lifecycle and the role of firmware/software throughout the development process.
- Ability to read schematics and perform minor hardware modifications.
- Experience using lab equipment such as oscilloscopes, logic analyzers, and soldering tools.
- Knowledge of standard communication protocols (UART, SPI, I2C, Ethernet).
- Comfortable using Linux as a development environment.
- Proficiency with industry-standard tools such as Git, vi, gdb, and others.