How we hired our first Apprentice
Experimentation is one of my favorite qualities of working at DNSimple. Anthony is always driven to try different things to help DNSimple succeed and move forward. This is something that drove us into the journey of hiring our first Apprentice, Mak who started with us about 3 months ago now. We have gotten a lot of questions about how we hired Mak and why we did it so let me give you a little background and detail of the process so far.
A grand experiment
About 6 months ago now Anthony messaged me on our Slack chat room asking me a simple question. "Do you want to hire an Apprentice in Chicago?" As I mentioned before, Anthony loves experiments and this was a fairly tall order. He knew it would be challenging to make this request, but he had good reason to ask. Anthony was worried we were becoming a Monoculture.
Up until this point, Anthony had been hiring experienced developers that he would find through a network of friends he had met through his various speaking engagements. This is the method used to hire me over a year ago now and while it is effective, it does have the drawback of limiting your potential hiring pool to similar people to yourself. Anthony wanted more diversity in the team because he also pointed out in our chat that our team page was a "bunch of white dudes" and he was right. While this was not a deliberate choice, it points out a bias that I'd like to talk about as background to hiring our first Apprentice.
Diversity and Technology
The Computer Science and STEM (Science, Technology, Engineering, Mathematics) fields have had a strange history when it comes to gender. Historically, the first computer programmers were Women including the inventor of the first compiler, Grace Hopper. In fact the job title back in the 60s and 70s was "Computer" when Women worked in large rooms with punch cards to solve problems like Naval ballistics equations or the landing program for Apollo spacecraft. Steadily over time, the fields have become largely dominated by Men, evidenced today by many technology company teams and conference attendance. It is also well evidenced that non-white males and Women in our field are paid less than White Men for the same jobs.
There have been major efforts in the last 5 years or so to help foster more underrepresented groups to learn programming and join STEM related fields. Many technology conferences have slowly been adopting a Code of Conduct to help facilitate safer spaces as well. While I feel we still have a lot of work to do in this area, change is in the air and I hope the efforts will continue.
At this point, I need to point out that if when I first said "Diversity" you thought "Women" then I need to clarify something. Diversity works across many axis and Gender is one of many. Don't forget racial diversity with African American and Latino workers making up a tiny percentage of the STEM field workforce. For myself, I am Bisexual, but couldn't count even on one hand how many Bisexual developers may be out there in STEM. What about education? Not everyone has access to get a college degree. My point here is to help you think about more than one way to have and achieve diversity with your team.
Everyone has personal bias whether you are aware of it or not and the idea of diversity and things like a code of conduct is to help make you aware of the bias so your decisions aren't being driven by them. It's not to make you feel like a bad person for having things like a racial or gender bias. Being aware of it and trying to keep it out of play in something like hiring can be done with a little effort to help provide opportunity where there may have been none before.
Setting goals and expectations
Anthony set two goals for this apprentice to achieve in their 6 months with DNSimple. First, they would have to learn all the DevOps skills to be able to handle the support request queue and eventually be on-call for PagerDuty. Second, they would have to learn to improve their communication skills to become an effective remote worker because DNSimple does not have an office, we all work remotely. The second part is what drove us to make the decision that if I were to hire this apprentice, they would need to be in Chicago initially to work with me directly. Many of the people in programs like i.c.stars and Dev Boot Camp are used to pairing and lots of physical presence which a fully remote company does not provide. Expecting an apprentice to suddenly adjust to that felt like a very big ask to us.
Another goal was to make the length of the apprenticeship 6 months. Initially, the team wanted 1 or 2 week trials, but we decided against that with the advisement of Zee Spencer of apprenticeship.community. The reason being that Apprentices are new to the field and don't have anything to fall back on if they dedicate a week or two of their life to a full-time. It would potentially put them in economic hardship which is definitely not fair to them. With 6 months there is ample time to adjust to the new position and slowly show progress over time. If it ends up not working out with us, they will have 6 months experience to apply elsewhere.
One thing we also told all the candidates that interviewed with us was their starting salary. We didn't wait for a negotiation period and wanted them to know what to expect. The base salary we set was $60,000 per year including their benefits. I think more companies need to talk about salary which goes back to my point earlier about diversity and hiring.
The initial (failed) attempt
Shortly after Anthony and I talked in March I had began talking with Dev Boot Camp as I tend to co-work in their Chicago location quite often. This conversation yielded two immediate candidates for the apprenticeship and I began talking with them to discuss how DNSimple works and what we expected of the position with us. Near the end of April we had the entire DNSimple team in town which give them a chance to meet the team, but we were not yet ready to hire either of them yet. Anthony wanted to make sure we had the budget available to hire them first causing us to stall a bit on moving forward in the process.
This also presented a new problem. We had two amazingly impressive candidates applying to DNSimple, but we could only hire one. Which do we choose? Do we give them both an opportunity? We discussed our options as a team for a couple of weeks while we continued to review our budget to hire. Roughly a few weeks after talking with these candidates there was communication silence from them and ultimately they informed us they had moved on to take other positions. I don't blame them for walking away because the timing was not right initially for hiring. Anthony and I went back to the drawing board.
Improving our hiring practices
One of the first suggestions I made was to create a formal hiring process with a few goals in mind. First, I would personally reach out to local Chicago technology schools i.c.stars and Dev Boot Camp to open up the hiring pool for an apprentice. Second, the hiring process would be simplified to having them submit responses to two key questions that I will explain shortly. Third, of those responses, I would re-write any gendered language in the responses along with removing names and contact information for the rest of the team to help avoid any bias with the candidates. This would also mean that I had to voluntarily abstain from voting because I am privy to the actual identity of the candidates, no one on the team could see the document I was managing.
To help guide and facilitate this hiring process, I personally managed all the candidates in a Google spreadsheet and put all of them anonymized into a single form. The 6 DNSimple team members got to review, vote yes or no, and commented on what they liked or did not like about their responses to our two questions. All the team saw was a numbered list of candidates and their responses to those questions.
What were those two questions we asked?
"Why do you want to work for DNSimple?"
This helps reveal their motivation for wanting to work with us. Good responses there would show someone's curiosity and drive to learn more on the job. What would having this opportunity do for you and us? Is there something you can bring to the table that would be valuable?
"Describe a hard problem you had to solve and how to solved it (Does not have to be programming related)"
This question helped reveal their problem solving skills. Some candidates put in a single paragraph, others put in 5 to describe their journey. This question also helps show us their writing skills and articulating their journey to solving a problem. Even if it is a problem we haven't solved before, can we understand the problem and how it was solved?
The hiring process overall went well all things considered. Our initial hiring pool was 6 candidates with the majority of applicants coming from i.c.stars when we reached out to them. Of that hiring pool, 4 of the 6 candidates were African American, 2 of the 6 candidates were White, and 1 of the 6 candidates was a Woman.
Witnessing this process first hand has revealed a lot of our hidden biases. Some of my co-workers responded to the candidates assuming it was a male while others responded with a he/she not being sure of their gender. Up until the big reveal of the winning candidate, no one on the team but me knew that we ultimately picked a White Male.
You may be thinking that given we chose Mak in the end that we failed in this process, but I think we very much succeeded. The hiring pool was quite diverse on race, but could have been better on gender. However, take into account Mak is a very new developer with extremely limited command line experience which will allow him to question virtually everything we do here. He's also an immigrant to the U.S.. He is from Bosnia, born during the infamous Bosnian genocide carried out by Serbians. His family escaped to America to save their lives and here Mak is today, helping many of you already with your DNS issues.
The slip ups
Pulling all of this off was a difficult process and we missed some details. I want to talk about those further to help warn you in case you want to make similar efforts at your company.
First, I missed a gendered word on an application for a candidate. It potentially gave away the gender of the candidate for the team member reading the application. Make sure you filter out words like he, him, dad, mom, she, and her, which in certain contexts can give away a candidates gender.
Second, we didn't set a budget for hiring our first apprentice right away. What is fair pay for an apprentice? That is a tricky question to answer as generally speaking, what you are paid is a closely guarded topic. At DNSimple, we are quite transparent within the company about pay, but other companies try rather hard to scare employees into not disclosing it publicly. I feel this has the effect of hiding a lot of the real issues we still face with diversity in many industries. As I mentioned earlier in the article, two potentially great candidates slipped away from us due to this mistake.
3 Months Later
Mak has been hitting the ground running since day 1 at DNSimple. On the second day he answered his first support request and has been answering so many of them ever since. Chances are, if you've written us for help, he is very likely to have answered you. The team overall has admittedly told me that they had somewhat low expectations for someone with very little background. That this would be too overwhelming for Mak, but he has far exceeded their expectations. We're looking to repeat this process again in the near future, but we're not entirely sure then. Calling back to one of our lessons learned, we'll start looking when we're ready to hire. I'm excited to see where Mak can go in the next few months as he completes his apprenticeship.
Software and Server maintainer by day, board and video game geek by night.
We think domain management should be easy.
That's why we continue building DNSimple.
The Villains of Remote Work
Remote work and small teams come with their own challenges, these are some of mine.
How We Work as a Remote Team
Inspired by a recent blog post from Travis CI, I'd like to share details about how DNSimple team members work together without offices.