Patrick S. Barrett

I do mostly software stuff these days, if I have a choice it probably gets written in Rust or Lua.

Lately I've been trying to get back to having fun learning new random things. I'm currently playing around with (portions of) libp2p and webrtc to get a better handle on NAT hole punching, gtk4 for creating GUIs to fit in my prefered desktop environment, and automatic control of wireguard because; and actually for all of the things in this list; as a focusing project I want to have a go at creating something like Hamachi was 15 years ago, but as fully P2P as I can make it; which is to say a very user friendly point-to-point overlay mesh network with peer-to-peer signaling for session establishment.

Most of my recent projects projects have been written in Rust. The one I think about most is a CoAP protocol implementation built on top of Tokio. There is also a simple static site generator, along with a few other things.

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 working at Auxon as their first non-founding Engineer. Auxon is a young startup, and as you'd expect I'm doing a bit of everything, ranging from product development to maintaining the documentation generating system. The core product, as well as the system integrations wherever possible, are written in rust, though there's a bit of python an javascript thrown in there for good measure.

Previously, I was most recently a Staff Software Engineer at SmartThings on the Hub Edge Platform Team. My proudest acomplishment while there was that I devised 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.

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.

Email GitHub Thingiverse