Hi, I’m Jonathan Alexander, and I’m a 24 year old software engineer living in Hillsboro, Oregon.
In my work life I’m a full stack web developer, usually writing in Angular and Python, and some SQL if I can’t manage to avoid it. I’m really passionate about creating applications to make peoples’ lives easier, whether that’s the devs around me or end users. I especially like to focus on UI/UX design, in so far as my own capabilities there allow me. I’m no artist, but I am opinionated about how apps should look and function.
This interest in UI/UX design led me to explore Virtual Reality application development in my academic work at Oregon State University. VR as a platform has only just recently progressed to the point of being accessible enough for consumers to give it a try. After doing so myself, I was struck by how even the most popular apps seemed to make a lot of UI/UX mistakes that in my mind felt obvious. In college I spent the few academic opportunities I had pursuing this interest.
Outside work and school, my primary hobby is video games. My evergreen game is Destiny 2, and outside that I try and keep up with new game releases that interest me. I also get up to plenty of hobby programming, primarily oriented around video games or social platforms. It’s really fun to learn new languages or frameworks that interest me, but I’m always having to hunt for ideas with which to build using these new tools I learn. Besides games and programming, I like watching movies and listening to music. I also would like to read more books, produce more music, and write more things.
Currently I’m working at NVIDIA on the GPU compiler testing team. I work on a web application that aggregates test results from nightly runs and visualizes them in a flexible way. I’m also in charge of maintaining one of the sets of nightly tests. I write a lot of Python, TypeScript, and SQL day to day for the app and tests. I also end up handling a fair portion of the DevOps work to make sure the site is running without issue. I’m quite happy, and hope to be here for a long time.
A screenshot from the VR graph visualization application
A visualization of a tsunami that affected Seaside, OR, created as an exploration early in my degree
At Oregon State University I participated in the Accelerated Master’s Program (AMP). This let me start taking graduate level courses and working toward my thesis during my senior year. I worked under Dr. Raffaele De Amicis, initially exploring various applications of graph visualization and geographic visualization in Virtual Reality. Over time my efforts honed into creating a VR application for visualizing graph datasets relating to High-Performance Computing. This work was done in collaboration with a customer funding the research, as well as many graduate and undergraduate researchers. After I left Jordan Henstrom, a PhD student, took over the project. He worked to progress the project for his own academic work, and also took my thesis and iterated on it until it was successfully published in IEEE!
In my second tour at NVIDIA, I requested that I be placed on the DevOps group of the compiler team I was working on. I felt that my previous experience could be leveraged better in this position, hopefully leading to a very productive summer, and I was very much right. I spent the internship creating a prototype of a new frontend for the testing services that the team maintained. The old one was written a decade earlier, with tools that are now out of fashion. I reimplemented a few of the most important views from the older application in a new Angular project. I got to take advantage of a few SQL query optimizations another person on the team made as well, which made my work look all the more impressive with its speed. Before I left, I gave a presentation showing the work I did, and a manager from another team spotted that what I was doing was very similar to a new project on her own (separate) compiler testing team. She reached out to pull me in to her team as full time, leading to my current position.
As I was admitted to the Honor’s college at Oregon State University, I was able to complete an Honor’s Thesis, among other privileges. An Honor’s Thesis entails working with a faculty member on novel research, culminating in a thesis paper documenting the research. It’s much like a graduate degree thesis, but with much less strict requirements on form and expectations on rigor. I worked with Dr. Kristen Macuga in the Psychology department to design a virtual reality study. I wanted to learn more about how people perceive distances using different traversal methods in Virtual Reality. Unfortunately due to the COVID-19 pandemic, even with an IRB approval, it became infeasible to actually run the study with participants. In the end we pivoted the thesis to discuss the technical design and implementation of the study software, with the hope that another student researcher would be able to take the study itself over the finish line.
In my first internship at NVIDIA, I was placed on a compiler developer team. Given the extreme complexity of the compiler, and my relative lack of experience in the field, I was given a smaller scale task. I was to port the build chain from gcc to clang in order to utilize the code sanitizer features in clang. When enabled, these flags inject error detecting code into the compiled binary, allowing developers to spot specific kinds of errors that might be harder to identify in code or tests. After porting the build chain over, I took to testing out the compiler to identify and fix detected issues where my skill level in C/C++ would suffice. While this internship was a great experience in terms of working as a team and learning unfamiliar tools and codebases, when I was invited back again next year I requested to be transferred to the DevOps team. I hoped that on that team my prior experiences developing, hosting, and maintaining applications would more directly apply.
During high school I had the opportunity to complete two internships at a local Healthcare Software company. During these internships I worked on full stack web development tasks. First in creating a prototype tool for visualizing and monitoring stats collected on the user base and app usage. Then, by being integrated into the development team and helping with more typical tasks alongside the rest of the team. These experiences were invaluable for me at this relatively young age, and helped me develop my teamwork and communication skills especially. It was great to be able to experience what a “real job” could be like.
When I was in middle school and high school, I was lucky enough to be able to work with my teacher mother to design courses to help teach programming to students my age. My concept was to use Minecraft, a video game that was popular at the time and has only grown since, as a vehicle for driving interest with the material. I developed a course that would help students to create their own server plugins for a popular configurable server software for the game. This would let students alter their own gameplay in novel and fun ways, hooking into event triggers in the gameplay, and usually involving a lot of explosions or hundreds of NPC animals being spawned. Because the programming language required was Java, it also helped introduce students to core programming and even object-oriented concepts. The class was such a hit that at the time it was the most popular class in the local teaching company’s history. As far as I know the curriculum continued to be used even after I left, but I haven’t checked in to see how it’s going, and whether my course still holds the record.