There are few things that bring developers more absolute agony than the job search.

It's weird that even though software development skills are probably the most in-demand of all time, of any career, we still face such difficulties in searching and interviewing for new jobs.

Applying online, asking friends for referrals, submitting a code test only to wait for weeks to get rejected without a reason at all... the process is one that is quite often filled with frustration, ups-and-downs, and feeling like you have no control whatsoever...

And that feeling of lack of control usually hurts the most.

Sure, technical interviews are terribly broken. Unfortunately that's not something we have a lot of direct control in.

But what we do have more control over is the job search process - identifying companies you'd like to work for, getting on their radar, getting interviews, and most importantly...

Selling your skills in a way that makes them go "we should hire this person".

A better way?

I've noticed a trend, mostly on Twitter, of developers making it publicly known that they are looking for new work.

And they all seem to follow a similar format:

One is just: "I'm looking for a new job, I have X years experience as a Y developer. Hire me!"

The other, a bit more in-depth, but still essentially the same as the first type, and often in a Twitter thread format that requires people to scroll through a bunch of tweets:

"Looking for a new job. Know Node, React, Mongo. Have 5 years experience. Fast learner. Interested in working on blockchain, consumer-facing products, also open to Dev Advocate positions. pls RT for reach! #HireMe"

I realize that this might feel better than just mass applying to companies and blindly sending out your resume. It feels like you're being more direct, and to a certain extent you are.

But the problem with this approach is:

When you list out the technologies you know and years of experience with each you look like everyone else - this IMO is the biggest problem

Others have to do the work of figuring out where you fit in

When you say what you're interested in working on, while this is good to point out, you aren't framing things in terms of how you can help the company

It says that you're looking to join any company, not specific companies (companies always ask this in the interview process anyways - "So, why do you want to work here?")

