view as Story

Intro Statement

Sr. Software Engineer with 13 years experience designing cost-effective, data-intensive and scalable systems.

I’ve architected many complex systems, some that:

  • Evaluate the quality of 50,000+ monthly account signups, reducing fraudulent activity by 90%.
  • Ingest 100k+ events per second, process terabytes of data and power complex analytics features.
  • Evaluate the quality of user generated content, ensuring a 99.5% delivery rate of 2.5 billion monthly emails.
  • Detect and prevent fraudulent Credit Card activity saving over $450,000 in losses.
  • Mitigate bot traffic to endpoints receiving 100k+ submissions per minute.


I want to work with:

elixir erlang/OTP ruby go rust python

Experience 8 positions (15 years, 1 month)

Sr. Engineer


Jan, 2017 → Current (7 years, 7 months)

ruby ruby-on-rails elixir redis sidekiq amazon-web-services heroku github go mysql postgresql cassandra elasticsearch backend
  • 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.
  • Founded a cross-functional Trust & Safety Team, facilitating all communication, project prioritization and technical scoping.
  • Designed and built a comprehensive flagging and monitoring system, reducing the rate of abusive account creation by 90%.
  • Implemented a cost-efficient, event-driven analytics backend processing over 30,000 events per second, 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.
  • 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%

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.

Senior Software Engineer

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
  • Improved PostgreSQL performance in a classroom forum feature, speeding up thread loading by 70%, fostering better student-professor collaboration.
  • Engineered a robust, real-time tracking system for interactive classroom UI, recording over 10,000 client-side events per minute; enabling highly accurate progress tracking and streamlined coursework submission.
  • Reduced reported errors by 10% by speeding up test feedback and educating others on best practices.
  • Collaborated with designers and project managers to deliver education based features to hundreds of universities globally, enabling thousands of students to collaborate, learn & submit coursework.

Front-End Engineer


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

tfs visual-studio less javascript scrum agile
  • Introduced testing on the front end, reducing errors reported by 17%.
  • Optimized front-end best practices, resulting in a 2x increase in the number of features delivered.
  • Led regular interactive training sessions for 20+ engineers on front-end best practices, fostering continuous learning.

Software Engineer (Contract)


Jun, 2014 → Sep, 2014 (4 months)

ruby ruby-on-rails vim circleci continuous-integration rspec3 tmux
  • Built an internal email processing tool, resulting in a 30-minute reduction in sales lead processing time by designing a rules engine to parse incoming messages and extract content for quicker analysis.

Software Engineer


Nov, 2011 → Aug, 2012 (10 months)

ruby ruby-on-rails capistrano ssh command-line zsh haml javascript css html amazon-elastic-beanstalk
  • Architected web applications for top brands like Microsoft, Starbucks, Stanley, AT&T and Western Digital. Developed the 2012 Sasquatch Music Festival Site, winner of three awards and one additional nomination.

Web Developer - Lead

Taphandles LLC

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

html css javascript php mysql wordpress photoshop adobe-illustrator adobe-indesign
  • Established reusable website components and patterns, decreasing delivery times by 20%.
  • Launched custom, interactive, websites for top breweries nationwide, meeting critical deadlines.

Web Developer - Lead

The Canopy Club

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

html css javascript php mysql wordpress photoshop adobe-illustrator adobe-indesign
  • Implemented secure CMS systems enabling the management of over 20 websites related to music venues and festivals.
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.