Ask HN: Is any company still hiring entry level engineers?
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 ] threadOf course they do. New graduates are cheap, expendable, and ready to put in 10-12 hours of work a day.
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
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.
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.
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.
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.
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.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.
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.
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.
Disclosure: I founded one of these meetups in one city a long while ago.
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.
Sometimes there are smaller firms near the university that you went to that are interested in hiring graduates.
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.
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.
This listing is representative of the entry-level software engineering roles we're hiring for: https://www.mckinsey.com/careers/search-jobs/jobs/softwareen...
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.
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.
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'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.
- 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