Principal Engineer2014 - PRESENTVend
- Technical lead for the next-generation reporting feature for retailers to better understand their business data.
- Implemented Docker containers for continuous integration.
- Implemented seamless migration strategy to a BCrypt password hashing algorithm.
- Contributed to the Java API service that reduced API response times for large calls from multiple tens of seconds to tens of milliseconds.
- Architected an Elasticsearch cluster for real-time bucketing and aggregation of sales and payment data.
Founder2013 - PRESENTApostle.io
- Responsible for the entire product from development and operations to support and business management.
- Implemented a highly scalable queue-based system for receiving, processing, and delivering emails to delivery providers that has handled tens of millions of emails.
- Implement best practice API, with OAuth Bearer Tokens, for consumption by the Angular Front-end and third-party integrators.
- Implemented an Angular Front-end for management of email templates, delivery analytics, email insights, and account management.
- Created a small decoupled "microservice" architecture for important features to avoid high maintenance costs and/or decreased performance of the main application.
- Implemented payments with Stripe.
- Created tooling for application-level replication of Postgres for zero downtime migration from a "locked in" Postgres provider.
Senior Web Developer2009 - 2014SitePoint
- Member of the team that built learnable.com, I was responsible for the Course Builder component that allowed instructors to generate their own courses (comprising of video, articles, and file downloads).
- Built the reporting infrastructure for author royalties from both traditional eCommerce sales and subscription-based revenue apportioning.
- Built a metrics system responsible for targeted advertisements on landing pages based on page content, referrer queries (Google etc.) and custom weightings.
- Maintained legacy eCommerce and email campaign tools.
- Built a screenshot API that returns screenshots of webpages from various devices utilizing Selenium Grid, EC2, and a custom Ruby on Rails application.
- Vend Reporting (Development)https://www.vendhq.com/tour/pos-reporting
Architect and Tech Lead on the next-generation reporting project. Built from scratch using Go, Elasticsearch and Angular.js, this project lets retailers deep dive into their sales, payments, and inventory data. They can mix and match dimensions, aggregates, and filters to create completely custom reports as their business requires.
- Book: Level up Your Web Apps with Go (Other amazing things)
My book, targeted at web developers looking to learn Go. It covers the syntax, the toolchain, testing, concurrency and deployment, and guides the user through a full web application project from start to finish.
- Apostle.io (Development)http://apostle.io/
I founded Apostle.io to address the ongoing disconnect between companies' requirements for transactional emails and the technical skills required to implement them. By implementing Apostle.io, web developers are no longer required to make updates to the emails that web applications send, freeing them up to do the important stuff. Apostle.io is a transactional email service that lets you effortlessly send, edit, and track transactional emails, and integrates with all the popular email delivery providers.
- Learnable: Become a better developer (Development)https://learnable.com/
I was one of the original developers, and eventually led the development of, learnable.com. Learnable was originally a two-sided marketplace for instructors to build and sell their courses online. I was responsible for most aspects of the application over time, and helped transition the application from three distinct applications (PHP, Ruby on Rails, and Django-based) to a single unified Rails application.
FrameworksAngularJS, Ruby on Rails (RoR), JSON Web Tokens (JWT), OAuth 2, Symfony 2
Libraries/APIsRedis Queue, Node.js, GitHub API, Twitter API
PlatformsMacOS, AWS EC2, WordPress, Linux, iOS
StorageMySQL, JSON, Elasticsearch, AWS S3, PostgreSQL, Redis, AWS RDS
OtherFront-end, APIs, Multitenancy, Security
ToolsGit, GitHub, Vim Text Editor
ParadigmsDistributed Programming, Concurrent Programming