Skill: 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.
• Take responsibility for multiple areas of a product, from low-level (drivers, diags, board bring up) to embedded applications including networking, "business logic" and configuration.
• Design and implement device drivers and applications for embedded product 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.
• Demonstrated ability and willingness to make critical system-level design decisions and drive projects from start to finish with minimal supervision
• Demonstrated ability to dive into a project and deal with the uncertainties of new product development, and get hands-on quickly
• Proven ability to perform all low level SW development for custom boards running Linux, including boot loader, U-Boot, kernel, drivers, and applications
• 7+ years of experience in developing embedded systems with excellent C programming and scripting languages skills
• Experience with board bring up, Linux kernel, driver, application development and in debugging crash dumps
• Fluency with the 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 such UBIFS, JFFS2
• Excellent communication skills, and willingness to participate with positive attitude in a team environment
Education: • Bachelor’s degree (Masters preferred) in Electrical Engineering/Computer Science or equivalent