Ask HN: Advice for applying to Junior Software Engineering roles?

42 points by i_am_mike ↗ HN
Hi HN. Do you have any advice for applying to Junior Software Engineering roles? How to get through the automated resume screening, does having projects on GitHub help, etc?

I hear the job market is "hot," but is that true of entry positions too?

I'm a self-taught programmer who recently decided to finish my bachelor's degree in Computer Science. I'll be finishing in a month or so, and I'm trying to do some planning in advance.

I guess what I'm asking is: If you were fresh out of college, how would *you* go about getting a job?

If anyone is curious about the weird graduation time, I go to wgu.edu, and they let you accelerate through the classes as fast as you can go. I recommend it.

60 comments

[ 15.7 ms ] story [ 139 ms ] thread
To your question 'how to get through the automated resume screening', I literally just wrote a post today on Dev.to: https://dev.to/kavyaj/how-to-get-noticed-by-tech-recruiters-...

For the other points: Firstly, I would say personalizing your application for the role you are applying for really helps. Sometimes students fresh out of college mention a ton of skills on their resumes that they only have an idea about. That wouldn't really help unless you can really contribute. Write only those skills that you're confident about and have some projects to back your claims.

Secondly, connect with people within the company that you're applying for - they needn't be the direct hiring manager but anyone who can give you some reference, some insights would really help you get an edge over the other candidates. You can find folks on LinkedIn, Twitter or other public platforms to connect.

Hope this helps and good luck for your search!

"reach out to key decision makers in the company you're applying for."

I'd be really concerned the decision maker would not consider this proactive but rather creepy

No hiring manager will be finding a dev candidate reaching out creepy. The worst that can happen would be to be redirected to HR.
I am a hiring manager and I would find it creepy and mildly annoying. Most companies have formal application processes for a reason.
Connecting to people already working in the company really helps. Pitch yourself to them and they might agree to provide you with an internal referral: it's an excellent way to jump the queue in the hiring pipeline.
Referrals are (or should be--I know some will refer any and all for the referral bonus) really intended to refer someone you have some first-hand experience with. I'm going to refer someone out of the blue to the company job site.
The job market is great…for mid-level and senior engineers. One thing I’d say is to get a referral for Jr level roles and that will atleast get your resume in front of someone. Also attend virtual hiring events. YC has the Work at a Startup event every once in a while. Take advantage of services like LeetResume for resume writing.

Edit:

https://hackerx.org/ for hiring events and networking

HackerX is by invitation only and also fully remote.
> I'm a self-taught programmer who recently decided to finish my bachelor's degree in Computer Science. I'll be finishing in a month or so, and I'm trying to do some planning in advance.

If I was you I would apply to internships right now to a lot of companies as a college student. It might be too late if you're about to graduate.

Internships are the easiest way into a company as a junior. You intern somewhere for a summer between junior and senior year, if they like you, you might get an offer when senior year ends. You seem past that, but can apply any how.

One thing, if you're considering getting an MSCS, is say you want an internship between the BS and MS. Even if you wind up not doing the MSCS, you'll have some experience under your belt. If you decide to not do an MSCS while interning, you can apply to other companies while interning, and if you get an offer tell the company you're interning with that you will postpone or not get your MSCS and that you got an offer and will not being going back to school right after the internship - you might wind up getting two offers (the company you applied to while interning, and the company you're interning at). You can be candid during the internship application right off the bat that you're applying for an internship between a BSCS and MSCS, but also have in the back of your mind that you might jump into a career after the BSCS and there is the possibility you might postpone the MSCS.

You can apply as a junior as well alongside this. The main thing is getting some offers and getting your foot in the door.

i went internship route after completing a bootcamp. also worked for the company that put on the bootcamp. but the only reason i got the internship was bc i went to a ReactJS workshop/meetup that the company hosted at their office. i showed up, presented the work i had completed in the few hours of the class, and made sure i shook hands and said "hello, my name is ... thank you for ... can i leave my contact info with you for any opportunities here?" to those running the event. it made a big difference and i was told that shortly after i was hired.

