Introducing

Rust on Ockam

Ockam is a suite of open source tools that makes it easy to build devices that communicate securely with cloud services and other devices.

Ockam's architecture is tuned to meet the complex needs of an IoT system. The Ockam SDK allows a developer to build a trust architecture into applications and embedded software.

Why Open Source?

Ockam provides a common set of functionalities that almost any IoT implementation that will need to contend with. These include:

  • orchestration of end-to-end encryption
  • mutual authentication
  • key management
  • credential management
  • authorization policy enforcement

It is important that IoT network owners manage these with source available software components. Ockam is open source to allow for the community, the users and customers, to review and contribute to the code base, building an ecosystem of trust.

What will you learn?

This is a 4 session - once-a-week - training program that is intended for advanced beginners or intermediate level software engineers who are familiar with the Rust programming language.

The curriculum is designed to help participants level up their Rust skills on a real world, non-trivial open source code base - Ockam.

The training will be conducted by a trainer who is an expert in the Rust programming language and who has preferably contributed to the Ockam code base.

By the end of the program, you would have gained a deeper understanding of the Rust programming language and the Ockam code base and demonstrate real world skills by making pull request contributions to the project. You will also have a better understanding of the Ockam architecture and how it can be used to build secure IoT systems.

What is the format for each Session?

Each session will be 1.5 hours long and will be conducted online through a pair/group programming format, using a dedicated pair programmming tool, Tuple.

Session 1: The Basics and Introduction to Ockam

In the first session, participants will learn the fundamentals of open source contribution workflow. This is well covered by existing materials by github, such as

However, not everyone has the time to understand the more detailed parts of the workflow, such as preparing to sign commits, squashing commits, rebasing, and figure out the diverse practices used by different open source projects.

However, we realise that most people learn best by doing, so we will use the first session to walk through the process of making a pull request to the Ockam code base.

More importantly, specific to Ockam, participants should have a basic understanding of Ockam's software architecture so that they can be effective in contributing to the code base.

The first session should end with participants reviewing a list of good first issue on Ockam's github repository.

Session 2 and 3: Identifiying Issues, Technical Communication and making Pull Requests

In the second and third sessions, participants will be expected to have identified issues that they would like to work on and have made a pull request to the Ockam code base. Participants will be mentored on how to communicate effectively with the Ockam community and the project maintainers and how to make pull requests that are likely to be accepted.

The practical aspect of communicating well, discussing implementation possibilities and making pull requests will be done through pair programming sessions with the trainer.

Session 4: Review and Wrap Up

In the final session, participants will be expected to have made at least one pull request that has been accepted by the Ockam community. Participants will be expected to share their experience with the rest of the class and to discuss the challenges they faced and how they overcame them.

The trainer will take the opportunity to review the important skills - both software skills and hard technical skills - that each student has acquired through this practical training program.

As the program mentor, the trainer will also provide feedback on how each participant can continue to improve their skills, build a strong CV to stand out in the job market with a strong track record in open source, beyond this short, high quality and pragmatic training program.