Patrick S. Barrett
Patrick S. Barrett
Senior Software Engineer
Auxon | December 2021 - Current
Staff Software Engineer
SmartThings | July 2020 - Oct 2021
- Designed, architected, and was the lead contributor to the development of SmartThings' Hub Edge
Driver Platform. It moves device integrations from running in the SmartThings cloud to running on
hubs already owned by customers. It is written almost entirely in Rust, with calls out to the
legacy C application where needed.
- Wrote nearly all the code for the "Runner", the code that runs within the OS sandbox, providing
an seemingly native Lua + LuaSocket API along with custom APIs.
- Wrote the original PoC and continued to be a core contributor to the "Broker", the code that
runs outside the sandbox and accepts requests for any action headed for the outside world, such
as socket operations, logging, data storage, event handling, and anything else that is more than
- Wrote, from scratch, a pure lua implementation of a coroutine runtime called
cosock provides the full socket API offered by
LuaSocket, except it allows code that is intended to use LuaSocket in a single-threaded fashion
to be run cooperatively with other code using LuaSocket.
- Wrote initial LAN Edge Device Drivers to be used as reference by users.
- Wrote a large portion of the documentation guides and references.
Senior Software Engineer
SmartThings | April 2018 - July 2020
- Personally architected & implemented the hub-side of a system for setting up a new hub's wifi
- Mostly written in Rust with some C for hardware interface abstractions.
- Built using Hyper directly.
- Re-designed the device discovery subsystem to appropriately fan-out device requests based a
filters provided by the ST cloud and/or app.
SmartThings | May 2017 - April 2018
- Rewrote the existing cloud <-> LAN interface code from using a pthread-per-connection model to a
single-threaded system built on libevent.
- Personally rewrote the sections dealing with UDP connections & implemented setting up TLS
connections using openssl on top of code written by a coworker handing TCP connections.
- Helped maintain hub device handlers, written in C, for devices such as Hue & Sonos.
Exosite | Sept 2016 - Feb 2017
- Designed and developed new embedded software library for Exosite's upcoming 'Advanced Device
- Library was designed for robust device to cloud security using better than industry standard
encryption & mutual authentication protocols while maintaining a very high level of developer
ergonomics and ease of use.
- Assisted with the design of the 'Advanced Device Connectivity' cloud systems.
Technical Marketing Engineer
Exosite | Dec 2015 - Sept 2016
- Reviewed most of Exosite's marketing materials for technical accuracy.
- Attended industry tradeshows, fielding all questions about Exosite's technical products and helped
potential customers understand if and how Exosite's products could help them build their IoT
- Remained as tier 3 customer support representative.
- Handled most tickets that were suspected to be legitimate problems found in Exosite's systems.
- Handled all questions about Exosite's CoAP API.
Exosite | May 2013 - Dec 2015
- Was the main technical customer support representative.
- Wrote, developed, and maintained Exosite's documentation and documentation website including a
custom written static site generator.
- Helped create and run several training seminars designed for Exosite's partners.
- Helped in development and testing of the introduction of Exosite's CoAP API.
Associate Systems Engineer
Exosite | May 2012 - May 2013
- Worked as part of a team to develop various embedded software projects, switching projects as
business needs changed.
- Ported eLua to a new embedded platform, personally wrote modules to support modem AT command
interface with modules to communicate using UDP, TCP, HTTP, and an abstracted interface to
interact with our platform web API.
- Sole developer and maintainer of Exosite’s official Arduino Library.
- Investigated various open hardware platforms and wrote example code to Exosite-enable the devices.
- Assembled prototypes to demonstrate potential customer applications.
3D Printing Specialist & Technology Consultant
Mahtomedi Public School District FabLab | June 2011 - June 2013
- Selected and built three different low cost 3D printers.
- Refurbished two other 3D printers already owned by the district.
- Setup software for various uses in FabLab based classes.
- Provided ongoing assistance in maintaining 3D printers and other equipment.
- Hosted Saturday open lab hours for community members.
3M - Payment Components Business | March 2011 - May 2012
- Responsible for making and shipping material samples.
- Created method for creating rapid prototypes using customer’s designs.
- Regularly assembled, laminated, and tested various card constructions for compatibility with ISO
and ANSI standards.
Engineering Lab & FabLab Student Worker
Century College - Engineering Department | Spring & Fall 2010, Spring 2011
- Re-setup all FabLab Equipment after computer upgrades, including: Epilog Laser Cutters, Stratasys
3D Printer, Z-Corp 3D Printer, Sherline Mills and Lathe.
- Created method for using a never used Roland Mini Mill for milling PCB’s.
- Performed routine maintenance of FabLab equipment.
- Kept inventory of all materials available to students in engineering lab and submitted purchase
orders when necessary.
- Instructed students on proper use of software and FabLab equipment.
Bachelors of Electrical Engineering
University of Minnesota, Minneapolis, MN
See my Projects Page.
SEE MY WORK
3D Cad Models