IGT is seeking a Senior Embedded Software Engineer to take responsibility for designing, implementing, and supporting Linux device drivers and low-level firmware for our embedded products. You will collaborate directly with hardware teams and participate in the full design lifecycle.
What You'll Do
- Design, implement, unit test and support Linux device drivers for a variety of legacy and new technologies.
- Design, implement, unit test and support low-level firmware for a variety of embedded products, including microcontrollers.
- Modify key kernel subsystems to facilitate novel hardware capabilities.
- Collaborate with the hardware engineering team on new embedded product designs.
- Install, boot and test Linux on new hardware.
- Support customers’ field issues as required.
- Participate in all aspects of the product design life cycle including system architecture, design, development, and verification.
- Document design and results.
- Work individually and with a team to complete tasks.
What We're Looking For
- A degree or diploma in Computer Engineering, Computer Science, Electrical Engineering or a related field.
- More than 8 years of relevant professional experience.
- Expert knowledge of the C and C++ programming languages.
- Linux Kernel and Driver programming experience.
- Experience with real time and multithreaded applications.
- Low-level firmware programming experience targeting microcontroller architectures such as ARM or 8051.
- Experience with board-level debugging using tools like logic analyzers, oscilloscopes, and protocol capture tools.
- Ability to clearly capture complex technical concepts in writing for both technical and general audiences.
- Proven analytical and problem-solving skills.
- Excellent written and verbal communication skills; proficiency in English.
- In-depth understanding of drivers, interrupt handling routines, and kernel subsystems.
Nice to Have
- Working knowledge of applied cryptography.
- Experience applying principles of cyber security to operational technology and embedded systems.
- Experience designing software systems running on multiple platform types.
- Experience with software systems testing methodology, including writing and execution of test plans, debugging, and test scripts and tools.
- Ability to effectively communicate product architectures, design proposals and negotiate options at management levels.
Technical Stack
- C
- C++
- Linux Kernel
- ARM
- 8051
Work Mode
This role is designated as onsite.



