Skip to main content


We are not the permanent team solution for our clients. They often want to know:

  • How do I find a technical co-founder?
  • How can I learn to "do it myself"?
  • How do I hire designers and developers?

We tell them:

  • To find a technical co-founder, network in person at user groups and online at LinkedIn and AngelList. Is what you really need a designer founder?
  • To learn to do what we do, you'll work directly with us, pair programming and sketching together.
  • To hire someone, follow the same process we use, detailed below.


We've met our future teammates via:

We met Josh because he submitted excellent patches to Clearance. Due in part to their open source work, we've hired great people as far away as India and Thailand.

Many of us are regulars at Ruby, JavaScript, Vim, and other user groups. We met Ben, Joel, and Mason at the Boston Ruby Group.

A nice thing about those meetings are that they happen naturally. We're not trolling GitHub looking for people or fishing for talent at user groups and conferences. We're there, anyway. If we never hired again, we'd still be writing and using open source. We'd be members of mailing lists and going to events.

We know what we'll get when we hire in the above ways. We know their personality and energy level from the user group. We know their coding style from their open source work. We know they'll take initiative because they voluntarily contributed to the community.

We met Jessie and Laila via Dev Bootcamp. They went through, as did Adarsh, Draper, Edwin, Diana, Melissa, Joël, Lisa, Lydia, Rich, Christian, and Tony.

We've also had great luck finding designers on Authentic Jobs and iOS developers on Stack Overflow Careers.

We don't work with outside recruiters. We've found they don't present us with people that would be a good fit for our team, and are often disingenuous about the candidates they have. Overall, it isn't worth the effort reviewing lots of unqualified candidates.


We track each candidate's progress in the interview process using Workable.

We manually enter people into Workable for personal introductions. People who apply on our website are automatically added.

Our CPO, Anna, leads the hiring process. She ensures that everyone gets a response, and the integrity of the process.

Reducing Bias

Unfortunately, it is all too easy for a hiring process to be impacted by unconscious or implicit bias. At thoughtbot we believe that more diverse teams build better products, and that everyone should receive a fair opportunity to join our team.

In order to achieve this goal, we've made the following improvements to our hiring process:

  • Implemented anonymous initial screening of candidate application. This process removes names, school information, gender-identifying pronouns, and other identifying information from candidates before their application is reviewed.
  • Feedback left by reviewers at each stage of the process is not shared with people later in the process. Interviewers in later stages can be confident that the candidate made it to their stage because they met our consistent requirements for the prior stages. It also helps them more consistently interview the candidate in their stage.
  • Each stage has a rubric that helps interviewers more consistently evaluate candidates on the criteria we are looking for at their current interview stage.
  • All salary offers are reviewed for equity and approved by Anna before they are sent.

Unable to find off-the-shelf software to help us do this, we've created some of our own.

Interview Stages

Anyone can do the initial anonymous review of a candidate's application. In particular, they review the candidate's experience and answers to the application questions.

We either send them a rejection or an email inviting them to do a "Non-Technical Interview" with the hiring manager for the position. In a non-technical interview that goes well, we've learned that they are someone we'd like to work with, that they potentially have the skill set for the role, they are a good match for our values, and that they will make thoughtbot better by being here. We will also have gotten them excited about thoughtbot, how we work, and what we stand for as a company.

After the non-technical interview, the next step is the technical interview. We have standard questions for iOS developers, Rails developers, and designers for the technical interview. We don't use puzzles or code challenges. Instead, we prefer reviewing actual work the candidate has done, and talking to them about design process, architecting systems, and writing code; the same thing we do for work every day.

The final stage for candidates work with us remotely for a day. On that day, developers pair program with one of our developers in the morning and another in the afternoon.

Designers pair in the morning and work on a small product design project throughout the day and then present at 4pm. It primarily involves sketching and working with one or two thoughtbot designers.

We do the interviews this way because there's no substitute for seeing someone actually do the work and interacting with the team. We also want candidates to experience what the company is like for themselves.

Aside from technical skill, during the entire interview process, we look for character strengths like enthusiasm (invigorates others), focus (pays attention, resists distractions, remembers directions), composure (remains calm when critiqued, doesn't interrupt), gratitude (shows appreciation), curiosity (eager to explore, asks questions to understand, actively listens), optimism (gets over frustrations quickly), grit (finishes what they start, doesn't get blocked), emotional intelligence (demonstrates respect for others' feelings, knows when and how to include others), humor (likes to laugh, makes others smile), and appreciation of beauty (notices and appreciates beauty and excellence).

To be hired, the candidate must get a unanimous "yes" from the existing teammates with whom they interacted.

Offer and Onboarding

We use Workable to send the offer and get them signed without the "print and scan" process on either end.

Offers are reviewed and approved by at least one member of the C-level executive team before being sent. C-level executives and Managing Directors can execute offers on behalf of thoughtbot.

When the offer is accepted, we run a custom onboarding app which we wrote. It creates the teammate's email address, gives them access to systems like GitHub and Slack, notifies Accounting, sends a welcome email to the teammate, and creates a todo list for the hiring manager for any remaining manual items that we haven't been able to automate.

We assign a guide to new team members for their first two weeks. The guide helps them get set up, makes them feel comfortable, answers questions they may have, or points them to the person who can answer their questions.


We are entirely bootstrapped, with no outside investors. Our primary source of revenue is billing for our consulting time.

Sustainability of the company is very important to us. We want to bring great people on at reasonable salaries and reward them as aggressively as possible for actual performance.

We may never be able to compete dollar for dollar with other tech companies but we can compete on being a great place to work, with lots of opportunities to learn, and the freedom to define and execute on our own projects.

We use the same set of salary ranges for each designer and developer position. The goal for this range is to be a competitive rate that is sustainable for the company.

  • For the US, these ranges align with the Austin and Boston markets. Because we don't want to create any hardship for team members living in the SF, NYC, or Seattle metro areas, team members living there have their compensation reviewed in relation to the local market.
  • The same two-zone approach has been applied in UK, with team members in the Greater London area having their compensation reviewed in relation to the local market and those outside London having their compensation reviewed against the broader UK market.
  • Compensation for team members outside of the US and UK is set based on cost of market, combined with the general goal of salary equity across teams and location.

In addition to salary, everyone receives quarterly profit sharing bonuses.

Salary increases are the natural result of improvement, and occur company-wide on a yearly basis. Our manager may increase our salary in a way that is compatible with the company's finances and individually appropriate to us based on things we've done, such as:

  • creating great software
  • making users, teammates, and clients happy
  • improving ourselves by learning something new
  • improving thoughtbot by bringing in sales, mentoring a teammate, contributing to an internal tool or research
  • improving our community by writing blog posts, contributing to open source, or attending conferences
  • doing the things we didn't think to put on this list

Our salary increase may also include adjustments based on market conditions and cost of living increases.

It's important that our manager explains why a raise is being given and what, if anything, could be done to receive a higher raise next time. We don't get raises for "just showing up."

Talk to one of our product experts about building success into your process.