Senior Embedded Firmware Engineer

Job description

iENSO is seeking a skilled and enthusiastic Senior Embedded Firmware Engineer to join our team!

About iENSO

iENSO makes Embedded Vision and Edge AI platforms for companies that need to include AI, image processing, and data connectivity capabilities in intelligent IoT Products that can output actionable data so that humankind can make better decisions and be more efficient. Our global network of expertise is in vision, design, development, and manufacture of optimized and scalable embedded vision systems for home automation, robotics, precision farming & agriculture, remote security, and medical equipment.

By delivering scalable platforms that include both hardware and software, we have created an ecosystem that is enabling some of the world’s leading brands to easily implement Vision and AI in their applications.

Scope of position:

  • Salaried, Full-Time (40 hours per week)
  • Hybrid Work System: 20 Mural Street, Unit &, Richmond Hill, Ontario + Work From Home
  • Date posted: January 4, 2022
  • Application deadline: February 4, 2022

Reporting to the Software Manager, the Senior Embedded Firmware Engineer will be responsible for developing unique software systems that are utilized in custom digital cameras and modules, integrating functions and features often not found in traditional cameras.

Job requirements

Essential duties & responsibilities

  • Keep abreast of relevant technology while working in a fast-paced environment and keeping up to date on changing programming and technology trends;
  • Design firmware for embedded devices and systems;
  • Work with code and drivers to enhance and build new systems and products including digital cameras, embedded video systems, wireless modules such as Wi-Fi or Bluetooth, cellular modules, high-speed communication buses, general-purpose controllers with graphical LCD, etc.;
  • Work within a team environment with other software development engineers on tasks in real-time embedded communication and control environments;
  • Contribute to the design of next-generation imaging technologies, systems, and subcomponents;
  • Using software design techniques and procedures complete a sequence of related engineering tasks, such as investigating and debugging, designing, developing, and testing in accordance with company guidelines;
  • Apply complex technical and analytical skills to existing software to make enhancements and add new features;
  • Participate in the review of documents, designs, code, and test cases of software;
  • Collaborate with hardware engineers on a schematic review to ensure software resources are aligned with the hardware;
  • Perform functional testing of developed software to ensure correct operation and compatibility;
  • Guide and coach fellow software engineers on the skills and behaviours they need to learn or the challenges they must tackle;
  • Participate in the development and maintenance of relationships with prospective and existent customers and vendors.

Our ideal candidate would have:

  • Bachelor’s degree in computer science or related field
  • 5+ years proven embedded firmware engineering experience
  • Solid Jira/Confluence and Git experience
  • Proven low level Linux Kernel and embedded Linux distribution tools skills (Yocto, Buildroot, OpenWRT)
  • Strong skills with Boot-loader development, U-Boot
  • Strong embedded programming skills (C/C++ (C++17), Python and Shell scripting)
  • Experience with image and video processing methods and with camera ISP coding (V4L2, GStreamer, OpenCV)
  • Experience with Agile development methodology
  • Strong written and verbal communication skills
  • Strong problem solving and debugging skills
  • Ability to think fundamentally
  • Ability to understand, follow and participate in a design of software architecture policies
  • Understanding and experience working with object-oriented analysis and design
  • Eligibility to work in Canada

Nice to have skills and abilities:

  • Familiarity with AI/ML frameworks or hands-on experience with AI/ML within embedded environment
  • Ability to read electronic schematics
  • Ability to use basic electronic instruments (Scope, Multi-meter, etc.)
  • Experience with the Ambarella platform
  • Experience with the following best practices: TDD, pair programming, CI/CD practices
  • Hands-on experience with CI pipeline organization for embedded project
  • Hands-on experience with project organization for hardware-in-the-loop test automation

In Accordance with the Accessibility for Ontarians with Disabilities Act (AODA), iENSO strives to ensure that all recruiting processes are non-discriminatory. If you require accommodation, please advise HR in advance of attending the interview.

Only candidates selected for an interview will be contacted. All other applicants are thanked for their interest.