Job Summary
Our partner is the world’s leading Neurotechnology startup built on more than a decade of pioneering research at the intersection of virtual reality and neuroscience. Their breakthrough platform combines virtual & augmented reality, neuroscience and AI to build intuitive human machine interfaces. Their first products help patients suffering from severe disabilities following a neurological incident. Join their eclectic mix of scientists, physicists, engineers and clinicians to help change the world!
As a system programmer, you will integrate a team dedicated to the software architecture of the complete software stack used in our products.
In particular, you will:
- Participate in the design of the system architecture of embedded software used in products;
- Provide expertise to engineering teams regarding system architecture and optimization;
- Develop and implement the low level code infrastructure to support the work of engineering teams;
- Develop and debug driver code to interact with third-party or new acquisition hardware;
- Write comprehensive design documentation.
To be successful, you can illustrate the fact that you have the following abilities:
- Ability to reason and spot corner cases by reading source code;
- Working autonomously: setting tasks and direction under limited supervision;
- Oral and written communication: ability to write clearly and succinctly in a variety of communication settings and styles; ability to get messages across that have the desired effect;
- Problem solving: Using rigorous logic and methods to solve difficult problems with effective solutions; having an excellent at honest analysis; looking beyond the obvious and not stop at the first answers;
- Planning accurately: setting objectives and goals; breaking down work into the process steps; developing schedules and task/people assignments; anticipating and adjusting to problems and roadblocks.
Qualifications
- Initial experience in system programming;
- Ability to design efficient and maintainable API/ABI of shared libraries
- Mastering C programming;
- Knowledge of POSIX API relative to interprocess synchronization (socket, memory shared...);
- Multithreaded programming
- At ease with development on Linux platforms;
- Minimum C1 level of English;
Icing on the cake:
- Demonstrable interest for development outside the working environment (e.g. Personal projects, blogger, Open Source, papers, Stack Overflow, GitHub, etc.);
- Good knowledge of C++.
- General understanding of how modern common CPU architectures work and interact with memory and peripherals
- Knowledge of Windows environments;
- Experience with programming USB devices;
- Experience with programming Bluetooth devices;