You design and develop software for 32 and 64-bit processor platforms.
Responsibilities
Design and develop software for bare metal, RTOS, Linux, Android, and QNX platforms.
Develop device drivers for USB, Video, Audio, Ethernet, CAN, NAND flash, NOR flash, DDR, SDRAM, HDMI, PCI Express, SPI, and I2C.
Develop software solutions for wireless technologies including 802.11, Wi-Fi, Bluetooth, GPS, and cellular technologies.
Handle all aspects of product design: requirements documentation, system architecture, design for manufacturing, design for test, and design verification.
Required Skills
10+ years developing software for embedded processor platforms.
Experience with embedded systems and microprocessor-based (MPU) design.
Thorough technical knowledge of application software methodologies, including OOA/OOD and Design Patterns.
Understanding of CPU functions such as L1/L2 cache, MMU, power states, bus arbiters & multiplexers, interrupts, and DMA.
Understanding of coding for embedded peripherals including Ethernet, USB, I2C, CAN, Flash, and SPI.
Experience with Linux, Android, and RTOSs at the application, device-driver, and board support package level.
Familiarity with ARM, PowerPC, MSP430, and x86 processor cores.