Software (SW) / firmware (FW) design, development, unit testing, integration and system level testing
Work with project technical leads and project manager to understand requirements and translate requirements into technical specifications
Design, develop and test SW / FW modules for products
Responsible for integration of the SW modules with other SW module(s) developed by other project team members, as well as supporting and/or carrying out system level testing
Prepare SW / FW binaries necessary for manufacturing, if applicable
Write technical documentation, including user guides and/or manuals
Review SW design, source code (including test code) written by other members of the software team
Provide SW support for product qualification and/or certification activities when required
Adhere to the Engineering department's design, development and testing processes
Requirements
At least 3 years working experience in embedded software design, development and testing
Proficiency in bash scripting, C/C++ or Rust and Python
Experience with software design, development and testing on embedded Linux platforms
Knowledge of network protocols, network switching / routing, network segmentation
Experience with network programming
Familiarity with software life cycle development methodologies and secure coding principles
Excellent teamwork skills and able to collaborate in cross-functional team
Self-starter with strong problem-solving skills
Good written and verbal communication skills in English
Able to work on multiple projects simultaneously
Good to Have
Experience with embedded Linux OS customization, e.g. Yocto, Petalinux
Experience in Linux kernel driver development
Knowledge of DevOps platforms and CI/CD tools, e.g. GitLab, Docker