Patrick S. Barrett
Patrick S. Barrett
patrick@psbarrett.com
WORK HISTORY
Senior Software Engineer
Auxon | December 2021 - Current
- Wrote a product integration for the rust
tracing
ecosystem,
tracing-modality
- Maintained and expanded the Rust Modality SDK.
- Lead "translation" of internal docs for external consumption, helping to explain complex topics
in much simplier ways.
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, embedded Linux devices, 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
pure computation.
- Wrote, from scratch, a pure lua implementation of a coroutine runtime called
cosock
which 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 also 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
connection.
- 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.
Software Engineer
SmartThings | May 2017 - April 2018
- Rewrote much of the existing cloud <-> LAN interface code from using a pthread-per-connection
model to a single-threaded system built on libevent.
- Helped maintain hub device handlers, written in C, for devices such as Hue & Sonos.
Software Engineer
Exosite | Sept 2016 - Feb 2017
- Designed and developed new embedded software library for Exosite's upcoming 'Advanced Device
Connectivity' initiative.
- 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
products.
- Remained as tier 3 customer support.
- Handled most tickets that were suspected to be legitimate problems found in Exosite's systems.
- Handled all questions about Exosite's CoAP API.
Applications Engineer
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.
- Various small projects including Javascript Widgets, Small PCB Population.
EDUCATION
Bachelors of Electrical Engineering
University of Minnesota, Minneapolis, MN
PERSONAL PROJECTS
See my projects page.