Working as part of the Software team, you will be working on the development and implementation of high performance device drivers and applications across multiple platforms to enable host devices to communicate with hardware. It will be your responsibility to ensure that the drivers and any applications are of high quality and ready for certification by the applicable OS vendor (Microsoft, Apple, etc.) and integration by customers. You will also assist in system level integration and the development of supporting tools, applications and test harnesses and systems.
As a Senior Software Engineer, you will:
- Deliver, maintain and verify device drivers. Communicate developed designs/code to team lead and team members orally and through written communication.
- Excellent code design and creation capabilities and corresponding documentation skills.
- Work with firmware engineers for the definition and implementation of communication between device and driver.
- Take a technical lead working with other software engineers for the definition and implementation of services towards user-space applications.
- Work with test engineers to create verification test harnesses and systems for the verification of ASICs, Modules and system level solutions
Required Skills and Experience:
- Expert knowledge of C and C++
- Knowledge of windows device drivers and networking framework
- Knowledge of Linux kernel architecture, module development and kernel customization
- Excellent knowledge of USB protocol, PCI protocol, I2C and RS-232 interface
- Excellent knowledge of Logic Analyzer use and hardware/firmware debugging
For a full confidential brief, please email your CV and let us know when you are free to talk. We can call after core working hours if more convenient.