Hack the North: Developer Experience (DX) Learnings

What we learned and what's next

Experience is one thing you can't get for nothing.

- Oscar Wilde

We consider ourselves lucky because we experienced something amazing a week ago. Something that cannot be gamed, which cannot be bought, but can only be earned by doing good work - not for nothing.

We experienced the love of the community and the satisfaction of helping students build the future they can imagine. It is an incredible feeling that language fails to emote, when seeing ideas take shape that we had never imagined. 

Developer Experience (DX) and Community Experience (CX) are at the forefront of what we do at HOT-G. We spend every waking minute thinking about how to make our users, who are mostly developers, happy and productive. We want to share our story with our audience, and deeply thank everyone (students, educators, mentors, sponsors, open-source contributors and more) that made this possible - we will continue to raise the bar on DX.

We want to share our story from Hack The North hackathon.

Hack The North

Hack The North is Canada's biggest hackathon where 3,000+ students of different skill levels come together from around the world to experiment and create unique software and hardware projects from scratch. Hack The North empowers and enables teams to make something great in only 36 hours by providing an abundance of resources such as workshops, mentors, sponsors, and hardware.

HOT-G was present as a Sponsor and a competition judge! We were excited to see how developers would use our Rune edgeML tooling to build applications. This was a way for us to flush out the type of applications developers would create.

Our goal at HOT-G is to build the best developer experience for EdgeML application development.

In our competition, the team was working directly with the attending hackers to resolve their pain points, issues and tackling challenges. We were blown away by the ideas folks wanted to build and out of 163 hackers/users, we picked our competition winners based on the type of models they selected and their overall integration into an idea.

So, without further ado here are the winners!

Competition 

First Place: SNKRView

Congratulations to Tolu, Gaurab and Ivan!

We loved SNKRView’s submission! They were our ideal users. They did their own data collection/cleaning, trained their own model, and wrapped it up in a flutter app! The team really showed the easiest way to get a custom model into their edge application built with Rune and Swift! See their amazing video and details below: 

https://devpost.com/software/snkrview

Second Place Finalist: Cadence 

Congratulations to Aiden, Mokshit, Tina, and Farah! 

This team went all out pushing our platform’s ability by trying to put an NLP model for edge Chat Bots into full gear. The team even built some custom procedure blocks for NLP that will help the overall community with more features. To give back to the community is the best love we can expect!

Mokshit and our core team member, Michael went back and forth for a good 3-4 hours trying to get tokenizing and NLP working! That’s commitment and we like it!  

https://devpost.com/software/cadence-hoa0y1

Third Place Finalist: Explor

Congratulations to Nathan and Justin! 

We were thoroughly impressed by the idea of a travel journal that showcases the power of EdgeML for remote areas and privacy. They used pre-made Runes and put tremendous effort into integration. This powerhouse duo came from a secondary school team and we were impressed with their concept and work they put into making it work!

https://devpost.com/software/explor

 

What we learned 

Our team has identified three main categories that came from our learnings through Hack The North’s hackers using our open-source product, Rune; with the recurring themes shared that it was difficult to get used to the new technology within the first hour.

As hardcore hackers ourselves, we took that constructive feedback to heart. 

Take away 1: Documentation and Examples

Hackers found it hard to get started with Rune and integrate it into their apps. Our hotg.dev site only mentions compiling a Rune using known models and doesn't show how you might integrate it into an iOS or web app.

Our team did put together a nice codepen which we believe folks would’ve appreciated if they were embedding Rune in a web app. Most of the hackers we talked to who were "embedding" Rune into their applications were using it more as a backend component. This made it apparent we need to have way more examples, boilerplate and documentation.

We understand that the lack of example projects people can download and customize for the various target applications also means people need to do a lot of work from scratch.

Over the next few months, our team will be working with Rune Ambassadors to help build out more examples, putting a documentation experience roadmap in place post Dec 1st. When we tack on a deadline, you know, we are not playing! So, keep your eyes and ears open ;)

Take away 2: Installing Rune

We've got a bunch of ways to install the Rune CLI, ranging from pre-compiled binaries. Developers will need to drop on your $PATH (easiest) to compile from source (either from git or crates.io - yeah, it’s difficult). Combined with some duplicate documentation (the "Installing Tinyverse Tools" page - which is redundant and out of date) causing potential confusion for a lot of people at first. The Hack the North’s hackers are new to using the terminal or tried to cargo install hotg-rune-cli without having the required dependencies installed. That said, TensorFlow Lite is still a pain point and makes it harder than it needs to be, to generate installers for Rune or compile from scratch. @Dinesh Manajipet has done an incredible job taming this complexity, but in reality, it is hard. 

With that being said, we are going to be building an online tool that will allow folks to build Runes without needing to install the toolchain! Oh yeah, you heard that one correctly! We are thrilled with this finding as it gives us direct confirmation that a builder IDE is sorely needed. Hint-hint-nudge-nudge

Take away 3: Improving Developer Experience

We didn’t anticipate an outcry of feedback in areas where there could be an improved overall developer experience. Our team is overwhelmed with gratitude! 

For example,

  • One hacker was trained to recognize that an "IndexMap: key not found" panic message meant an item in their pipeline couldn't be found (e.g. they wrote a typo when specifying a node's inputs)... and that makes me sad.

  • We also had issues where it's hard to create a proc block outside of the hotg-ai/rune repository because you need to get the hotg-rune-core dependencies just right. That came about just because we haven't tried to make our own proc blocks and any proc blocks we need are added to the Rune repo's proc-blocks/ folder.

  • It was also hard to programmatically read output from the Rune CLI because we just write to the logger for now.

To tackle this, the core team is aggressively testing new use cases and we will be working with Rune Ambassadors to keep iterating. Developer experience is a tricky thing to nail down but we are off to an amazing start! Sending a huge thank you to our community! Drop by our discord and let’s hack on amazing shhh together! :D

We would like to end this post with another quote from our favorite author

I'm not young enough to know everything

- Oscar Wilde

However, working for the young will teach us more each day :)

Follow us on our socials:

Twitter @hotg_ai and @hammer_otg | LinkedIn | Discord | Discourse