It might increase your reach if you get people retweeting, but it relies on other people signal boosting you (that is, if you don't have a large following/network already)

Ultimately, it's the "spray and pray" approach. Just like blindly sending out hundreds of applications and hoping someone bites, this is the same thing.

The job search process is a sales process - one in which you are selling your skills and experience. And when you sell yourself with a pitch like...

"I'm a React developer with 3 years of experience who is also interested in blockchain and even Developer Relations roles!"

...this is essentially like saying...

"Hey I have a slightly specific thing to sell you! Good luck figuring out how it will help you and how it's different from what every other developer looking to join your company is selling!"

From my experience - and from what I've observed from the experience of others - I think there's a much better way to go about this.

With a little more work, it can be much more effective and get you closer to your goal.

There's a way to sell your skills that removes the work that hiring managers have to do to figure out where you fit in, shows how your skills and experience will help the company, and ultimately differentiates you from everyone else.

That gives you more control in a process that often feels like you have absolutely no control whatsoever.

And it's an approach that is actually proactive - one that avoids the trap of confusing feeling proactive with being proactive.

A better approach

This approach is something that I've built up over the last several years based on my experience, learning what others have done, and learning from hiring managers what they really look for and what impresses them enough to get an interview.

At a very high level, it is:

Step 1, figure out what companies' problems are: - Research company website, engineering blog, etc. to find out what these problems are

Step 2, show how you can help solve those problems: - create your "pitch" (whether this is a resume and quick paragraph email, or something in person, approach is the same) by showing how your skills and experience will help solve their problems

You might have even heard "figure out how you can help a company and sell them on your pitch" before but wondered how you actually go about putting it to use. "Figure out what a company's problems are and show how you can solve them" - by itself, is very vague and un-actionable.

The goal here is to be able to walk away with something that is actionable, that you can create a plan around.

So let's cover this process in more detail.

Step one, figuring out what company's problems are

The first step is figuring out what a company's problems/challenges are: What products are they working on? What challenges might those bring? Did they just land a round of funding and are trying to scale? What business domain knowledge are they in need of?

While it might seem like this information is hard to find, if you know where to look - and what to look for - it can be pretty easy actually.

1. Job posting itself

This is the first place to look. Not all job postings will talk about the kinds of things they're working on or reveal more information about the company, but many will.

Things to look for are:

What are recent things they've worked on or tools they've built?

What are things they're working on now? Projects/products/etc

What projects/products do they mention that you would be working on?

Do they mention any specific technologies you have experience with (not Node/React etc, but for example, performance testing tools -> this suggest they have a lot of traffic and they need to profile their services, something that you would be a good fit for if you have this experience)

Anything they explicitly mention they need help with? Sometimes job posting will say things like "We just had a huge increase in users and need to hire another developer to help us re-architect some of our core services".

If it hasn't been made clear already, researching the items above will not only help you understand the company's pains/challenges/problems, but will help you start figuring out how your skills and experience match up with those challenges. And this will help you draft a targeted pitch that will help solve those challenges.

Onto the next place to research...

2. Company website

It varies, but most company websites will usually have at least some information you can use to reverse engineer and figure out their challenges.

Things to look for are:

The list of product(s). Is there anything similar you've worked on that you can show you understand the business problems and domain? Anything similar you've worked on where you helped make UX and/or feature decisions (where you stepped outside your developer-world bubble?). Anything similar that you had to develop a unique technical solution for? You want to show you can understand the business/product side of things and translate that into technical solutions.

List of customers (company's love to list customer logos!). While on the surface this might not seem that helpful, it can actually provide helpful information. Is there a particular type of customer they have that you have developed solutions for before? (i.e. - government, insurance, etc). Any specific customer you have built products for before?

News section. Companies will often talk about new customers, recent acquisitions, and new product developments here. This will give you a sense of where the company is headed and is really useful to bring up in interviews as it shows you have an understanding of the current state of the company.

3. Engineering blog

Again, not all companies will have this, but it's a very useful thing to look through if they do. Even if the company itself doesn't have a blog, you can look for developers who work at the company and try to find their blogs.

Things to look for:

What projects/products have they developed recently?

And more importantly, what led them to build these things? What business challenges or goals drove the project? What technical challenges drove it?

4. Open source projects

Things to look for:

Pretty much the same things as the engineering blog, but make sure to skim through the "Issues" section to see if you can find anything else interesting.

5. Twitter accounts

Lastly, finding Twitter accounts of developers/CTO who work at the company you're interested in can provide a lot of the information in the other various places to look I detailed above. The bonus is that you can follow them there, interact, reply with technical solutions, etc. But that is obviously playing the "long game" and something that takes a good bit of time.

Wrapping up research

While all of the above might look like it would take a lot of time to research for each company, remember that not all company's will have a lots of information out there, or in all channels (website, blog, etc.).

And most importantly, this doesn't have to be hours of research for each company, just enough to get a sense of problems they have and are trying to solve for. I usually try to spend about 15 minutes on research per company (although some will be much less and some will be more, this is just a rough guideline!).

Step two, show how you can help solve those problems

Because we've already covered a lot here, I'm going to save this for my next post, next week. (Edit: new post published here!)

The "pitch" aspect could honestly be a whole book by itself, but we'll go over the highlights. Enough so that you can take the company research you did (using the tactics from this post) and apply it.

Whether that's sending out more crafted emails, more targeted applications, or simply reaching out to a contact you have at the company you're interested in working for.

For now, just remember to avoid the spray and pray approach. Whether this is through generic "hire me!" Twitter threads or just plain old blindly sending out applications.

I think you'll have a much better success rate, avoid the agony of having your application ignored that often comes with job searches, and get the kinds of jobs that will be a great fit for you.

Final comments

I usually write about JavaScript, Node, and software architecture. But I'm going to start occasionally writing more posts like this. There's a lot of vague career advice out there that is neither specific nor actionable - if you found the process and the steps covered in this post helpful and actionable, sign up below to receive all my new content directly to your inbox without having to remember to check back here!