Summary: Our client is looking for a Senior Software Engineer to join their engineering team and help own and extend core components of our platform. You will work closely within a cross functional team to enable the consumer platform that will allow for the next level of presence within immersive computing. You must be passionate about disruptive technologies, breaking boundaries, making science fiction real, and willing to be part of the next breakthrough in human communication. Responsibilities:
Develop and productize the native control subsystem which integrates our Android OS based hardware into popular 3D engines such as Unity
Extend or customize the Android OS (and Linux) based on prioritized use cases and requirements
Create custom unbranded distributions and add extra enhancements when necessary.
Customization and integration of the Android OS on hardware. Demonstrated development of services leveraging the Android NDK to bridge native code and device drivers with Java APIs
Demonstrated experience with Linux for ARM based systems - understand how to customize and enhance the kernel (build/configure the kernel & drivers, tuning power management, performance, etc.)
Be conversant with Java and Linux
Prior experience having developed and deployed high-performance native code (C/C) for consumer hardware devices
Prior experience with mathematics libraries and understanding how to develop and partition code modules for efficiency
Be a self-starter, driven and demonstrated ability to work in a small team environment
Excellent communication skills, including the ability to communicate with non-technical users
Understanding of Python (initial project will be a migration to Android & C/C, so helpful but not required)
Experience with FPGAs and interfacing of these components with hardware and software
Experience developing device drivers (and related – code signing, packaging)
Experience with communications (networking) and real-time data acquisition within the context of native applications
Experience with WiFi/Bluetooth, UDP/TCP, SPI/I2C technologies. You do not need hands on experience but you should be conversant in order to troubleshoot if necessary.
Experience with Kotlin is preferred but not required.