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
- 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
Due in part to their open source work, we've hired great people as far
away as India and Thailand.
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
our apprenticeship, 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
We track each candidate's progress in the interview process using
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.
We have a similar overall process for all our roles:
- Initial application screening
- Non-technical Interview
- Technical Interview
- Final Stage
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
- 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
- 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
- We've standardized and published all of salary bands and compensation.
In addition, 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.
Initial Application Screening
Anyone can do the initial anonymous review of a candidate's application.
In particular, they review the candidate's experience and answers to the
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 processes,
architecting systems, and writing code; the same thing we do for work every day.
You can view a presentation all about our technical interview in this RailsConf talk,
Beyond the Whiteboard Interview
by Joël Quenneville & Rachel Mathew.
The final stage for candidates is to work with us remotely for a 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.
Other roles also do working sessions, for example, working together on mock
sales calls and proposal writing.
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
the following character strengths:
- 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)
- 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 have 6 Global Salary Zones in order to create a sustainable and more
equitable process as we expand into new locations, and provide transparency for
our current team and potential applicants. Read all about compensation at