Working as part of the Software team, you will be working on the development of both embedded and end-user applications and firmware for pureLiFi’s hardware systems. It will be your responsibility to ensure that the firmware and any applications are of high quality and ready for integration by customers. You will also assist in system level configuration, integration and the development of supporting tools, applications and test harnesses and systems.
The core responsibilities are:
• Design, develop, maintain and verify LiFi communication software applications. Communicate developed designs/code to team members orally and through written communication.
• Port, integrate, customise and configure third party device drivers and packages that constitute the LiFi system software.
• Configure and build bootloader, kernel, and rootfs to support customised embedded hardware platforms.
• Configure the wireless and networking subsystems/protocols to deliver maximum performance and functionality required.
• Excellent code design and creation capabilities and corresponding Software Development Life-Cycle (SDLC) documentation skills.
• Work with firmware engineers (internal and external) for the definition and implementation of communication between device and driver.
• Work with engineering team to define and implement services towards user-space applications.
• Work with test engineers to create verification test harnesses and systems for the verification of modules and system level solutions.
• Bachelors/Masters in a relevant engineering discipline such as computing science or electronics engineering or relevant experience.
• Expert knowledge of C/C++ and scripting languages such as BASH/Python/perl.
• Knowledge of Linux kernel architecture, module development and kernel customization.
• Expert knowledge of embedded Linux-based operating systems and network configuration.
• Excellent knowledge of OpenWRT or similar router operating system configuration.
• Excellent knowledge of 802.11 protocol stack and hostapd/wpa supplicant framework configuration.
• Experience with using source control and versioning tools (e.g., SVN) on a day-to-day basis.
• Knowledge of Test Harnesses and Systems.
• Good understanding of digital hardware and architecture (discrete logic, FPGA, ASIC).
• Experience of peer code-review to ensure high quality of software design.
• Proven team-player with the demonstrable ability to work autonomously.
• Knowledge of MacOS kernel extensions development.
• Knowledge of Windows device drivers and networking framework.
• Knowledge of developing drivers for Android devices and for iOS devices.
• Understanding of visible light communications, LiFi technologies
• Experience of AGILE software development practices.