Electronics & Code
I knew from a very early age that I wanted to be an engineer. From becoming resident IT for the family computer before my teens to taking apart just about everything I could to see how it worked, my curiosity about the design of everyday systems was a fundamental part of my childhood. Digital technology was becoming increasingly present in school until it was absolutely essential for teaching. Computers fascinated me as they still do today, and observing in real time as Moore’s Law unfolded, I watched as the Internet and the technology behind it grew exponentially.
It wasn’t long before I was exposed to programming; my first code experience was VB scripts with simple message boxes. Not long after, I discovered Visual Basic 6 and the stunning Web 2.0 framework. I was making old-school .NET 1.0 Windows forms applications, and I was playing around with HTML pages. When I discovered Visual Basic 2010, I was enamored with the endless possibilities for cool programs. I still have a copy of my first several dozen programs I made in grade school, and I cherish them dearly. Check them out here!
The lack of portability for those early .NET-dependent applications turned my interest back to the Web framework. I had an old computer gathering dust, and I figured, "Hey, I could make this a web server!" In 2011, I found myself with a lot of free time after the prescribed activities of my high school computer literacy classes, and I wanted to start building a personal website hosted on my spare computer. In fact, this very website is still based on that original project, though the hardware, operating system, frameworks, and technologies have vastly improved over time. As of October 10th, 2025; this website is now 14 years old! Celebrate the party and learn a little more about the history of my website over here
When I was in high school, I started working in the graduate polymer research lab at The University of Akron where I was exposed to interpreted languages like Perl and Python. I even used a Fortran script to generate an input file! It was in that very lab that I first learned about Linux and became comfortable controlling a computer entirely from the command line. While I was learning how to run mathematical analyses on molecular dynamics simulations, I was quickly introduced to the problem of memory management and speed: the existing Perl scripts would run for DAYS on huge datasets, and my graduate professor wanted me to see if we could run the calculations faster with C/C++. Having no prior experience, I dove right into C/C++ and MPI, and I wrote a parallelized program that executed over 20x faster than the original script. When you're working with gigabytes of raw data, being as efficient and strict as possible with memory makes a HUGE difference! It was then that I witnessed the true power of a 192-node supercomputer cluster!
As I progressed through my college degree, I completed three co-op rotations with a local packaging company, growing my engineering skills and learning what it's like to write code on a team. I learned about embedded linux, RTOSes running in an embedded C environment, embedded systems interfacing, and high-level UI development in node.js. I was obviously overwhelmed with the many quirks of JavaScript, and development in a legacy framework was both a valuable and frustrating experience. After a few years, I became the resident expert in UI development. I fell in love with the quirky but insanely powerful reactivity of JavaScript, and I enjoyed the deep dives into registers and flags and bit-banging in the embedded side. Naturally, it was a no-brainer to hire me on full-time after graduation, and I continued to leverage my valuable product-line experience in that role. I continued to expand my capabilities across several projects, both legacy products and new development, and I learned more about DevOps, embedded OS development, BLDC motor control, electronics design, compliance testing and mitigation, and automated testing. I even got some great exposure to design patterns (and anti-patterns) and proper agile development along with other programming philosophies (like pair programming!). With my more recent work in cybersecurity on industrial machines, I learned more than I ever wanted to about low-level networking within the Linux kernel. As my first professional role post-graduation, I gained invaluable experience in embedded software design and development, scripting, source code management, technical documentation, debugging and investigation, product design and launch, and working in an industrial automation environment.
Sustainability, Making, and Repair
When someone tells me something is broken, I love taking that as a challenge. Many of the electronics in my daily life have come to me for free or for next to nothing, often in "untested" or "parts only/not working" condition. For many people, diagnosis and repair is not worth the time investment; that's understandable. But for me, I love to dig into the details: datasheets, service manuals, or just blind troubleshooting. I get why people simply toss things that aren't worth fixing at first glance - minimizing downtime, avoiding complex investigation, or maybe capitalizing on the opportunity to upgrade an old or underperforming system. But more often than not, I find that simple troubleshooting and repairs can create value from the bottom of the value chain. Plus, repair and maintenance often has a smaller carbon footprint than outright replacement, and the skills I've gained from giving technology a new life are priceless additions to my engineering toolkit.
Research & Science Communication
My professional career started in...
Hobbies, Activities, and Interests
I enjoy combining technical and artistic expression — from generative art to photography.