Robert Carpenter

robert@tumblerlock.io — Boulder, Colorado

Personal Summary

Robert Carpenter is a devops and polyglot software engineer with ~13 years professional experience in web and related development. He is experienced in automated deployment, continuous integration, software architecture, collaborative development, user interface design, and quality assurance testing.

Code Samples

Adjacent to this resume are several projects that I consider to be my best work. Some of it goes back decades, but it has become work which I muse about often and still have a lot of pride in.

Each project has it's own readme with thoughts on why I've decided to include it in my resume, when I wrote it, and information on running the code.

code samples →


Notable Projects

  • Developed a continuous integration system and push button, green-blue deployment for Elixir/Phoenix on AWS. Deployment runs on Docker containers via Elastic Container Store and Fargate managed container system. Terraform infrastructure as code, with integration to Ansible where needed.
  • Designed and deployed a full access control managed database and API secret management via AWS IAM policies and Parameter Store, with zero secrets written to disk, ever. Multi environment friendly and developer friendly.
  • Strong contributor in the construction of custom PHP MVC and ORM backend designed specifically to replace an existing ERP system. Specific contributions include SQL abstraction layer, API creation and integration, and automation/generation framework.
  • Lead engineer in the development of a Rails based online store and marketplace for PCB designs. Project scope included: organizing, parsing, and rendering RS-242X files; API integration with FedEx, Endicia (USPS), Authorize.net, PayPal; developing HTML structure and layout from marketing mockups; business and accounting reports; and a full-featured business management back end.
  • Code Mentor working regularly with individuals one on one to teach them how to write basic scripts, websites, and basic embedded development. Professional electronics and beginning embedded development educator for all ages. Regularly works with established programmers to get them more fluent with ruby and the rails environment.

Expertise

Deployment

Automatic, push button, scripted, and manual multi-environment deployments to various AWS services, docker clusters, etc. High availability deployment and auto-scaling infrastructure. Experience with AWS CLI API for scripting unique architectural patterns in AWS.

Current: AWS EC2, ALB/ELB, ECS/Fargate (docker on aws); Database and API Secrets Management, various Continuous Integration services, Ansible, nsd3 / BIND9 / Route53 DNS, L(A|E)MP
Familiar: Chef, PHP, Capistrano
Infrastructure as Code

Executable documentation to manage predictable, repeatable, disposable environments. Enforcing parity between production, staging, and testing/qa environments. Change management via versioned infrastructure as code.

Current: Terraform, Ansible, Chef, Bash, Perl Familiar: CloudFormation, Salt
Developer Workflow

Docker compose for collaborative development, integrating automatic deployments with code review workflow. Coordinating easy ways of developing with multiple platform technologies in parallel (API/Web/native mobile, etc).

Current: Docker, Compose, Elixir/Phoenix, Ruby/Rails
Internet

Knowledgable in the creation of web applications from initial prototype to scaleable automated deployment. Experienced server administration in Debian environments with technologies including Rails, Nginx, Apache, and BIND9/nsd3. Application deployment including automated deployment, DNS management, and server setup.

Current: postgres, Rails, HTML, haml, markdown, CSS, sass
Familiar: mongoDB, mysql, less, python
Dated: perl, PHP, javascript, jQuery
Software Architecture and Integration

Experience managing a large project from overall system design down to the low level detail. Development of an API for use by other engineers using json/REST. Third-party systems integration with XML, SOAP, json, REST. Background processing for computationally intensive tasks using asynchronous worker processes.

Current: JSON, REST, API Integration, sidekiq/resque

Professional Experience

TumblerLock.io, DevOps and Software Architecture Consultant — Jan 2017 - Current

Building automated deployments in AWS and Azure for various deployment environments including Ruby, Elixir, .Net Core & Framework, etc.

Specializing in Continuous Integration and push button deployment architectures, specifically integrated with Github, Bitbucket, Amazon Web Services, Digital Ocean.

Urgent deployment of High Availability, load balanced clusters for Wordpress and other architectures experiencing unexpected load.

Terraform, Ansible, Ruby, Rails, Elixir, Phoenix, AWS EC2, Docker, CodeDeploy

Gloo.us, Senior Developer (Ruby & Rails) — May 2013 – April 2017

FT Contract: May - July 2013
PT Contracted: August - October 2013
FT Salary: November 2013 - April 2017

Worked with several small teams to build an iOS/Android/Web based content publishing and social platform. Specifically worked on event-driven analytics and web client teams. With the analytics team I: built an asynchronous event generation and pass-through system to provide the analytics infrastructure with a JSON event stream; designed and constructed an event receiver and data source API in Node.js; worked with d3.js and other charting libraries to render client side, interactive graphs; and worked on automated code deployment using Jenkins and custom Chef recipes. With the web client team I: helped design a client-side web framework to render client content using Twitter Flight; designed and developed an in-browser routing, click-jacking, and history API library.

Rails3, Node.js, d3.js, Chef, Nginx, Redis, Postgres, AWS.

BatchPCB, Lead Engineer — Feb 2011 – May 2013

Lead a ground up rewrite of batchpcb.com, replacing an antiquated, vulnerable and broken framework with Rails3. Included automated background parsing of Gerber (RS-242x) files according to formal spec to assess validity and manufacturability, automatically calculating cost and price, rendering images. Business management software including order management in a state machine, user account management, and user upload management for customer service personnel. Front end website allows registered users to upload PCB designs, view rendered previews, order boards, and optionally open source designs for purchase by the general public. Order processing included PayPal, Credit card via Authorize.net, USPS via Endicia, and FedEx API integration. Version controlled with Git.

Debian, Ruby on Rails 3, Nginx/Passenger, Redis, MariaDB. FedEx, USPS (Endicia), Authorize.net, PayPal, Git

SparkFun Electronics, Developer — Mar 2010 – May 2013

n.b. SparkFun owns BatchPCB

Worked as part of an 11 person team on sparkfun.com and the related business management back end. Helped construct an in house web MVC framework and ORM from the ground up in PHP. Personally contributed a framework scripting implementation, order processing logic, several third party API integrations, and inventory tracking / mapping.

Linux, Php, Nginx, MariaDb, memcached, javascript & jQuery, Bootstrap CSS

New Horizons Computer Learning Centers, IT Tech — Sept 2009 – Feb 2010

Worked to daily deploy full scale operating system and class software roll outs across ~15 classrooms in 5 locations across the Denver area as part of a 3 man team.

Freelance — Jan 2006 - Aug 2009

General IT provider. Consulted with clients on network architecture and server builds for businesses and schools. Built out several custom websites based on the LAMP stack, deployed to shared and virtual hosts.

Grace Preparatory Academy, Lead IT & Tech Educator — Aug 2005 – Aug 2009

Initially worked as a technology educator for middle and high school students. Lead a new and growing private school in the build out a campus wide LAN, built an initial Active Directory network management server with Debian/Samba, then later migrated to a full Windows 2008 Server. Taught programming in Python, Video production with Adobe Premier, Microsoft Office basics, and Pre-Calculus.


Education

Fort Lewis College — Graduated Fall 2007 — Bachelor of Arts in Computer Science. Studied Human Computer Interaction (HCI), Embedded development, and Operating System design.