I solve complex problems, usually with code. I build delightful, accessible user experiences for the web. I am a software engineer.
My passion is programming. Even when I’m not at work you can frequently find me on a computer learning new techniques and building personal projects. Code isn’t everything to me though. I also thoroughly enjoy spending time with my family, organic gardening, and cooking delicious food.
Decisiv Inc, Glen Allen VA (Remote)
Software Engineer May 2016 - PRESENT
I was initially tasked with full-stack development tasts on a monolithic Ruby on Rails/ Angular JS application. This included adding new features, integrations, and resolving issues as they arose.
BREWPUBLIK, Charlotte NC (Remote)
Software Engineer January 2016 - April 2016
I developed an administrative application for internal business users in React JS that allowed easy access to customer data and reporting tools.
POE Innovations LLC, Charleston SC
CEO, Software Engineer June 2014 - April 2016
This was a technology company that I founded with two primary objectives: learn about building a business and learn about building software. Work here consisted of two projects:
- An algorithm (written in Python) that evaluated wholesale inventory data against Amazon product data to predict profitable products that would sell quickly. This program was used to direct product purchase decisions for an Amazon storefront.
- A SaaS application (written in Ruby on Rails) named Flat Rate Tracker. This service helped automotive technicians track their earnings and verify they had been paid correctly. This service was launched publicly and did get some subscribers, but the MRR was insufficient to warrant the attention the project required.
BEM-flavored conventions in your Styled Components.
Styled Components is a superb CSS-in-JS
tool. BEM is a wonderful CSS convention.
styled-components-modifiers allows you to combine the best of both worlds.
This is a library I developed to simplify our styling at Decisiv that was then
open sourced. All of Decisiv’s React JS based projects use this tool extensively
and feedback has been very positive. When I last looked it had almost 200,000
downloads on NPM.
The design system for Decisiv, built with Styled Components.
Decisiv has had a long running effort to modernize their applications. This project was a concerted effort to create a standard toolkit for building new applications and updating older applications. Key Design System has received company wide praise for enhancing consistency across our new projects, dramatically improving development time, and improving the accessibility standards in our applications.
This project is managed according to requirements set by the Decisiv, but is freely available for use by anyone. I have served as the lead developer for this project.
A demo app for a unique approach to handling API requests with Redux.
While at Decisiv, the UI team encountered significant issues with making,
tracking, and handling responses from RESTful API requests. We attempted several
patterns over different projects including our own initial best efforts, the
“officially documented” approach, and
redux-saga. All of these approaches
resulted in inconsistent implementations, a high level of code complexity, and
tons of boilerplate code.
I developed an internal package called
redux-flight-control that handled
deduplication, managing requests through their lifecycles, and handling
responses when the request was resolved (or errored). This package ended up
saving well over 100 lines of repetitive boilerplate code for every API
request in our app which both reduced code bloat and improved development time
for new features. Additionally, implementing good error handling and loading
states was drastically simplified.
The package I developed is internal, but the public git repository for the demo app linked above includes a generalized implementation and documents the core technique. The technique is very similar to the approach recently adopted by redux-toolkit for async actions.