Ruth Naebeck is a co-author for this post. This is her personal website.
You are on the job hunt for a junior software engineering position. You could have just graduated from a CS undergraduate program, just finished a programming bootcamp, or just completed a great project that you would like to show off to prospective employers. As long as your portfolio of projects is polished, your background doesn’t really matter. Now how do you get a job as a junior software engineer? In general, what I found worked best was a “shotgun” approach: Send out as many connection requests, messages, and applications in the shortest period of time possible. When I changed to this strategy, I went from having 1 phone screen every 2–3 days to 2–4 phone screens per day, with technical challenges and onsites following shortly thereafter.
Because this is a shotgun approach, don’t be offended by getting rejected. Indeed, it’s all part of the process. But do use rejection to help guide you in the job hunt. If you are not getting any phone screens, have your resume reviewed and ask yourself if you’re applying to the right sort of jobs. If you’re failing out on phone screens, how could you better prepare for them? For onsites, do the same thing. Remember, it’s a learning process!
Since there is so much to be done during the job search, I wanted to be super efficient and land as many phone screens as possible in the least amount of time spent networking and completing job applications. This strategy does just that and even includes approximate time taken for each step to help provide a nice gauge for you on your search. Be consistent in your application process and good things will follow!
Networking (repeat every day):
2. Alumni Resources (Google Group, Slack, Facebook, etc) (5–10 minutes)
Job Applications (repeat every day):
Interviewing (prepare every day):
Far and above the highest percentage of all the strategies, networking eventually led to my accepted offer and there’s a very high chance it will be the same for you. What’s the best way to go about it?
LinkedIn — Request 10 to 20 Connections Daily:
When you start this process, you may have very few connections who are software engineers. If this is the case, search LinkedIn for “People with the title” Software Engineer, filter by your location, and connect with people.
If you don’t want to pay for LinkedIn Premium after a certain number of connection requests, you will be locked out for the day. That’s fine, just return the next day and do the same search or switch to searching for Front End Developer, Back End Developer, or Software Developer.
When you’ve gained a significant amount of software engineer connections, people listed on the “My Network” tab under “People you may know” will mostly be software engineers. Using this tab will speed up connection requests significantly. Personally, I spent no more than 15 minutes per day sending connection requests.
LinkedIn — Send Messages When People Connect:
Great, now you’re attempting to connect with 10 to 20 people everyday and a fair amount of those people will accept your connection requests. What do you do with all those connections? Once they connect back, you can send a message to them (no LinkedIn premium required!). I found keeping it short and sweet worked best:
Hello ${NAME},
I am a recent { SAME_SCHOOL ? ${SHARED_SCHOOL} : software engineering } grad looking for a (software engineering) position in ${CITY}. How are you enjoying working for ${COMPANY}? Do you have any recommendations for someone looking to get into software engineering?
Thanks,${CANDIDATE_NAME}
Use a common connection in the first sentence to establish why they should care, the more specific the better. Schools, cities, and hobbies can all serve as shared connections. If you have no connection other than they work as a software engineer, use that.
Why do I wait to get a connection back before I send a message? If someone connects with me it means they are active on LinkedIn and probably willing to network. There is a good chance that they will respond to my first message. Personally, I received a response rate around 15% of messages sent. This might seem like a low percentage but remember all you need is one connection that leads to a job offer and this isn’t a huge timesink for you.
Once you get the conversation started, see where it leads. I had good success asking for general advice as a software engineer to start the conversation. Always keep the ball in their court and respond to messages as soon as you are able! If possible, schedule 1 or 2 in-person meetings (coffee chats) per week. If the person is too busy, schedule a phone, Google Hangout, or Skype call.
If you connect to a recruiter, the conversation will be different. Here is a sample message to a recruiter:
${RECRUITER_NAME}, I’m a software engineer looking for permanent roles in ${CITY}. I am proficient in ${LANGUAGES_FRAMEWORKS_ETC}. Here is a link to a project I am proud of:
${GITHUB_OR_DEPLOYED_LINK}
${PROJECT_NAME} is a ${PROJECT_DESCRIPTION}. I had a great time building it with 3 of my colleagues and learned a lot in the process. Etc. Attached please find my resume. Thanks,${CANDIDATE_NAME}
Alumni Resources (Google Group, Slack, Facebook, etc):
If your school has alumni resources, sign-up, stay active, and reach out to other alumni to network. If possible, try to connect with 1 to 3 different people per day while you are on the job hunt. Try to connect with others also on the job search and pair up to practice algorithm and technical interview questions as well as sharing job search strategies.
Get as many job applications out there as possible and as quickly as possible! On most days, I applied to 25 or more jobs and each application only took a few seconds. I didn’t send a single cover letter during my job search! Your time is precious on the job search and doing things like changing your resume for each job application or writing cover letters doesn’t really move the needle for a junior engineer and takes away from time that you could be finishing more applications. Use your time wisely!
LinkedIn — Browse the Home Tab for Job Postings Daily:
Remember doing all that networking and getting all those connections? One great side effect is now your LinkedIn Home page will have a great feed of all your connections. What does this mean? Every few days you will see job posts from connections:
Reaching out to people who are already connections has a super high percentage for landing a phone screen (especially if they are alumni from your school). I recommend taking 5 to 10 minutes each day to read your Home page.
By default LinkedIn lists popular posts first so if you see a lot of old posts at the top of your feed, change the post order by clicking the “Sort by” drop-down and choosing Recent:
Also, there is a lot of spam on the Home page. To unfollow people who write or like posts unrelated to your job search, click the three dots in the top right corner of a post and choose Unfollow:
Gary’s Guide — Apply to Jobs Daily:
Check Gary’s Guide every day to apply for “Programming” jobs in your region. If a company really interests you, it’s probably worth the time to go to the company’s web page and apply from there. I had a really good hit rate using Gary’s guide, so I definitely recommend adding it to your strategy!
LinkedIn Easy Apply — Apply to Jobs Daily:
Applying to jobs on LinkedIn had a much lower hit rate than the previous strategies, but I still landed the bulk of my interviews through it. How is this possible? Just by the sheer number of applications I sent through it! It’s helpful to note even though my current position came from networking, the interview practice I received from using this LinkedIn strategy was invaluable.
So how does the strategy work? Navigate to the LinkedIn Jobs tab, use the following search string(1), and your location:
(“software” OR “front End” OR “back End” OR “developer” OR Backend OR Frontend) NOT (Senior OR Sr. OR Intern)
After you search, use the “Date Posted” filter to show jobs posted in the “Past 24 hours”. This ensures the jobs you are applying for are fresh.
Now, for each page and for each job that has a LinkedIn Easy Apply indicator:
Open the job’s link in a separate tab using Cmd + Left Click (Mac) or Ctrl + Left Click (Windows). Once you’re done with a single page, your browser should look something like this:
You’ve got a ton of tabs open, now what? Go to last tab (far right) and apply! Click the Easy Apply button, enter your phone number, add your resume and submit the application. Applying to an Easy Apply job should take 5–10 seconds. After you submit, use Cmd + W (Mac) or Ctrl + W (Windows) to close the tab. When you have applied to all the jobs in the open tabs, navigate to the next page of job search results and repeat. You will be able to churn through applications like a real job hunting machine!
Want to increase your chances of being contacted?
Now that you have a quick strategy for networking and job applications, you can use the bulk of your time on the job hunt for actual interview preparation.
Phone Screens
If you do these four things, you will have an extremely high chance of passing a phone screen for a position that you mostly qualify for:
Technical / Onsite Interviews
If you are interviewing for a Junior Software Engineer position, I found the items below to be largely sufficient for preparing for most technical interviews.
Consistency is key on the job hunt. If you take this guide, change the steps based on what you find works for you, learn from rejections, and perform this process every weekday you will see results in your job search. The networking and job application steps described here really do only take 30–60 minutes out of your day and I found them to be the most efficient use of my time. Good luck in your job search!
This guide (and my job search!) has been largely influenced by posts made by Haseeb Qureshi and Caleb Jay: