Holochain is all about teaching computer networks to act like healthy human networks: sharing resources, contributing and receiving, cooperating to reach a useful shared approximation of the truth. So it was no surprise to me to see that very thing happening among the humans who came to our first in-person Holochain & Rust Developer Immersive in Kelchsau, Austria.
I could attribute this to the careful participant selection process stewarded by Liz Penny and Muhammad Meigooni. Both of them have lots of experience seeing people’s characters and calling out their best natures, skills they earned working together in educational organisations like Hack Reactor.
I could also point to the way that Marcus Phillips, the lead curriculum designer and facilitator, set expectations at the beginning of the course — explaining that when we all move together in our learning journey, we each move faster. In particular, when we don’t understand a concept and have the courage to voice our confusion, we help out everyone who secretly has the same questions.
And while all of this work contributed to the personality of the group, and requires many years of skill and experience to execute well, it’s also true that the participants themselves are simply great people. They devoted themselves to helping each other out as they journeyed together. They chopped carrots and put dishes away. They collaborated on inspiring, useful, and silly Holochain apps. They hiked, swam, philosophised, and played fussball. I don’t want to get too gushy, but I think the students and staff created a magical culture together.
What was the course like?
I have to be honest — between grocery shopping, food prep, photography, and other operational tasks, I didn’t get to focus on the coursework as much as I’d hoped. But what I did take in, I loved. And the other students clearly got a lot out of it too.
I was there partly to learn more about Marcus’ unique educational approach. As co-founder of Hack Reactor, he’s had a lot of opportunities to learn what works and what doesn’t. And what he’s discovered is that you can understand any complex subject if you break it down into bite-sized pieces that build on pieces you already understand. The goal is to find the shortest path through an infinite landscape of ideas, building each idea upon the last. Sounds pretty obvious, but it’s an art — it’s hard to design a curriculum that does this well. (On some nights I glimpsed the curriculum team furiously refining the next day’s slides, trying to get them just a little bit more elegant and digestible.)
Back in June I asked Marcus about the core of his approach. He said it boiled down to two rules:
- Never introduce a new concept until the concepts it builds on are thoroughly understood.
- Move from understanding to experience as quickly as possible, because success is a great motivator.
I found rule 1 particularly compelling. It naturally leads to the bite-sized pieces approach I mentioned before. The curriculum team — Marcus, Muhammad, and Guillem Cordoba — applied this rule rigorously to every concept, shaping and reshaping each slide until it was brief yet thorough.
It’s also what led Marcus to make the bold but comforting statement that in your learning journey you will get it wrong — and that’s okay. In fact, he encouraged us to get it wrong as often, as quickly, and as publicly as possible, because that’s the fastest way to explore every nook and cranny of our understanding. Once we were even told to “think about all the possible ways that [this concept] could be misunderstood” and share them.
Underneath this, of course, was the understanding that this was a safe place to get things wrong. This was something that the entire team established early on — not just at the beginning of the course but during intake interviews too. And I saw my fellow classmates practicing this, in their respectful listening during lectures and in spontaneous mutual support sessions with each other during free time.
It was only when we all felt comfortable with a concept and had no more questions that we moved on to the next concept. Interjections were encouraged. The facilitators asked us to reflect back what we heard, then worked with us to refine our understanding. We didn’t have to go over every detail, but we did get the chance to grasp the basics well enough to be able to fill in the blanks for ourselves later.
This seems counterintuitive. You might think that this process would slow the whole thing down. But it really works. Instead of taking four days to learn Rust, we finished in only three — which left us more time to learn Holochain! And that’s what everyone was there for anyway.
Many developers are already familiar with other ‘slowing down to speed up’ techniques. Test-driven development, pair programming, agile development, and Git workflow policies sometimes feel like speed bumps in the moment, but they streamline our processes and avoid catastrophic problems later on. I think this was similar; it’s much easier to untangle a small misunderstanding now than a big one later.
Capstone project: Holochain hackathon
After all the lectures and exercises, it was time to build something. After all, the goal of the course was to get people proficient in hApp development. The facilitators invited students to share what they wanted to work on and join projects that they found interesting.
And there were some pretty interesting projects:
- Łukasz G, Matthias M, and Thomas S created Burner Chat, a hilarious but fully working prototype of an ephemeral chat application. Its tag line is ‘no privacy, no encryption, just signals’, and as you could imagine, it uses signals rather than the DHT to send messages between nodes. As you type, each character is sent individually to the other participants — but your chat window is only so large, so the oldest part of the message progressively disappears. There were a lot of laughs and emoji confetti.
- Wesley F added internal linking to Lightning Rod Labs’ Notebooks, a collaborative text editor built on Holochain. This effectively turns Notebooks into a real-time wiki or a multi-user knowledge manager. This is a project of particular interest for Wesley — he’s passionate about knowledge management apps, which help him organise his thoughts and uncover new insights. The DNA plumbing is in place and the UX is basic but functional; I’m excited to see what he and others build on top of this!
- Loren J, a Holo alumnus currently working on a popular social app for communities called Hylo, updated the Holochain-powered Hylo Communities app to work with the most recent version of Holochain. Holo acquired the Hylo codebase before open-sourcing it and handing over stewardship to the Terran Collective, a software dev shop in San Francisco. Given this history, it’s great to see Hylo getting some Holochain love once again. Loren has more plans to integrate Hylo with Holochain; I’m looking forward to seeing what emerges in the coming months.
- Duke J shared his recommendations and vision for an ideal suite of Holochain developer tools. This may not have been his first choice, but it became his focus as he faced challenges getting started on his hApp. As frustrating as it was for him, it did lead to great insights into how to improve the experience for new Holochain app developers. I’m hoping we’ll see his feedback make its way into our scaffolding and build tools in the future.
- Abdoulaye D and Ryan L started work on a browser extension to add Holochain functionality to existing web apps. It loads Holochain’s JavaScript client into the current web page, allowing it to access your local conductor if it has permissions. This led Ryan to start work on another project: a tool to generate a JavaScript API that’s tailored to a specific coordinator zome. It will be able to read the zome’s public functions and call signatures, then create function stubs in JavaScript that call the conductor’s app API and handle serialisation and deserialisation of parameters and return values.
- Guillem shared his plan to upgrade Syn, a low-level toolkit for building real-time collaborative apps like Notebooks, to use conflict-free replicated data types (CRDTs). Syn currently uses a technique called operational transforms, which work great when everyone is online but are clunky when people have patchy internet connections. CRDTs are more complex, but they’re much more robust against failures — even total loss of connectivity. When the user comes back online, their changes sync without conflict.
- Marcus outlined his vision for peer-to-peer economic networks that resist the worst effects of power concentration even as they grow to global scale.
How was the food?
Delicious, if I may say so. It was a pleasure to take care of our students, working with our cook, Tayyab, to create nourishing dinners of Pakistani, Austrian, Canadian, and other heritages. The staff and students loved it too.
How was Austria?
Beautiful. Many of us got out to see the country in our free time — but the world just outside our door was also lovely.
What did the students think?
I definitely feel much more confident and familiar with both Rust and Holochain, although there are a few advanced topics, especially deployment to Holo hosting network and architecture design patterns. But that would only make sense in a longer program or round 2 advanced concepts.
I feel really empowered and hAppy (;-D). And started to really appreciate Rust for the first time in my life.
The location was beautiful, quiet and apart from distractions. The food was nourishing and delicious. The operations staff were caring, committed and fully engaged. Rock stars!
Everyone was absolutely wonderful and caring. There wasn’t a moment I didn’t feel comfortable, safe, and heard. The amount of work they put in to make that happen and the seemingly effortlessness to do it speaks volumes to the skill and attention they all had. I am very appreciative and couldn’t sing all of their praises enough.
Thank you! This experience was just perfect. I'd wish we had more time, why not 4 weeks? 🙂 (e.g. 1 week Rust, 2 weeks Holochain excercises + 1 week final project)
Short of calling each of you out individually and smothering you with accolades I hope you all know that you did a great job and I sincerely hope more people get to experience all that you (and holo) have to offer. Cheers.
What’s next?
Many students are already involved in the Holochain development community, creating hApps and developer tools. They’re now equipped to be more successful — and to mentor the next generation of hApp developers.
As for future education programmes, this Developer Immersive is a prototype. As you know, Holo has committed $2 million USD to developer education over the next couple years, because we know that growing the skill, strength, and employability of the hApp developer community is critical to Holochain’s success.
Future courses are likely to take different shapes. Not everyone has the free time and funds necessary to fly across the world and spend two weeks learning about a new technology. Most of us have day jobs, families, and homes to take care of. So Holo also plans to work with the curriculum team to create online courses, both scheduled and work-at-your-own-pace.
Each of these formats is valuable; each is also best suited to different people and their life situations.
- In-person courses are intense and focused, allowing people to skill up rapidly. There’s also something about being in the same room with each other, something about the connections that form, that make the experience deep, rich, and productive.
- Virtual courses are great for people who need to stay at home but still want the experience of moving with others, sharpening your understanding against each other.
- Work-at-your own courses are best for people whose time constraints prevent them from participating in a scheduled course. They work best for highly motivated self-learners.
Are you eager to join a future course?
Join our interest list and we'll be contacting you about the next developer education opportunity.
Want to keep up to date on what's happening in the Holo & Holochain world?
Sign up for Holo Newsletter and receive monthly updates.