Career Level Individual Contributor
Experience 5 Years
Embedded Linux/Unix Firmware and Kernel Development, Embedded Hardware
Your Responsibilities Will Be:
- To design and implement device drivers that enable our devices to effectively perform in the customer environment.
- To architect interfaces for communication with a custom hardware device and be cautious of security requirements and design decision implications.
- To make enhancements, modifications and corrections to existing device drivers.
- To participate in the design, development, testing and documentation of future device drivers.
- To write reusable, testable and efficient code.
- To collaborate to provide solutions to complex problems.
- To participate in the product development lifecycle, including the requirements gathering, design review, capacity planning and code review processes.
- Strong attention to detail and thoroughness; able to handle complex issues and undocumented processes
- Excellent communication skills, both written and verbal; documentation will be required
What You Will Get:
- The ability to transform the dining experience and the way in which restaurants accept payments; securing the transaction and protecting both the restaurant and the diner from potential credit card fraud.
- The ability to impact change and drive the business forward; we’re a small team and every voice is critical to our success as a company.
- A competitive compensation package.
Knowledge, Skills and Abilities
- Bachelor’s Degree in Computer Science, MIS and/or equivalent experience
- 5+ years of Embedded Linux/Unix Software Development
- Expert knowledge of C (C++ a plus for test and related applications).
- Expert knowledge of Linux which you have used recently and extensively in a professional position (Linux 2.6 and newer kernels).
- Experience developing and troubleshooting drivers on an embedded device (touchscreen, SPI, I2C, Bluetooth, wireless, battery, etc.).
- Experience cross-compiling Linux for ARM environments (GCC, CodeSourcery, Linaro toolchains).
- Experience creating and maintaining driver interfaces to user mode applications and middleware (i.e. character devices).
- Experience working with Broadcom or other ARMv6 microprocessors.
- Experience working with oscilloscopes, logic analyzers, protocol analyzers, DMMs, JTAG, and other hardware test equipment and methods.
- Experience reading schematics, data sheets, and other hardware and software specifications and standards.
- The ability to effectively utilize the following software tools: git, desktop Linux development environment, Jenkins and/or Yocto build environments (KVM or VM experience a plus).
- The ability to work in a fast-paced and Agile environment; flexibility and responsiveness is required.vv