The OctaPi Project
Rollercoaster Dev
Posted on May 16, 2020
What the heck is an OctaPi?
I’m so very glad you asked this question. An OctaPi is a cluster of eight Raspberry Pi computers running as servers with a Client Raspberry Pi controlling them. The Raspberry Pi foundation (easily one of the greatest computing learning foundations ever created!) has some great tutorials, which I dutifully followed, here.
Why would you do this?
First of all, because I had the Raspberry Pi’s just sitting in a box all left over from other projects. But In Feb. of 2019, several things had come together forcing me to decide about the rest of my life. I suffer from Bi-Polar Disorder and ADHD. Living life, working a normal job, going to school don’t come easy to me. Over the years I went from self-medicating with drugs and alcohol, to having a serious addiction.
I’d been working a dream job for an international NGO setting up computer-labs, training caregivers and teaching children in refugee shelters in Germany. After that project had ended I was given six months to develop the next digital education project. Through a lot of research for the last project, I already had an idea of what I wanted to do. I pitched the idea of a Makerspace, designed and built by kids in a disadvantaged area. This would then serve as a development hub for a Digital Education Platform where the kids are involved in every step of the development. Big plans, I know. But I dove in and had found a school that was excited about the idea, I’d workshopped the App prototype with a development agency. Everything looked good from my side.
But, at the end of 3 years my contract wasn’t going to be renewed due to a lack of funding. I knew I needed to make a big change. I’d been able to keep things going and pretty level at this job for three years (meaning I hadn't needed to go into the hospital for the depression or mania). I’d never stuck to anything outside of music for that long. And I’d learned a lot. I’d been teaching kids basic HTML, CSS, Scratch and Python. Somewhere along the line I discovered FreeCodeCamp.org and was not only using it for the kids, but I’d started powering through all of the lessons.
It was because of FreeCodeCamp and the research I’d done about the platform. I felt I could get there; I could build this thing if I buckled down and … I remembered my Bi-Polar, ADHD, Alcohol and Drug Addicted self and thought, it’s time to get this under control.
I battled with this for months over the holidays. I tried to reduce my drinking and use of drugs only to rebound worse and worse. A friend had gotten clean and had written me that he had 72 days without drugs or alcohol. I realized I hadn’t managed more than four weeks clean once or twice since 2008.
In February it got bad enough that I saw I didn’t have any control over it, and I gave up. I saw I could not do this alone, period. I needed help. I called my friend and asked him what I should do. He gave me over to another friend in his self-help group who had just been through detox and rehab. He walked me through my options and recommended a hospital to go to and I went.
Getting clean
I checked into the hospital on the 14th of February 2019. I snuck my laptop and an LTE router in with me (we weren’t supposed to have them, but I was learning React!). During those three weeks I built my first React app. It's a day counter that adds a circle to a circle for every day that I’m clean. I’m proud to say that I haven’t had to reset it once.
After I was out I was waiting for a spot to open up at a rehab clinic. I kept learning react and quickly realized I really needed to learn JavaScript before I could effectively learn React, so I want deep into JS. I worked through the responsive web design and JavaScript certifications of FFC, I finished several Udemy courses and build a ton of little projects. From there I went on to a Node.js Udemy course and was really enjoying the backend.
But then came the Rehab. I had planed on doing 100 different things. I was going to improve my German, finish my Node.js course, go running every day and, and, and. Rehab had different plans for me. I was forced to calm down (I was manic most of the time here) and focus on me. I wrote my life story in bad German. It ended up being 24 pages long. I looked at the facts about my life growing up and realized how painful and truly traumatic they were. The things I experienced weren’t normal, but it’s ok now. I had the space to be with me and my inner child and come down and just be. I’d been going to a Buddhist based recovery group and the book I’d brought with me was the biggest help of all. I was learning to be compassionate and patient with myself.
Back to the “Real World” and Python
Coming out of 15 weeks of rehab is stranger than you can probably imagine. It was December and I didn’t know what to do with myself. I was on Lithium since June, so I was feeling more level than I had, maybe ever. But I still felt a bit lost. I took a chair position in the self-help group and really enjoyed it. The little bit of responsibility really gave me my footing back.
I was having a tough time getting back into learning JavaScript. I don’t know why but I had a block there for some reason. But I saw this box of Raspberry Pi’s left over from teaching and remembered how I’d always wanted to build a Cluster. I’d never done any Parallel or distributed programming, but it totally fascinated me. So, I counted them up, I had six Raspberry Pi 3b’s and three Raspberry Pi 3b+’s, PERFECT!
At first, I followed the Raspberry Pi Tutorials. They are great and I totally recommend them! And once I got everything installed and running, I started going through a tutorial on getting Kubernetes up and running on a RPi cluster. Then came an interesting job opportunity at Soundcloud. They were reopening their Developer Training program and I really wanted to get into that. In the end I should have doubled down on my JavaScript or Python skills, but I’d read that they had moved their backend from a Ruby Monolith to Scala Microservices. After a bit of research on Scala, I learned that because of it’s strong typing, immutability and being built for functional programming, it was also very good at parallel and distributed programming, meaning it was perfect for my new project! I was hooked.
const LearnScala extends App {}
I loved Scala from the very beginning. It was hard! I’m not saying that I’m great at Python or JavaScript, but while learning them, I never felt really challenged. I also had never learned a language to the depth I felt like I was learning Scala. Creating my first Linked List class was awesome! But it is hard. I managed to get through a great Udemy Course Rock the JVM and did Functional Programming Principles with Martin Odersky, the creator of Scala.
But when it came time to do the online programming challenges to get into the program, Scala was not an option. I did everything in JavaScript but was so stuck in the Scala mindset that I was doing tail recursive functions and writing probably very inefficient JavaScript. Needless to say I didn’t make it into the program. I am however thankful for the chance to deep dive into a new Language, even if it might be a while before I can use it.
From here on out
This June I start at Spiced Academy. I’m really looking forward to deepening my HTML/CSS & JavaScript Node.js skillset. I plan on building the prototype for the Learning Platform and finding a place to start testing it. The OctaPi is an important metaphor for me. It’s built up of things I’ve used to teach. They were all jumbled and set aside in a box, Now it stands tall and proud on my desk, A symbol of the future I’m building for myself. One where I build the software that helps others teach and learn.
And of course, blinky lights and rainbows.
Posted on May 16, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.