view as Story

Intro Statement

Senior software engineer with 10+ years of experience at small to medium sized startups, agencies and large corporations. Helped scale ARR from $9M to $33M at ConvertKit through implementing highly scalable, data-intensive systems. Recipient of a Davey Gold Award, W3 Gold Award, HOW Interactive Merit and an OMMA Award nomination.


I want to work with:

elixir erlang/OTP ruby go rust python

Experience 8 positions (14 years, 3 months)

Sr. Engineer


Jan, 2017 → Current (6 years, 9 months)

ruby ruby-on-rails elixir redis sidekiq amazon-web-services heroku github go mysql postgresql cassandra elasticsearch backend
  • Implemented a cost-efficient, event-driven analytics backend processing over 30,000 events per minute, empowering customers to analyze vital business metrics, including traffic sources and revenue streams.
  • Developed engagement analysis of over 4 billion customer subscribers, processing real-time events such as email opens, link clicks, page views and product purchases to enable powerful targeting and audience segmentation.
  • Pioneered machine learning and behavioral analysis systems for credit card fraud prevention, saving over $450,000 in losses and ensuring the seamless processing of over $3,000,000 in monthly revenue.
  • Built robust spam and bot detection systems, ensuring a 99.5% email delivery rate for 2.5 billion monthly emails, safeguarding the company’s reputation and preventing automated sign-ups.
  • Conducted regular “Lunch & Learn” sessions on topics such as OO Design, Testing, DDD, and Systems Design, enhancing code quality, such as reducing flaky tests by 25%.
  • Mentored Junior engineers through continuous education and pairing, enabling others to reach their career goals.
  • Added documentation generation to CI/CD pipelines; led the adoption of RDoc, improving code reliability.

Owner / Engineer

Capture The Castle

Aug, 2009 → Jul, 2021 (12.0 years)

ruby elixir phoenix ruby-on-rails rspec backend

Capture The Castle was my personal freelancing business. Building software for small and large businesses.

Full Stack Developer (Ruby On Rails)

Kannu (Formerly Kadenze)

Nov, 2014 → Jan, 2017 (2 years, 3 months)

ruby ruby-on-rails knockout.js javascript sass rspec redis sidekiq haml jst jira kanban agile

Working fully remote. Implementing features for a MOOC and LMS platform focused on providing the best user experience for students from all over the world to learn about art, code, and creative collaboration. My responsibilities included gathering specifications and requirements from designers, marketers, customers, and building full stack solutions to solve those problems. From implementing the backend API in Rails to the front end UI and UX written in HAML, JS (A lot of Knockout), and SASS.

Front End Engineer


Aug, 2012 → Nov, 2014 (2 years, 4 months)

tfs visual-studio less javascript scrum agile

Front end engineer on a scrum team consisting of 7, in a department of 16 scrum teams.

Full Stack Developer (Ruby On Rails), contract.


Jun, 2014 → Sep, 2014 (4 months)

ruby ruby-on-rails vim circleci continuous-integration rspec3 tmux

Working fully remote. Responsible for adding various, full stack, features to an email archive web service.

Full Stack Developer at WINTR

Nov, 2011 → Aug, 2012 (10 months)

ruby ruby-on-rails capistrano ssh command-line zsh haml javascript css html amazon-elastic-beanstalk

Interactive web developer in a small fast paced agency working with several high profile clients and companies. I would work on the full stack of any website or application I was assigned, from back end to front end. Work was produced on fairly tight deadlines at a very quick rate. I built the 2012 Sasquatch Festival website that won a Davey Gold Award, W3 Gold Award, HOW Interactive Merit and an OMMA Award nomination.

Web Developer

Taphandles LLC

Oct, 2010 → Oct, 2011 (1 year, 1 month)

html css javascript php mysql wordpress photoshop adobe-illustrator adobe-indesign

Taphanldes is a firm focused on the craft beer industry. I was part of a design team working on production design projects as well as developing all client websites. I was the sole developer at the time.

All websites that were produced at this time were built with wordpress, php, and MySql. The WP interface would be customized completely for the clients needs.

Web Developer at Progressive inovations / The Canopy club

Jul, 2009 → Aug, 2010 (1 year, 2 months)

html css javascript php mysql wordpress photoshop adobe-illustrator adobe-indesign

