IGT
Location
Reno, NV | United States
Job description
The Firmware Engineer analyzes, designs, programs, debugs and modifies software.
• Design, implement, unit test and support Windows and/or Linux device drivers for a variety of legacy and cutting edge technologies
• Design, implement, unit test and support low-level firmware for a variety of embedded products; ie) 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 Windows and 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
Required Qualifications & Experience
• Expert in C, C++ programming languages
• Degree or Diploma in Computer Engineering, Computer Science, Electrical Engineering or related field
• Windows Kernel and/or Driver programming experience
• Experience with real time and multithreaded applications
• In-depth understanding of drivers, interrupt handling routines, and kernel subsystems
• Low level firmware programming experience targeting various microcontroller architectures (ARM, 8051, other)
• Ability to clearly capture complex technical concepts in writing for both technical and general audiences
• Strong analytical and problem solving skills
• Strong debugging skills
• More than 5 years of relevant professional experience
• Excellent written and verbal communication skills; proficiency in English
Preferred Qualifications & Experience
• Experience with Verilog and/or VHDL programming languages targeting programmable devices (FPGAs, CPLDs)
• Working knowledge of applied cryptography
• Experience applying principles of cyber security to operational technology and embedded systems (ex. Use of tools like WhiteSource or similar)
• Designing software systems running on multiple platform types
• Software systems testing methodology, including writing and execution of test plans, debugging, test scripts and tools
• Ability to effectively communicate product architectures, design proposals and negotiate options at management levels
• Building collaborative relationships
• Decision making
• Drive results
• Foster innovation
• Personal energy
• Self-leadership
#LI-AA1
#LI-Onsite
Job tags
Salary