Job TITLE : Embedded Software Developer
Location : Campbell CA
Term : Contract
Skills :
The Senior Embedded Engineer will be responsible for embedded development on Linux-based systems, including board bring-up, power-on and run-time diagnostics, drivers, and user-land applications.
Responsibilities :
- Take responsibility for multiple areas of a product, from low-level (drivers, diagnostics, board bring-up) to embedded applications including networking, "business logic," and configuration.
- Design and implement device drivers and applications for embedded products based on the Linux OS, with peripherals interfaced via USB, serial, SPI, and I2C.
- Work side by side with hardware engineers to bring up new boards and systems, debug potential hardware issues, evaluate hardware architectures, board schematics / layout, and third-party chipsets from the software perspective.
Requirements :
Demonstrated ability and willingness to make critical system-level design decisions and drive projects from start to finish with minimal supervision.Ability to quickly get hands-on with new projects and handle uncertainties of new product development.Proven experience performing all low-level software development for custom Linux-based boards, including boot loader, U-Boot, kernel, drivers, and applications.7+ years of experience in developing embedded systems with strong C programming and scripting skills.Experience with board bring-up, Linux kernel, driver, application development, and debugging crash dumps.Proficiency with GCC toolchain, Make, Buildroot, SVN / Git, Bash.Experience with Serial interfaces & protocols : RS-232, I2C, SPI, PPP, and wireless interfaces such as WiFi, Bluetooth, NFC, Zigbee.Familiarity with network programming using sockets or higher-level abstractions and file systems like UBIFS, JFFS2.Excellent communication skills and a positive attitude towards team collaboration.Experience & Education :
Bachelor's degree (Master's preferred) in Electrical Engineering, Computer Science, or equivalent.J-18808-Ljbffr