Ask HN: Is any company still hiring entry level engineers?

21 points by paxys ↗ HN
There has been a lot of talk about a historic hot job market for software engineers, but anecdotal evidence suggests that new grads and those with under a couple of years of experience are finding it impossible to break into the industry. It seems like every company wants skilled and experienced engineers and is ready to pay top dollar for them, but no one is willing to invest equivalent resources towards training and mentorship.

As someone who is speaking with a handful of people stuck in this situation, what direction should I guide them towards? Are there any job boards for such positions? Does anyone know any companies out there (YC or otherwise) that gives these recent graduates a shot?

33 comments

[ 4.9 ms ] story [ 79.2 ms ] thread
The BigTech companies adore new college graduates, try Google, Amazon, Oracle, Microsoft.
They adore new grads from the like top 10 schools, other than that not so much.
Yeah, it is unfortunate but being at a target school sometimes does give an unfair advantage. But the bright side is different companies have may a different set of target schools.
> The BigTech companies adore new college graduates

Of course they do. New graduates are cheap, expendable, and ready to put in 10-12 hours of work a day.

I have seen it where new graduates are referred internally but have to have a mentor prearranged (typically the referrer) to oversee the work of the junior before they are offered the position...not sure that's helpful though..

When I got my Junior position after university I had just been applying to _everything_, mid-senior engineer positions, did not care. I was eventually booked to interview for a "senior" position where the interviewers made it clear that they knew I was a new graduate with no experience and essentially conducted a more junior-level version of the interview

"but no one is willing to invest equivalent resources towards training and mentorship"

There are companies and teams but you may have to dig deep. I would love to hire an entry level person for our small bootstrapped SAAS company but I run into some problems whenever I am interviewing someone entry level for web application development:

- They overvalue their salary requirements. I may get flak for this but I don't care. Just because you have completed a "bootcamp", you cannot ask for a salary that is FAANG level.

