The worldwide pioneer in the creation of interactive entertainment, Nintendo Co., Ltd., of Kyoto, Japan, manufactures and markets hardware and software for its Nintendo Switch™ system and the Nintendo 3DS™ family of portable systems. Since 1983, when it launched the Nintendo Entertainment System™, Nintendo has sold billions of video games and hundreds of millions of hardware units globally, including Nintendo Switch and the Nintendo 3DS family of systems, as well as the Game Boy™, Game Boy Advance, Nintendo DS™ family of systems, Super NES™, Nintendo 64™, Nintendo GameCube™, Wii™, and Wii U™ systems. It has also created industry icons that have become well-known, household names, such as Mario, Donkey Kong, Metroid, Zelda and Pokémon. A wholly owned subsidiary, Nintendo Technology Development, based in Redmond, Washington, creates future hardware/software technology and researches North American-based technologies. Nintendo is an equal opportunity employer. We offer a welcoming and inclusive environment in service to one another, our products, the diverse consumers we represent, and the communities we call home. We do all of this with kindness, empathy and respect for each other.


  • Design and develop device drivers for current and future gaming consoles

  • Implement robust embedded software using modern C++ constructs

  • Drive architecture definition and create associated documentation

  • Lead development activities on major software subsystems, providing hands-on assistance to junior team members


  • 7+ years’ experience developing device drivers for complex SOCs, and have a fundamental understanding of power and clock tree initialization

  • 7+ years’ experience developing multithreaded software

  • Hands-on experience with USB technologies

  • Proficient with fundamental computer science data structures and algorithms

  • 3+ years’ professional experience developing C++ software

  • Hands-on experience with lower-level device driver topics such as DMA, memory hierarchy, cache coherency, use of memory barrier instructions

  • Ability to use a logic analyzer or oscilloscope for debug and validation

  • Degree in Computer Engineering, Computer Science or Electrical Engineering


  • MS degree

  • Experience using real time operating systems (RTOS)

  • Experience developing USB software stacks

* This is not a remote opportunity and you will be required to work onsite in Redmond, WA