Principal Software Engineer Jan 2025 - Present
Lumin was acquired by ABB in January of 2025. My first project post-acquisition was an integrations cloud service that builds on concepts developed three years prior, allowing for secure and stable connections with third party device APIs by acting as a connection proxy for our IoT devices. Notably, this enabled the rollout of additional cloud integrations without requiring any changes or software deployments on IoT devices.
Building on the first project, my second project was writing a connection adapter leveraging the authorization and device APIs of our hub product to enable multi-hub systems. Multi-hub systems leverage the local network and mDNS to permit one software system to control and monitor circuits from up to four local hub hardware devices (over 48 single poll circuits).
Senior Software Engineer Jan 2023 - Jan 2025
I was promoted to Senior Software Engineer as we started working on a transition to a new software stack. My first project was creating the scaffold for our new hub software application, and an internal service within it for managing connections to the hub hardware and eventually third party devices. During this time I also developed wrappers around logging and tracing packages for increased observability and debugging of backend software code.
In the process of bringing in NATS, due to my past experiences with Kafka I created my second internal library, a library that serves as an abstraction over eventing. The library now has adapters for around four different streaming platforms, allowing us to use the same logic for writing and reading events locally as we do in many cloud services.
After working on the skeleton of the hub software application, I worked on standing up a number of core micro services in the cloud. The most important being a fine-grained authorization model (third internal library) and authorization service, featuring a mechanism that generates test cases based on the authorization schema.
Additionally, I led the development of a new micro service for managing device software, built on the concepts used for the internal CLI / API written a few years back.
Backend Software Engineer Jan 2021 - Jan 2023
I joined Lumin as its 4th engineer. In my first few months I worked with our devops engineer and built a data pipeline on top of Apache Kafka. I implemented an adaptable, horizontally scalable Golang micro service that now handles over five billion requests per day, collecting readings from IoT devices across the country. Over the past four years, the service has scaled and operated with a 99.9999% uptime.
I spent time reviewing time-series data stores and worked with the engineering team to transition from OpenTSDB to Timescale Cloud. The switch improved queries for our in-app data browser across the board, and in some instances by an order of magnitude. The service also led to a sharp reduction in data storage costs when combined with the adoption of Apache Iceberg.
I also worked on software services on our IoT device (the Lumin LSP), creating an internal CLI / HTTP API for managing device software deployments. We've used that tool for device deployments for the past two/three years.
Software Engineering Intern Jun 2020 - Aug 2020
During this brief internship I worked with the Decision Engine team on an ongoing project to refactor core application functionality from Ruby on Rails to Java Spring. I made modifications and additions to controllers, models, and view layers in both frameworks. Additionally, I worked to create Internal Admin pages for new features with React, and modified some Python project configuration scripts.
Software Engineering Co-op Jan 2019 - Aug 2019
Over the course of eight months I worked with numerous agile teams to develop production Ruby on Rails API features, frontend React features, and proof-of-concept projects. I also improved code quality in the Rails codebase by enforcing stricter linting and refactoring areas of legacy code.
The most interesting proof-of-concept project was the creation of a prototype chatbot, which showcased the potential features we could provide through integrations with Google Home and other IoT devices. I worked directly with the VP of Engineering and the Chief Medical Officer. I presented this project internally at one of the "All Hands" meetings, and it was presented at health tech conferences by the company leadership team.
Object Oriented Design TA Jan 2020 - May 2020
In my second time as a TA for this course I focused on improving the feedback I gave to students on their projects and providing a better experience for the students who came to my office hours. I also took on additional responsibilities in leading exam review sessions and proctoring exam sessions.
Object Oriented Design TA Sep 2018 - Dec 2018
My first time as a TA was a great learning experience. I graded projects and gained valuable experience with both reading code and providing constructive feedback. I helped with exam review sessions and created study materials to help prepare students for the exams.
Studio Software Developer
Working with Scout Studio (a Northeastern student-led design studio) taught me a lot about user experience design and the design process. We worked with a Northeastern startup to create a brand for an inclusive suncare product, which culminated in the development of a landing page and packaging designs. I developed the landing page using React and Prismic (CMS).
Software Engineering Intern
At CoS I optimized API tests across the entire application and reduced the test suite run time by over 30%. I also developed a few features for the Open Science Framework platform, built using Django and Python. I presented at PyOhio some of the strategies used for transitioning test code from Nose to PyTest.
Co-founder & Software Engineer
My friend Tyler Cosgrove and I became the youngest members accepted into the University of Virginia iLab program after we pitched our idea for a social shopping platform with the ability to recommend more accurate clothing sizes. For nearly a year we worked on the platform, which we developed using Meteor and MongoDB in addition to a web scraping component built with Python.
BS Computer Science & Entrepreneurship
From my first year in university through my last, I challenged myself to take the courses where I would be pushed to learn the most. Having been a self-taught developer before entering college, I was amazed by how much I didn't know, and thrilled to be able to put names to some of the practices and patterns I had been using for years.
The second part of my degree was in business and entrepreneurship, which carried over from my interests in high school. After studying more philosophical and spiritual movements I tailored my entrepreneurial interests into the formation of socially responsible businesses and social enterprises.
Honors: University Scholars Program, Honors Program
Courses: Accelerated Fundamentals of Computer Science 1 & 2 (Racket & Java), Object Oriented Design (Java), Algorithms and Data, Database Design (MySQL), Computer Systems (C), Computer Networks and Distributed Systems (Rust), Software Development (TypeScript / React)
Activities: Husky Startup Challenge, IDEA venture founder, Intramural Soccer
Advanced High School Diploma
Throughout high school I was interested in computer science and entrepreneurship, and started the first computer science and entrepreneurship clubs at Albemarle in my first three years with the help of mentors and faculty. Being in close proximity to the University of Virginia, we were able to tap into the computer science and entrepreneurship programs at the university to provide guest lectures and networks for students.
Activities / Awards: Math Engineering Science Academy, Honor Roll, Robotics Team Captain, TomTom Youth Summit Representative, Entrepreneurship & Computer Science Club Founder
Kubernetes Terraform Docker NATS Kafka OpenTelemetry Grafana Java Ruby JavaScript / TypeScript Rust Go HTML CSS / SCSS Ruby on Rails React Postgres MySQL Git Git Flow Vim JIRA