I was in charge of all promotions media produced by the company, this ranged from print ads, posters, festival merchandise and signage, festival web sites, event web sites, and the company web site.

All web sites were built on Wordpress with highly customized interfaces depending on the content that needed to be managed. The company would produce very large music festivals which resulted in very high traffic to the websites, I would combat this with heavy caching and optimization where possible.

Show More Experience

Apps and Software (3)


March, 2022

I made DevStory in response to StackOverflow shutting down their resume / CV product. The goal of this project is to provide a good way for developers to communicate their work and learning history, hopefully landing them a great job! Built with Elixir/PhoenixLiveView

Myco Farm Co.

September, 2020

elixir nerves-project iot influxdb

Myco Farm Co. is a small scale farm specializing in gourmet & medicinal mushrooms.

Using proprietary technology, called MycoBot, we grow Maitake, Lion's Mane, Chestnut, King Oyster, Golden Oyster, Blue Oyster, Turkey Tail and more.

Syndicate App.

April, 2018

elixir phoenix redis digital-ocean dokku postgresql

Automate email arrivals to your inbox with powerful rules. Take control of your Syndication with anonymity and automation.

Public Artifacts (13)

Elixir - Score: 201/300

December, 2021


Ruby Language Fundamentals - Score: 244/300

July, 2021


Building Web Apps with Ruby On Rails - Score: 211/300

July, 2021

ruby-on-rails web-applications

EMx 104: Deploying Elixir with Mix, Terraform and Ansible with Jon Lunsford

August, 2020

elixir ansible terraform amazon-web-services smtp

In this episode of Elixir Mix, we talk with Jon Lunsford about Elixir’s many releases and deployment options, why/how to deploy Elixir with Terraform and we learn why Jon built an SMTP server in Elixir! Sponsors | Career Rocket Fuel For Curious Coders CacheFly Panel Alex Koutmos Steven Nuñez Lars Wikman Sophie DeBenedetto Guest…

Deploying Elixir (3 of 3): Provisioning EC2 With Ansible

June, 2020

elixir ansible terraform amazon-web-services

Provision an EC2 instance with Ansible for elixir deployment. third in a series of three posts on deploying Elixir.

Deploying Elixir (2 of 3): Terraforming an AWS EC2 Instance

June, 2020

elixir ansible terraform amazon-web-services

Prepare an EC2 instance with Terraform for elixir deployment. Second in a series of three posts on deploying Elixir.

Deploying Elixir (1 of 3): Building Releases With Mix

June, 2020

elixir terraform ansible

Build elixir releases locally with Docker & Mix. First in a series of 3 posts on deploying Elixir.

Elixir: Building a Small JSON Endpoint With Plug, Cowboy and Poison

May, 2019

elixir plug cowboy poison

Let’s see how easy it is to build a production ready endpoint with Plug, using Erlang’s Cowboy HTTP server

Refactoring Ruby: Introduce Null Object

September, 2018

ruby refactoring

Introduce Null Object is a great refactoring tool when you find yourself checking for nil too often. nil checks are often signs of much…

Refactoring Ruby: Extract Method

September, 2018

ruby refactoring

Extract Method can be used when you have several expressions, a code fragment, that can be grouped together. Even if there is one…

Refactoring Ruby: Replace Temp with Query

August, 2018

ruby refactoring

Let’s look at another simple yet powerful refactoring method, Replace Temp with Query. You can use this when you have a temporary variable…

Refactoring Ruby: Extract Variable

August, 2018

ruby refactoring

Let’s take a look at a simple way to add clarity to your ruby methods. Extract Variable or Introduce Explaining Variable, it’s probably one…

Receiving Emails Over SMTP With Elixir

November, 2017

elixir smtp

Let’s see just how simple SMTP is with elixir/erlang. I began experimenting with this mostly as a learning tool to get more familiar with…

Show More Public Artifacts


The Ruby Programming Language

by David Flanagan, Yukihiro Matsumoto

JavaScript: The Good Parts

by Douglas Crockford

Domain Driven Design

by Eric Evans

Tackling Complexity in the Heart of Software.

Designing Data-Intensive Applications

by Martin Kleppmann

Mastering Reliability, Scalability and Maintainability in large applications.

Concurrent Data Processing in Elixir

by Svilen Gospodinov

Learn different ways of writing concurrent code in Elixir and increase your application’s performance, without sacrificing scalability or fault-tolerance.