My name is Andrew, and I am a writer, a coder, a husband, a father, a dreamer, and a creator. I live with my wife and three kids in Chattanooga, TN. I was born in California, and have also lived in Colorado and Georgia.


Motivated, personable developer with ten years of experience and a successful history of tackling technology challenges. Creative problem-solver that achieves quick results by thinking outside the box and using standards based code. Able to envision user needs of multiple generations and approaches to technology. Brings back-end logic and understanding to front-end code and design. Passionate about aiding users and companies to achieve their goals through innovative solutions.

Flexible and versatile – able to maintain a sense of humor under pressure. Thrives in collaborative environments and always receptive to feedback. Looks for ways to improve both individually and company offerings. Enjoys mentoring junior developers and encouraging them to reach new levels of their craft.


I desire to connect people, companies, and technologies in a synergistic union because I believe applications can be used to aid people's daily lives. Technology and knowledge should be accessible to all people and available in a way that is simple and easy to use. I believe that I should make things easy for the user and difficult for myself. No shortcuts and no quick-fixes. Things should be done right the first time.

My Resumé


Don't Go To Jail

Based on the classic game of the same name originally produced by Parker Brothers (all copyrights and trademarks remain theirs), I made this game mostly for me and my family to be able to play together.

Created using React, create-react-app, Sass.

Click here to play the game Click here to see the source code Click here to see me talk about the game

Case Studies

Rezli - Reacting Well

Rezli brought me in to help them get down 'the last mile' in the front end as they were readying version 1.0 of their social networking app. I worked closely with their designer to determine how the UX of their product should look and feel for their users.

The original version of their app was created for them by contractors who chose to use React.js everywhere. The core dev team and I were less-than-familiar with React development, so part of the work I did was to convert some of the JSX templates to HTML/Slim templates and taking the JavaScript components out of the React framework and recreating them in pure JavaScript and/or jQuery. In other places of the app, I had to add new functionality and content using React, giving me valuable insight as to when React and event-driven frameworks like it are useful, and when they're not.

  • CSS
  • JavaScript
  • jQuery
  • Ruby
  • React.js
  • SCSS
  • Slim

Navigate My Campaign - Website and Branding Generator

Navigate My Campaign wanted to become the one-stop shop for local politicians looking to launch and manage their campaigns for election all in one place. A big aspect of the product was having a unified platform where they could create and manage their website along with matching flyers, letterhead, and business cards.

I created the website generator and print materials generators using Ruby on Rails and Prawn (a PDF creator), and adapted and created the custom templates used by the generator. Each website also integrated with Facebook Pages and Twitter via API, allowing politicians to post in one place and have it automatically show up on their website too, negating the need for a full CMS and lowering the barrier to entry for non-technical candidates.

  • Ruby
  • Rails
  • CSS
  • HTML

Firma 8 - Site Translation

One of Firma 8's earliest products was a social network with a global audience, and we wanted a way for them to be able to talk to each other. Using the then-new Google Translate API, I was able to create a prototype "near realtime" website translator with intelligent search-and-replace capability. This grew into a full business, allowing us to translate content for Fortune 500 companies while preserving their branding and industry-specific terminology.

  • JavaScript
  • Rails
  • Ruby

Firma 8 - Document Translation

Once Firma 8 transitioned into offering translation services, we determined that document translation was going to be a necessary product as well. I first examined Microsoft Word's Open Office XML (OOXML) format, since I knew it would be easier to manipulate well-structured data. What I didn't anticipate was how much formatting was included in the middle of the text. This required creating algorithms which could extract the text in-full for translation and then remember where to re-insert the content so as to preserve as much formatting as possible. For the non-XML, older version of Word I used a SOAP-based conversion service to convert documents into OOXML prior to translating.

  • Rails
  • Ruby
  • SOAP
  • XML

Firma 8 - Video Transcoding Service

I helped Firma 8 create a service whereby customers could upload videos they wished to host online and get back a highly-optimized, web-ready file or embed code. The process and technology we employed was so unique it was awarded a patent from the USPTO (Pat. No. 9,565,430). I created the front end web-based interface for the service, as well as offering consulting services for implementation of the backend of the service.

  • CSS
  • JavaScript
  • Rails
  • Ruby
  • SCSS

Fiction Writings


Hacking Games Together with React

Or: How to Do Things by Not Doing Nothing

Given at ChaDev 8/3/2017

Find Your Story

Build Better Sites by Building Better Stories

Given at ChaDev 9/17/2015

Non-Fiction Writings

Art and Comics

Faith, Hope, and Love in the 24th and a Quarter Century

I wrote this play - my first stageplay - in just under 10 hours for a 24-hour play festival. I got to read through the script once with the cast, and then didn't see it actually performed until I shot this video of it.

I had no creative restrictions except that I had to include two props someway, somehow into the story: a doctor's stethoscope, and duck-shaped salt and pepper shakers. It was supposed to be 10 minutes long or less, but it came in closer to 20.