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.
Essential duties and 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.
Employment requirements
:
Education level
A Bachelor's Degree in computer science or related field
Experience level
5+ years proven embedded firmware engineering experience
Abilities and skills
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
Familiarity with AI/ML frameworks or hands-on experience with AI/ML within embedded environment will be an asset
Ability to read electronic schematics will be an asset
Ability to use basic electronic instruments (Scope, Multi-meter, etc.) will be an asset
Experience with the Ambarella platform will be an asset
Experience with the following best practices: TDD, pair programming, CI/CD practices will be an asset
Hands-on experience with CI pipeline organization for embedded project will be an asset
Hands-on experience with project organisation for hardware-in-the-loop test automation will be an asset
Other requirements
* Eligibility to work in Canada
Beware of fraud agents! do not pay money to get a job
MNCJobz.com will not be responsible for any payment made to a third-party. All Terms of Use are applicable.