5 years’ experience in the same role
Required skills:
- Kernel and Application space level development
- Customized Linux Environment Build Setup & Maintenance (SDK, toolchain, makefiles, compiler) across various CPU architectures (Intel, AMD, etc).
- C/C++ and Python programming
- Linux Operating Systems. Common/Open-Source Linux distributions (ubuntu, Debian, OpenWRT)
- Device Drivers
- Knowledge of embedded communication protocols (I2C, Uart, SPI…).
- Common Communication Protocols and Standards: CANOpen, Modbus, RS232, RS485.
- Data Encryption
- Management of software tasks (launching programs, scheduling) as well as hardware management (memory, processors, peripherals)
- Basic Hardware knowledges and ability to read a schematic
- Basic knowledges of CI/CD
- Knowledges on Internet-of-Things (IOT)
- Docker, containerization for Client apps
Nice to have:
- Security Protocols (MQTT, https)
Required Technical Personal skills
- Understanding of design patterns and embedded system design patterns
- Debugging skills
- Understanding of data structures
- Deep knowledges on programming and software tools for developing, debugging, code versioning gitlab/github)
- Capacity of reading/writing documentation (Design spec, Test Cases, Release reporting, Minute reports, Presentations)
Education
- Master’s Degree in Computer Engineering/Science
Appreciated personal skills
- Troubleshooting
- Problem-solving
- Finding new solutions
- Proactive participation and information sharing
- Creativity
- Coding standardization
- Code reviews
- Basic of project managements, daily activity tracking