👋👋 Hey there, I’m Thomas Cannon and I’m for hire!
“Who’s this fella?”
I’m a Rubyist of 12+ years, primarily acting as a senior developer and running operations for Noko (Freckle) Time Tracking. I specialize in maintaining and refactoring legacy applications; fixing up existing code to take advantage of the meteoric jumps of modern, evergreen browsers.
I also love doing customer support, developer relations, build-chain improvements, and engineering management.
Thomas Cannon is an excellent full stack Rails dev, and not afraid to get his hands dirty with ops, support, or documentation (and he's good at it, too!). Beyond his deep knowledge and technical chops, he's a joy to work with… thorough, considerate, always up for a challenge, always taking in new information and ready to update his approach. He leads and gets things done.
“What boxes do you check?”
- 12+ years of Ruby on Rails experience, spanning Rails 2.3 LTS to Rails 7+ (and upgrading an app across that entire span to boot!)
- Loves maintaining existing products, making any outdated code ship-shape, and focusing on customer needs over shiny bleeding-edge prototypes
- On-call rotations & incident management for 5+ years. I wish PagerDuty would give out medals
- Ansible playbook writing and maintaining for automated Linux server, database, and Datadog maintenance across a fleet of servers for staging, production, and throwaway development experiments
- Have designed, delegated, implemented, shipped, wrote the management systems, and maintained multiple large features; including an app-wide auditing infrastructure, outgoing webhooks, iCal syncing, and authentication system refactors
- A deep love for being a generalist, digging into MDN docs to find the best tools for the job across the entire web stack (not to mention the occasional RFC 😉)
- PostgreSQL performance tuning, including baking in custom views & database functions directly through the Rails migration workflow using scenic and our fork, versioned-database-functions
- Thrives in remote-only work that spans cross-country timezones; I work in the US/Eastern Timezone and have often collaborated with folks both in Europe and in US/Mountain Time
- Customer support is how I got my start (doing Helpdesk support for Clemson University), and it's one of my favorite parts of a job. Knowing the people I build software for helps me go the extra mile
- No stranger to giving back to the open-source community through issues, pull requests, refactoring code for open-source releases, and maintaining + releasing packages
“What have you been up to for the past 10 years?”
A whole lot! Mainly, helping build, grow, and maintain Noko Time Tracking (also known as Freckle Time Tracking back in the day).
Noko Time Tracking/Slash7 work
Some of the specific projects I worked on
- Lead the upgrade for a Rails 2.3 LTS application to Rails 7+, including multi-threading support
- Researched & implemented passkeys support for a legacy authentication system, including refactoring the legacy authentication system to support graceful password to passkeys migrations on a per-customer basis
- Designed, implemented, and maintained v2 of our REST API, conforming to industry standards, preventing regressions for 5+ years of infrastructure changes, and implementing a full OAuth 2.0 Provider architecture for integrations
- Built the infrastructure for application-wide audit logs and outgoing webhooks
- Rebuilt our native Apple apps to share a common codebase, using Swift & SwiftUI, and native APIs for seamless authentication flows.
Other Projects and the everyday work
- On-call rotations & incident management for 5+ years
- Handled daily customer support
- Provided concierge sales & onboarding
- Acted as the developer experience liaison and point of contact for our APIs & integrations
- Provided debugging skills and patches to assist the support team
- Developed & provided support for Pep and EveryTimeZone Pro
- Maintained our continuous integration & deployment infrastructure
- Acted as engineering & operations manager, reviewing code for a consistent architecture, assigning tasks for larger projects, and providing guidance and documentation for framework design.
I've worked with Thomas Cannon for a decade on several Rails apps, APIs and mobile applications. He is one of the few people who have both high-level view of developing web applications but at the same time in-depth knowledge of the nuts and bolts of running them. He led the successful project to modernize our Rails SaaS app from 2.3 to 7; as well as planning, implementation (both Rails/PostgreSQL backend and user interface), team leading, testing and deployment of a large number of product features; including beta testing features directly with customers. He also ran operations, including deployment in the cloud, monitoring, and performance optimization (to 99.99%+ availability). Importantly we have rotating customer support, and he was loved by our customers.
Thomas Fuchs, CEO; Noko Time Tracking, author of script.aculo.us and former Rails core team memberChief Photon Catcher
I’m also currently the lead maintainer for the Ruby Passkeys organization, to help increase adoption for passkeys across the Ruby ecosystem so that both developers & customers are dramatically safer.
As part of that, I:
- Designed & implemented a Warden strategy for passkeys authentication
- Implemented a Devise strategy for passkeys authentication
- Built a template Rails application for a working example of the Devise strategy usage
- Continue to advocate for passkeys adoption across the Ruby ecosystem, including conference CFPs for Railsconf Atlanta and Blue Ridge Ruby.
Thomas’s full-stack experience helped our team deliver on our goals ahead-of-schedule for a high-velocity Node + Postgres app development project, and his knowledge of best practices pushed our team make better long-term technical decisions for our clients.
Jay Harris, Lead Developer; Nicer StudiosSemi-professional bookworm
“Do you have any technical writing or stuff I can look at?”
Yep, I’ve got a fair bit, collected over the years!
- Getting your Rails dev environment ready for passkeys
- Your testing code should not be DRY
- The developer’s guide to followups
- Rebuilding Noko’s Dialogs for the next 10 years
- Noko’s Broadcasts Design
- Optimizing the last 20% of the new site’s design
Opinions & Hot Takes™
- “Why should I care about customer support?”
- Brick laying and bug reports
- “How do I get developers to respond to customers in a timely manner?”
- Stop giving shitty emergency support
When confronted with a problem or a bug, Thomas doesn’t just seek a solution, he seeks the resilient solution. He prioritizes stable infrastructure over shiny toys and legitimately enjoys documentation and helping users. The bottom line, he doesn’t stop until the job is done and done right.
“I need a resume”
No worries, I’ve got one ready for you here!
How do I get in touch?
There are a few ways!
- My contact form (I’d put my email address directly, but 🤖 & spam)
- @tcannonfodder on Twitter
What’s your ideal job look like?
Ideally, Rails work for a bootstrapped company. I love the work of maintaining an established product & getting any outdated code ship-shape. I like the flow of working for a B2B company, especially in an environment that recognizes that software doesn’t have to be stressful. In essence: good work, executed well, as ethically as possible.
Woah that’s a lot of testimonials
Right? It’s been hard to pick so here are some more:
Thomas onboarded my team to Noko and not only helped us learn how to use the tool, but he helped adjust the software itself so it would work even better in our deployment.
Michael Schweisheimer, Founder of PWPvideoFilmmaker for nonprofits and sustainable businesses. NOT a visionary or thought leader.
Thomas's attention to detail and trustworthiness make him truly stand out. Your codebase will be improved forever after he gets his hands on it. He's a hell of a developer. If I could hire him myself, I would in a heartbeat!
Richard Felix, Founder; StunningChicken and Waffle Evangelist
I've worked across from Thomas for a few years, but it didn't take me that long to realize he's one of the most knowledgable and talented developers I know. What makes him stand out is his enthusiasm for the web and his care for user experience. Whatever Thomas is working on I know it will be well thought out and built with best standards.
Robert Gonzales, Lead Developer; Nicer StudiosCode Bard
Thomas is a very experienced and talented developer, and it was a pleasure to work with him.
He always showed a good understanding of the end-users’ needs, very solid understanding of the technology and careful attention to detail.
He is amongst the best and most reliable developers I’ve worked with, and I would not hesitate to recommend him or hire him in the future.
Pedro Moreira; Code CreationsKarate Kid Wrangler