When I joined ToolTime, heavily influenced by a book called 5 dysfunctions of a team, and my previous experience I was convinced that the things I will be optimising for is how people in a team work, rather than what single engineers bring to the table. The idea was that I will try to create an emotionally safe environment where people voice ideas without being stigmatised. No shaming, and listening to understand, rather than listening to reply.
We need teams where conflict is creative, where people know and understand diverse approaches to a given problem. This way we can pick one that the business will benefit from the most. What is also important, and many teams I've worked with missed that, is that we can create a culture where buy-in is easier to achieve, and the disagree and commit is not just a weird way of saying "listen to the boss".
What we are trying to understand during the interview is the candidate's attitude and mental model, secondarily their technical skills. No, it's not to say that technical skills do not matter. It is just that it is way easier to teach a programming language, technology and tools to a person with the right mindset, than to change the mindset of a really skilled, technical person.
We are looking for people who make everyone around them better engineers, and this way we will only get stronger teams which will ripple this "continuous improvement effect" outside their circle.
The mental model we are looking for can be described in a few words: the more I know, the less I know, many, small problems rather than one and big, no bullshit, curious, 2% grumpy.
- the more I know, the less I know - we want to know what the candidate thinks and why they think that. It's really unimportant that you do not follow TDD, we are curios to know if you can articulate why you decided to not follow that style.
- many small problems - whether a candidate breaks the issue down, how do they approach the given task. Will they fall into "analysis paralysis", or will they solve each step in isolation? Can they build a whole picture or do they get lost in details?
- no bullshit - interviews are stressful, and it's a game where you want to show the best of you to the interviewer. We know! We put a lot of effort to make it as pleasant as possible. However, we really appreciate people who openly say "I don't know", or better "I don't know but what do you think about this approach" rather than trying to tell us everything they know, which seems related.
- curious - will the candidate ask clarifying questions or will they rather burst an answer without really knowing the context. Will they accept that something that worked in a different context, might not work for ToolTime, and will they want to know "Why?"
- 2% grumpy - this is one of our Company Values, a positive attitude helps the team to a great extent. Just the bare feeling of positivity improves the team morale to the point where people naturally gravitate towards each other and want to help. Of course, everyone has worse moments, use the 2% for that.
Knowing what mindset we are looking for, our hiring process is organised in the following stages:
We are looking at experience which projects were built with which tools and technologies. It's really way more important to see the application of a particular framework, rather than see a large list of keywords.
We want to give the candidate an idea of what we do as a business, and how we operate. We want to understand a candidate's situation.
Call with the Head of Engineering
It's usually a semi-technical discussion. I explain how engineering at ToolTime works and will ask you to tell me your story and what your principles are. I will listen carefully and you should be ready for a series of open questions largely built from the story you tell. For example, if you say you follow SOLID principles, I might ask you what D stands for in SOLID. If you tell how great TDD is, probably my question will be "what is the biggest value of TDD".
Answers which indicate subjective thinking ("It's more readable", "This is better") are scored lower.
At this stage, we will want to dive deeper in your technical skills. We will ask you about the technologies we use and what you have experienced in your career. Don't expect algorithms or data structures here, but more likely we will want to know how well you know ReactJs, what are the things you would change if you could, what are the good parts.
If you got to this stage, chances are pretty high that you will land a job at TT 😏. All it takes now is to show all the things you told us about in practice. We will prepare a little challenge for you and ask you to pair with us and show how you would solve it. If your comfort zone is mobile, we would ask you to implement a single page app in a skeleton of an app using technology you want. One of our engineers will pair with you. What we want to know is how you cooperate with another person, how do you chose tools and solutions for a given problem.
We will also invite you to get to know people who drive and support product development at TT. You will have a series of coffee/tea chats with everyone. As exhausting as it could be this is also an opportunity for you to get a better idea on how it is to be a ToolTimer. Use it and be curious, ask all the questions that you have.
We use a very simple, and not an easy system to decide whether a candidate is accepted or not. Every person who participated in the interview gets one vote. They can vote Yes or No, there is no Maybe. Everyone gets a chance to articulate why they voted the way they did. Everyone can change their vote during the discussion. The caveat is one NO means NO, and the candidate is not hired. We are really serious about it, and we do not take this process lightly. At the end of the day it is quite an investment, from our side and from a candidate as well.
In order to help with the vote we have 3 ground questions:
- Is the candidate someone I want to work with every day?
- Is the candidate worth our energy to train them in the areas they fall short in, and will they be able to keep up?
- Can the candidate move without supervision in at least one area?
So really, one no means NO.
But... let's not forget we are dealing with people here, and we all have worse moments where we just fall short. It could be that the interview was too long, your head was in the wrong place or whatever else happened that made you answer in a silly way. Or, one of our interviewers had one of those moments, is that it? No. We also have a very special function in our process and it's called The Champion.
Any of the interviewers can become a champion, taking one of the NOs out. And if they do, they become accountable for setting the candidate for success in the team. They prepare, lead and support the candidate in the first 6 months in TT. Even though it's there, we have not used it since the very beginning. We live by our own rules of listening to understand, be curious and ask, and disagree and commit.
Remember the YES/NO voting? That is also the moment where we gather notes that we will later on send to you. Whether they are concerns, ideas for improvement or good notes from your interview. These notes are something we send to a candidate. Sometimes we will send you a link to a book we believe will help you, sometimes it's more general ideas for leveling up. We do not think that failing an interview at ToolTime means you are a bad engineer. Different types of businesses require different types of engineers and that's the mentality we are trying to keep. Our goal is to make sure you will also benefit from the time you have invested in talking to us.