Real Code For Real Coders (In Training)

Harrison Spain
Redwood Code Academy
4 min readMay 29, 2018
LED indicator installed at top of support arm

Using only JavaScript, we here at Redwood Code Academy have created a system to allow for real-time feedback from our students and a deeper ongoing connection between staff and cohort. Each student workstation — which includes a seat, desk, power strip, second monitor, and lovely succulents — now includes a fully programmable status LED indicator. The status can reflect a student that needs extra help, someone that wants the lesson to slow down, an indication that they are ready to move forward to the next module and really anything else they can think of to indicate.

Everything is coded using languages and technologies that each of our students have fluency in by they time they graduate our 12 or 24 week coding bootcamp programs. This allows for our students to modify, extend and learn from a system they actually use day to day.

Before getting into the process and specifics of this new system, I want to explain a bit on why we created it and why projects like this are important to the success of our students.

Real Code For Real Coders

We constantly work to introduce new and engaging ways to teach the next generation of software developers at Redwood Code Academy. Sometimes that means adapting to each cohort’s learning style, breaking from the traditional lecture format, or gamifying the learning process. Ultimately, we want to ensure that each of our students is equipped with not only a top-tier technical skill-set, but also a healthy mindset and motivation to solve the world’s challenges.

Allowing students to use, modify and create full in-house built systems to solve real world problems has been one of the best ways to teach students how to be productive and proficient coders once they have graduated. Rather than building yet another “Todo List” app, they are able to get their hands on something that has immediate impact and where their code contributions can be felt.

Working with this distributed LED indicator system can also be easily translated to working with shipping and logistics, enterprise signaling systems, manufacturing processes, and more. For our alumni, this means having more experience to directly relate to a problem that a company they are interviewing with may need help on. This is real code for real coders.

Some Specifics

The latest project we have deployed involves a distributed system using Firebase, native USB controllers, addressable LED lights, React (including Native), VSCode extensions and Electron.

There is no back-end code at all. The system relies on Google’s Firebase, namely the Firestore portion of that infrastructure to handle data. It has proven to be a robust, fast, and easy to use system to a wide array of projects we have going on here. The indicator status and other pertinent information is stored in a JSON collection in the Firestore database and updated from the VSCode extension, USB utility or administrative control panel.

LED installed at top of each monitor support arm

The LEDs themselves are a product called blink(1)’s. We bought one for each student workstation and installed them with a USB extension cable to the top of each monitor’s support arm. These are relatively dumb appliances that plug into a computer’s USB port with drivers already built in. All of their control methods and internal software are open source which gives us immense control over how they are used. Perfect for our purposes. An electron app sits in each student’s system tray (Mac or Windows) and talks to our Firestore database.

To control the lights, there are a number of React apps created, both Native and web. In addition, a VSCode extension was published to add a “Redwood” extension to each student’s toolbar in their IDE in which they can set their status. This also allows for their status to be updated automatically based on compilation errors or other workflow checkpoints.

Redwood Extension in lower right corner

We also have an administrative panel which is used to control and view the students’ status from a single location. It is a rough-hewn app, but is intended to be extended as part of an ongoing learning exercise for the students.

The Future

The students at Redwood will be taking ownership of this system and extending it, modifying it and creating something entirely unique and incredible. Our network is constantly amazed at the level of expertise that our alumni have in building products and this will be no exception.

We are excited to see where they take it and how they use the lessons learned in it’s production out to the industry.

--

--

Harrison Spain
Redwood Code Academy

I am a software development educator and entrepreneur. My current mission is to train and mentor the next generation of software developers.