make it easy for companies to hire you by making connections with people. im now in a position where i'm interviewing people for open positions here, and it is not a fun task (especially for entry level jobs). if someone can show up, demonstrate some level of competence, and an enthusiasm for learning, it is such an advantage over the faceless resume-senders.

some technical advice would be to demonstrate your understanding of the underlying tech of whatever popular framework, library, etc. the company you're applying to is looking for now - its important, and Sr. devs will appreciate it more than you think (especially if you're self-taught).

This might be a long shot, but if you’re still looking for candidates, how may I get in contact with you outside of HN?

I’m a self taught dev currently working in IT for a federal agency and going to school at the same time. I got this far in IT as self taught and I’ve really enjoyed the experience of learning through challenges. I’m trying to get in Software the same way to grow from within. I am very resourceful and I am used to learning on my own, so I am convinced that I will take off with just a bit of mentoring.

unfortunately we don't have any openings right now. we may soon though, and summer internships are right around the corner. if you feel comfortable dropping your contact info on this thread, i'll be sure to reach out if we do start looking. roles could range from devops, full-stack, frontend, or backend web, or QA engineer. anything in particular you're experience/interested in out of those?
Your biggest barrier is getting past recruiters/screeners. There's more competition for positions at the junior level.

Load your CV with the targeted keywords and phrases that fit the job posting and your skill set.

Your next challenge will be interviewing well.

My company is hiring and borderline desperate. You do not want to work here though. I assume other non-tech companies are in a similar position.
This is true for more companies than most of us are willing to admit.

I think our civilization being so debt-centric has enabled forms of businesses that otherwise would crumble from systemic dysfunction, thus these businesses are desperate for workers who actually provide value yet some of these workers are figuring out that these positions aren't worth the psychological agony.

If you don't need a large boat of money passed your way, consider working as a staff engineer at a local university, they have less stringent screening on whom to hire, you can find senior engineers that have worked in the private sector for years that have a good information base to tap into, and the work life balance is better.

Look at research institutes/universities in the area, for me that was; UCSC, UCB, Lawrence Berkeley Labs, Stanford...

To add on this, consider unis your timezone, i know we are hiring as long as you're in PST, but we have engineers that have moved to CO and down south in the the LA metro. We just hired a gal over in Seattle to do Data Engineering work for us, but we are located outside the SFBay.
1. the market being so hot for mid-level engineers means that we are considering and hiring good junior engineers where we cannot find adequate mid-level talent. we would rather hire and develop a junior than compromise.

2. show code on github, sure, but if you can demo the work deployed somewhere it goes much further. everyone has a crypto tracking or twitter sentiment project somewhere, but i need more. if you can deploy the work somewhere in a smart way, great. if you can communicate well, great. a project with a 2-5 minute video tells me a lot more than code alone (which anyone can do with a tutorial).

3. demonstrate that you are easy to work with and that you are willing to learn. if a candidate has enough code or work on their resume, that is great, but a good cultural fit goes a long way.

> does having projects on GitHub help?

yes.

My advice ( valid in the pre-covid era )

