Firmware/embedded software engineers design, develop, test and debug embedded application software and/or firmware that will drive controls and control systems for company products.
Solves complex and high impact design and development problems including customer application issues of varying scope and complexity.
Uses product and customer applications knowledge to determine, define, develop and validate design concepts and methods.
Solves complex, high impact design/ development problems.
Reduces broad concepts, business strategies into structured projects that span more than one product or technology family.
Deliver high-quality, well-designed firmware for real-time embedded products as a member of an Agile development team.
Debug issues and produce high-quality code to fix them.
Maintain and support products post ship.
Monitors industry trends for technological evolutions and leverages appropriate technology.
Qualifications
Bachelors or Masters equivalent in Electrical Engineering, Software Engineering or Computer Science with typically 8+ years of experience in related industry.
Demonstrable fluency in, but not limited to, C, C++, Python
Passion and experience in software design and development in embedded systems using real-time OS such as VxWorks, uCOS, and embedded Linux.
Computer architecture knowledge of x86, ARM.
Knowledge in reading datasheets and schematics.
Experience in board bring-up and validation.
Experience with standard bus interfaces (I2C, PCIe, SPI, UART etc).
Experience in USB and LAN protocols.
Experience in low level driver development
Experience in development using latest Web technologies.
Results-oriented, with a personal drive to meet commitments.
Pro-active team member and good interpersonal skills.
Strong verbal & written communication skills in English.
The following skillset would be an advantage:
Ability to learn and understand Assembly Language
Proficiency in embedded Yocto Linux
Familiarity in Qt/QML development for GUI
Knowledge in AI/ML algorithms and technologies
Understanding of build systems and toolchains, including for cross-compilation