You will 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, I2C, and other devices.
Develop software solutions for wireless technologies including 802.11, Wi-Fi, Bluetooth, GPS, and cellular technologies.
Manage all aspects of product design: requirements documentation, system architecture, design for manufacturing, design for test, and design verification.
Required Skills
10+ years of experience developing software for embedded processor platforms.
Experience with embedded systems and microprocessor-based (MPU) design.
Thorough 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.
Coding knowledge for embedded peripherals including Ethernet, USB, I2C, CAN, Flash, and SPI.
Experience using Spectrum analyzers, Oscilloscopes, and JTAG debuggers.
Experience with ARM, PowerPC, MSP430, PIC 32, and x86 processor cores.
Proficiency with Embedded Linux, Android, and RTOSs at the application, device-driver, and board support package levels.