Get That Coding Job
22 July, 2023Preface
So far during my career, I’ve designed software developer hiring processes at three different companies. I’ve personally conducted a couple hundred interviews, I’ve run teams that have conducted thousands, I’ve written staffing software, and I’ve spoken on hiring at conferences. I have also mentored people for fifteen years, am involved in several online organizations based around helping people progress or move into tech, and while CTO at Operation Spark bootcamp, I spent months helping run the job hunt phase of the program. In one form or another, I think about this stuff every day, and people ask me for job hunt advice a lot.
I’ve been meaning to write this article for a long time and I’ve got 6000 words of notes alone; so before we launch into this tome, let me just say that I very much acknowledge that my own experience is not that of someone trying to break into the industry. At this point, its not even similar to most senior developers. In addition, even expert advice on an activity which is performed relatively infrequently and with long delays for feedback, is precisely the sort flagged by researchers as being not much better than random.
Yet people keep asking me for advice on job hunt. And I do think that over the years I have developed a set of mostly common sense things that I tell people, and they do seem to find helpful.
We’re going to cover the mental model of what I’m arguing for this post, then in subsequent ones we’ll go into thoughts on resumes, interviewing, and job hunt strategy. There’s a lot and there’s a limit to how much you should listen to me, but you probably shouldn’t just have AI summarize it. I tried to have Claude write it, it did not turn out well.
Mindset
Let’s not be shy about this, Job hunt is a Sisyphean task.
Except of course it is not. Sisyphus was the ancient Greek king damned to eternally roll a boulder uphill. A thing can only be Sisyphean if it is impossible to attain your goals. Otherwise, it is just hard. And job hunting is hard. You are best served getting into the right frame of mind.
Fortunately, it is not hard because you have to push a heavy boulder. It is hard because every part of the job hunt will be all about failure. Sure, in the end you suddenly achieve your goals, but right up till then…well it sucks.
But what if job hunt is not primarily about that?
Writing code, doing projects, being a good coworker. These are all important and valuable skills. But it’s not the full set of skills needed to get the job. There is a different set. Your primary goal is to build up these job-hunt skills.
Before we launch into that list though, let’s consider the structure of a job hunt.
The Funnel
At its core, a job hunt is marketing, is it not? You are marketing yourself.
Have you ever heard marketing or sales people talk about “the funnel”? The idea is that sales opportunities pass through a series of stages. At each stage a decision is made and the opportunity either progresses or gets eliminated and falls out of the funnel. From a hiring manager’s point of view, each applicant is an opportunity and - as they move through the process - at each stage the number of remaining applicants gets smaller. From the applicant’s point of view, at each successive stage the chances of them reaching the end, and an offer, increase.
So it is really more of a sieve than a funnel, but I guess marketing folk aren’t known for their nomenclature. (Also feel free to visualize this as a video game…but like, without checkpoints and you never get a chainsaw.)
During the job hunt, with each job application, you enter a funnel. Here is a rough list of stages you have to get through:
- Your resume needs to get looked at. That means someone has to actually be manning the hiring apparatus. You’ll be shocked how often there’s simply not someone on the other side. it’s not usually insidious, but I would wager this is the case with 20-50% of all job postings.
- Alternately, they might have gotten so many resumes that they simply couldn’t review every one. I encourage hiring managers in that position to pick at random a comfortable number of resumes they actually can review and mass-reject the rest. It sucks, but it sucks less than any alternative.
- Next, your resume should stack up well enough against others to be selected for a phone screen.
- Of course you have to be able to carry on a conversation and demonstrate some competence in a phone screen and to be passed through to an interview.
- Then there’s the rounds of interview - each a stage in itself. Let’s be conservative and say there are three rounds. The details don’t matter so much for the purposes of this list. Lets say these include a technical conversation with the hiring manager, a leetcode-style coding test, and a behavioral interview panel. At each point you might get eliminated as your performance always has some chance of not matching expectations.
- Now say that you get to the end of the interview process…well that’s no guarantee you get an offer! There are other people also moving through the process. Ideally, only a couple should reach the end: the offer usually goes to just one.
- Then of course the offer has to be good enough that you’re willing to take it.
- And finally, at every point in time there’s the small, yet real possibility of the job simply disappearing, hiring being frozen, the manager or recruiter leaving, or people just plain dropping the ball.
This list is key to understand and we will revisit it throughout this series. There are things you can do to improve your odds at just about any stage, but you have to prioritize. Time spent improving in one area is time not spent on another. You have to learn how to think about these odds and how they interact. Unless you’re an ace at Bayesian probability, your intuition here is probably wrong.
Which is why, after the 50th time I’ve had a conversation with a mentee about how the odds don’t play out like they think, I created a tool to help! You make a Fermi estimate for your odds representing all the above stages and it interactively runs thousands of simulations to show you how that job hunt might go.
Its crude and purposefully worksheet-esque as I want people to focus on the relative impact of certain variables compared to others, but the math isn’t complex and I think it demonstrates these things well. I’ll be referring to this a lot throughout as well.
Job Hunt Skills
Lets first give a disclaimer: If you have amazing, preexisting marketing and sales skills you probably don’t need to hear any of this. If you are incredible at networking and can cold-call sell a wool coat to a sheep, you don’t need my advice and you should just go do the things you already know how to do far better than I. But for the rest, lets talk about what I mean by “job hunt skills”.
“There’s nothing to applying at all. All I need to do is tailor my resume and click submit, right?” – a mentee
Yeah, it’s not that simple. But fair question, what is this entirely different set of skills anyways? Let’s do another list.
-
Goal setting and sticking to a schedule. Including the ability to set small-yet-achievable short-term goals, set commitments, do regular accountability check-ins, and adjust as needed.
This is the key to improving at most things. Musicians and high-level athletes already know this, but now you’re in on the secret as well!
-
Ability to simply find jobs find apply to.
Ever look at a job board and dejectedly feel like none of these listings are a fit? It’s not just you. This influences the rate at which you can apply for jobs and therefore how many chances to progress through funnel do you get per week.
-
The mere act of applying is hard. You have to deal repeatedly with an emotional roller coaster. You have to put yourself out there, you get hopeful, open up yourself to dejection, and if you are lucky it all comes crashing down on you when you get a rejection (which is still better than no response).
As humans, we try to avoid these situations, yet the only way out is through. There are ways to increase your odds, but there are no magic bullets. You can desensitize yourself so that it doesn’t sting so bad or…well there are no better options. This again influences that application rate, how frequently you will need to take breaks, and the likelihood you end up giving up and walking away from the whole thing entirely. No one wants to apply to 3000 jobs and you very likely won’t have to, but wouldn’t it be nice if such a high number didn’t give you all-night indigestion?
-
You have to get to a point where it is easy to write and talk about yourself.
It’s not a natural thing for most people, yet is what much of the interview and application process consists of. Getting good at this is going to affect much of your experience. Your application, phone screen, interviews are in no small part exactly this!
-
Following up.
This is key to get people to actually pick up and look at your resume where they otherwise might not. There’s several different strategies available, how do you (tastefully) become impossible to ignore?
-
Cold reach-out.
Contacting individuals you do not know, requesting favors of connection or information can often feel socially taboo, yet it is key to several networking approaches. These can improve your odds of applying to jobs where you are likely to be considered, increase your chances of getting past the screen, and improve your ability to talk shop during interviews. It is a very worthwhile tool to have in your pocket
-
Researching companies and industries.
Most people have no idea how to do real research. It’s not ten minutes browsing the company website. Understanding how to take notes, join communities, and how to conduct informational/reverse interviews is key here and takes a decent amount of practice.
-
The ability to have engaging conversation live and asking good questions.
These are of course a must for interview, phone screen, and offer stages, as well as supporting techniques in many others. In these post-COVID pandemic days, we all need some work to improve here.
-
Ability to talk about technology.
It’s great that you know React, C++, and Kubernetes. But can you actually demonstrate that knowledge live in a conversation? Can you make it mutually enjoyable to show what a convivial coworker you would be?
-
Leetcode-style coding. Or live-coding. Or take-home-project coding.
Well you knew this would be on the list as it affects those interview stages, but you are probably surprised how small a proportion of this list these skills really are. They are important, and you should work on them (but keep in mind how many other skills are just as important).
-
Network building and maintenance
This is the core of “networking”. How do you actually “build a network”? What is one? How do you use it? How do you tend it so it doesn’t decay?
This again, affects stages at the front of your funnel directly and all others indirectly. For example in the course of networking, you might hear about un-posted roles, you might get ideas for new places to apply, you might get a referral. You will get lots of practice talking to people in industry; that seems rather useful.
This is a lot - almost an overwhelming amount! Even in this lengthy blog series I don’t think I’ll get to everything. Worse, most of it is well outside most people’s comfort zone. So how do we climb a mountain like this when it is both uncomfortable and emotionally draining?
Habit and organization are key.
You have to get organized
There’s a saying in advertising that half of all money spent on it is wasted, the problem is that you don’t know which half. The same (with some caveats) applies here. And if we’re taking lessons from advertising, then what did the industry do in the late 90s to deal with this conundrum? Well, with adtech, they started to…
Track everything
Yes, that bugbear of the modern internet - tracking - started initially as an attempt to simply understand which advertising worked and which was merely annoying! Which is actually understandable and almost noble.
If your primary goal is to build up job hunting skills, your secondary goal is to gather data that can be used to guide you further in the job hunting process.
I’ve been following recently on a forum of dozens of very high-level software engineers and managers looking for and sharing job hunting tips. Here is an example of the sort of thing they are regularly posting.
Now your numbers will of course be very different, but at a bare minimum this is the sort of thing you should be able to generate at any point in time and with little effort. This does not mean “I can check my email and see where I applied” or “well Indeed has this nice tool to show you who has looked at your resume”. You have access to a lot more data than such tools offer!
Remember those weekly accountability and commitment meetings I mentioned? Well these work best if you can set goals and discuss success in terms of numbers. Ideally, all of the following are things that you should be able to give weekly updates on.
- Exactly how many places you’ve applied, in the past week? Ever?
- To the best of your knowledge, exactly which stage in the process are you with each application.
- What follow-ups have you done? When? Where will you follow-up next?
- Which cover letter and/or resume did you use for every job application? If they have a custom form with essay questions, what exactly did you write in there?
- What industry is every company in and what they do? How large is the company?
- How excited are you about the opportunity? Putting a number to this is great when you are determining how to prioritize follow-ups!
- What is the list of mistakes you have made in interviews? What is the list of feedback you have received?
-
Of the jobs you find yourself applying to, which skills are they demanding? Which are regularly nice-to-haves?
All of this presents an opportunity. If you’re a coder, you should code! Make your data work for you; play with it. Don’t just copy-paste skill lists, standardize things. If you have a category for “Javascript” and they’re asking for “ReactJs” or “Node”, then that still counts as Javascript. Are you making bar charts about this stuff? Are you using it to guide your study? Is this at least the sort of thing you’re organized enough to do in theory?
This is all starting to sound a lot like a spreadsheet, does it not? Probably a good idea to have one. Or use a markdown file. Or design a database! But be consistent and detail-oriented.
So yes, this is a lot. An awful lot. It does take the pressure off though, doesn’t it? You still want a job of course, but there are many shorter-term wins available! You are taking those job applications and converting them into a positive source of much-needed data that in turn you can use to improve your job hunt.
It’s all about cadence
Here is the general shape of the job-hunt I am proposing:
First, you find a schedule that you can stick to.
Next, you find a baseline of what sort of effort you can maintain long-term. In its most basic form, you want to be able to say something like “I have maintained it for a while and I know that I can apply to X
amount of jobs per week without breaking a sweat.”
Now, X
is going to be different for you than for others, it can be very low or quite high, and it should not be guessed at. You need to have actual numbers on a spreadsheet of your experience that you can point to. And, yes, you absolutely need to know what X
is; because once you do, you can start tweaking.
Remember the aforementioned accountability meetings? You need those. Use a mentor, your school/bootcamp, a friend, a group of others on the job search, an AI assistant, a journal, or even a formal Job Search Council. At each meeting, review your week, go over your numbers blame-free, discuss any adjustments (eg. is X
actually lower/higher than you previously believed?) and commit to some goals for your next week.
This, is where the tweaking comes in. Say your X
number is 25. You know that using a reasonable amount of effort, in the time available, you could consistently apply to 25 jobs each week, every week. You are working to increase the odds that your resume is actually looked at. What tools are available? Follow-ups are such a tool. However, these can be time intensive, and require their own set of skills to get working effectively; how to get better at these without overloading yourself and burning out on the process?
Well, what if for next week you committed to something different? You scale back to only 15 job applications, but you commit to 5 followups to jobs you applied to over the previous two weeks. You should still be able to handle this effort, and as you improve you become more efficient. Once it becomes easy, you can try going back up to 20 job applications but maintaining the follow ups.
A cadence gives you a ratchet to improvement. Be honest with yourself and set your goals well; you will always be getting better.
I should probably stop and address the focus on job applications versus other strategies. It’s not uncommon to hear advice after all that cold-applying is the worst thing to do, it doesn’t work! No one gets a job that way!
I emphasize with the desire to avoid an activity that is, for most, deeply ego-bruising. And yes, there are other techniques of course, you can study industries, join communities, reach out to old coworkers, and these are all things we will cover. But - when you have no process - those can be hard techniques to get started with. It so happens that the process of applying is a workout that builds some very specific and useful skills.
So yes, if you have an uncle’s brother who can get you a job super-easy you of course should do that. Do that before reading another article. But for everyone else…then what? Because ultimately, all roads lead to Rome. There is really only one thing that you must do to get pretty much any job after all: You have to apply.
Applying to jobs is the surest way to make sure that you actually do something measurable, it is an effective backstop when nothing else works, and frankly - it trains you quite well on many of the skills you’ll need to succeed in other areas of the job hunt.
To be continued
Well, we’re over 3500 words already and good lord, we’re nowhere near done. I think we’ll stop here and pick up next time with more on the view from the hiring manager’s side, resumes, interviews, and what on earth it actually means when people tell you to network.
For those who do not want to wait for the next few posts, feel free to grab my raw notes. It is an org file - similar to markdown - which you should be able to open in your text editor of choice.