A couple weeks ago I released my first open source project at the ripe old age of thirty-five. A dinosaur by tech industry standards or whatever. Computers and programming were something that always came naturally to me in my youth— my first languages were C and x86 assembly. Growing up I developed ANSI viewers for the local art scene and eventually joined ACiD at the age of fifteen. At the time this was equivalent of a lifetime achievement award in my young mind.
The ANSI art scene was generally closed source and everyone held their latest tricks for smooth text mode scrolling (mostly written in hand rolled assembly) and rendering techniques close to their chest. This is how groups differentiated themselves by having the best art, best viewer, app generators, etc.
I distinctly remember the first time I installed linux (Redhat 5.2) sometime in 1999 on my parents Intel Pentium 200mhz computer. I’ve been a user of open source ever since. Dabbling in the optimal kernel configuration for whatever hardware I was using at the time. In school we used Linux, GCC, and everything in-between. In my first job out of school at Boeing we were fortunate enough to adopt open source and incorporate boost, log4j, and other libraries into our software.
Do you see a trend here? Always consuming open-source but never giving back. Fast forward to present day where collaborative tools like GitHub have combined social networking and coding, forever changing the landscape. I’m fortunate enough to work at Formidable, which embraces and encourages open-source contributions. This is table stakes for the modern developer; even companies like Microsoft have changed their stance on OSS.
In the beginning of October I got an itch to build something and finally give back. Inspired by Ken Wheeler’s webpack-dashboard I had the idea to build something similar for Node.js. I’ve been building systems in Node for the last four years and felt the constant pain of monitoring a Node process from the console. Why not slap a terminal based front-end on it?
And so I did. Hunkering down evenings and weekends to create and build for myself and the greater community. As someone who has traditionally worked on framework and infrastructure teams it was exciting to navigate blessed-contrib’s endless configurability to create nodejs-dashboard. I iterated on various layouts trying to get the graphs looking just right while not taking up too much screen real estate. Here I was again developing console based apps, not too dissimilar from my days slinging ANSI viewers in the early 1990s. After two weeks I was happy enough with the progress to call it GEFN (good enough for now) and hit publish.
Thoughts of excitement and dread raced through my mind. Would people like it? How many stars would I get? What if I don’t get any? Does it matter? The morning of the release it bounced back and forth from first to second page on Hacker News. Then much to my surprise it hit escape velocity and remained on front page for the remainder of the day. Nerd stardom achievement unlocked. Github stars slowly rising into the hundreds, then thousands. I had achieved “success” (validation?) on my first OSS project at thirty-five years old. It felt great to give back to a community I’d taken from for so long.
The tech industry has come under heavy fire lately for cases of age discrimination. I don’t doubt that this is happening in our industry and others. But the reality is we’re not miners on the frontier and compilers don’t discriminate against the developer (unless you write broken code). So I want to leave you with this: whether you’re an industry veteran or just getting around to “Hello World”, just go for it. Build something you want to use and release it open-source. It will change you.