Job Description
Our leading network client is looking for a Firmware Engineer to join their team. This role is a contract role with 6 months to start with high chance for extension up to a year. The role will operate on site at the Kanata office with possibility for hybrid work.
As a Firmware Engineer, you will play a critical role in the lifecycle of embedded systems. This position involves designing, developing, and maintaining firmware that supports high-availability mission-critical devices. You will work with a significant installed base of technology and ensure seamless functionality in a robust, fast-paced environment.
Responsibilities:
- Develop, test, and maintain embedded firmware for proprietary products, ensuring high performance and reliability.
- Collaborate with cross-functional teams to define tasks based on software design requirements and deliver solutions within program schedule guidelines.
- Design, implement, and execute comprehensive test plans to validate firmware functionality and performance.
- Maintain and enhance in-house development and debugging tools, ensuring efficient workflow and problem resolution.
- Implement innovative low-power algorithms to optimize device performance and energy efficiency.
- Troubleshoot and resolve firmware issues, using advanced debugging tools and techniques.
- Stay current with industry trends and advancements in firmware development, applying this knowledge to improve our products.
Qualifications:
- Bachelor’s or Master’s degree in Electrical Engineering, Computer Science, or a related field.
- A minimum of 3 years of experience in embedded software development.
- Proven expertise in C programming language; proficiency in Python is highly desirable.
- Solid understanding of Real-Time Operating Systems (RTOS) and experience with ARM/INTEL-based microcontrollers.
- In-depth knowledge of communication protocols such as TCP/IP, UART/RS232, RS485, I2C, SPI, BLE.
- Hands-on experience with reading hardware schematics and debugging using oscilloscopes and logic analyzers.
- Familiarity with version control systems such as Git or SVN.
- Strong analytical skills, meticulous attention to detail, and a commitment to delivering high-quality work.
- Excellent communication skills and the ability to collaborate effectively with diverse teams.
- Self-motivated, hardworking, and capable of managing multiple priorities in a fast-paced environment.
Nice to haves:
- Experience with low power algorithm design and implementation.
- Prior experience in developing scalable, extensible, and maintainable cross-platform and cross-product interfaces and standards.
- Understanding of the unique challenges in high-availability mission-critical embedded systems.