Embedded Software Engineer (4-8)
Embedded Software Engineer
Job Locations :
Software development on complex embedded systems
- Hands on experience in developing low level software for microcontroller based environments with ARM processors or similar.
- Knowledge of DSP concepts.
- Experience in all aspects of designing and developing SW in C/C++ language for embedded platforms.
- Advanced level knowledge of modern microprocessor architecture – MMU, Caches, Exceptions, interrupts, instruction sets etc.
- Experience in working with multiple common h/w interfaces like USB, Ethernet, PCIe, DDR controller, DMAC etc.
- Device driver or stack development in at least one major Operating system for at least one complex interface.
- Experience in SW protocol stacks like USB, TCP/IP, File system etc.
- Experience in Board Bring up, Device drivers, Firmware, Boot Loaders, Tool chains & Build systems.
- Understand project requirements, customer use cases & specifications for features and convert them to standout software.
- Initiate and drive Test strategies and Test plan design for software.
Preferred Exposure in
- Experience in Labview / Matlab
- Experience in scripting PERL/TCL/Python
- Experience in Networking/Energy/Medical/Security/Auto/Video domain
- Experience in Android.
- Experience in writing device drivers in Linux, Boot loader development and porting/migration.
- Excellent analytical skills for troubleshooting and issue resolution.
- Familiarity with Linux Internals.
- Multimedia drivers (camera/display/video). Experience in Video Decoder/ Encoder/HDMI drivers is highly desirable.
- Excellent debugging skills. Well versed in using tools like gdb, kgdb & profilers.
- Self-motivator and an excellent team player.
- Possess outstanding written and verbal communication skills. Ability to communicate design rationale and build consensus with the team.
- Prior experience of designing Test plans for features from scratch.
- Bachelors or Masters Degree in Computer Science or Electronics / Electrical Engineering