Develop an app store for the Internet of Things
Embedded Software Developer€45k – €65k
The RAPstore project aims at building an app store for the Internet of Things around the open-source operating system RIOT. Before doing so several pieces must be functioning such as the testing infrastructure, improved build system, incorporating external packaging, over-the-air updates, and simplifying programming for users. A large part of this project is supporting and developing in RIOT OS. This is a 3-year project currently ending in December 2020 with strong plans to continue for an additional two years.
Prospective candidates will work in Berlin at Freie Universitaet (FU Berlin) in close collaboration with project partners in Hamburg at Hochschule für Angewandte Wissenschaften (HAW Hamburg). We will organize travel arrangements when needed.
As this is an open-source and engineering-driven project, you will have the autonomy to design and create an optimum product based on values of freedom and usefulness, rather than making decisions based on commercial constraints. The environment is one in which you will be free to explore, research, and build a solution you are proud of.
Other benefits of working in this environment are:
- Knowledgeable co-workers researching cutting edge IoT methods
- University tools available such as measurement devices, workshops, hardware
- Networking and conference opportunities such open-source events, Internet standardization
- Possibility of publishing papers
- Improve coding skills by working in a large community and receiving valuable feedback
- Build a profile of open source work to attract future opportunities
- Flexible hours
The project will involve complete specification, design, development, and deployment of a solution across server and firmware. This solution will allow the configuration of the RIOT operating system (https://riot-os.org) by users; its build, including modules, features, and applications; and subsequently, its deployment to devices.
Candidates will be part of the lively, international RIOT community. RIOT (https://github.com/RIOT-OS/RIOT) is a friendly operating system for the Internet of Things. If you cannot run Linux on your device due to constrained hardware, use RIOT! Over the last five years, RIOT has emerged as one of the agile and state of the art operating systems for the IoT. The RIOT community consists of companies, academia, and hobbyists, distributed all around the world. We support open source outreach events, standards development, and participation in IoT interoperability tests.
FIELDS OF WORK
Though candidates have the potential of defining their field of interest to fulfill the project requirements, some fields have already been identified:
An aspect of the project is to improve the overall testing capabilities within RIOT. This involves designing and deploying tools to assist with the writing and running of tests. Currently, there is an effort to provide Hardware-In-the-Loop Continuous Integration for RIOT. This involves many things such as:
- hardware design
- server deployment and management
- testing interface design
- test logging and visualization.
We aim for improving the overall configuration of RIOT. There are two main aspects of it:
RIOT is a multi-platform operating system, and as such it has to deal with multiple types of hardware and ways of configuring them. Currently, there is an effort to improve the current state of RIOT configuration at compile-time, making it more flexible, versatile and powerful, as well as improving documentation, description of hardware capabilities and increasing usability.
Most IoT applications need to expose configurable aspects of it after being deployed to make them flexible and adaptable to new conditions. The objective is to design a generic system that allows this type of configurations during runtime, through the available interfaces of the node and making use of standard configuration mechanisms.
Networking is central to an IoT OS. Efforts are being made to optimize the abstractions of networking layers for versatility, power consumption, and speed.
We are looking for three team members that are either experienced in embedded software or systems development. We will fill the position based on the expertise of the applicants.
You will either be a technical expert who can bring considerable expertise to the team in your own area or join ongoing efforts. You should be familiar with a wide range of current design patterns and best practices, and to take ownership of the area of the system in which you specialize. You will have the space to create technical solutions and will be able to take the initiative to identify and undertake tasks you feel are useful for the project.
To this end, you will have the following personal attributes:
- A high level of self-motivation to code and make cool high-quality software solutions.
- Great communication skills, with an ability to work with a team and a distributed community to gather requirements, specifications, and support for your solutions.
- A highly inquisitive nature, with an ability to think outside the box and identify previously unforeseen areas of improvement.
- An insatiable learner, with a drive to keep up-to-date with technology, lead your own research, and include cutting-edge and emerging technologies where appropriate.
QUALIFICATIONS, EXPERIENCE, AND SKILLS
- Master’s degree / Bachelor's Degree (with work experience) in Computer Science or a related field
- Knowledge of concurrent programming and RTOS concepts
- Proficiency in C in a constrained embedded environment
- A high level of dedication to code quality and ability to adhere to coding guidelines
- Comfortable with finding and removing bugs, including using methods such as serial printing, step-through debugging, or logic analyzers, as appropriate
- Knowledge of a versioning system such as Git
- Knowledge of Internet protocols
- An awesome GitHub profile
- Experience developing on Linux
- Familiarity with toolchains and compilers (gcc, make, etc)
To apply, please send a cover letter, CV, and link to your GitHub profile if you have one to the following contact: Matthias Wählisch - email@example.com.
This is an English speaking environment, however, courses are also offered to learn both English and German.