Welcome to the ConvertKit Engineering Blog!
Welcome to the ConvertKit engineering blog!
One of ConvertKit's core values is to Work in Public. That's certainly reflected with our financials, but not so much with how ConvertKit actually works, who works on it, and how we tackle sending and tracking over 30 million emails every day.
That's why we decided to reboot the engineering blog. ConvertKit is a fully-remote company. Therefore, we write a lot, mainly out of necessity. We're avid users of Basecamp for selling ideas and writing longform posts. A good percentage of these posts could be public to the world. Heck, our finances are public, so why can't we default to writing in public?
That being said, I figured I'd break down how our engineering team is currently structured.
Meet the engineering team
The engineering team is (currently) only made up of 17 individuals, broken into 5 different Squads. For each squad, there's a Squad Lead. Squad leads are essentially "tech leads" and not "people managers". Their role is to set the general technical direction, keep the board up-to-date, perform code reviews, etc.
The engineers are all over the globe. 2/3 of the team are in the us, and the other 1/3 is mainly in Europe. We have 1 engineer who's in Thailand.
Our engineering team structure was heavily influenced by Spotify's model of using Squads, Chapters, and delivery teams.
We have 4 product squads. Each squad has anywhere between 2-4 permanent members. Squad members are full-stack generalists with some specializations.
Each squad owns a specific area of the application.
- The Content creation squad, in general, owns content creation. This includes composing emails, email templates, forms, landing pages. They primarily consist of engineers who are frontend-oriented.
- Subscribers squad owns subscribers and subscriptions.
- Email delivery squad owns email delivery. Broadcasts, sequences, etc. They own the hard problem of ensuring an email goes to a subscriber exactly once. Anything less than or greater than 1 is a fail.
- Automations squad owns Automations, which is a core feature of ConvertKit and really "ties the room together", marrying many of our features in a way that allows you to visually build a workflow that your subscribers go through.
In order for each squad to be a full-fledged delivery team, we have a couple of roles that are shared between all squads:
- A product manager,
- A designer,
- A QA engineer.
At ConvertKit, Squad leads are also the folks who manage the current project they are working on. Our sole PM is here to ensure we're on the right track from a roadmap perspective.
There are a couple of squads that are specialized, and don't work on the ConvertKit app:
- Compliance, Billing, Deliverability
The Infrastructure squad wrangles servers, keeps an eye on production, optimizes spend, and hones our CI.
The Compliance, Billing, Deliverability or (appropriately?) CBD squad handles finding and proactively stopping bad actors from abusing ConvertKit. Being an email marketing platform, we attract all sorts of nefarious actors attempting to send out spam. It's their job to detect it and shut it down.
CBD is a cross functional squad that's made up of 2 engineers, a deliverability expert, and a support specialist. This means that members of this squad report to different directors, but still work on the same team.
In Q3, we decided to try the idea of Chapters for a quarter. For us, a Chapter is a way of participating in an interest area that cuts across squads. 20% of engineers time is devoted to chapter work. We voted on what chapters we would like to exist, and dedicated every Friday to chapter work.
The chapters we have for Q3 are:
- Rails upgrade
- Background jobs
Each engineer could elect into as many chapters as they would like to.
Q3 is wrapping up, and we'll be retroing on whether or not we want to keep the concept of Chapters, or figure out a different way to achieve our goals.
Keep an eye on the engineering blog. We have a bunch of interesting posts coming your way shortly!