If you are a new grad looking for an internship or full-time position at a top-tier tech company, this article is for you.

If you know someone who’s currently in the process of looking for a new developer job, send them this article.

I summarize some of the top mistakes I see as a career coach, and as someone who’s been on both sides of the metaphorical interviewing “table”.

These tips have helped me land job offers from Microsoft, Amazon, and Twitter – all without an Ivy League degree.

Avoiding these mistakes is critical because, if you are making any of these mistakes today, chances are your resume is not getting picked up by the right people.

Even worse, you’re not getting the opportunity that you deserve.

If you prefer to watch this article instead, I made a whole video about it here:

Mistake 1: Too much fluff, not enough stuff

Many first-time candidates spend too much time on their resume!

What I mean specifically is that they focus mainly on the formatting, the color, the fonts, and the layout of the resume.

They’re so focused on the formatting of the resume that they can’t see the forest for the trees. They don’t realize that their resume lacks the right content for the jobs they want.

Why’s that important, you ask? In today’s market, trying to be a software engineer is a highly competitive industry. There were 26 million developers by the end of 2019, and we're expecting to have 27.7 million developers by 2023, according to this article.

And it makes sense why many people covet jobs in the software engineering industry: they often boast a  high 6-figure salary, amazing health benefits, unlimited PTO, free snacks and food, among other perks.

In a competitive, red-hot market, the thing you need to do to stand out is to focus on the actual content of your resume. What that means specifically is to pick up “meaty” or interesting projects that will hone your technical chops and beef up your portfolio.

Here’s an example of a web crawler that I built to help me apply to companies and also beef up my resume.

Strong technical skills/experience makes you a much stronger and attractive candidate. Many fresh grads try to pad up their resume with non-tech related experience like social clubs.

I don’t think those are unnecessary. Non-tech related experiences are valuable insights into your character. But if you’re trying to apply as a software engineer, what’s most important here is the technical content.

Companies want to see your technical skills, whether you can write code, and if you can deliver a given assignment and get stuff done.

Mistake 2: Tutorial Hogs

The second most common mistake I see is that many people spend too much time on tutorials with no clear goals in mind.

They’re the typical Coursera/EdX/<insert-any-online-academy-here> warriors who sign up for every Android, Swift, JavaScript, React course available and work through them diligently.

They know every syntax of every programming language out there. They can chat religiously about MVC vs MVVC. They know what’s “in” and what’s “out”.

But the truth is usually not so rosy — about a few weeks into one course, they give up.

They have learned the syntax of the language and how to set up the framework. But they haven’t actually built anything substantial using the knowledge that they have gained.

Now that is a problem because what happens is that you have a lot of “fringe” knowledge (things that few people know a lot about). But you are not able to take that knowledge and apply it.

In the industry there’s something that we call “applied intelligence.” Can you apply your knowledge to a new domain? Can you take your knowledge about Python, for example, and use that to automate your finances via a Python script?

If you can do so, then you’re presenting yourself as a holistic, technical-oriented problem solver. And that’s what a lot of companies are looking for.

Mistake 3: Missing the forest for the trees

Why limit your job search to only San Francisco or Seattle? Or even the US for that matter?

Most people make the mistake of applying only to the companies that they’ve heard of, like Google, Facebook, or Twitter.

But the problem is this: there are only a handful of top companies in the industry with even fewer job opportunities.

The truth is you have a very limited set of openings, with a lot of competition from the large pool of applicants all over the world. The chances of getting an interview or even landing a job become extremely thin for the average person.

My recommendation is to expand your horizons and search beyond just the companies you’ve heard of.

Instead of just focusing on those top tech companies, open up your eyes and look across startups, midsize companies, and non-tech companies because those are the best opportunities right now.

Starting somewhere small and building your experience along the way is a great way to bootstrap your career. It doesn’t really matter how much you get paid initially or what the title of the position really is, because once you get your foot in the door, you can learn and improve yourself to prepare for the job you want.

That’s exactly what I did when I graduated from college — I didn’t have any job lined up. I then wrote a script that helped me apply to different companies, and finally a startup took a gamble on me and gave me a job. You can read more about my story here, and how I finally landed at Twitter.

Mistake 4: Right Credentials, Wrong Job

My best analogy for this: would you buy a shovel to build a door? Most likely no, so why would you apply as a machine learning specialist if you are a front-end engineer?

This baffles me as I’ve seen many great resumes come through the door for the wrong positions. Most of my friends have seen this happen as well. And the unfortunate truth is that, most companies will throw your resume in the trash if it’s not the right fit.

Some of my friends shyly confided in me that they’re hoping that the HR department would slot their resume in the right hands somehow.

I’m sorry, but they won’t.

If you’re a software engineer and you’re trying to apply for a machine-learning positioned, ideally your resume should have some relevant experience related to machine learning. Either you should have taken some internship projects or have some machine learning related experience at your current job.

My personal recommendation in this case is to:

  1. Figure out what skill sets you have and how your skill sets match up with the position
  2. Get a friend to review your resume with you and see where the gaps are

If you don’t have a friend (sad but OK), then ping me here — I can’t promise I’ll find you a friend, but I can help review your resume.

Keep refining your résumé. And keep applying.

If you found this article useful, join my newsletter where I write monthly about software engineering, technical interviews, and technologies here. Follow me on Twitter.