Our client is seeking a senior engineer to join their existing software team: Job Purpose: To develop and maintain drivers for Windows and other platforms for CSR's range of Wireless LAN devices (IEEE 802.11). Maintenance and development of other non-802.11 based drivers, particularly USB and SDIO interfaces.
Key Responsibilities: * Responsible for the development of drivers. * Interpreting and implementing functionality from and beyond the IEEE 802.11 / Wi-Fi Alliance standards through to delivery, maintenance and documentation. * Coding in 'C'. * Maintaining current and new software * Original thought for solving complex problems in a tightly constrained embedded environment * Key responsibility for Windows, Windows CE 802.11 drivers and cross platform USB drivers. * Occasionally assembler within a resource constrained multi-processor environment.
Person Specification: Required Skills: * Extensive software development experience * Proven ability in debugging embedded real time software * Extensive experience of development in 'C' in kernel environments * Must have the ability to work in and contribute in a technical environment * Must have the ability to take ownership of projects with minimum supervision * Must have used Software Configuration Management Systems such as Perforce or CVS as part of daily work. * Hands on experience developing network drivers in either Windows or Linux * Strong technical background with recent hands-on experience in the development of drivers * Show an awareness of the software development process for writing software destined for high volume consumer applications
Desired Skills: * Previous use of Perl, Python or similar scripting languages * Previous involvement in board bring up and Board Support Package development * Previous development work involving wireless communication protocols such as Bluetooth, UWB or Wireless LAN. * Previous development work with other communication protocols such as networking protocols, USB. * Hands on experience debugging hardware and/or hardware/software interaction
* Some experience of embedded Operating System internals, including message passing, boot-strapping, debugging techniques, instrumentation and diagnosis
* Have previously implemented QoS in network drivers. * Ability to understand assembler and disassembly dumps. * Ability to communicate at all levels desirable