Call for applications: Knurling-rs Summer of Code 2022 🦀

Published on 3 min read
Knurling icon
A tool set to develop embedded applications faster.
❤️ Sponsor

    Call for applications: Knurling-rs Summer of Code 2022 🦀

    The knurling-rs project will run the "Knurling-rs Summer of Code" for the first time. We aim to advance our mission to improve the embedded Rust experience and support newcomers to improve their skills and gain confidence with Rust, embedded programming and working in open-source projects.


    • You want to work on an (embedded) Rust, open-source project.
    • You have basic knowledge of Rust. You should be familiar with the topics of the Rust book until chapter 10.
    • You do not have to be enrolled as a student, but can be.
    • You will get compensated.
    • You are …
      1. … based in Germany and permitted to work here, OR
      2. … registered as a freelancer in your country of residence

    We are looking for one person to do a project with us over the summer. You will get support and mentoring from the knurling-rs team and get financially compensated. You can either apply for one of the suggested projects listed below or propose your own project. Get creative! You can propose anything as long as it has some connection to Rust and embedded.

    You don't need to already be an expert in the topic you want to work on. One goal of this effort is to help you learn! So please also apply even if you are unsure if you have the necessary skills.

    As a timeframe we suggest the ten weeks from July 18th until September 30th. Still, we are open to adapting this to you. Due to legal restrictions you either need to be based in Germany and are allowed to work here (this does not mean that you need to be a German citizen), or you register as a freelancer in your country of residence. If the program works well, we will try to broaden it and ease the legal hurdles next year to allow more people to apply.

    The program can be completely remote. But we invite you to work with us in the Ferrous Systems Office in Berlin, either for the whole program or just a couple of days.

    APPLY NOW! Application deadline: 07.07.2022 6pm CEST

    Best, the Knurling-rs Team

    Project list

    Please find a list of our suggestions below. Remember that you are very welcome to propose your own project!


    The project aims to be an abstraction layer across network stacks. This makes it possible to write a tiny web server once and then run it on many different embedded devices. For example, on the Nordic nRF9160 over LTE-M, on the ESP32 over Wi-Fi, or on a generic MCU using a WIZ5500 Ethernet module.

    Many things already work, but there are also many things left to do to get the project "production-ready". This includes implementing some of the proposed features, ramping up the documentation, improving the testing and CI system and some refactoring here and there. Additionally, you would test the project on a few different pieces of hardware.

    Choose this project to learn about network protocols and how to create a polished library that people love using.

    Find the repository here:

    benchmarking on embedded

    You will create a library that runs benchmarks directly on the microcontroller to get precise information about the performance of your code. Additionally, there should be a tool to analyse and visualise the results.

    If possible, this should integrate with the cargo bench command and the #[bench] attribute, but this is up for debate.

    Choose this project to learn more about benchmarking, performance and macros.

    See knurling-rs/defmt#555 for more details.

    knurling-session: async on embedded with embassy-rs

    Knurling Sessions are embedded projects that explore specific projects using generally available hardware and building complete systems and components using microcontrollers, sensors, and actuators.

    Your task is to create a session using asynchronous programming and the embassy-rs async-runtime and write instructions so other people can follow along.

    Choose this project to learn about async, working with hardware and creating teaching material.