Firmware Developer
IGT
- Moncton, NB
- Permanent
- Full-time
- 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 critical 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.
- Expert in C, and C++ programming languages
- Degree or Diploma in Computer Engineering, Computer Science, Electrical Engineering or a related field
- Windows Kernel and/or Driver programming experience
- Linux Kernel 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
- Excellent written and verbal communication skills; proficiency in English
- 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