Job Search Retrospective
I recently searched for a new job. For the first time in my career, I approached it in an organized, process-oriented, and public way (as opposed to the disorganized, quiet, desperate job searches of my youth). This post is a review of what I did, what worked, what didn’t, and why. A retrospective for myself and others that may be searching for jobs. It is likely useful for companies hiring, but their needs aren’t my concern (dear companies, pay me).
It’s a bit long, so feel free to take a look at the table of contents and jump around to the bits that interest you.
Update 2016-03-19: I quit my job at Seed today because it was not a good “culture fit.” My original gut feeling that tiny, early stage startups were a bad fit for me has been validated.
- My background and some disclaimers
- Miscellaneous advice, recommendations, and more
- Contact me
I want to start with a little bit about me. I am a senior software engineer with a bachelor’s degree in computer engineering from a state university. I focus on front-end web development and have about a decade’s experience as a professional, including experience at big names like Google and IBM. I am well networked from years doing tech community organizing and activism. I am a cis, currently able-bodied, middle-class, white woman.
I mention all of these things to give context for my job search. I have privilege, experience, and networks that made my job search easier and enabled me to take some risks. Not everything that worked for me will work for you, especially if you are in a different situation.
- I am not a career counselor, and my advice should be taken with context and a grain of salt.
- I am not suggesting anyone follow the steps I did. In some cases, it’d likely be a terrible idea. If you do follow any steps I did, I am not responsible for the consequences.
- I intentionally did not name the companies and people involved in my job search. In my experience, doing so can end badly. Please don’t ask me publicly for names.
- Your mileage may vary. Job searches are hard. There is no one size fits all approach.
People who saw the very public part of my job search (see part 2) may not realize a more private search happened first. This section is about that more traditional piece of looking for a new job.
Before I started the job search, I needed to update my resume. In theory, you should keep your resume regularly up-to-date, but in practice I never do because I hate it. Writing a good resume is hard, and I never seem to find the time.
The last iteration of my resume was created using a crappy google docs template over two years ago when I applied to google. I spent a half hour trying to modify it before I swore off fighting with word processing software and started from scratch on the web. I’m a front-end web developer, so this move made a lot of sense for me. It gave me a chance to showcase some of my skills and play around with design.
You can see my resume here.
Some general notes about my resume:
- I probably spent 15-20 hours putting this together. A lot of that time went into wordsmithing the content and trying out different designs until I found something I really liked.
- I had several people review it for style, readability, content, and typos/grammar before I started using it. Thanks to my friends who helped with this!
- It has a print css template, so that I can print to PDF for HR/recruiting staff who need a file they can send around.
- It’s responsive, so people can easily look at it on mobile.
- The skill ratings are incredibly subjective. I spent a lot of time tweaking them.
- I took an intentional risk listing my activist work and writing. I decided it was a good way to filter out some companies that would be a bad fit for me.
- My resume is a little long. I made sure to put the more important things first. I also knew that I could get away with this because of my experience level.
The first major step of the job search involved identifying companies I wanted to talk to. This search was private because I did not want my employer to know I was leaving, so I leaned a lot on my personal network.
I started by chatting with tech friends in Portland about what I was looking for:
- Located in Portland and would help me relocate.
- Role as a senior front-end web developer.
- Small-to-medium size.
- Company culture that won’t make me want to set the building on fire.
- Develops a product I’m not ethically opposed to.
I identified three companies in Portland to talk to based on recommendations from friends. I knew at least one person at each company. I like talking to a friend who will give me honest answers and insights to compare against the shiny happy sales pitch I usually get from recruiters and hiring managers.
My contacts at the three companies helped me start conversations with recruiters. An internal referral tends to work much better than cold applying via a jobs page.
My first interviews were informal discussions with the recruiters to discuss what I was looking for, my background, and my timeline for starting a new job. My new resume helped me walk them through my background. They talked to me about some positions that might be a good fit and answered some questions about their companies.
These all went well. Some of the recruiters immediately put me in contact with hiring managers to start interviewing. Others asked me to officially get into their system by applying online first.
Next up was phone screens. These varied pretty wildly from company to company. Some of them had me chat informally with the hiring manager and/or members of the team. Others had me answer some thoughtful technical questions. At least one asked me some technical trivia questions. Some just talked on the phone. Others used a variety of videoconference tools. I preferred videoconferencing (when it worked) because it’s easier for me to talk face-to-face.
Some of the companies I interviewed with had me do a coding challenge. One of them was pair programming via videoconference. Another was a take home coding challenge that I pushed up to a github repo and discussed with them via email.
I went through this process with two teams at one of the companies because the first team was “not a good fit” (recruiter speak for “we’re not going to tell you what happened”). There seemed to be minimal communication between the two teams, so there was a lot of repetition for me.
Around when I started phone interviews, I compiled a list of references. Many potential employers ask for them, so I wanted a list of three ready to go.
My list including the following:
- Co-worker from my previous employer who had been a reliable reference in the past.
- Friend I worked with at a previous employer who had been a reliable reference in the past.
- Co-worker from my employer at the time who I could trust to speak well of me and not tell people I was looking for a new job.
I asked people I could trust to provide a solid reference and to keep quiet about my job search. I checked with all three to make sure they were ok with being a reference and what contact information they would prefer I share.
Thankfully, I didn’t need to use my references. If I had, I would have given them a heads up whenever a specific company would be contacting them.
Eventually, all of the companies wanted to do on site interviews. The first company that showed interest pushed me to come on a specific timeline, so I planned to come to Portland that week and urged the other companies to fit me into their schedule. I scheduled three interviews in three days. It was too much. I do not recommend this.
The recruiter from company #1 said they would cover my travel and one night of hotel (more on this later). I asked the other companies to cover one night of hotel each. I covered a few nights of hotel, so I could stay a few extra days to see friends and check out apartments. I sorted out all the logistics for travel and put them in TripIt.
I asked each of the recruiters about expectations for interview dress. Tech companies vary, so I prefer to ask. Two of them said casual. One said business casual. I checked on the weather and packed clothes that would work for all three and one extra just in case.
I prepared an interview packet for each company and printed them out (see my templates for an example). Packets included:
- Company name
- Company location
- Company contacts
- Interview schedule
- A page for each interviewer. This is a mostly a blank page with their name and title. I use the blank space to take notes.
- A list of questions I want to have answered by the end of the day with space to write answers (see interview questions).
- Some notes for a compensation discussion, if they decide to have one.
I brought the interview packet, a pencil, my laptop, my wallet, my phone (sound and vibrations turned off), a snack bar (just in case my blood sugar gets wonky), and a water bottle to each interview. I gave myself enough time to arrive at each of the interviews at least 10-15 minutes early, just in case.
The first day at company #1 was an intense full day of interviews 9am-5pm.
- A couple chatty interviews that seemed focused on checking me for culture fit.
- An interview or two where the other person directed me to write code, but it wasn’t really pairing. At least one of these was remote via a videoconference.
- One interview involved analyzing code on a piece of paper in languages I am not familiar with for things that required familiarity with the language. This felt very close to a puzzle question to see if I would crack under pressure.
- Lunch interview with my friend. This was basically a chance to decompress.
- Interview with the hiring manager to ask how the day went and answer some questions.
- Final interview with the recruiter. This was a very awkward interview. The recruiter demanded to know my salary and got frustrated with me after I gave a number. This interview included what sounded like rehearsed speeches about how great a recruiter they were, that it’s important to compromise to work for a good company, and I should tell them things I didn’t want to tell other interviewers (this last one was extra weird). The recruiter was unable to answer the majority of my questions about company benefits and never followed up with answers when they said they would.
- Most interviewers were kind and seemed interested in and prepared for the interview process.
- The pair programming technical interviews were interesting and collaborative.
- The culture fit interviews focused on values I care about.
- I liked the team and was excited about potentially working with them.
- They pushed me aggressively to fly out on short notice despite me indicating I had important doctor appointments I could not reschedule.
- I got warned on fairly short notice (while I was on the plane to Portland) that they wanted me to bring my laptop to code on. I had to ask follow-up questions to figure out what they wanted me to have set up ahead of time.
- This was a really long day of interviews. I was completely exhausted.
- The puzzle interview seemed like a waste of my time and the interviewer’s.
- The recruiter. They were the only person at the company who made me feel uncomfortable.
- There was no position to hire me into despite the hiring manager really liking me. The recruiter had led me to believe the company would make one for me if I came out to interview and they liked me.
- The recruiter lied to me about how much of my travel the company would cover. As a result, I was out $700 and did not find out until it was too late to ask the other two companies for help with flight costs. Lesson learned: always get things in writing.
My second day of interviews at company #2 was a more leisurely half-day of interviews.
- Chatty interviews with people from a variety of roles at the company.
- Informal lunch with the team I would be joining.
- Final interview with the hiring manager.
- Respectful of my time.
- Everyone I chatted with was kind and interesting to talk to.
- I really liked the hiring manager and thought we would have worked well together.
- People had mediocre answers to many of my questions about engineering, policies, and company culture. It sounded like the company was in a pretty bad state of startup growing pains and not handling them particularly well.
- The hiring manager resigned the week I interviewed. It was “no longer a good fit” when the team ceased to have a manager.
My third day of interviews at company #3 was a packed half-day of interviews.
- Chatty interviews with people from a variety of roles at the company. One of these was over a videoconference.
- Architecture discussions where I excitedly drew all over a whiteboard.
- A coding exercise where I coded on an interviewer’s computer while the two interviewers watched over my shoulder.
- Lunch interview with the hiring manager.
- Final interview with the hiring manager and recruiter. When the hiring manager left, the recruiter explained their benefits and asked me a few questions about my timeline.
- Respectful of my time.
- Really interesting interviews with people from other roles (e.g. documentation, UX).
- Thoughtful architecture discussion was fun for me — I love chatting through this stuff on a whiteboard.
- Some technical difficulties with a videoconferencing interview messed up the schedule.
- It seemed like they tried to cram too much into a short time. Things might have went better if they made the day longer or had less interviewers.
- The paper coding interview was not a good test of my coding skills. I hate trivia questions about edge cases of languages.
Companies #1 and #2 didn’t work out because #1 interviewed me for a job that didn’t exist and #2 lost their manager. Company #3 was potentially interested in hiring me.
I had several back and forths with the recruiter about what I was looking for in a job offer (mostly about salary). This ended with a call with the recruiter and the hiring manager where they discussed the terms of a potential offer. The title, salary, and relocation were all less than the lower end of what I wanted.
I asked the hiring manager why I was not getting a senior software engineer title, which is in line with my skills and level of experience. They felt I lacked leadership experience and technical skills. In the past, this claim might have kicked my insecurity into overdrive and convinced me I wasn’t good enough. Not this time.
I spent the last several years upping my leadership game. All of the following are on my resume:
- Technical lead on a complex, high-value project at google over the last year.
- Manager for a year at a previous job.
- Organized the Girl Develop It chapter in Pittsburgh for almost two years.
- Helped organize Steel City Ruby (a Ruby language conference) for two years in a row.
My strong technical skills got me through google’s intense hiring process and earned me a recent promotion, which is heavily based on technical achievements. On top of all this, the two companies I interviewed with earlier that week had explicitly called out these skills as being exciting to them. Either this company’s interview process had failed to discover skills the other two companies found, or they were trying to convince me to devalue myself for a pay cut. Neither speaks well of them.
The hiring manager suggested that I was on the “cusp” of being senior and would probably be promoted in a year. I’ve seen this happen before. I’ve had it happen to me before. It’s a bullshit line. The job offer you wanted today becomes a promise for a year from now. That year often turns into a year and a half or two years or NEVER.
I politely declined the job offer. I was unwilling to take a financial and professional step backwards to work for a company that was trying to start out our relationship by devaluing my skills. This is where my privilege comes in. I still had another job, and I was in a position where I could decline this one. If I was unemployed or deeply unhappy at that job, I probably would have begrudgingly accepted.
I went into this part of the job search fairly confident that I would end it with a new job. My ideal scenario was getting job offers from all three companies, having my pick, and being able to leverage the other offers for one really good one at the company I liked best. I figured I would get at least one or two decent job offers and be good to go. I’m generally a very cynical person, so this was a rare moment of optimism.
The job search ended up being a series of unfortunate events that even my cynicism couldn’t have predicted. I ended up with no new job, out $700, and pissed off. I decided to go back to my job at google, focus on recovering from a recent health scare, and try again in a year.
My plans to return to google didn’t last long. The accumulated bullshit of working there came to a head, and I just didn’t have it in me any more (a story for another day). I quit. (╯°□°)╯︵ ┻━┻
I let myself enjoy a couple weeks of funemployment, and then I started my second attempt at searching for a new job.
Once people heard I quit my job, they started sending me job postings and asking what I was looking for. I wanted to give them some direction, but the prospect of repeating myself over and over was daunting. I decided to write up my thoughts into a blog post, so that I could share it and direct my job search.
What I thought would be a simple post grew into a lengthy, but thoughtful explanation of my background, what I have to offer, and what I was looking for. It ended up reading like a reverse job listing.
Some general notes about my post:
- Writing this post helped me be much more introspective about the job search.
- The post is pretty long, so I improved readability with lots of well-labeled sections and some cute imagery.
- I explicitly mention who I do and do not want to hear from in the post to minimize wasting time.
- I mention the information I expect in a first contact email. This helped me answer some questions about a company early on. It also gave me an idea of how good people are at following directions.
- I added +jobs to my contact email, so that I could easily filter emails into a folder for review.
- I had several friends review the post for content and typos before I officially published it. Thanks for the help!
- I added the FAQ to head off some likely questions and give them a nice answer. Also, it was an excuse to include a picture of Leon in his stroller.
- I added some notes to the post indicating it is inactive, so that I don’t continue to get requests.
Once my post was published, I needed to get people looking at it. I sent it to the people who had already started reaching out to me. I brought back my previously deleted public twitter account to promote it. This is one of those times where having a large network helps a lot. My friends and acquaintances helped pass my post through a variety of channels and made sure it got attention.
Once my post got out, I got emails from a wide variety of companies that were interested in talking to me. I made a job search folder in google drive to keep track of the overall process and a status spreadsheet to keep track of all the companies. This folder also included templates for company questions and interview packets. When I got interested enough in a company to start talking to people, I created a folder with the company name and copies of those templates to fill out.
This may sound a little over-organized, but it was immensely helpful. I have a terrible memory, especially when there are a lot of moving parts. This process helped me keep track of everything. It also ensured that I was following a similar process with each company, so that I could evaluate them side-by-side, if needed.
I got a lot of emails, so I had to review and prioritize companies that I wanted to focus on talking to. I ended up getting emails from about 20 companies. About 15 of them ended up in the spreadsheet (the ones that didn’t make it were way off the radar). From there, I did a little investigation on each to gauge my level of interest.
I started discussions with six companies I was interested in (if the process had gone longer, I might have talked to more). Some of them were a spot-on fit for what I said I was looking for. Some were close. One company was farther afield than I expected to be interested in, but seemed worth talking to. That was SEED, the company I ended up working with.
Once I had a little back and forth via email, I scheduled an initial chat with my contact from each of the companies via videoconference. As requested in my post, the people I was talking with were actual tech folks who worked for the companies. These early conversations dug into answering questions from my questions template and talking about what I was looking for.
After these initial discussions, I was fairly excited about two companies that were a nice fit with my post, willing to continue chatting with some folks that mostly fit and seemed like good backups, and surprisingly excited about the company that initially seemed like a bad fit.
I politely ended my discussions with other companies when I accepted an offer from SEED. I explained that I had an exciting opportunity with a startup that I didn’t want to pass up, but would keep them in mind for the future.
Update 2016-03-19: I quit my job at Seed today because it was not a good “culture fit.” My original gut feeling that tiny, early stage startups were a bad fit for me has been validated.
I want to talk the most about SEED because that’s where I ended up, and I didn’t expect to. SEED is a tiny, early stage startup that is working on developing banking for small businesses.
Tiny, early stage startups are also unlikely to be a good fit.
The above line is from my job post, so you can see why I didn’t expect to end up there. The initial email was from an acquaintance who heard I was in the market from a friend I trust. I responded politely saying that I wasn’t sure if a startup would be a good fit, but I’d be happy to learn more. They piqued my interest with some reasons why SEED wasn’t like your average startup, and I agreed to chat.
We spent over an hour on google hangouts chatting about the company, the people, the values, and the potential there. I was really impressed by the answers. The CTO sitting next to them piped up “it’s a marathon, not a sprint” when I asked about work/life balance. Next, I talked to the CEO (also over a hangout). We chatted for over an hour and had a detailed discussion about the one item on my “dealbreakers” list they hit --- no HR. I really appreciated how willing they were to engage with me on a tough topic. I later chatted with everyone else from the team one-on-one (most of them over hangouts, one in person).
After interviewing with everyone on the team, SEED seemed almost too good to be true. It was the one magical unicorn startup that I’d want to work at. I don’t dislike startups because they’re small and early stage. I dislike them because of the baggage that often comes with them: frat culture, drinking, long work hours, low pay, no diversity, etc. This company didn’t want to have those things and was trying to avoid them. Everyone I talked to was respectful of my skills and opinions and seemed genuinely interested in working with me. The product sounded like an opportunity to help a wide variety of people (not just a bunch of 20-something brogrammers in SF). I would have an opportunity to help build the user experience and user interface of the product and the culture of the company. They already were working with a diversity consultant I trusted.
I was super excited, but also wary. Things that seem too good to be true usually are. I consulted the whisper network to get some background. Were there any skeletons in closets I should be aware of? The whisper network said no. This was actually a decent group of people. The whisper network said go for it.
Continuing to support the hypothesis that they’re a decent company, I got a job offer I was happy with and assistance for moving to Portland. I didn’t negotiate. I probably should have because you’re always supposed to, but I hate negotiating, and I was happy with the offer. This may bite me in the ass later. I guess time will tell.
A public job search is a lot easier than a private one because you can talk freely and openly about what you’re looking for. Searching for a job is harder than it seems. It can be a full-time job all by itself, so it’s more manageable when you’re unemployed. This is where the privilege comes in again. I had the ability to quit my job and be unemployed while I searched. Many people have no such luxury.
I am proud of my reverse job listing. It helped me collect my thoughts, it got the right kinds of companies interested in talking to me, and it seemed to inspire some other people looking for work.
Asking companies lots of questions is helpful. It’s important to know what you’re signing up for, and you learn that by asking questions. Most companies saw this in a positive light and appreciated that I cared. A few noted that it felt like I was interviewing them too (in a positive way).
Sometimes the best place for you is not what you’re expecting, so it’s important to keep an open mind. It’s easier to do this when things come from a network you trust.
I’ve been at SEED for two and a half months now. I’m happy there. I enjoy the team I work with --- we have some great shared values and respect for one another. I’m excited about the work I’m doing in a way I haven’t been in years. I’m learning a ton and looking forward to more. I’m debating a keg of stumptown coldbrew for the office because who needs beer when you can have coffee.
This second search was a success. I’m less mad about the first search going sour because it meant I ended up in a better place. I still want that $700 back though.
- Apply to a bunch of companies. Job searches fail for all sorts of reasons. You want backups.
- Understand what you’re looking for and what you have to offer. If you don’t understand these things yourself, you’ll have a hard time convincing others.
- Know what your situation is. Do you desperately need a job now? What are you willing to compromise on? When should you walk away?
- Be organized.
- Take notes. Keep track of things you want to ask people. Take note of the answers you get when you ask them things.
- Get things in writing, especially things involving money.
- Investigate the job market for the role, location(s), and types of companies you’re looking for. This will help inform expectations about things like salary.
- Research companies before you talk to them.
- Get intel from the whisper network, if possible. People rarely talk about negative experiences with companies publicly for fear of backlash. The whisper network can warn you if you’re walking into a bad situation.
Here is a collection of resources that might be helpful to you.
Here is the list of questions I used during my interview process. I didn’t always ask all of them. A lot of them got answered during discussion rather than directly asking questions one after the other. These were the right questions for me, but may not be for you.
Special thanks to the following people who shared their own list of job search questions, some of which are included in my list
- Liz Abinante - Getting hired without getting burned: Sniffing for culture smells
- Julia Evans - Questions I’m asking in interviews
- What does your team work on?
- Who are your target end users?
- What size is the team?
- What does your stack look like? What languages/tools/etc. do you use?
- What version control system do you use?
- Do you test your code? What does the process look like? What does your QA process look like? Who does QA?
- Do you do code review? What does the process look like? Does all code get reviewed?
- Describe your deployment process – how do you find bugs in your team’s code? What recourse do you have when you find a serious bug in production code?
- Who is responsible for doing deployment? How often do you deploy?
- How do you test new features and development (e.g. user testing, user studies, a/b testing)?
- How do you think about code correctness?
- What does your dev env look like? (mac, linux, etc.)?
- How do you make sure that all code is understood by more than one person?
- Do you have an issue tracker? How do you manage triaging bugs?
- How do you balance support work and feature development?
- What’s your approach to technical debt?
- Supported browsers?
- How are decisions made? Is architecture dictated top down? Are ideas from anyone welcomed? If so, in what scope/context?
- Is there a written roadmap all developers can see? How far into the future does it extend? How closely is it followed?
- What does your team communication look like (e.g. irc, in person, email)?
- Do you work with other engineering teams? What does that look like?
- Do you have designers you work with internally? What does that interaction look like? Is it a collaborative process?
- Do you interact with customers? If so, what do those interactions/relationships look like? If not, does someone else interact with them? Do you have communication with them?
- How/when do developers talk to non-developers? Is it easy to talk to the people who will be using your product?
- How much of your team is remote?
- How long have you been doing remote?
- How do they work together and ensure good communication and collaboration?
- What tools do you use?
- Can you tell me a little about the pros/cons of being a remote employee?
- Is there support for a home office and/or room at a coworking space?
- How does engineering work get assigned?
- How are technical decisions made and communicated?
- How are disagreements solved - both technical disagreements and other kinds? What happens when personalities clash?
- When something goes wrong, how do you handle it? Do devs get shamed for breaking the build?
- How often do you have meetings? Are there any scheduled/standing meetings?
- Tell me a little bit about your team onboarding process.
- How is employee performance evaluated? What sort of growth is available for senior engineers?
- Can you give me an example of someone who’s been in a technical role at your company for a long time, and how their responsibilities and role have changed?
- How does your company support the growth of junior engineers?
- Work/Life Balance
- Would I need to be on call? How often? What is the SLA? How often do people tend to be paged? How often is it a real emergency?
- Does this position require travel? How often?
- How many hours do people work in an average week? In your busiest weeks?
- Is variability tolerated or is everyone expected to be on the same schedule?
- How often are there emergencies or times when people have to work extra hours?
- Do people work on the weekend?
- How much vacation do people get? Sick leave? Are they combined or separate?
- Do people check in when they’re on vacation? How often?
- (if not remote) Is it possible to work from home, say, 1 or 2 days a week? Does anyone do this?
- employee education/training/development/etc.?
- support for conference attendance?
- tech community involvement? locally? conferences?
- What are the policies around employee activities outside of work? Open source contribution?
- Could you tell me a little current diversity at your company? Any steps they are working on to improve?
- Are there any internal employee resource groups?
- Is my diversity in tech advocacy work ok? E.g. writing for model view culture.
- Interview Process
- Can you tell me about what I can expect from the interview process?
If you would like to contact me about any of the items listed below, please email me at email@example.com. I make no promises about responding.
- Copyediting feedback (e.g. typos, grammar mistakes, weird wording).
- Questions about something in the post.
- Feedback about something in the post.
- Paying me that $700.
Please do not contact me about any of the following.
- Press wanting to talk to me about the post.
- Companies wanting free advice about hiring/interviewing/etc.
- Asking me to name the companies that are intentionally unnamed in this post.
- Strangers asking me for advice about their job search. I wish I could help you, but I am not qualified to be a career counselor nor do I have the time right now. If you are a friend, you are not included here, and you know how to find me on other channels.
- Sending me patronizing feedback about my job search. I see you, dudes, waiting. DON’T DO IT. Especially nasty emails will be published. You’ve been warned.