I used to work in engineering and data science at a tech recruiting company.
We had a hard time placing new grads.
In this article I want to describe what tech hiring is like. If you’re just starting your career I hope this article can help you come up with a strategy to stand out from the competition and get the job you want.
It's hard for new grads to get their first job
According to data I've seen, candidates who get a lot of job offers have a mix of experience (preferably from a famous company or school), the right skillset and the right salary expectations. In that order.
Experience is particularly important.
The data I've seen suggests that there's a 3 year career-start dead zone -- you may be an amazing engineer but during those first years you'll have to knock on a lot of doors to get your interviews.
In an industry "short on talent" where companies happily pay head-hunting firms $20,000 for introductions, why do new engineers struggle to even set up brief meetings?
A lot of new engineers are talented, passionate and filled with potential. They're less expensive and fairly abundant.
You'd think companies would be taking advantage of this talent pool but many of them aren't.
What's going on?
I believe that companies are being careful. Making ANY hire is expensive. A bad hire can be catastrophic.
Let me describe what the interview process is like from the employer side.
How does interviewing work inside companies?
In most companies finding candidates is the job of the HR / recruiting department or external recruiters.
Companies have limited resources so out of the 12 applications they get for a position they'll only likely screen a couple.
A basic code screen requires ~2 hours from an engineer whose salary after taxes and benefits runs about $100 / hr. Time spent interviewing is time NOT spent coding. When you factor in time for context switching and getting lunch an interview takes about half of an engineers' day.
Recruiters usually don't have engineering backgrounds themselves but they're the ones who take the first look at your resume. They tend to work by keying in on keywords.
Because of this a resume focused on 'Rust', or 'Clojure' skills will get weeded out. While an engineer looking at this resume would see "rockstar coder with an interest in functional languages", a recruiter only sees "not a node engineer".
A company usually spends one to two full days interviewing a candidate.
The process is elaborate because the stakes are high. While rejecting a candidate is painful, hiring the wrong candidate is disastrous.
Hiring the wrong person is really bad
The hiring process itself is expensive but the real costs come after the hire.
The company spends a pile of money before the new hire even walks in the door.
If a recruiting firm sourced the candidate the company has to pay a finders fee - typically ~20000$ (15% - 20% of a first years’ salary).
Then there are all the costs associated with hiring. Payroll, IT, etc...
Like most jobs, it takes a while for a new employee to become valuable. With engineers I've it takes about 3 months.
During this time the engineer needs a lot of hand holding.
An experienced engineer will need help with the quirks of a company's system, but a new engineer will need help with system setup and basics.
A newer engineer also requires more babysitting.
They may not have mastered architectural patterns. They may not have experience with testing and code reviews.
The company is exposing itself to a lot of risk if code ships with bugs or the codebase gets crufty.
Older engineers write bad code too but if they worked for Apple the odds are that they have fewer holes in their coding skills -- or at least that's how the thinking goes.
Nobody likes firing people + so hiring mistakes don't get fixed
It's easy to hire someone it's really really hard to fire them.
There have been a few times in my career where I worked with someone who obviously should have gotten fired.
One person was showing up to work drunk and trying to write code. Another really took advantage of the 'unlimited vacation' policy by basically never showing up to work.
In each case it took months for the management to finally admit that a mistake had been made.
Firing someone after investing team time and resources sucks.
If a person has a strong track record the likelihood you'll have to undo your hiring mistake drops.
Newer engineers are up against a lot... but we all got started somehow
I don't want to leave you with the idea that getting work in tech is impossible. Lots of people have broken into the industry even without CS-degrees.
I know this because this was actually my path.
When I graduated I had a lot of coding skills but my degree was in economics.
My own story involved building up a portfolio by doing small-time contracts for clients with small budgets. I then used that portfolio to get bigger more prestigious clients.
Over the years I have learned that getting hired takes strategy based on a realistic assessment of your strengths and weaknesses.
Not all 'employers' are the same.
Some companies are in high demand. Everybody wants to work with them so they're inundated with resumes from rockstars. Other companies need people but don't know how to find them. They'll hire the first good engineer who walks through their door.
Little changes in a resume (like emphasizing your Node skills over your older .Net skills when applying to newer companies, or changing the market you're searching for a job in) are the difference between 20 job offers in a week and crickets.
A little bit of thought about strategy can really help.
I thought it would be useful to end this article with some strategy recommendations.
I hope some of these approaches are helpful to you.
Strategies for getting in the door when you have no work history
To begin with, set realistic expectations - expect the hunt can be hard.
If you're sending out lots of resumes and not hearing back know that this happens to lots of candidates -- it's fairly normal so don't lose hope. All it takes is one company to say yes to hiring to get things rolling.
Sending out resumes can work but in my experience it's better to see if you can bypass HR by talking directly to an engineering manager.
The best way I know of to do this is to attend tech-focused meetups and events. Search for ruby or node or whatever tech meetups and go to the events. After the event employers get up and see if anyone is looking for work. Talk about some of the stuff you've done or things you're passionate about and you'll likely get invited to come in for an interview.
Another strategy you can use is to work with an employer in a contract (often contract-to-hire) role.
As we talked about earlier, the big things that are keeping the employer from working with you are cost and risk. If an employer doesn't have to actually commit to hiring someone full time they're way more likely to take a chance on someone with a bit less experience.
You can find contract work at events, on contract-centric work sites like Upwork. Smaller companies in particular like to work with contractors. This is how I got started and I highly recommend this approach.
Sometimes you really DO want a role in a hard-to-get-into (popular) big tech company and when that’s the case you need to make your resume stand out.
As someone who can't rely on work history to get in the door, you’ll need something else to make your resume stand out.
Some things that you can do ~
Niche ~ get specific about who you want to work for and bring more to the table than just programming skills.
Most candidates are telling employers, ‘you need Java? I have Java’ but the employer really actually needs ‘Java’ to solve educational or fashion or recruiting problems…
If you can bring a passion for the space along with the skills you have a much greater chance of getting an interview.
Demonstrate work the employer is looking for ~ a portfolio with relevant projects is pretty awesome here.
One hack I've seen done is to give yourself a homework assignment. Research a company you'd like to work for and put together a mini project (as if they had hired you). Send the project to them as part of your application.
Demonstrate high quality engineering skills.
Most new grads are missing professional engineering experience. They don't know about testing of version control workflows. They have nothing a potential employer can look at.
The solution? Work on open source projects, go to hack-a-thons, get involved in the engineering community.
All of these things can help you get interviews... once you get interviews all you have to do is pass them.
If you're interested in learning about passing coding interviews I put together a 50 minute Skillshare course about coding interview techniques. It's free for dev.to readers until August 30th. Check it out.
I hope this article has been useful for you and that you have some new ideas for strategies you can use in your job hunt. Good luck and may you find exactly the work you’re looking for.
Top comments (0)