I went to a coding bootcamp, and then I got hired. I want others to be able to do the same thing, so I will illustrate in as much detail as I am comfortable the things I did that I think led to me getting a job in ~1 month after graduating from a coding bootcamp. This will be one part of a many part series going over how I transformed from a Liberal Arts degree holder making 40k/year as a recruiter into a Software Engineer making ~120k/year. Other posts will be linked to in this section later.
In short: I went to Hack Reactor (then Makersquare) in San Francisco, attended the program for 3 months, became a “Fellow” (also known as Hacker in Residence or part time T.A.) for 3 months after that, then graduated. One month after graduating, I was working, making ~120k/year. How?
The Job Search
Primarily what this post will discuss is the process of hunting for a job, rather than algorithm challenges, building a portfolio, interview examples, in-depth tips, etc.
Finding a job should be treated as a science. People will say, “it’s arbitrary, Joe got hired because he knew Bill at BigCompany,” or “recruiters look at 50 resumes a day, I’m just playing a game of chance!” They’ll argue that this is a random activity. Others will say there is an “art” to writing a cover letter, or drawing up the perfect resume. Maybe true, but I want to take all that randomness and indefinable “artistic qualities” and turn them into a process. Keep that thought in mind: turn the job search into a process. An algorithm, a series of steps, an experiment. Flex your debugger muscles – you don’t change a million things at once before checking results when you’re trying to fix a bug – you change one small thing, test, and if it didn’t work you change it back and test another thing. In other words, Scientific Method.
That means we need an objective. Obviously, this is get a job. Seems trivial, but with a goal, we can break out steps:
- In order to get a job, one must: get interviews.
- In order to get interviews, one must: get phone screens.
- In order to get phone screens, one must: get someone to look at our resume.
We’re engineers now, so you can think of this as a tree of nodes, and because we are engineers, we’re going to say that each of those nodes is also a tree. Recursion, oh yea, I love it.
- In order to do well during interviews, one must:
- be good at algorithms
- be able to succinctly tell one’s story
- be able to clearly define one’s strengths
- In order to do well during phone screens, one must:
- be able to succinctly tell one’s story
- be able to sell oneself in seconds
- In order to have our resume lead to a phone screen, one must:
- ensure it clearly sells one’s story
- ensure it covers all the POSITIVES of who one is
- ensure it looks professional, unique, and catches the eye
I might take this “job hunt is programming” metaphor too far, but notice that some of those bullet points can be applied to multiple parent classes? Almost like an angular module? Sorry, I’ll stop.
The point is, your thinking must adjust to become procedural. You must have our process clearly defined, so that when it’s not working, you can change one thing in it and record results. Furthermore, this removes the burden of decision off yourself for every application. If, for every single application, you need to decide if you care enough to send a cover letter or not, and then decide whether to do a warm lead reach-out, and then decide some other thing, you’re going to make this job search a hell of a lot harder than it needs to be. If you want to succeed, you need to turn into a job-chomping automaton – a lead comes in, a standardized application pops out. You are an API. You are a class with exposed methods. Stop me, I’m going too far.
During my job search, I stayed consistent, in every way I could. Every job application got a cover letter. Ever cover letter was built out of the same template. Every other day I was in the gym. Every weekday I was in the library or free study areas around town. I left the house at 7:30 and came home at 6. I went to sleep at 10:30. Every. Day. I ate 3 eggs, spinach, and half a potato for breakfast. Every. Day.
Consistency does a lot of things. Think of a proper, scientific-method experiment. You don’t change fifty variables at once, you change one, and everything else is kept consistent. This gives you the opportunity to change variables and measure results, and then make an informed decision. Finding that you aren’t getting callbacks? Try changing up the cover letter format, or maybe your resume. External recruiters never calling you? Try changing something on your LinkedIn profile. Never getting past a phone screen? Change your pitch. Measure results.
Consistency also takes off the burden of decision. The job search is hard. I sent off 270 applications. What if, for every application, I needed to
- Decide whether or not to send a cover letter
- if yes, decide out of 50 templates which one to use
- Decide how much research effort to put into the company
- Decide whether to search for warm leads
- Decided whether to set up coffees with warm leads
Even 4 simple decisions turns into one thousand and eighty decisions over the course of the job search. Decision fatigue is real. Your job search will be exhausting enough without it. Always send cover letters, always spend exactly x minutes of research on a company (5 for me), always connect with warm leads.
Consistency on externals, such as locations, workouts, etc, can ingrain the right mindset into each of your days. Not only does decision fatigue instantly come into play if you need to decide when you wake up whether you’re going to the library or not that day, there’s about a hundred thousand articles describing how establishing a “work-location” can increase productivity. Anybody that’s worked from home extensively can tell you the importance of having an “office room.” Same concept. Either create a space at home or go somewhere else, always, so that you aren’t tempted to play Overwatch instead of sending off applications.
This is something I pulled straight from my time as a recruiter – you always want something doing work for you while you work. So you send a bunch of quick apps on LinkedIn that don’t require cover letters, and then you work on some cover letters for Angel.co jobs. While you’re writing those cover letters, work is happening for you in the sense that your resume is moving up the stack on several different recruiters’ desks. If you hadn’t sent any resumes out, and then spent 20 minutes working on a single application, only one thing would be happening during that 20 minutes – you working on that cover letter. It’s a blocking action – like a synchronous AJAX request. Always use asynchronous methods (god I’m so sorry it’s going this far). Here’s my typical week:
- Monday: Hop on LinkedIn, click “jobs,” search [(“software” OR “front End” OR “back End” OR “developer” OR Backend OR Frontend) NOT Senior] , then click the “Date Posted: past 24 hours” filter. I’d scroll through the list and for any job that says “LinkedIn apply,” open in a new tab. Also, any job that says “your connection Joe Bob works at…” or “1 person from your school works at…”, I’d pop open in a new tab. I’d go through probably 5-7 pages of this before I started clicking through my many open tabs, quickly doing the 1 click resume send for any jobs that allows it and quickly connecting with any of my Alumni working at one of the companies that’s hiring. Then, I’d fire off a pre-made message to the connections I already have at companies that are hiring. All of this would be recorded in my jobs spreadsheet.
- Tuesday: Go through my list of “recent connections,” send the appropriate pre-made message to the ones I hadn’t messaged yet (previous alumn? Ask for tips/coffee. At a company I’m interested in? Ask for tips/coffee/referrals. Just some random engineer? Ask for tips/coffee/referrals). Go through Linkedin, use the same search string as above, filter by Date Posted: past 24 hours, and start applying to companies that didn’t have 1-click apply. Tailor each one’s cover letter based off a template. Add to spreadsheet.
- Wednesday: Angel.co and any new LinkedIn 1 clicks.
- Thu: Repeat Monday
- Fri: Repeat Tuesday, etc, and carry over to next week, etc.
While I work on Tuesday, my resumes are being “worked on” by my Monday applications. This is what you want – lots of gears churning, lots of balls spinning. Momentum. I kept this up no matter where I was with other companies. I was still doing this even as I negotiated offers.
External Recruiters: The Ultimate Plate-Spinners
Recruiters are great because you don’t have to do anything to make it work. They just call you, and sometimes those calls lead to a phone screen or interview. In my case, they led to 2 of my ~3 offers. Phone screens and interviews mean practice, offers mean leverage. All of it leads to a tremendous confidence boost.
I was a recruiter, so I knew how the recruiter game worked – when they called, I was one of the at least 15 people they called that day, if they’re meeting their KPIs. Chances are your given agency recruiter isn’t the evil snake most people make them out to be – they may even genuinely want to help you get a job. I know I did. But, they have a recruitment manager breathing down their necks, and so they’re going to call you, and then they’re going to call 75 other people that week, and their going to be shotgunning resumes out like a professional. So, take advantage of that. Fully 40% of my interviews, I got through recruiters.
When it comes to an agency recruiter, be polite. Have them put you down at: “whatever max rate you think is best for this role,” or, “you know this client better than I do – what rate do you think I should go forward for?” They’ll say a rate, and you say “That could work, depending on what I learn during the interview and conversations with the team.” There’s always flexibility when it comes to an agency. Help them out. Offer to forward their job descriptions on to your network. They’ll give you preference, your resume will get seen more – all for mere seconds of your time. Someone else spinning plates for you – that’s something you should take full advantage of.
To get a high rate of contact from recruiters, put your resume with contact details on Monster.
I sent 270 applications. I received a response from 65 of those applications. That’s a ~20% response rate.
270 applications was what it took for me to receive ~3 offers
The way I see it, the more “things” I do, the more practice I get, the more data I get, the more opportunity I get. If I send out 100 resumes and I get no bites, that’s a pretty good sign I need to change something on my resume. If I send out 5 and don’t get a response, well, that’s harder to say – each of those 5 companies could have very good reasons for not seeing my resume, or not caring about it. 100 companies though? That’s something on me. The more resumes I get out, the more calls I get, the more practice I get in calls, the better I get. The more I learn what works in a call and what doesn’t. The more calls I get, the more interviews… see where this is going?
Yes, I shotgunned. I sent out nearly 300 resumes in a month. That’s stupid, right? We should spend HOURS on each application to prove that we are really interested in a company right? You might assume I didn’t even read the job descriptions of the jobs I applied to.
Yup, for the most part, I didn’t. I spent maybe 5-10 minutes on each application with a cover letter. Approximately 5 seconds on “LinkedIn 1 click” applications, including adding to my spreadsheet. Why? Because I knew my response rate wouldn’t be better than 20%. I’m not going to spend more than 10-15 minutes on a company when there’s an 80% chance they won’t even send me a reject email.
I took the same approach to my LinkedIn network. I have 3,600 connections on LinkedIn. Think about what a LinkedIn connection is good for – you can message a LinkedIn connection. They usually respond – I have a very good response rate on LinkedIn. You can’t message someone you find on LinkedIn if you aren’t a connection. You can’t connect with someone on LinkedIn if your degree of separation is too great. So what does 3,600 connections get me? If not the ability to message someone, the ability to click “connect” and probably see them under my “new connections” section the next day… which means I get to message them. So every morning I’d go to LinkedIn, click that little button in the top right corner labeled “grow my network,” and add every single person I saw there. Then, I’d search “software engineer” or “front end developer” or the similar on the “people” search, sort by Bay Area, and add pages of people until LinkedIn rate limited me.
It would be fair to argue that I had the response rate I did because of my methods. Very possible, however as I read back through my cover letters, I don’t think it’s apparent from a recruiter’s standpoint that I spent max 10-15 minutes on a given application.
You probably aren’t a superhuman, but depending on your personality, you may try to act like one during your job search. That’s not bad, because I think it takes a lot of hustle to get a good job fast, even in an industry like this. The important thing is while striving for something awesome, being realistic about the fact that you are human. That means taking breaks, eating well, exercising, all that hearty Wheaties / Kids Choice Awards stuff. Corny, fine, but for me that kind of consistency was the line between a motivated and effective job search and crippling depression and/or insanity.
Also, you probably will see a lot of articles like this. You’ll get a lot of advice. Someone might tell you they got a job because they would always sit down and spend four hours on a cover letter. I bet there are a lot of people who have done just that. So who do you listen to? I don’t know, decide for yourself, or find a happy medium. I’m not going to say other ways are wrong, because I would be stupid to do so. Take my experience as a learning exercise and apply what you like to your own methods.
Bonus: A Bunch of Random Tips
Random knowledge I have accumulated:
- Never give your salary. Let the company say a number first.
- Upon receiving a cold reject, push back. If they say “we’re looking for someone with more experience,” reply “I understand that my level of experience is not immediately apparent from my resume. However, I applied to your position because I am confident I am up for the task- do you have a coding challenge I can use to demonstrate my abilities?”
- When submitting a take-home coding challenge, submit alongside it a PDF with screenshots of your design process, notes, explanations for design decisions (I chose Angular because x/y. I thought about using Z.js but then…). Make it pretty, dress it up like a cover letter, thank the reader for their time.
- Something to try: if you’re about to submit your resume to a company you have a lot of LinkedIn connections or warm leads at, instead send a message like “Hey, I’m applying to UberLyft, and I remembered that you work there. Do you want to submit me so you can get the referral bonus?” Bold, yummy. I never tried it but I have heard good things from those that have.
- Send LinkedIn messages to everyone you can. Be polite, ask for their advice or opinion on something very specific about the company. You can either go the route of flattery or somehow helping them (referral bonus, whatever), don’t just plop into their an inbox a “plz help I am a plebtastic bootcamp grad 🙁 “
- You are no longer a student. You might think expressing a strong desire to learn is good – it is – however you are applying to companies to help them solve their problems, preferably sooner rather than later. Before you start talking about how you’re a demonstrably fast learner because you went to a bootcamp, or about how you’re “excited to learn their stack,” make sure you’ve first demonstrated all of your strengths and all of the things you bring to the table. Then go into how it’s no big deal for you to pick up the minor little things you may have to at the company.
- Read docs from top to bottom. Speed-read, focusing mostly on bold texts and h1/h2/h3 tags. If you find something interesting, throw up a quick repl and try it out. I have learned a tremendous amount of broad information just by skimming all the Node and Express docs, and now I’m slowly working through all of MDN. Just do it while you’re pooping or something, you will be surprised how much miscellaneous information you’ll pick up that could be the clincher in an interview.
- Learn more CSS.
- Re-implement jQuery from scratch. Especially the basic AJAX method.