ZapierMarch 2021 - present
SRE Engineering Manager
Zapier is a no-code solution for automation. It ties many APIs together through a combination of webhooks and polling.
I was the engineering manager of one of the SRE teams as well as one of the Staff Engineers.
* Monitoring and Metrics through a mix of Grafana, Prometheus, DataDog, PagerDuty, and GrayLog.
* Ran multiple elasticsearch clusters
* 1:1 with my direct reports
- Manage 8 at Kubernetes cluster for both production and staging environments. Over 3000 pods running varied workloads.
- 100% Infrastructure as using Terraform, Helm, and GitLab pipelines.
- Built the primary GitOps tool for managing which images are deployed to each environment. This included monitoring ArgoCD statuses and Slack Notifications for each team.
- Helped run the migration from GitHub to GitLab which included migrating thousands of repositories and CI/CD pipelines.
- Ran upgrades of Kubernetes from 1.16 to 1.21
- Built training and onboarding documentation for new SREs
EventRayJune 2016 to March 2021
EventRay is a conference registration platform to help meeting planners easily build their registration website, collect payment for the event, and analyze the attendee data to make better decisions while planning the on-site.
As the founder of EventRay, I bootstrapped it from two-founders to 10 employees, 3 contractors, and $900k annual revenue.
I helped architect and develop every portion of the applications.
* API is a set of microservices built on top of Pyramid, SQLAlchemy, Celery, Redis, Nginx, and Gunicorn.
* Attendee mobile apps for viewing agenda, speakers, sponsors, and any live streams of the event built in react-native and deployed on iOS, Android, and Mobile Web
* Desktop application for printing badges and tickets on-site and checking attendees into the event built in Electron and deployed on Windows, Linux, and Mac.
* Our infrastructure was a multi-cloud environment built on a combination TeamCity, Github Actions, Ansible, Docker, AWS, and our own half-rack data center built on top of VMWare and Proxmox.
- Developed our own embedded programming language for declaring logic on forms for hiding/showing elements, changing responses, and navigating to different pages. Wrapped this in an easy to use UI so that our customers could create truly dynamic registration forms.
- Developed a cross-platform internationalization (i18n) engine using gettext so that all our applications (React.js, React-Native, Electron) and our APIs (Python) could share translations.
- Developed a data analysis engine using the same embedded language and UI that the logic for our registration forms used to provide a truly ad-hoc reporting engine
- Scaled out to 15,000 requests per minute for a single event
- Collected over $30 million dollars for our customers through a variety of payment gateways (Payflow Pro, Stripe, Authorize.net)
- Integrated with Salesforce, Zapier, MailChimp, Google Suite, and many more industry specific API providers.
- Intefaced with USB HID devices to do 1D, 2D, and QR barcode scanning.
SurveyMonkeyMarch 2013 to June 2016
Principal Software Engineer
SurveyMonkey is a self-service survey and response collection engine. They are a service oriented architecture with 47 projects deployed over 200 machines and serve millions of requests per hour. They are developed in Python (Pyramid) on top of memcached, redis, and SQL Server.
I worked on the analytics team where I developed the tools for survey creators to get insights on their response data and create ad-hoc reports in real-time and also export to multiple formats, including XLS, PPT, and CSV.
I lead the team that built the new generation of analytics engine based on Kafka, Zookeeper, and Cassandra that powered our polling team for the 2016 presidential election that was covered by CNN, New York Times, and MSNBC.
- Architected the central logging, caching, and validation libraries that all services within the company use.
- Designed a new real-time ETL engine that extracted terabytes of data from SQL Server 2012 and transformed it into 2D arrays that were encoded in a sparse matrix with variable length data types that tremendously reduced the size of the data and overall query time.
- Automated the deployment of all 47 projects and provisioning of the application servers using Ansible. These scripts were also used within vagrant to provision local development stacks.
- Helped with the initial adoption and deployment of openstack within the company
- Helped improve performance and overall scalability. This includes improving our caching and migrating us to gunicorn from paster and optimizing nginx.
- Designed the gunicorn strategy for zero downtime deployments for continuous deployment
DevtooDecember 2011 to March 2013
Senior Software Engineer
Works as a software development contractor where I contributed to a variety of companies and platforms.
I worked on Python, C#, and PHP projects as a full-stack contractor. On the frontend I worked on jQuery, Backbone.js, and React.js applications.
- Developed an online classroom (mooc) that integrated a PHP LMS (moodle) with google classroom technology.
- Built a real-time chat platform utilizing RabbitMQ and socket.io
- Created an open-air photobooth that utilized canon SLR cameras and PyGame to layout branded photos at bars, concerts, and parties.
PictageMay 2011 to December 2011
Senior Software Engineer
Pictage (ShootQ) is a business management platform for professional photographers. I helped develop web applications and services that would allow photographers to quote services, collect payment, and share the final photos with their customers.
We integrated with Amazon S3, Facebook, Twitter, and Salesforce
- Worked on ShootQ, a web service used by photographers to manage their business and CRM data.
Worked with a variety of technologies to solve unique scalability problems, including varnish, redis, and RabbitMQ
- Worked on nimbus and atrium, a unified “website/blog” and “customer identity” platform used by photographers to establish online presence for their businesses.
Helped build the tools that helped their brand their business website, photo galleries, and invoices.
Orchid EventsJanuary 2006 to May 2011
Senior Software Engineer
Orchid is a conference Management and registration software for generating dynamic forms with complex business logic. We were an enterprise event management company that had both a SaaS offering as well as an on-premise product.
I helped architect and develop every feature of the product. It was developed in C#, ASP.NET, and SQL Server.
- Had to scale up to 15,000 writes per minute
- Implemented standards to make the company PCI compliant
- Created an analytics engine for filtering and executing custom reports and exporting them to a variety of forms (excel, pdf, word, html).
- Interfaced with multiple payment gateways through Authorize.net and Verisign and developed the encryption necessary to pass the visa requirements to store credit card information
- Helped manage the Cisco PIX firewall and many layer2/3 switches for both our development and production environments
- Configured and managed the subversion server setup (tags, branches, trunk) and merged over 5 years worth of code from sourcesafe and team foundation server to SVN.
My Horse PlayerApril 2005 to January 2006
MHP was a data analytics platform for horse handicappers. We developed our algorithm for classifying horses and provided tools to our customers to predict winners based on criteria they chose.
I had to parse and analyze terabytes of historical horse racing data and generate statistics to help handicappers bet on the races.
- Created a windows application using XML, SOAP web services, and C# .NET for generating and displaying statistics on horse races.
- Ported the windows application to an ASP.NET application
- Created a full company web based intranet with C# which involved task scheduling, time sheets, work orders, inventory, and sales quoting. All authentication and grouping was handled through LDAP.
- Our algorithms picked winners more often than machine learning attempts at the time utilizing the same data