Software engineer, who is responsible for the product development with quality and by following the engineering practices. The candidate should be a team player who should be able to code, do the peer code review, defect fixes wherever needed on the existing product and also takes the responsibility in porting the existing product to a new platform.
- Uses Agile Scrum Methodology for software development.
- Develops unit tests for all new code
- Has all code changes peer reviewed, and must peer review code when required
- Provides input for documentation of new or existing programs
- Ability to refine requirements and solve problems
- Developing and improving solutions(including bug fixes) to problem
- Performs technical research, monitors current trends and changes in technology
- Demonstrates industry knowledge to assist in new product development
- Bachelor’s or Master’s degree in Computer science/Electronics (or equivalent).
- 2 or more years of practical experience in Linux Kernel
- Knowledge on Embedded Linux Kernel Internals, Realtime Linux & Device Drivers
- Good Understanding on ARM 32/64 Architectures
- Knowledge of Kernel Internals and experience in Kernel Driver Development.
- Understanding of I2C, SPI, UART, IPC, Ethernet Protocols.
- Required: C, Device Drivers, System programming.
- Desirable: Scripting, Yocto, perl, Phyton
- Required: Linux, QNX,
- Desirable: Andriod
- Kernel Internals, Peripherals drivers, Driver Optimization.
- Device Tree,Kernel configurations.
- Domian Skills (Nice to Have)
- Knowledge of various Display Interfaces (LCD, LVDS, HDMI etc) and drivers
- Good Understanding of any Filesytems/Storage devices eMMC/UFS/NAND.
- Understanding of RT Linux.
- Knowledge on Kernel Profiling Tools.
- Customization of yocto builds for various architectures
- Perforce, GIT, Gerrit, HW debugging using Analysers and HW debuggers.
- Experience with cross compiller tool chain and build IDEs