Resume
Colin Mitchell
- colin at muffinlabs dot com
- github
- 22 Taylor Hill Road, Montague, MA 01351
This resume is also available at https://muffinlabs.com/resume.html
Qualifications
- Full-stack developer with over 25 years of experience building software applications and websites.
- Expert knowledge of web development languages (Ruby on Rails, JS/Node, PHP), HTML, XML, JSON, database design and implementation, SQL, and Linux server administration.
- Skilled with Docker, Kubernetes, cloud services such as AWS, and infrastructure tools such as Chef, Ansible and Terraform.
- Skilled at analyzing needs, determining requirements, and implementing solutions for projects of all complexity levels.
- More than two decades of experience working remotely.
Professional Experience
Senior Developer & Chief Technology Officer, Bandzoogle
Remote Work. July 2006 - Present
Bandzoogle is a custom website builder for musicians. We host over 60,000 websites and our servers handle millions of hits per day. The backend is written in Ruby on Rails and we primarily use a custom CSS/JS framework for our frontend. Our team is entirely remote and distributed over multiple timezones.
I was hired as the second developer and third employee on the team. At the time we had under 1,000 websites running on a custom ColdFusion system on a Windows server infrastructure. I was largely responsible for a rewrite of our codebase in Rails. Moving to Rails allowed us to write a testable, stable codebase. We also changed server providers as part of this process, so my work involved moving user data and assets, writing a migration system, and implementing Chef to build a collection of new servers.
As we grew, I implemented a dynamic image server based on Node, lead the development of and launched a number of new features such as subscriptions and Stripe integration, worked on application caching, improved our site performance, ensured site uptime and server stability, built out our reporting tools, worked on fraud issues, and continued developing our product.
Projects:
- Server/infrastructure provisioning using Terraform, Ansible and Chef.
- Orchestrated several data migrations: from our ColdFusion application to a new Rails application based in a new datacenter, and several years later into a new instance of the application running on Kubernetes at AWS.
- Developed and launched a system to generate, maintain, and serve SSL certificates for 60,000 domains using Let’s Encrypt.
- Implemented a web-based dynamic image resizing/manipulation system to handle thumbnail generation, image rotation, cropping, and format conversion.
- Built and maintained our current DNS system running PowerDNS. We handle DNS for almost all of our domains.
- Developed a custom web analytics tool for our users, using Rails and D3.js
- Built a system to encode MP3s and build zip files of albums. We encode thousands of files per day.
- Implemented PayPal and Stripe integration for user stores and for recurring subscriptions.
- Programmed and launched many features for user websites, including our music player and store features.
Technologies used:
- Ruby on Rails
- Javascript and CSS
- Node
- Docker
- Kubernetes
- Terraform, Ansible, Chef
- Apache, nginx and openresty
- Linux
- MySQL and PostgreSQL
- Postfix
- AWS services including EC2, S3, Lambda, Elasticache and EKS
Programmer, Participatory Culture Foundation
Worcester, MA. April 2005 - June 2006
Programmed several websites and open source tools enabling video producers to publish, promote, and distribute their content.
VideoBomb: Main programmer for a community site to bring people together and share popular videos on the web built using Ruby on Rails and MySQL.
Broadcast Machine: Developed an open source software package for videocasting, creating video channels, and distributing content. I took over the project from another developer and implemented a large amount of the functionality. Wrote code to generate RSS feeds which contained publishing information, licensing rights, length of the video, etc. I worked to ensure that the code worked on as many platforms as possible while being simple to install and manage. I communicated with users of the software to resolve bugs, implement requested features, and help with installation questions.
Conversate: Built an online discussion tool in PHP and MySQL. I took over the project from its initial developer and continued adding and refining features until it was launched. I created RSS feeds, 'bookmarklets' allowing users to start conversations about an interesting URL, built a system for starting conversations via email, improved buddy list management, etc. I also tuned database queries, wrote user interface code, and applied optimizations to make the site as efficient as possible.
Programmer, SoftPower
Old Saybrook, CT. 2003 - 2005
Softpower wrote business management software for the outdoor power equipment industry. I was the lead programmer on a project to completely rewrite the flagship software product, which handled point-of-sale, inventory management, purchasing, work orders/repairs, etc. I designed all aspects of the system, including a SQL Server database, an object model in C#, and a Windows user interface.
Programmer, FleetMobility
Worcester, MA. January - December 2002
I designed and implemented a C++ application for the Palm OS used by drivers at trucking companies, which provided real-time GPS location data sent via SMS messaging. I wrote code to allow drivers to track time spent driving according to federal requirements, track trip data, starting/ending odometers, manifests, tolls/expenses, etc. I also wrote a more general tractor/trailer logistics system to provide real-time location data for a fleet of vehicles using C# and Java.
Senior Technologist, WGBH Local Online
Boston, MA. April 2000 - January 2002
Technical lead for WGBH during two complete rebuilds of the website. I helped to determine needs, communicated with people throughout the organization to define goals for the website, served as liaison to the programming firm that built the site, and participated in the coding of individual elements of the site. I helped to specify a design for a content management system used to generate content for the website, and developed several portions of the CMS. I built a search engine which indexed content from the site to return results to users, as well as allowing the editorial staff to rank some results higher when needed. I integrated the website with several external sources of data, including TV schedules, the pledge system/member database, and external news sites. I also supported the editorial and design staff that produced all of the content for the site, as well as building special websites on a regular basis, such as a database of local candidates and voting districts for Massachusetts during the 2000 election, which was the only database of its sort at the time.
Personal Projects
I've worked on a lot of side projects over the years, here's a partial list:
- I maintain botsin.space, a mastodon instance devoted to bots.
- I built a custom service in Rust to post entries from RSS feeds into the fediverse called feedsin.space.
-
Once upon a time, I built a number of bots on Twitter.
Many of them are built in chatterbot, a ruby library that I
maintained. Some of my personal favorite bots include:
- botgle - a multiplayer game of Boggle via Twitter, which was called the best Twitter bot of 2015
- wayback_exe - a bot that uses the Wayback Machine to generate screenshots of websites from the 90s.
- EarthRoverBot - an interactive bot that used Google street view data to 'drive' from Maine to California.
- The Secret Broadcast, a podcast of secret messages, in the style of a numbers station.
- Before Dawn, a screensaver library built with Javascript and Electron.
- I built gopherpedia, a Gopher interface to Wikipedia. I built a Ruby Gopher server as well as a PHP/JS web proxy to Gopher for this project. I suspect that gopherpedia might be the largest gopher site in existence by pure number of pages/content.
- namey -- a random name generator with a REST API and Ruby gem
You can see more on my projects page or on github.
Education
- Rensselaer Polytechnic Institute, Troy, New York
- Bachelor of Science, Computer Science, Minor in Electronic Art. Graduated May 1997.