I do mostly software stuff these days, if I have a choice it probably gets written in Rust or Lua.
I have a few projects that have straddled the line between work and hobbies which have recently been
largely in maintenance mode waiting for me to have a renewed need for them, one being cosock,
which is a new coroutine executor written from scratch in pure lua that provides a full wrapped
LuaSocket interface that allows code written against the native blocking interface to run within Lua
coroutines without modification by simply pulling the code in with cosock.asyncify
instead of
require
.
Professionally, I'm currently the Lead Software Engineer at LEMA, where I'm leading a team in developing a a complete software stack for integrated solar photovoltaic and solar thermal systems.
Previously I was a Staff Software Engineer at SmartThings on the Hub Edge Platform
Team. My proudest acomplishment while there was that I architected and was the primary developer
for the core of SmartThings' new Edge Device Driver Platform, a system to run user-written code on the
SmartThings hubs that our users already owned. I developed the majority of the "Runner", the rust
process that runs within an OS sandbox managing the Lua runtime and providing the Lua system API,
and the "Broker", which runs outside the sandbox providing permissioned access to to the various
networks supported by the hub as well as other local resources and remote connections either
directly or via the legacy hub-core
C application that interacts with the SmartThings Cloud and
some local hardware such as ZigBee and Z-Wave radios.
The project I most often think about going back to is a CoAP protocol implementation built on top of Tokio. There is also a simple static site generator which generates this site, along with a few other things.
I graduated from the University of Minnesota with a Bachelors of Electrical Engineering in 2013. From that, I still have have a personal interest in designing and building low-level electronics projects and learning more about real world wireless communication protocols, but I haven't done much noteworthy with those since leaving school unfortunately.