Embedded Software Developer
SPARK Microsystems
Location: Montreal, Quebec, Canada
As an Embedded Software Developer at SPARK Microsystems, you will be required to develop and maintain firmware covering our various embedded system applications and this includes network protocols, core libraries as well as application development. Additionally, you will implement, and test firmware to form optimal communications wireless networks using the extremely low power wireless transceivers developed by SPARK Microsystems.
This includes developing low power wireless sensor networks in point-to-point, star, and mesh configurations, as well as efficient point-to-point links for audio streaming applications. The selected candidate will be responsible for developing efficient firmware to support these applications, as well as a graphical user interface for each system that allows users to control the flow of information in the wireless system.
Your Responsibilities as an Embedded Software Developer
- Implement, test and document embedded and application software.
- Develop algorithms for communication system protocol layers and networking.
- Provide architectural and detailed designs to meet the system requirements.
- Plan and evaluate architectural design and reviews system performance.
- Maintain system software components including device drivers, RTOS and applications.
- Participate in the team’s testing processes by developing protocols for unit testing, integration/regression testing, and system-level testing.
- Research and evaluate new technology applications and conduct feasibility and de-risking studies.
Your Qualifications as an Embedded Software Developer
- Bachelor in Electrical Engineering or equivalent.
- 5+ years of experience in embedded application development in C and C++.
- 5+ years of experience in low level C programming on microcontrollers / microprocessors, with advanced knowledge of MCU/CPU architectures and ecosystems.
- Extensive knowledge of dependencies between system components and protocol layers and their interactions.
- Experience with specifying system-level uses cases and flowing that down to MAC protocol/networking architecture and requirements.
- Ability to work efficiently with both Linux and Windows.• Experience with Visual Studio Code and Eclipse IDE.
- Experience with scripting languages such as Python and MATLAB.
- Experience developing Board Support Packages, boot loaders, and component drivers.
- Experience with virtualization and container technologies (VMware, KVM, Docker).
- Experience with Git version control systems.
- Experience with software development platform such as Gitlab and Github.
- Understanding of communication protocols including I2C, SPI, UART and USB.
- Experience in hands-on development and debug on embedded targets using in-circuit debuggers and electronic test equipment (oscilloscope, multimeter, logic analyzer, etc).
- Experience in modern software development processes (peer reviewing, unit testing, etc).
- Ability to multi-task, set project priorities, establish task focused goals and objectives for self and show initiative.
- Excellent communication skills in English/French: Required to communicate with colleagues/clients across the country and abroad on a regular basis.
Promote the following values/qualities:
- Cooperation: Have the success of the team at heart.
- Rigor: Take pride in carefully executed work.
- Motivation: Exceed your limits in a job you love.
- Initiative: Propose new ideas and act.
- Leadership: Positively influencing those around us.
The Nice-to-Haves
- PCB design and layout experience.
- Experience with firmware / applications development for other wireless technologies (Bluetooth, ZigBee, etc.).
- Experience with IAR Embedded Workbench and Keil MDK.
- Experience in bringing a product to market.
- Basic knowledge of analog/digital circuits and RF principles.
The Perks
- A growing start-up where each person has an important role in the success of the Company.
- Be part of a passionate, creative and motivated team in a collaborative mode.
- A place where you can grow and become the professional you want to be.
- Group insurance from day one.
- Employee stock option plan.
- Hybrid work and flexible hours to balance work/personal life.
- In addition to vacation, sick leave and holidays, Spark offers additional days off.