On Interviewing as a Junior Dev
Over the last few months I have gone from intern to accepting my first full-time developer role on a kickass new team. During that time, I've been asked about what it's been like to interview as a junior developer just out of an experimental program. My educational background focused on critical ethnography and my undergrad thesis was original autoethnographic research published in a peer-reviewed journal. This background leads me to view my experiences as a newly minted developer as small embodiments of our collective culture, and it had fed into a passion for development methodologies as well.
With that in mind, I wanted to share my interviewing and job hunting story with you along with what I've learned about good hiring. My peers and I have become a de facto curiosity as the first women to graduate Ada. While we all had different experiences interviewing for our first real dev roles, we are also a great subject to reflect on what it's like to try to get a job as women, as alternative learners, as minorities, and as new talent. This post will cover the entire process of my job hunt as well as tips for how to improve your hiring process for passionate junior developers.
"hire_me.txt": a wildly popular flyer posted at Cascadia Ruby.
Before we get to the meat of it, let me explain my job hunt & tracking process. When I show it to people it is usually elicits a "Wow, that's so thorough", with follow up comments ranging from impressed with my approach to thinking it borders on serial killer level obsessiveness.
While I had had some interest from companies prior to beginning my job hunt and even before the internship portion of Ada began, I wanted to wait until I was pretty sure I was uninterested in my internship company. So in early August, I started a google spreadsheet to keep track of every company and job lead. The spreadsheet spanned nearly 3 months with over 40 entries. For each lead, I would note the date of first contact, the company, the role, the status ("applied", "needs follow up", "waiting", "rejected"), and my notes. Additionally, I used a color coding system to track my interest--if I was actively pursuing a position past the casual/informational interview stage, I would give the row a light yellow color. Then, once I had a verbal or written offer I would turn it pink.
The notes were basically a stream of misspelled concerns, scheduling reminders, contact info, and updates. I made sure to write down everything anyone said about a company or my interactions with employees, so my notes include things like "anne said they were scala snobs" and "rejected because it's too remote heavy and they have shitty people...don't like that dbag that tried to fuck me at open source bridge". The most illustrative note about my process was the following gem: "UPDATE: they called, asked me to come to Bellevue for an interview. Seems super weird and more corporate than I'd like, but will check it out. UPDATE: i'm not fucking going to bellevue goddamn".
As far as my methodology for finding jobs, the first month or so was really spent figuring out how to be on the receiving end of recruiting. Because Hsing-Hui and I gave our first conference talk in August, we mentioned during our talk that we'd be looking for jobs in October. I also took the opportunity to put myself out there in the form of the above flyer on the jobs board. After the conference, I began scoping out companies online. I looked up big names in the Seattle area and submitted to their online application black holes. For smaller companies like startups and agencies, I went through the stack of business cards I had been collecting all year in Ada. Then I checked out which companies sponsored local events and those that seemed to be working on projects I thought looked cool.
By the end of August, I began asking around for ideas, introductions, and referrals. My brother suggested looking at craigslist but I didn't really like that idea so I tabled it until October. Things were going great until the end of September when I ended up getting an emergency appendectomy, which put quite a cramp in my style. Once recovered, I had two weeks left in my internship and had some form of an interview at least once a day, sometimes doubling up for two interviews. There was even a day when I had three phone interviews in one afternoon! Looking back, I think I could have held back a bit, but at the time I was worried about prematurely narrowing the scope of my job hunt since I wasn't sure about what exactly I wanted. While I had some basic guidelines, I wanted to be as open to opportunities as possible.
The Inside Scoop
While I did use resources like Glassdoor, the most valuable information came from other developers. If I knew a developer at a company outside of the interview process, I made sure to ask them to coffee so I could get a second opinion--especially if the company was pursuing me more than I them. Surprisingly, many developers were willing to straight up tell me to look elsewhere! They'd not only give me the inside scoop on management and the daily frustrations of the job, but also let me in on what the culture was really like.
For example, one company attempted to recruit me but four female developers that I know independently of one another all said they would not recommend it. Their experiences ranged from being employees to having sexist interview experiences to being insulted by the tech management at local meetups or conferences.
And of course, as they always say, it's really about who you know and using those connections. I had one mentor at my internship get my foot in the door with a recruiter from a VC firm and an Ada TA at a larger company submitted my resume internally. There were a few more TAs that gave suggestions on companies to look at or offered introductions but the best help I got was from other Ada students who were also looking. Because many of us wanted to expand our networks and see what else was out there, a group of us became adventurous in our networking. We reviewed each other's resumes and went to meetups together. At Strangeloop, I became the designated tweeter to fish for new companies and facilitate introductions. Another Ada grad, Ellen, introduced me to a former colleague from her internship that resulted in an offer. And I am proud to have facilitated an interview for Hsing-Hui that also turned into an offer--which she accepted!
Learning To Spot Red/Green Flags
While we were starting to think about jobs during Ada, we had a few events and guest speakers come by to try to give us tips on how to figure out if a company is a good culture fit. A lot of it was pretty common sense but then I had a negative experience at my internship despite it appearing to be a very good fit. My internship company seemed like the kind of match you'd expect; even people outside of the Ada network would comment on how it looked like a natural fit. But that didn't pan out, so naturally I was extremely anxious about this part of the job hunt and trying to figure out how to get below that surface level when interviewing at companies. Here are five examples of red flags and green flags that I used along the way as I tried to figure out what was the best fit for me:
Red Flag 1: Asking me to dedicate over ten hours to a code challenge before meeting anyone on the team. Relatedly, the code challenge not having anything to do with the role for which I am applying or the skills I would be using on the job.
Red Flag 2: Belittling my background, general snarkiness about not having a CS degree, and expressing doubts about Ada Developers Academy while simultaneously trying to compliment me as somehow different from my peers. I might have fallen for the whole “You’re not like other girls” bit when I was a teenager, but now it just shows me that the recruiting company doesn’t respect women. I am like other women developers, because other women developers are awesome!
Red Flag 3: Expressing frustration with me for having to reschedule an interview after being admitted to the hospital. Yes, two companies were rude to me about having to reschedule when I emailed them from the ER. One company called me immediately to reschedule for the following Monday, without considering that I’d still be in recovery and high as shit on morphine.
Red Flag 4: Claiming to be collaborative but then having cubicles and other physical space arrangements that are not conducive to open communication. I am a strong proponent of tours and casual informational interviews as the first step in the hiring process--I want to know what I’m getting into before investing my time. After realizing that many companies were just telling me what I wanted to hear about collaboration, I became pretty insistent on seeing how and where the developers worked. Reluctance to show me the physical space of the office before an offer became a giant red flag.
Red Flag 5: For smaller companies, I found it to be quite frustrating to discover that I could already be in their hiring pipeline and still get emails or LinkedIn messages from others in the company asking me if I’d be interested in an opportunity there. While I think it’s awesome that I get cold emails about jobs after only one year of programming, it is a red flag to me that there are internal communication breakdowns. If your CTO is going to try to recruit me, but isn’t aware that I’ve already gone through two phone interviews and am working on a code challenge, to me that shows that either there is no unified internal process to follow up on potential candidates or that the higher-up trying to recruit is removed from the daily work inside the company. Either way, not great.
Green Flag 1: Mentioning why you want to hire me or how you found out about me. I’ve gotten a lot of generic “We have an opening you’d be great for” emails. When I get emails that say “I saw your talk at RubyConf” or “I read your blog and think you’d be a good fit”, I’m exponentially more likely to check it out. Additionally, when someone is more specific about why they want to recruit me, I’m in a better position to suggest someone else who might be interested if I’m not.
Green Flag 2: Being willing to take a suggestion for another candidate. I don’t want to take a job I will hate just as much as a company doesn’t want to hire someone who will hate every minute of their job. Some companies are strangely weird about getting referrals from a candidate, but that just shows inflexibility & the wrong hiring values. I had a couple experiences where I told them I didn’t feel like the role was a good fit for me and suggested someone else who might be interested in that particular kind of work. When a company thanked me for my suggestion, I was much more open to hearing them when they said they wanted me enough to figure out if they could create a role where I would be happy.
Green Flag 3: Tailoring the interview process to the candidate. When I feel that there is an attempt to ensure that there is a good mutual fit for a role in a company, I have a much more positive view on the company and their hiring practices.
Green Flag 4: Openness about culture and diversity. One of my litmus tests for companies was to ask them about if they value diversity and what kind of numbers they have. For me, it wasn’t really about finding a perfectly diverse team, but about seeing their reaction to the question. When a company isn’t defensive about the questions and is willing to be open and honest about their situation, regardless of the actual answer, I view this as a green flag.
Green Flag 5: Directly addressing issues that come up during the interview process. One fantastic example is when the hiring manager of the healthcare technology startup CareZone called me up to chat towards the end of the interview process. He called to tell me that he had heard about my experience during my Ada internship, and with that background information, he was better able to put my experience and references in context. He was willing to directly address those concerns with me. While it’s a little uncomfortable to talk about it or address difficult problems, having a hiring manager who is willing to be clear about what they think, give feedback, and address larger issues was fantastic. Then, he was very clear about how their company would not find the same behavior I experienced in the internship to be acceptable and about what processes they have in place to deal with bad behavior. This showed an organizational maturity that is extremely attractive to candidates. Organizational maturity, despite being a young company in this case, is one of the best green flags of all.
Fucked Up Shit People Say
I would be remiss if I didn’t include a section about some of the negative experiences I had interviewing. While I have already mentioned a few of the little things in passing, I was surprised by some of the more glaring examples of sexism I experienced while looking for a job. Sure, there were a lot of microaggressions and inappropriate but not malicious comments, but in order to give you a more complete picture of what it’s like out there I want to share with you some of the standout examples.
My first real face-to-face confrontation with sexism in the hiring process was when someone at a very early stage startup approached me. He emailed me to see if I might be interested and that my skills were what they needed at the moment. This was pretty early on in my job hunt in August, so I hadn’t quite gotten to the point where I was comfortable spotting red flags and turning an interview down. It started with an email thread where the recruiting developer mentioned another candidate and dismissed her skill set while still telling me they were considering her for the role. Talk about a red flag right there! Still, I agreed to meet for coffee and get more information. We met up, and unsurprisingly, the disparaging of this other female candidate’s skills continued. This included comments about her family life. When the developer mentioned her pregnancy as a negative to her potential employment, I immediately froze up and didn’t know how to handle the situation. It felt like I was supposed to agree that she might not be as dedicated or invested in the role because of her status as a mother. It was as if I was supposed to agree or possibly join in to prove that I was different or more appropriate for the role, like an extreme form of interview negging by proxy. I was embarrassed to be in public with him while he made several sexist remarks about the other candidate, but I wasn’t sure enough of myself at the time to walk out or call him out, which I deeply regret. Interestingly, male mentors and hiring managers have all said that I should have played it cool and finished the interview (which I did), whereas senior developers I’ve told this story to have told me they would have walked out.
To top this off, a few weeks later after I had politely told him I didn’t feel it would be a good fit, he emailed me again to let me know that they had hired a male candidate. The message was full of posturing about how great and successful the company would be, and concluded with “Sometime next year when we need to add developers and you're sick of your lame tech job, he can tell you what a magical developer world we've created at [company]! ;-)".
In September, I was put in touch with a hiring manager at a large corporation on the east side who was supposed to be "one of the good ones", but he informed me that while they may be able overlook my lack of a CS degree, I'd really have to "tone down [my] appearance". Unlimited rounds of my favorite game "Homophobe or Misogynist? (or both)"!
Relatedly, I was asked during one interview process if I am gay. This was not part of the formal interview, but I still feared employment discrimination. In fact, I do a lot of emotional work of figuring out if it's okay for me to be who I am at an interview. Luckily, I never felt that I had to pass at this particular company and I knew the question was an innocent mistake at making casual conversation.
Still though, do not ask if someone is gay during an interview.
- Just don't.
- Not even at lunch.
- No, not even if you aren't the hiring manager.
It is a giant red flag if the interviewers or employees don't understand know which questions are illegal to ask. That said, if a company representative is visibly gay or has casually disclosed being gay, I am more inclined to be recruited (ha!) knowing that there's family in the workplace.
How To Hire People Like Me
All of the best interviews I went through all had at least one thing in common: guest pairing. Pairing is important to me as a junior developer, but even if I were to accept a job where I would not be pairing as part of my main dev work, I would still want to guest pair when considering a dev team. Pairing provides the opportunity to see a team's workflow, the tools they use, and get a feel for the interpersonal relationships in the office.
The best example of this interview strategy was the half-day I spent pairing at Nordstrom Innovation Lab. For the first hour and a half, I paired with a developer on some of his work. Not only did I get a chance to get a feel for personality fit and workflow on the team, but also because I was out of my element working on unfamiliar code with unfamiliar technologies, I was able to ask questions and see how they handled my knowledge gaps. The second half of my guest pairing was designing and implementing a simple app in ruby. My second pair and I whiteboarded out some ideas and clarified what the requirements of the program would be. We tailored the pairing session based on the questions and clarifications and were able to approach the problem together from scratch. Since ruby was not the primary language either of us had been working in, it was a good chance to also see the attitude of the team towards things like googling for basic syntax.
As a junior dev, it's a given that there will be a lot I don't know so the best part of guest pairing is figuring out if the team helps collaborate to ensure everyone is caught up to speed. At a bad pairing session elsewhere, I asked questions and my pair was reluctant to slow down and make sure I was on the same page. This told me that they were unlikely to invest in growing my tech skills or prioritize onboarding. Naturally as a junior dev, I'm not going to consider working at a company where it's a battle just to get trained on the code base. Guest pairing is one of the most data rich interview techniques for candidates as well as companies, so take advantage of the opportunity.
To improve your candidate pool, you might be using code challenges before bringing someone in for an in-person interview. I am not opposed to code challenges, but I was shocked at how many companies used a single code challenge across the board for all new hires. They need to be tailored to the role and skill level of the applicant. Junior and senior developers should have different challenges based on the work you expect from them. As I mentioned in the red flags section above, if the code challenge isn't really related to the actual role someone is applying for, you should re-think your process. I had a fantastic experience doing a code challenge for a healthcare technology startup, C-SATS. During a video call with Adam, the Head of Engineering, he asked me if the code challenge on their careers site appealed to me. I answered honestly, "Not at all". In fact, I was applying for a front-end role and the question was like the application question over at Fog Creek Software. I'm the kind of person who likes to solve real-world problems for people and have a hard time finding the joy that some programmers seem to have when they solve problems just for the sake of solving a problem. To me, these sorts of code challenges just give me the same gut-dread feeling that I used to get doing word problems from a math book. Fantastically, Adam said no problem and gave me a code challenge that involved building an IP geocoding app. The reasons this was a much better code challenge was because it involved using the skills for which he would be hiring me, and it also had multiple options so that I could focus my work on areas of interest to me. For example, it was optional to use OS mapping tools and the Meteor framework. I chose to build the app in Meteor so I would get a good feel for their framework of choice in order to determine if it would be a good fit. They pivoted to give me a code challenge that was more appropriate for me, and I became more interested in the position because the company showed some common sense and reciprocity about their hiring process.
If your code challenge involves a typically male oriented theme, such as sports, consider changing it to something else. Why not use something more neutral? I did a code challenge that involved ranking soccer teams, and while going over the code a developer at the company asked me if I needed the rules of the game explained to me. While it's a good thing to make sure the candidate understands what the problem is, companies need to be aware that these things carry extra cultural baggage and asking a female candidate if they understand a basic sports rule (or any other male dominated theme) comes across as belittling and sexist. All of this can be avoided by using themes or problems that are more neutral. Code challenges should test the ability to write code, not if the candidate has shared hobbies or will fit into a monoculture. I've yet to come across a code challenge that played with themes or hobbies that I care about, like sewing, baking, or fashion. Can you imagine a code challenge that dealt with figuring out the optimal order of product application for makeup? I would love that shit! I'd be instantly more comfortable and feel confident in my ability to figure out that problem because of all my background knowledge. If that problem would make you feel uncomfortable, defensive, or trigger impostor syndrome, well, think about those reactions and who is the most likely to have them when designing your code challenge. If you already have implemented a code challenge in your interview process, do some analytics on which demographics fail at that point. It might be that you're unknowingly biasing your hiring.
In the end though, it became clear to me through this long, long process that I'm going to be a much better developer if I'm working in an environment conducive to growth, collaboration, and healthy communication. It was incredibly frustrating to go through a hiring process that involved multiple interviews without meeting anyone on the team with which I'd be working. For a couple of companies, I did two phone interviews, one live-coding phone interview, and then a full day interview just to find out that it was a bad culture fit. This is a waste of everyone's time! I have heard this voiced by a few other developers like me who also looked for jobs recently--we don't want to go through a whole gauntlet just to find out that the manager is a jerk or that the other devs make inappropriate jokes. My favorite pipelines started with casual informational interviews over coffee, tours of the office, or even just a video call. It seems like it's the quickest way to begin to filter for culture fit and requires very few resources on behalf of the company. I learned more about a company in a single one-hour tour & coffee than I did going through multiple phone interviews and a code challenge. The return on investment for both sides makes it clear that treating the process as a two-way street and getting a developer in early is a better strategy than spending more resources filtering junior developers before they get the chance to decide if it's a good fit for them, too.
In past jobs, I put up with a lot of bad behavior, harassment, and hostile work environments in order to pay the bills but now as a developer my priorities have changed. My main concern is finding a workplace where I see a culture that is welcoming to someone like myself and actually has invested in the structure and processes that will make me a successful employee. If you want to hire a passionate developer, what in your interview process reflects the structure & culture you have in place to allow them to succeed? I can tell you that having me stand in front of a bunch of dudes and whiteboard pseudo code on a wall does not communicate those values.
The Final Numbers
Companies that actively attempted to recruit me: 23
There are so many companies out there that are hiring--when I first started learning to code, a female dev friend told me that I'd be "hunted" because I am a woman. I'd like to think it also has something to do with my accomplishments & skills, but hey, she wasn't that far off. It's a strange experience to be in such a position where I can be picky about what I do and where I work. After the initial shock, I was able to start saying no to follow up interviews and drop out of the process early. What's clear is that it's just not realistic for companies of any size to think they can attract candidates simply by existing. It's going to take some effort to get through the noise.
Companies I contacted online: 10
Payback on online efforts: 2 interviews
By contacted online, I mean that I sent out cold emails, replied to craigslist postings, and filled out a few online applications for bigger companies. I disbelieved my brother when he said people can actually find good dev jobs on craigslist, but I did line up one interview through that route. The other interview I landed was through a cold email to the careers@ email address of an agency. I liked their vibe online, but it turns out it just wasn't a good personality fit. Overall, the payback on the effort to find and research companies online without having any sort of personal connection, shared network, or other introduction just doesn't seem worth it. For all new junior devs, it seems more efficient to skip the online job hunt and go to more meetups. For a smaller amount of time invested, meetups and similar networking opportunities have an exponentially greater payoff. The downside is that in-person job hunting can't be done in your pajamas.
Final offers: 5
Opening base salary range: $75k - $95k
Not surprisingly, my offers varied quite a bit though they didn't fall along any sort of clear small-vs-big company line. If you include first year signing bonuses and benefits, the discrepancy between the lowest and highest offer was nearly $50K. That's a lot of money, and I know that my starting base salary will impact me for the rest of my life. I'm not going to lie, I was definitely tempted by higher salaries and signing bonuses but in the end I chose a company whose opening offer was on the lower end of the spectrum.* I was more intersted in finding the right fit so that I could develop my skills, make meaningful contributions, and be in a healthy work environment. That place for me right now is the Nordstrom Innovation Lab! I'm so excited to work with such fantastic people. While I don't officially start until January, I've been going in every once in a while to participate in a Swift book club. The best sign of all? Every time I show up, I want to stay.
*Yes, I negotiated. And yes, I'm very happy with the outcome.
Curious about the Nordstrom process? Check out the Nordstrom Labs Hiring Handbook.