May 7, 2020
Hi, I’m Miller, and I keep notes on this site about some projects and research.
As a kid I always enjoyed working with tools, electronics, and computers. During high school I read a couple textbooks about microprocessor system architecture(1, 2), and also worked my way through the basic systems course of the Elenco Micro-Master training kit (book).
I attended Virginia Tech sporadically in my 20s and eventually earned a Bachelor of Science in Computer Engineering. For part of that time I worked as an undergrad researcher at the Future Energy Electronics Lab, where I built a testbed to measure electrical characteristics of high voltage semiconductor switches.
Early Career: DevOps @ Modea
During college I started working for a small agency called Modea, where I wore the hats of sysadmin, netops, devops, and backend engineer over the course of 7 years. Eventually they spun out a division as Ozmo, and both companies are doing great to this day.
Big Data: Platform Support @ Hortonworks
While seeking experience in new fields I received an offer from Hortonworks, a primary developer of the Hadoop platform. The position was in support, and I saw it as an opportunity to get a crash course in real-world distributed systems. The environment was fast-paced and sometimes difficult, but I was able to exchange knowledge and techniques with talented colleagues.
I got to dive deep into many areas of distributed systems including filesystems, scheduling, and security, plus a fair amount about applications running on the platform, such as datastores, workflows, and batch/interactive/stream processing. On the soft-skills side I learned quite a bit, considering this was my first role with frequent customer interaction. It was interesting to work on a huge variety of clusters ranging in size from 8 to 4000 nodes, along with meeting the admins who managed them.
Internally I started a few voluntary projects, including tools for lab cluster creation and for support case analysis, which led to creating a support tooling team. This provided a small opportunity for some development projects, but I really wanted to return to engineering. When I realized the path within the company would be a long one, I started researching startups to join.
Linux Distribution: Tooling Engineer @ Endless Computers
I spent a couple months interviewing in the SF Bay Area, where I landed a gig at Endless Computers. Their product is a Linux distribution intended for emerging markets, where connectivity can be slow/intermittent and users might have little to no prior experience with computers. This resulted in some interesting qualities such as an immutable filesystem (using OSTree) with apps distributed as Flatpak, and an offline-first approach. The full install actually contains the majority of Wikipedia! (text-only, but still…)
The entire Endless organization is top-notch. Many employees come from other prominent open source companies such as Red Hat, Canonical, and Collabora. My areas of responsibility were split between internal tooling and data engineering. For internal tooling I was tasked with creating an API server for cataloging the multitude of disk images from each build. This was my first time using Flask, and the first time I used python for more than a simple script. I had the greatest mentor I’ve met to this day, who patiently guided me to strive to meet the quality standards of the Free Software world. On the data engineering side, I was responsible for building an analytics system. Another former Hortonworks colleague handled the analytics/visualizations, and I automated setup/management of the platform.