Introduction

Who Am I?

My name is Quinn Okabayashi, and I hope to one day build tools to seamlessly integrate hardware and deep learning models. This is what I’ve been up to the past 6 years.

Middle School

Lego Mindstorms robot

Qubits: Team Quantum's competition robot

My engineering journey began in middle school with LEGO Mindstorms, where my FIRST Lego League team, Team Quantum, was the first team in my schools history to compete on the international stage. As the lead hardware engineer, I spent hours every day obsessing to find the most crazy-optimized mechanisms to complete the objectives. Whatever I ended up doing in life, I knew it would be making optimized systems.

High School

I took Introduction to Computer Science with Python in my freshman year of high school, and Data Structures & Algorithms with Java the next year. However, the subject really clicked for me my senior year where I took Advanced Topics in Computer Sciences with Java. Projects included:

The support I provided my peers on their own projects after finishing my own earned me an A+ in the course.

Swarthmore College

In fall 2019, I took CPSC 31: Introduction to Computer Systems, where picked up C and Vim. Coming from Java, I loved the great power and responsibility that C provided, and the low-level assembly and knowledge of the exact steps the hardware takes fascinated me.

In the spring, I took CPSC 73: Programming Languages, instructed by Zachary Palmer, where I gained exposure to functional programming through OCaml. For the first time since I started programming, I felt truly humbled: thinking from a functional perspective requires an entirely different skillset than thinking from a OOP perspective.

computer desk setup

My quarantine coding station

Around this time, my close friend Avi Gupta inspired me to look into deep learning models, so I taught myself C++ and some CUDA in a 3-month long attempt to create a convolutional neural network from scratch. I eventually abandoned the project because of my lack of CUDA, convnet theory, and C++ compilation experience.

Over the summer quarantine, Avi and I attempted to create a generative adversarial network entirely from scratch. Being the systems programmer of the team, I created our budget NumPy clone: Quantum Python, a Python matrix library written in C and named after the robotics team that started it all for both of us. Unfortunately, the complexity of the algorithms and other life responsibilities forced us to suspend the project, but I still learned a lot about how Python works through the experience.

Rust logo

Rust: Love at first sight

Soon after, my freshman roommate William Ball introduced me to the Rust Programming Language, where I was immediately enamored by the combination of low level memory control, high-level functional concepts, the cargo package and build manager, and my hatred for valgrind and Makefiles. As much as I wanted to love Rust, the learning curve was very steep and summer was coming to an end, so I put a hold on it for the fall semester.

SHINE Technologies logo

SHINE Technologies: My fall job

In fall 2020, I joined my friend Solomon Olshin to begin development on ShineNet, a web interface to display live sensor readings for JuiceBox 3.0. I taught myself Arduino C++ and basic circuitry to connect sensors and flash storage to my micro controller, and basic HTML/CSS/JS for the front end. Although I don’t intend to pursue web development, I’m grateful to have broadened my experiences and learn new technologies.

Earth and Mars blended into one planet

Earth + Mars: A product of my Computer Vision class

Now I’m in the spring semester of my sophomore year, and my courses have strengthened my interest in ML in a systems-level context. In CPSC 72: Computer Vision, instructed by Matt Zucker, we’re learning about the underlying algorithmic implementations behind popular computer vision applications using Python/NumPy/OpenCV. In CPSC 75: Compilers, instructed by Zachary Palmer and using OCaml again, we’re learning about compiler theory and optimization strategies, which fascinate me. These courses have provided invaluable exposure in what I believe to be the two fundemental aspects of machine learning: the algorithmic theory and the programmatic representation / execution of said algorithms.

In pursuit of these interests and learning Rust, I’m also currently working on a continuation of Quantum Python: arrs, a multidimensional array library written entirely in Rust. Content for another post, though.



The common theme behind all these projects is that I hate black boxes: I want to know exactly how everything works. From assembly generation in compilers to ML theory, I want to understand how we can bridge complex ideas and hardware in perfect harmony.

Written on