view as CV

Jon Lunsford

Engineer @convertkit
San Luis Obispo, CA

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

Assessments By Pluralsight IQ


Filter Timeline:

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

Sr. Engineer at ConvertKit


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%
Feature or apps • March, 2022



elixir phoenix live-view fly-io postgresql github-actions

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

Assessment • December, 2021
Elixir - Score: 201/300
Assessment • July, 2021
Ruby Language Fundamentals - Score: 244/300
Assessment • July, 2021
Building Web Apps with Ruby On Rails - Score: 211/300
ruby-on-rails web-applications
Position • Aug, 2009 → Jul, 2021 (12.0 years)

Owner / Engineer at Capture The Castle


ruby elixir phoenix ruby-on-rails rspec backend

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

Feature or apps • September, 2020

Myco Farm Co.


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.

Blogs or videos • August, 2020

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


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…

Blogs or videos • June, 2020

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


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.

Blogs or videos • June, 2020

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


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.

Blogs or videos • June, 2020

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


elixir terraform ansible

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

Blogs or videos • May, 2019

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


elixir plug cowboy poison
Elixir: Building a Small JSON Endpoint With Plug, Cowboy and Poison

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

Blogs or videos • September, 2018

Refactoring Ruby: Introduce Null Object


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…

Blogs or videos • September, 2018

Refactoring Ruby: Extract Method


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…

Blogs or videos • August, 2018

Refactoring Ruby: Replace Temp with Query


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…

Blogs or videos • August, 2018

Refactoring Ruby: Extract Variable


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…

Feature or apps • April, 2018

Syndicate App.


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.

Blogs or videos • November, 2017

Receiving Emails Over SMTP With Elixir


elixir smtp
Receiving Emails Over SMTP With Elixir

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…

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

Senior Software Engineer at Kannu (Formerly Kadenze)


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.
Position • Aug, 2012 → Nov, 2014 (2 years, 4 months)

Front-End Engineer at MINDBODY


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.
Position • Jun, 2014 → Sep, 2014 (4 months)

Software Engineer (Contract) at AlphaSights


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.
Position • Nov, 2011 → Aug, 2012 (10 months)

Software Engineer at WINTR.US


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.
Position • Oct, 2010 → Oct, 2011 (1 year, 1 month)

Web Developer - Lead at Taphandles LLC


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.
Position • Jul, 2009 → Aug, 2010 (1 year, 2 months)

Web Developer - Lead at The Canopy Club


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.

Recommended Reading

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.