…for what you learn today, for no reason at all, will help you discover all the wonderful secrets of tomorrow.The Phantom Tollbooth
Have you ever paused to consider what it was that got you to where you are today? Perhaps it was an Uber ride, where your driver regrettably took that left turn a bit too sharply—causing coffee to spill on your new tartan slacks. Maybe it was a long-distance ferry, packed with excitable foreign tourists pushing past you to get the best view of the surrounding scenery (you can’t speak their language, but it was clear from their faces that they don’t have these kinds of sights back home). Maybe it was a burning desire to become the very best xylophone player—like no one ever was—and the countless nights of tenacious, deliberate practice that led you and your trusty mallets to the audition stage.
Reflecting on my own experiences, I attribute my present circumstances to a relentless curiosity about the world and how things work. What things, you ask? All kinds of things. Why does yeast cause bread to rise? What keeps Earth from leaving its orbit? How does a transmission work? Who decides the price of a stock? When will humans colonize on Mars?
One curiosity that I’ve found particularly satisfying to explore is, how do computers work? And is there a limit to what we can do with them?
I should know. I’ve had an affinity for computers ever since I was old enough to climb into the computer chair and reach the mousepad—in my patterned footie pajamas, no less. It was there, through bouts of Treasure Mountain, Mixed-Up Mother Goose, and Oregon Trail, that I began earning my stripes as a gamer and computaholic. Later, as a 12-year-old living amidst the Flash-gaming craze of the early 2000’s, I built my first multimedia website in Netscape Composer. The website, titled “A History of Classical Music,” could display text, render images, and play sound. But that was about it.
It wasn’t until high school, when I got my hands on a new TI-84 graphing calculator, that I was able to speak to the machine at a more intimate level. In the back row of my trigonometry class is where I first discovered the power of variables, subroutines, and control statements—diligently typed out in pixelated TI-BASIC. And just like that, I was building castles out of thin air. A few fortuitous trips to the local library acquainted me with C, and suddenly, with these same building blocks, plus a few compiler commands, I had my very own text games running right there on my desktop.
After the travails of senior year and college applications, I found myself at the University of Cincinnati, 16 years old, bright-eyed, with my own Macbook and a fresh copy of Adobe Flash. I spent a good portion of free time that year in my dorm room, building more and more complex Flash demos; I explored the ins-and-outs of ActionScript, and learned how to make my characters run, jump, aim, and shoot. Suddenly, that high school trigonometry class didn’t seem so impractical.
Soon, however, the demands of a world-class design education invaded much of that free time, and I was left looking for ways to scratch my programmer’s itch while still contributing to my work as a student of design. DAAP became an indecipherable blur of days and nights spent sitting on studio stools, sleeping on tables, and subsisting primarily on vending machine snacks, Mountain Dew Livewire, and cold Indian left-overs*.
Fortunately, my earlier ventures into web and Flash programming began paying off, as more and more of my studio projects involved digital, interactive components—components that could be as real and as functional as I was willing to make them. I began to ask myself whether it was possible to be both an excellent designer and an excellent programmer. I didn’t have an answer yet, but I was working to find out.
In 2012 and 2013, two internships in Los Angeles left me with enough free time to create my first persistent web applications—database-and-all. I returned to Cincinnati in 2013, determined to formally put my programming abilities to the test by picking up a minor in Computer Science at UC—even if that meant forging the path myself (and making some new friends along the way). In 2013 and 2014, I completed internships with Apple, where I used my design and programming skills to aid their Worldwide Developer Relations (WWDR) team in their day-to-day operations. Four months later, in 2014, I had the honor of serving as “Technical Brandtern” at the Brandery, a startup accelerator program operating out of Cincinnati’s Over-the-Rhine district. The imposter syndrome was beginning to wear off.
In the spring of 2015, after five years of intense work, skin-thickening critiques, and 1 a.m. grilled cheese fundraisers, I found myself not only in the midst of a DAAP senior capstone exhibition week, but also on the cusp of my college graduation. Looking back, I’d succeeded in one of the most challenging design programs in the world, proven my own personal resolve by completing an engineering minor on the side, contributed work for valuable brands such as Apple, Disney, AMC, Warner Bros., and FX, aided a number of fledgling startups in my home metro, and even organized and participated in a few overnight hackathons. It was time for something new.
One week after my graduation ceremony at UC, I shipped myself and 24 boxes of belongings to California. I’d been offered an opportunity to work with one of the most beloved companies in the world, as a newly minted software engineer on a budding team of web aficionados. In a matter of days, I’d transitioned from haunting the halls of my design school to haunting the halls of Apple’s Cupertino headquarters. It was there that I accumulated the sort of real-world experience that tempers the blind idealisms of youth.
As I contributed to more and more projects, I learned first-hand how to design information and software systems that scale; how to design sensible APIs and abstraction layers; how to view software less like the formation of something perfect, freed from the marble, and more as a collection of trade-offs. These experiences sharpened my programming spidey-senses, and helped me to appreciate the more human aspects of the software development process. During this time, I also completed hours of self-study in areas including computer architecture, operating systems, data structures, and algorithms, practiced strength training and Brazilian jiu-jitsu, developed an extensive knowledge of the best burrito locations across the Bay, and somehow learned “how to adult” along the way.
Today, I’m still learning. While living and working in the Bay, I continue to explore new fields of interest—be it software quality and usability, artificial intelligence, blockchain, or the global financial system. To quote Bill Gates, “The more you learn, the more you have a framework that the knowledge fits into.” To study and understand new complex systems is a joy that leaves me with a broader perspective and appreciation for all that humanity has created, is creating, and will create.
In addition to continued self-education, I’ve also found new ways to pay it forward. As they say, you don’t really know something until you can teach it. Since 2020, I’ve served as a (virtual) mentor to new programmers—of all ages, backgrounds, and locations—looking to gain a foothold in the ever-changing industry. I contribute my knowledge and experience through online Zoom meetups and conduct code reviews through GitHub. To watch someone else grow in their knowledge and awareness of what is possible with technology is something I find enormously fulfilling.
When I’m not being a programmer, or a mentor, you can usually find me training with barbells, listening to podcasts on cryptocurrency, walking around the nearest downtown district with my digital camera, and generally discovering the secrets of tomorrow.Michael