Qualifications:
Education
- Bachelor's degree in electronic or computer engineering or equivalent
- Professional engineer (P.Eng.) status or eligibility is an asset.
Experience
- 0, 2, or 5+ years of firmware development experience for junior, intermediate, or senior roles.
- 2, 5, or 10+ years of C/C++ programming experience for junior, intermediate, or senior roles.
- Product development for manufacturing is an asset.
Skills
Core Technical Skills
- Understanding of firmware development principles.
- C programming for embedded systems.
- Debugging and trouble shooting embedded systems.
- Object oriented design and programming.
- Understanding of real-time and concurrency design principles.
- Understanding of microcontroller architecture.
- Understanding of microcontroller / SoC peripherals (ADC, PWM, etc.)
- Understanding of communication protocols (I2C, SPI, UART, TCP/IP, etc.)
- Development of RTOS based systems (e.g. FreeRTOS).
- Development of Linux systems (e.g. Yocto).
- Implementation of firmware unit tests (black box and white box testing).
- Use of firmware development tools: debuggers, IDEs.
- Able to read and interpret electronic schematics.
- Use of laboratory equipment: oscilloscopes, logic analyzers, spectrum analyzers.
- Able to debug digital logic.
- Use of source code management tools (SVN, Git, etc.)
- Familiar with the full SDLC (requirements, design, implement, debug, test, release, support).
- Creation of effective design documentation (e.g. high level designs, UML, etc.)
Additional Skills (considered an asset)
- Firmware integration of Bluetooth and Wi-Fi modules.
- Boot loaders (bare metal, U-Boot, etc.).
- Digital signal processing, fixed point arithmetic, mathematical analysis.
- Motor control algorithms.
- FPGA / HDL development (Verilog, VHDL).
- Web technologies (Javascript, HTML, CSS, etc.).
- Agile / Scrum software development methods.
Soft Skills
- You have exceptional organizational and time-management skills.
- You have exceptional communication skills, written and verbal.
- You can easily communicate with technical and non-technical audiences.
- You are able to organize and lead complex projects through a full development life cycle.
- You are self-motivated, take ownership and are able to work with minimal supervision.
- You excel in a team environment that requires collaboration and communication.
- You provide and welcome constructive feedback.
- You are a strong advocate for quality, best practices and traceability.
After you apply, you may receive a call or message from our AI Talent Scout about this role or other opportunities that match your skills and preferences. AI agent role is to help speed up your hiring process by answering questions, confirming basic information, and identifying whether there's a mutual fit.
The call or chat may be recorded so that our recruiting team can review it - they make all final hiring decisions, while AI agent simply helps move you forward faster. The best part? They are available 24/7, so you can connect whenever it's convenient for you.
Acara Solutions is committed to ensuring equal employment opportunities for applicants and employees. We are committed to filling open positions using balanced selection criteria to avoid unlawful discrimination against applicants on the basis of their age, colour, disability, marital status, national origin, gender, gender identity, genetic information, race or racial origin, religion, sexual orientation, or any other status protected or required by law.
Acara Solutions welcomes and encourages applications from people with disabilities. Accommodations are available on request for candidates participating in all aspects of the selection process.