hlfshell Keith Chester

Projects

I’ve been an avid maker and programmer for a very long time, with a voracious appetite to invent and share. Now that we find ourselves at the onsent of an era where the effort of creation is so thoroughly outsourceable, it is more important than ever to highlight the journey taken.

My thoughts on AI utilization for projects is explained here. Any project from after 2024 can safely assume some level of AI assistance. Projects fully built by AI - where little human input or control was exerted - will not be listed here.

Take this as a testament of passion as much as it is a portfolio of skill and experience.

sandboxed

Released: Updated:
A virtual filesystem for storing untrusted data as encrypted chunks. It exposes familiar Go file operations while keeping virtual paths separate from host files, and supports incremental writes without rewriting unrelated chunks.
sandboxed

scaffold + toolbox

Released: Updated:
Composable local development and test environments in Go. scaffold manages service startup, readiness, logs, and cleanup; the toolbox supplies reusable databases, caches, and other services to build stacks around.

docker-harness

Released: Updated:
Dead simple golang docker harness for testing. Sometimes you just need to test the SQL query in the actual database. I have used this for many complicated tests and creating tooling for coordinating load tests.

structured-parse

Released: Updated:
A parser for block-labeled LLM responses, written in Go with Python and JavaScript/TypeScript bindings through WebAssembly. Based on the parsing work in arkaine.

threadsafe_datastore

Released:
A thread-safe Python data store for sharing context across threads, with convenient atomic operations and context management for multi-step updates. Extracted from arkaine into a standalone package.

go-arkaine-parser

Released:
A Go parser for stochastic LLM responses, essentially porting the parser in arkaine.

arkaine

Released: Updated:
A batteries-included AI agentic framework for makers and prototypes. I’ve been using it to power a lot of my recent AI-centric projects.
ai

reflecta

Released:
A simple journal prompting app that allows you to specify categories to focus on, and provides the prompt. The UI is designed to be as simple and calming as possible. As an added feature, there’s an integrated chat feature with DeepSeek’s R1 to reword, retheme, or discuss the prompt.
ai

Motion Planning with Kinematic Constraints

Released:
Here I explore three kinematic models - a skid drive robot, an Ackermann drive robot, and an Ackermann drive robot with attached tow trailer (pictured). In each I utilize the kinematic models and constraints of the given robot model to utilize A* to plan across a continuous space.

Urban Delivery Robot w/ Local + Global Planner

Released:
In this project we created within PyGame a homebrewed simulation of an urban environment with static (trash can, traffic cones, etc) and dynamic (moving cars) obstacles. We then created a street-map aware global planner and a kinematic modeled local planner to asynchronously path the robot from a central grocery store to assigned delivery addresses.

LQR Control of an Intercept and Return Drone Airspace Protection System

Released:
This group project for RBE502 (Robot Controls) had us creating a non linear controller for an interceptor drone system. The system would react to another drone entering its airspace. Utilizing a Linear Quadratic Regulator (LQR) controller, we feed the position of the target drone into the controller. Once the drone gets within a set proximity of the target, it is considered “captured” and is dragged, fighting, back to the launch site for inspection.

SafeStop

Released:
SafeStop is a service that coordinates safely shutting down and halting services and daemonized processes for larger applications when a SIGINT, SIGTERM, or equivalent is triggered.

Behavioral Cloning

Released:
final project for the Udacity Self Driving Car Nanodegree. A CNN observes simulated car’s manual driving and then manages to reproduce the behavior of steering to staying in-lane on a race course.

garden-relay

Released:
An MQTT embedded controller with LCD and button control that automated lights and pumps for my wife’s indoor garden

mqtt-scheduler

Released:
A CLI and config file daemon process that allowed one to easily schedule MQTT broadcasts with human understandable timing (“turn the garden pump on at 7:00pm on Tuesdays”).

needle-swap

Released:
needleswap allowed unit and integration tests to override node’s require for injecting mocks into key components. This made testing significantly easier for code that integrated with third party services

desk-bling

Released:
A Slackbot/Particle Photon app to bling out my desk with Slack-controllable RGB LED strips. Reacted to incoming messages, keyword triggers, and certain events for special lighting effects (lunchtime? disco mode!)

pokemon-tracker

Released:
When Pokemon Go just launched and was a craze for all of a few weeks, an unofficial and bannable API was created to access and control the game. To help keep people focused at work, pokemon-tracker would make use of this API and create a slack bot with a fake account that would “walk” around the immediate vicinity of work and alert coworkers to the presence of any interesting pokemon.

lifx-mqtt

Released:
a program that bridges the WiFI light bulbs made by LIFX to an MQTT server, exposing core functionality as subscribable and publishable topics

Serial Synapse

Released:
A microcontroller that utilizes the serial-synapse defined messaging protocol can be connected to a loosely described node.js serial-synapse object. serial-synapse would then instantly create an interactive node API object to easily automate the hardware and programmatically control it. Asynchronous control, reacting to MCU feedback, and node->MCU hardware control is made effortless. This powered dozens of weird hardware builds throughout the years.

controlled-merge

Released:
allowed merging of multiple javascript objects into a singular object, with an optional function parameter for custom rules on handling conflicts.

CanThey

Released:
CanThey was an ACL based authorization module with optional express integration. This powered authorization on a lot of projects I’ve worked on.

express-walker

Released:
an express service walker that would traverse directories and automatically import routes for an express server in a predictable manner. This allowed an easy standard to be followed by a team and avoided a lot of boilerplate code.

node-packer

Released:
a node wrapper library for Packer for programmatically building images in node.

Wondervent

Released:
a crowdfunding site specifically for events. It allowed organizers test out interest in events prior to making significant investments. Works privately for friend-group events (purchasing movie tickets ahead of time, buying enough art kits for everyone, renting a lodge for a ski trip) and publicly for artists and entrepreneurs (hosting a conference, small concerts, art galleries).

DateSonic

Released:
yes, like every other startup focused 20-something I too entertained “fixing online dating”. Datesonice was a dating website/app that held live events where algorithmically matched people would simultaneously be asked if they were interested. If a match occurred, both people would be immediately dropped into a voice chat to see if they could stand each other. The answer was usually no.

LFG

Released:
Looking For Group was an Android app that created a social network of location-aware meetups on the fly. Users could glance at a map and see available hangouts and spontaneous events popping up near them - needing an extra for bar trivia, pickup sports, hiking partners, and more. Similarly allowed threaded discussions pinned to a set physical location and range. Eventually pivoted to entirely a location-based HTML5 and Android chat rooms called ZoneChat.