- Check the local tech meetups ( https://www.meetup.com )

- Give a presentation.

- In the last side .. add some indirect info about your job search.

- go with an after party - and make a personal connections.. ( and ask advice )

I echo this. As a hiring manager, depending on how many applications I get, I need someone to stand out. Most of the time, I am not sure about someone so anything that helps me to feel like you would fit well is a good thing.

Things that github projects tell me:

You are interested in the industry You have have to work with other people You know how to code (or not, depending on the code!) You have already learned various things about the industry that you mostly don't learn in college.

Don't do stuff for the sake of it, like fake projects or whatever but find something interesting and get stuck in. Someone who blogs or attends the local events etc. are all things that say that you are interesting.

Next, you should generally come across well in the interview and this can be hard because it will depend on the industry/company as to what they are looking for so be confident but don't be fake. Don't think we are not interested because you are a new graduate, if we cared about that, we wouldn't be talking. Think about what you are interested in, what has gone well, what hasn't. Why do you want to work here? What are your unique selling points over the possibly hundreds of other applicants?

This is such an underrated way of getting jobs, but it's understandable given that this field is appealing to introverts and shy individuals.

If you can network the old fashioned way, then you have a really powerful tool in your arsenal that can potentially blow away all the hours you'd spend finding jobs the online/millennial way.

What it's all about is social proof. Merely showing up to some sort of technical meetup gives you more social proof than otherwise because it means you are at least interested in the work beyond the money making level. Give a presentation, no matter how shitty, and you are even more passionate than average. Talk to people and bring up "war stories", and you are relatable and you may even come off as smarter than you really are. If you can hang out with attendees afterwards at an after party or at a bar, people can know you're cool to be around at a personal level.

Right now this will still hard to pull off properly because of the disease and all the mask wearing, but I foresee this strategy making a big comeback in the near future. It's not that you can't do it now, but I think there will be a hunger for this kind of interaction, and that's going to lead to the judgment of people in charge of hiring being compromised (in a good way). The "metaverse" and Zoom calls don't cut it in the face of the sort of one-on-one interactions you get with real networking.

I do tons of interviews, particularly at the junior level, so feel free to message if you want more specific tips about the process. I'll share some thoughts here:

* As some have said getting an internship is the easiest way to get an entry level job.

* If you are having trouble getting interviews, try to get referrals. Rely on your network, or don't hesitate to cold message people asking for help. Most people will be happy to help after a cursory check.

* Most people hate leetcode style interviews, but with no experience you can make it work in your advantage. Learn to "play the game" to stack the odds in your favour.

My advice: Know yourself and don't believe the hype.

There are lots of jobs out there, and lots of people will tell you that you need to join a FAANG as a junior on $150k to be successful. That isn't true unless working for a FAANG on $150k is your definition of success. Figure out your criteria (where do you want to live, what hours do you want to work, how much is your ideal baseline salary and how much will you sacrifice for equity lottery tokens or bonuses, what kind of work do you want to do, etc) and don't compromise on them too much.

You're about to go into an in-demand industry with a skill that people want. You are in control. You don't need to settle for the first role that's offered if you don't like it, but you're probably not some sort of genius 100x dev who can demand whatever they want either. Stay grounded, but be ambitious. You're starting out on a pretty exciting journey. Good luck.

I have worked at FAANG, since the beginning of my career, and it have paid dividends(I have been very lucky). 5 years ago I would say you are crazy, and FAANG is the way to go, etc... Today , I couldn't agree more with you, everyone have their own needs and dreams, some people want to be a VP at FAANG, others love the startups "work hard - play hard" culture, other people prefer to bootstrap their own business, and so on... I have learned that to be happy as an SDE you just need to know what you really wants and ignore the hype, and focus on growing. There is plenty SDEs can do to make money, you can have a regular job, and have side hustles to make even more, for example.
> I hear the job market is "hot," but is that true of entry positions too?

Not in my experience, based on talking to quite a few newer devs. There are a ton of folks out there.

My advice is:

   * target certain companies
   * stand out
How can you determine which companies to target? I don't know you so can't give direct advice, but generally, find companies that are:

   * growing
   * big enough to support jr devs (this depends on the company, but 50ish for a product company and 10ish for a consulting company is my rule of thumb)
   * in a domain you have some interest in learning more about
   * working with a tech stack you are interested in learning more about
   * in your area or an area you would be willing to move to (for a jr dev, remote can be really tough unless you have prior experience) 
Then, research these companies and learn about them. Play with their product. Read about the sector and competitors. If you can, build something that is using their product. Yes, this is a lot more work than just firing off a resume, but it will have a higher ROI too.

Then use this to stand out. Here's an incomplete list of ways to stand out:

   * attend/present at a meetup that the company sponsors or sends folks to
   * meet with the hiring manager/recruiter from the company before you want a job and ask for general career advice
   * share an open source project you built with the same tech stack as the company uses
   * write a few blog posts on the company's sector
   * volunteer at a tech conference where the company may be attending (if they are a ruby shop, at rubyconf, for example)
When you apply at the company, make sure you tune your cover letter and resume to outline how you stand out.

Of course, the pre-requisite is that you can code. Make sure you can do that first.

I've read that the market is hot for experienced devs but its the complete opposite for entry devs!
That's been my anecdotal experience as well.
Anecdotally, so take it for what it's worth, but I know a decent number of entry and junior devs and it really seems to depend on what you're an entry dev in. A frontend boot camp graduate is in a different spot than a CS/EECS student with an interest (even if minimal experience at the moment) in backend or low-level systems design.
This is good advice. I'd add that while I'm looking for someone who's at least competent at the major technologies, demonstrating that you've got promise can cover for many sins.

To do this, you've got to be willing to take some risks, too. My additions to the above would be:

Show enthusiasm for the specific role and even industry that you're applying for. Don't just say that your goal is to be a successful software engineer, say that you're aiming to be able to develop UIs for large-scale ecommerce systems (or whatever, as the case may be). As a hiring manager, I want to know that you'll be interested and not just using us as a brief temporary stopover to fortify your resume.

When you're doing an interview, particularly the tech part, there will probably be many questions you can't answer. Don't just say "sorry, I don't know". I mean, do tell them that. But then go on to think out loud, trying to work out for yourself what the answer might be. That's going to demonstrate to me that (a) you're up for pursuing a problem rather than just giving up, and (b) it'll show me that even if you have a specific gap in your knowledge, you've got a sound foundation to build on.

Hello, I am currently hiring for 2 junior positions. There are a few different things I look for in juniors. First is smart and gets things done, any history you can show of building your own projects, from what the motivation was, how you established a goal of "finished" and how you got it there. Also what as the person shown a lot of interest in, and where does it look like their career is going. If you have been doing a lot of graphic programming or building software interfaces for hardware then why are you applying to my web dev position? Do I think the few years of training you will get me more years for productivity, so try to look for roles that align with your interests. Second technical skills stuff. Do you know how to use any IDE, bonus points if you are familiar with the one that is commonly used in our group. We make heavy use of GitHub so you would get bonus points if you are familiar with it but won't get penalized if you aren't, I assume that hiring a junior is hiring somebody that needs to be taught everything, and anything that you are already familiar with will be great. Third soft skills, especially for junior positions, I am way more interested in somebody that is bright, easy to work with, and will fit into the team well than I am looking for a diamond in the rough that will turn into a 10x engineer but is also a giant pain to work with. After 2 years of working together if I need get a ping that is you asking for help am I going to feel excited for the chance to teach and work together or am I going to clench my teeth and try to punt it until later. As for getting through the HR/recruiter screening each manager should have a sense of what their tolerance for teaching is. You should apply to any job that seems interesting to you, and let them tell you no. Very rarely are position metrics hard requirements 1-2 years could also accept candidates fresh out of school or boot camp.
I have been lucky enough to have not encountered automated resume scanning nonsense, or maybe I got past the HR-bots and didn't know?

Anyways, I always felt that what helped me get jobs was my personal projects and extracurricular activities. Anyone can sit through a few classes and pass some tests (OK, maybe not everyone), but not everyone can prove that they can actually, y'know, DO stuff. I feel it shows a certain level of interest and knowledge that can set you apart from other recent grads.

As someone who does hiring, I want to see a brief, personal, informal email.

If it feels like you’ve copied and pasted some mess of tech buzzwords and addressed it to “dear hiring manager” (I get this a lot), then it’s going straight in the bin. Ideally, I’d like to see:

Hi <my actual first name>,

I’m a junior developer trying to break into the industry. I studied x at y, and I’m super interested in <some specific technical thing>. I’m hard-working and I love to learn. Are you available for a chat about this?

Regards,

<your name>

As long as you promise to send out brief, personal emails to all candidates that introduce themselves this way but are not selected for an interview, I fully support this.
I'm not sure who I could make this promise to, but I do indeed personally respond to every person who writes me a personal email.
Promise was probably the wrong term but cool. I see this sort of ask in a lot of places coming from folks who are treating applicants being beneath them, and I guess it triggers me a bit.
So how does one find your email?

I'm asking this to showcase a problem I'm having right now while job searching (not at the junior level).

Basically I'm trying to get in touch with companies directly, in the UK, and not through external recruiters, but I just can't seem to find an email of someone that does hiring.

I go to LikedIn and search for the company, there is no contact email there, I browse through the people list, everybody there has InMail disabled so I can't message them (unless I pay for a recruiter account). Then I visit their website, they have only a generic contact@ or hello@ email there, if any. With that I message them and they disregard what I wrote and tell me to apply for the already open positions through their 3rd party apps (lever, greenhouse etc).

Basically if I wanted to ask a few questions before formally applying I'd have no way of doing it. From the 40+ companies I tried to approach this way I have found only 3 people on LikedIn with InMail disabled that replied back, two "careers@" emails that even bothered to reply and exactly 0 emails of a person (hiring manager or equivalent) anywhere...

This comes from someone at the senior level, who's not affraid of "cold emailing" around and insisting until I get a human on the other side of the chat.

My point is, if you want peole to mesaage you please make sure they have a way to do it, and actually reply.

To find people's work email addresses, you can try:

hunter.io

GitHub commit histories (although I think this might be against the TOS)

It's also worth teaching out to folks in your network to ask for intros to specific companies. An intro to a non-hiring-manager at a company can be more fruitful than a cold email to a hiring manager.

I include my email address along with the job postings I write[0].

Given that my name is in the email address, it's that much more egregious when I'm not addressed by name in an introductory email.

I recognise that hiring works differently for everyone, and unfortunately the process is painful in many (probably most) instances. That's not something I can change, but I can at least try to make it work sensibly for my own company.

[0]: https://news.ycombinator.com/item?id=28722397

When I dropped out of college about a decade ago (oh how the time flies), I realized that it's a lot more about "quantity" than anything else. Apply to every job that seems interesting to you; worry about qualifications later. It's not your job to determine if you're qualified, it's theirs, and as long as you are upfront about what you know, they might be willing to overlook a lack of qualifications.

> How to get through the automated resume screening, does having projects on GitHub help, etc?

It definitely does, though I would recommend not putting school projects on your resume, at least projects where everyone in the class was doing the same thing. I can't tell you how many people I interviewed who put the same Handwriting Recognition project on their resume, only for me to hear that they basically just followed what the teacher told them.

However, if you can really geek out about a personal project, talking about technical details and what you had to figure out to make it work, that goes a long way, degree or not.

P.S. I recently finished the WGU Bachelors in CS as well...congrats on making it this far, and if you're planning this far ahead for a career I am confident you'll make it in the job market. If you need any help in the future feel free to email me, address in HN profile.

Get a LinkedIn premium subscription and ask for referrals from your fellow alumni. Just flat out send your resume in the message and ask to be referred.

Some will find it sleazy and there is going to be at least one person who replies to this with some version of "I hate this behaviour", but plenty will happily throw you into the HR system as we get a reward for referring you to the company. At my past company, every single person who asked for a referral from me got one.

Don't target senior people with this. Go for those who are mid level. People who have opinions that count, but are not pressed for time and are not being overwhelmed by other people trying the same strategy. SDE IIs.

A referral, at least everywhere I have worked, has guaranteed human review and often lets you make a short case for why the person should be interviewed.

A referral can't guarantee anything else, but it can usually guarantee a set of human eyes. After that, it is up to you.

> I guess what I'm asking is: If you were fresh out of college, how would you go about getting a job?

Contact my schools career services, and make sure I was available for all interviews during career fairs.

This is the drawback of online schools, even ones with solid rigor and a good program. The soft network isn't gonna be as strong or there at all.
(comment deleted)
(comment deleted)
Market is hot, not so much for Juniors. Big part is that with everyone working from home mentoring junior developer is a massive pain. For every 2 you hire you lose probably 80% of productivity of a senior dev for at least 3-4 month.

For concrete advice, drill those idiotic interview questions. People use them because who knows.. being able to solve everything is impressive. For take homes do a good job on the cleanliness aspect, write tests..

Pick one language and get decent at it. Be it python, js or C++. Be able to solve basic stuff on the HackerRank etc using that language.

Avoid remote only companies; target those with offices. They will be a better learning environment for you and they will be keen to meet people who don’t think remote is the only way to work.

Once companies reach a certain size (30 people?) someone will have HR in their title, find that person on LinkedIn and add them and then just tell them you’re looking for an in-person junior role once they accept. Below that size find the CTO or CEO and do the same.

Good companies will have a take home coding challenge that models real work. When you get one try and return it within 3 business days.

If you’re in Chicago or open to moving, I’m hiring juniors, details are in my profile.

Your first job is definitely the hardest to get in your entire career. I wrote a few words of advice about this [0].

The summary of my advice is:

* Don't "spray and pray" your application, but look for companies that fit your tech preferences and specifically hire for junior devs.

* Prepare for the interview process. That can be as easy as asking the recruiter what questions you can expect in the interview (often they spill the beans without thinking)

* Build, build, build. The best way to show them you can in fact deliver is by having at least one up-and-running side project, the code on Github, etc. Give them something to look at even if you think it's not terribly impressive.

[0] https://andreschweighofer.com/career/how-to-get-the-right-jo...

Agree. It can be a tiny project, too, just make sure there's something new or unique or conversation-worthy about it. The point is to have something you can talk about that shows you can walk through the basics of a dev project.

When I've reviewed applicants for junior roles, some demonstration that they can code in a relevant domain made a big difference.

Too many people can talk themselves up and/or repeat nice-sounding things from their classes better than they can do basic coding.

> I guess what I'm asking is: If you were fresh out of college, how would you go about getting a job?

Leetcode and hackerrank all the problems now that university is fresh in your mind. Do some programming competitions.

Get a job at Google, Microsoft, Amazon, etc. Work there 2 years. See this as your "real world" M.Sc. degree.

Then move on to whatever interests you. A M.Sc. or PhD or some other job.

I was in your position at the start of the pandemic. I personally think I wasted a lot of time doing side projects and hackathons when they didn’t seem to matter that much, I got way more interviewers when I put a few part time jobs at school and a non profit on my resume than I ever got off side projects. I applied to around 200 companies and got an interview with around 5 of them (one of them ended up being an internship at a FANG where I now work full time).

In my opinion you should try to apply to as many jobs as possible every day and by as many as possible I mean 15-20. Dont bother with a cover letter I never got a interview for any of the applications where I wrote a cover letter and demonstrated “interest and value” like you’ll read online.

I also recommend that even though it sounds like you’re in your last year you should also apply to internships at the big tech companies. I applied to around 140 companies in my senior year and got rejected by all the full time positions but got accepted into a FANG internship after I graduated its the best way to get into a FANG (if thats your goal).

The other thing I recommend is focusing on leetcode as much as possible.

Also for new grad positions they are mostly looking for keywords relating to the languages they mention in the job posting to be explicitly in your resume. I recommend taking some time to use some standard resume format and make sure your resume is written with bullets that are in the “i accomplished x as measured by Y by doing Z” format. Make sure whatever you say in Z matches the keywords in the job postings you are applying to. Also a small tip is that if you apply in the morning it does seem more likely that a human will read your resume.

Also one other thing I will add, referrals really do make a difference. My friend was a low level IT contractor at a FANG and he gave me a referral and out of 10 applications only the one he referred me for ended up getting an interview for me.

Landing interviews usually just consists of submitting resumes and using LinkedIn, etc.

As for interviewing, beyond the basics of showing that you have some relevant skill/experience, there are two key things to convey:

1. Your enthusiasm for the company itself (its product/service/industry, etc).

2. Your enthusiasm for the role itself (specific application/service/technologies, teammates, etc).

You want to convey that you are excited, motivated, and "coachable" in areas where you're lacking. The best "hack" here is to look for companies and roles that you are genuinely excited about.

Be as blunt as you have to in conveying these points. Don't expect interviewers to be good at reading your signals. If you have to, just flatly state that you are excited, motivated, eager to learn, etc. to every person you talk to.

Don't overdo it but make sure this is successfully conveyed.

People are much more likely to hire someone if they seem like they'll add energy to the team. Even in cases where their skills/experience alone don't necessarily justify the hire.

Being likeable is more desirable than being an amazing programmer

People would much rather work with someone mediocre who is pleasant than someone very talented but who brings everyone down, this is especially true for junior positions where you're expected to not be very good... so as unfair as it is make sure you come off as charismatic in your interview