- They think they know more than they really do. I have interviewed a lot of entry level especially bootcampers who can write a app.get('/', (req, res) but have no idea how a GET request actually works. Most cannot tell me the difference between http header and body. But they surely know how to send an ajax request through code. Fundamentals people, fundamentals.

- A lot of them are unfortunately sold on the idea of frameworks to begin with and they start parroting things like "React or Svelte" but cannot write a simple javascript or an HTML form. Many cannot tell me how a form gets submitted from the client and processed through a server. Many have never written a <form> by hand.

- They are entitled just because they have a github (which mostly is a fork of a project or blank stuff)

- They don't really spend the time learning on their own. This is the biggest thing for me. You need to try and stand out from rest. doing a copied pasted github react project won't help especially when you don't understand the fundamentals.

- They don't want to compromise on "fully remote" even though they would be better off learning in person.

I am sounding rude here but just stating facts. I love to work with people who are entry level so I can teach them but unfortunately you want to be taught before you can be taught. These days, not so much. I would rather have you tell me that you want to learn but don't know much vs telling me how you can build a web app in Svelte but cannot answer basic http questions. I can smell bullshit from a mile because I have been doing this for 19 years now.

I've been trying to understand for the past 2-3 years who is hiring people with only Github projects forked with some nonsensical updates. I assume it's spam or tricking some very inexperienced non-technical sourcers.
when I interview people I frequently get people with a "packed" github that's obvious they used one of those tools to make their entire GH heatmap green, dozens of forks of all the largest projects with no changes, just to "look" impressive
> I am sounding rude here but just stating facts.

It doesn't seem like these are really rude things to say. Perhaps it could be argued that these things are mistaken but I wouldn't think its rude for someone to point them out. (I guess, to your point, they could sound rude. I don't think they do!)

FWIW, none of those things are really desirable so it is a bit of a shame if it is truly so common to see them. Especially the first point is really just about being pragmatic, not even necessarily related to web application development.

> - They think they know more than they really do. I have interviewed a lot of entry level especially bootcampers who can write a app.get('/', (req, res) but have no idea how a GET request actually works. Most cannot tell me the difference between http header and body. But they surely know how to send an ajax request through code. Fundamentals people, fundamentals.

I like your points, but want to dig a little deeper here. If someone is writing a new program, do they really need to know how the GET request works at the level you post, and the difference between header and body? You could write websites or applications, front and backend, let a framework like Django handle that, and this lack of knowledge wouldn't get in the way.

My main point: How deep should the knowledge well stop? Does the interviewer who expects this deeper knowledge of how HTTP works also expect the candidate to know deeper network levels? How a TCP header is set up? An IP header? Ethernet? How to program the firmware/software that goes into an MCU or OS using a HAL or other abstraction? What about the volatile register reads and writes required?

What if they have no idea, but can tell you if they wanted that info, they'd look it up on MDN, or pull up a browser's network tab or Wireshark?

I would argue you could justify stopping before the fundamental level you exist, or not consider it enough, depending on job requirements.

understanding of protocols might be an overhaul for junior frontend engineers especially for those who come from bootcamps but I do think they should not be entield to think they deserve fang level salary… and stop thinking that being a software engineer is as easy as making and hosting a single web page with html and css… my wish is that bootcamps can start making students really interested in software engineering, and not constrained to web development.
Not the OP here.

     If someone is writing a new program, do they really need to know how the GET request works at the level you post, and the difference between header and body?
I think this is actually quite important to know "enough" about. Should I expect you to know all the headers out there? No. I also don't know everything that's around nowadays. Should you I be able to expect that you know the basics of how a request works, the fact that there are headers and bodies and query params and what's different between get and post in those regards? Oh absolutely. Like the OP says, fundamentals. If you know the fundamentals of the split between headers and body you can dig into the specific ones when needed. Do I remember the exact way content transfer encoding stuff works w/ chunking in all details and edge cases? No. But I have enough fundamental understanding of how HTTP works that I can understand when I google it.

    also expect the candidate to know deeper network levels? How a TCP header is set up? An IP header? Ethernet?
I think it's important to understand the basics of networking unless you're literally someone that just does CSS. You should have a basic understanding of a TCP connection. Do you need to be able to tell me anything about SYN/SYN-ACK/ACK? No. Should you know that DNS exists to turn the names we all use into IP addresses and that computers actually create connections between systems using those IP addresses and ports? Absolutely!

Do I expect that someone from a bootcamp knows any of this? No, but that's also why I don't like even considering bootcamp people. Been there, burned by that.

For a backend person, even if entry level? Oh yes you better know some TCP/IP. Do you need to be able to recite what a TCP or IP header look like from memory? Of course not, I couldn't tell you either any more. Should you be able to tell me that TCP is implemented on top of IP and you can use one without the other? Maybe not for an entry level person.

    What if they have no idea, but can tell you if they wanted that info, they'd look it up on MDN, or pull up a browser's network tab or 
Wireshark? If someone tells me they know what wireshark is, they're basically hired (yeah sure I'd also still make sure they didn't just pick up the word and know their TCP after that but I bet you the signal to noise ratio on that is pretty good.
I think it depends on the question and what you do with the response.

If I were interviewing for an entry position and I asked "how is a GET request structured?" And they don't know, I'd like the answer to be "I don't know." Because then you can try and work through the problem space to go from "what trivia do they know" to "how accountable are they for what they know/don't know and how much do we need to devote in resources to get this person productive on our stack"

All that said this stuff is just useful for a technical screen to filter into "entry level" to "junior" to "little experience but lots of knowledge junior" and can be gauged to estimate the success of the person in the business.

Ultimately it's all about balancing risk. Some of the people coming out of boot camps are really risky hires because they don't have the tools to thrive in certain businesses, particularly smaller ones without much time to devote senior staff to mentorship. That doesn't mean they can't or won't, it's just about estimating if the risk outweighs the payoff once they're flying.

I've been through this myself for even senior roles. I interviewed at a fintech where they asked me in the first call stuff like "how do you access a server from your dev machine" and "how do you edit a file from the command line on Linux" and "how do you kill a process on Linux." Very basic stuff, but it's not insulting. There are devs out there that can't answer those questions and they needed to be filtered out for that particular role. It happens.

> If someone is writing a new program, do they really need to know how the GET request works at the level you post, and the difference between header and body?

I'd argue yes. If for no other reason than the number of times I've seen teams get roadblocked by CORS because they cannot figure out how to configure their servers to handle it. (And the number of interviews when people have dug into whether or not I knew how to resolve CORS errors.)

The headers, body, response... all of these are core to what the app actually does as it glues the front-end and back-end together. A lack of understanding leads to teams who get it working once, and thenceforth treat that connection as a black box with a small number of wizards who need to be invoked to troubleshoot problems.

You don't need to know everything in depth or spend a ton of time on it, but you need to know enough to debug problems at least well enough to identify the source of the problem so you can go do the research to find the answer.

Does your college offer career fairs or college-specific job boards? Chin up. Breaking in is definitely challenging, but there are resources out there. Hopefully as the pandemic effects subside, there will be more in-person networking events. Some companies also like to recruit from hackathons and other contests. There are also some medium size companies that tend to keep significant entry level hiring pipelines.

One gotcha I would mention, though, is don’t go in with the expectation that submitting resumes down some company corporate HR website is sufficient. It is definitely worth it to get in front of companies in person when possible.

One more resource that may be helpful, there are a whole bunch of tech interview meetups in various cities. Those meetups are a tremendous resource in terms of sharpening interview skills and finding supportive peers and people further along in their careers. They are also a resource for getting an idea of who is hiring for what.

Disclosure: I founded one of these meetups in one city a long while ago.

> As someone who is speaking with a handful of people stuck in this situation, what direction should I guide them towards

Get experience. By any way possible. Have them build an online app - a blog system specialized for doctors, an RSS reader backend, documentation for an open source project, anything. Software is an unusual sector that experience can be earned outside of paid work.

If these "handful of people" have bachelors, have them apply for masters degrees at highly rated universities, then they get access to the University career services department to help them find a job. Note: I did not say they have to finish the masters degree, just that they enroll in a masters so they have access to the University recruiting pipeline.

You can find similar complains in many fields. Everyone wants you to magically have 2-3 years experience.

Sometimes there are smaller firms near the university that you went to that are interested in hiring graduates.

Companies want crackshot senior engineers at junior pay. Been this way for a while.
How else will leadership get those much-needed annual bonuses?
Many non-FAANG tech companies only hire new grads that have completed internships, and they dedicate tons of resources towards those programs. That reduces the risk for them and improves the experience for the junior engineer. There is a trend to focus these internship programs on building talent pipelines from underrepresented places - bootcamps, HBCUs, women's colleges, public universities, etc.
Local non-venture backed companies are always hiring entry level software developers. Look at Craigslist posts in Philly suburbs or Cincinnati or Denver or other tier 2/tier3 tech cities and their suburbs.

They cannot compete with venture backed companies so they take what they can get. All they'd love is to be able to hire a smart, ambitious person and train them and pay them well (for the area).

Excellent quality of life if you choose to do it longterm and great stepping stone if you need something now and want to move to NYC or SF later.

Another tip I would give: try to be timely. Especially for college grads/early career, for some companies even when companies are hiring, they might not be hiring all year long (for college grads). The prime college hiring season (summer and fall) is coming up. Waiting until or starting in the winter and spring tends to be tougher.
This pipeline is the most competitive IMO. It's primarily megacorps, banks and consulting firms (BCG, [edit: not Mckinsey!,] Palantir) that want to hire college grads seasonally. To fit into their criteria you've graduated with a degree in CS, math or physics (or otherwise proved exceptional technical skill) at a top 40 public/private school and you've been doing official internships at large companies every summer during college.

Anyone who doesn't fit that mold fairly closely isn't going to get anywhere with the kind of companies that have a seasonal pipeline for new grads. (My point corroborated by a sibling: https://news.ycombinator.com/item?id=31508438).

There may always be exceptions of course. And there's no harm in trying.

But if you have an unconventional education your best bet IMO is small local companies who are in general desperate for anyone with any skill, some dedication and intelligence.

Not true for McKinsey. Not only are we hiring entry-level engineers, we are (1) also recruiting from several coding bootcamps and (2) very proud of the engineering path we've created to help early-career developers rapidly build a world-class engineering toolkit and level-up to tech lead and architecture roles.

This listing is representative of the entry-level software engineering roles we're hiring for: https://www.mckinsey.com/careers/search-jobs/jobs/softwareen...

Nice, I stand corrected there. Good on you!
> 2+ years of experience developing full-stack applications by writing code that is readable, testable, maintainable, and scalable

When I see these I look and say “that’s not a entry level role”. Or at the very least. It’s not one that I think a new grad would like at and feel qualified for. If this is meant to attract people who just graduated or came fresh off boot camps, I don’t see how they qualify.

Honestly the summer is the worst time to hire seniors and mid level, so it's only "prime" in the sense that recruiters can't get in touch with anyone except fresh grads. That may change with all the layoffs this year.
We are hiring new grads across the board if you have proofs for exceptional skills. Feel free to take a look at all our engineering postings at: https://neuralink.com/careers.
I have a few tangential questions. What sort of salary are they expecting? Secondly, how long do they plan to stay at the company that invests in training them once recruiters start sending them better offers?

A company can be good at: training employees, paying reasonable salaries, retaining employees. Pick two if you don’t have the funds to play in the “hot job market” (which, I assume, is the situation that the majority of tech companies around the world are in at this moment). And there’s your answer.

Not from the US, but I had assumed this was the whole point of internships right?

These days with the job market being what it is, there's very little incentive for companies to invest money into training when the person they're training is just going to leave in 12 months. Over that time scale the impact of an unskilled/new engineer is bigger than just the financial investment in them - someone, often multiple people have to mentor them which detracts from their productivity as well.

Using a previous role as an example - we had heaps of bespoke in-house tooling and systems that even skilled engineers had to be brought up to speed on and that would often take months before they were as productive as the rest of the team. I couldn't imagine having to do all that for them AND explain to them how DNS works every few days or something.

EDIT: I should clarify here because it sounds a bit like I hate uni grads. I actually only hate boot campers /s

I genuinely enjoy training people - it's very rewarding, and I like talking so everyone wins BUT what I mean is that in this climate it's not necessarily a good business decision in 100% of cases. I'd be happy to explain DNS to an interested audience, but it might not make sense for me to do that if they're just going to take that and work for our competition tomorrow.

I think that it depends a lot on location.

I'm about to graduate with a bachelor's in CS and pretty much everyone I know has managed to get a job before graduation. I don't know how much effort other people had to put in, but if anything, I should have aimed higher considering how easy it was. I don't think that this is because me and my friends are incredible, we just happen to live somewhere with a very good local job market. I'm in Sweden btw.

My company is hiring junior engineers, but take into account that:

- the positions are filled quicker than any other position due to the number of applicants

- so many applicants do have interesting projects or internships that people whose CV show neither are never really under any serious consideration