A 4.0 Won’t Get You a Job as a Software Engineer, But These Steps Will

Vanessa Gutierrez
8 min readSep 30, 2020

--

Under non-COVID-economic-recession circumstances, doing your homework and acing your CS classes is not enough to land a job as a Software Engineer(ing Intern) — you need to hustle way beyond that. And in my last article, I shared how its especially crucial to adapt your hustle in order to succeed when the world seemingly ruins your chances of becoming a Sofware Engineer.

So, let’s break down that hustle of preparing for, applying to, interviewing for, and ultimately getting an offer to be a Software Engineer.

First thing’s first, get your resume and LinkedIn into the “Yes” pile.

by @TimothyKellyDesign

The easy part: polishing and ensuring your resume up to date.

  • Use a clean and easy-to-read format. Preferably not one from the 1990’s in Times New Roman. This is tech, its OK not to be traditional.
  • List your total or major GPA (whichever is higher) if it’s above 3.0, otherwise don’t list a GPA at all. Most companies don’t care, but listing a good GPA can only help for those that do.
  • Don’t repeat yourself by reusing the same verb (“Implemented X…Implemented A using B….Implemented G and H”), or taking up valuable resume real estate reiterating the same skills, school affiliations, or experiences in multiple places.
  • Express what you accomplished using action verbs! For example: “researched”, “investigated”, “implemented”, “built”, “drove”, “owned”, “wrote”, “delivered”…
  • Include quantitative stats when possible (“site receives 10k daily visitors”, “internal tool used by over 100 developers”, “completed project 4 weeks ahead of schedule”, etc).
  • Ensure there are no grammatical, spelling, or syntax errors. Grammarly is free and great, and I recommend it especially if English is not your first language.
  • Have multiple people provide feedback on your resume, and listen to them.
  • Usee a custom LinkedIn URL on your resume. No recruiter is going to check out your page if they have to type out linkedin.com/in/vanessa-gutierrez-b1nm45cgo0487/ but they might visit linkedin.com/in/vgutierrez1

Oh, and don’t forget to update your LinkedIn. Your LinkedIn should have everything your resume has, plus the other relevant information you couldn’t fit on one page. Some recruiters/interviewers will look at your LinkedIn, and LinkedIn supports one-click applications for many job postings that rely on your profile.

The hard part: ensuring you have substance on your resume that is relevant to what you’re applying for.

Is there at minimum one or two items that reflect actual coding work? Work experience, internship, personal, or class project? Clubs, organizations, or other relevant honors, awards, grants, scholarships, or affiliations? If your resume is lacking technical experience, don’t worry, there are plenty of options to fill the gaps.

Personal projects are an obvious option, completed alone or with peers (showcased on your Github as well). But what if you don’t have any project ideas, or are looking to diversify your resume by learning a new language, or perhaps want to specialize to be more relevant for specific roles? You can…

  • Pick a class/boot camp project you are proud of and showcase it on your Github, then list and link it on your resume (bonus points if you build out more functionality than the project required). But, out of 2–3 projects on your resume, don’t use a class project for more than 1.
  • Complete a project-based tutorial or course, e.g. on Udemy or Coursera, and take it even further by adding custom functionality to the project. (Here are some course suggestions if you’re interested in learning Python, Web Development, iOS Development, Android Development & Java, Game Development, AR, or AI).
  • Participate in hackathons (e.g. check out MLH’s schedule) and coding competitions or challenges (e.g. these online platforms) and list the resulting projects, awards, or high-scores/ranks on your resume
  • Pass LinkedIn skill assessments for your technical skills
  • Contribute to Open Source code
  • Acquire relevant technical certifications. Keyword: “relevant”, like Google or AWS certifications.
  • Volunteer your skills (e.g. building a website for free for a nonprofit or local mom n’ pop business)

How, where, and the frequency at which you apply matters. Apply the front-door way (AKA the brute-force way) and the side-door way to cast a wide and strategic net.

Apply through the company sites and LinkedIn postings, flag your LinkedIn profile as “open to opportunities”, and try reaching out to recruiters on LinkedIn. Sure.

But I highly, highly recommend you apply via platforms that companies pay money to use, and that will highlight you to those companies. Such platforms I have personally had or seen success with:

  • Triplebyte — A skills-based weeding and hiring platform
  • Jopwell — A career advancement platform for minorities, home to valuable content & events, and fantastic for applying to companies.

Other similar platforms and communities I’ve heard positive things about through the grapevine:

  • Interviewing.io — Technical interview practice and entirely skills-based hiring platform
  • TechLadies — Career advancement platform and community for women in tech
  • Techqueria — Slack community for Latinx in Tech with dedicated communications for job postings. Also, a great resource to find mentors/mentees and for events.
  • Fairygodboss, InHerSight, and the list goes on, so find a platform (or two or three) that works for you.

However many applications you’ve sent, it’s not enough.

Even applying through strategic platforms, it’s possible you’ve got to hit upwards of 50, 100, or 200+ applications before getting your first offer. The “law of large numbers” applies here: the more times you apply, the more practice you get, and the more likely you are to get questions you can ace. Maybe try applying to 2 a day, or sit down for 2 hours with a peer and apply to 50 all at once. The high volume can easily become overwhelming, and since no two application processes are identical, it’s easy to lose track of deadlines and timelines.

Stay organized. I used a Google Sheet to keep track of what positions I had applied to, as well as my status in their process (e.g. submitted, need to do a takehome interview by X date, submitted test on Y date, recruiter emailed Z date, waiting to schedule an interview, phone interview scheduled for an upcoming date, etc.), and if/who I knew at the company, as well as whom I talked to during the process, such as recruiter or interviewer names. This also makes it easy to follow up if a promising application falls through the cracks, like say you submitted their take-home test 3 months ago, are prettty sure you passed it, and still haven’t heard back, if you keep track you can reach out again. (True story, this happened to me and because I kept track, I was able to follow up and be flown to a final round on-site interview in Seattle).

Practice, practice, practice for technical interviews. Think you can wing it? Practice anyways.

Before or as you apply, prepare for coding interviews. Tech interviews are kind of like standardized tests, the SAT, ACT, AP tests, etc, in that yes, you need to have knowledge of the subject (algorithms, data structures, object-oriented programming concepts, coding fundamentals) but you also need to know how to “beat the test”. Just because you could read a prompt and write an essay under normal circumstances doesn’t mean you could do so in under 45min in a high-pressure SAT testing setting — the same idea applies to technical interviews. You need to know your data structures, for example, but also how to efficiently answer a question on them out loud in a high pressure setting in under 30 minutes. The answer to how you get better at both is also the same: practice.

There are many resources to practice, check out sites like Leetcode and Hackerrank, as well as Cracking the Coding Interview. Some people make a goal to do one Leetcode question per day or X hours of practice per week, while others may have a couple of peers join them in a virtual study group that meets regularly to practice. Experiment with different methods and see how you work best.

So what do I mean by…”practice”?

I recommend first trying problems on your own by doing questions from Leetcode, Hackerrank, and CTCI. The online problems will help practice for online coding interviews, so try doing the ones from CTCI on a piece of paper, Google Doc, or whiteboard to practice for whiteboarding interviews.

As you do questions on your own, this sounds easy to wing but it is crucial to practice: TALK 👏 OUT 👏 LOUD 👏. A big, simple thing that interviewees do wrong is not articulate their thought process out loud. Half of the interview is just seeing how you approach the problem, and when interviewees are quiet, that means interviewers have nothing to go off of. Seriously, talking out loud is key, and it’s uncomfortable for a lot of people, so you need practice doing it or you won’t do a good job trying it in a high-pressure situation.

Leveling up your interview prep

When you get more comfortable and find yourself completing questions on your own with less difficulty, set yourself a timer, and try doing so under time limits, say 15min or 20min.

Another way to up your practice: practice technical interviews with others. Here’s a great Google video that demonstrates what to do in technical interviews (and thus in your interview practice). Other companies like Amazon have very similar structures they look for in both technical and non-technical interviews (knowledge bomb: the STAR method is a requirement, not a suggestion).

You can practice with:

  • Peers, friends, classmates, and fellow computer science club members
  • TAs from your CS department (see if they’ll do a practice session for a group)
  • Mentors who have gotten SWE jobs or internships, or better yet, who have conducted SWE interviews before

If you’re low on practice partners or want to change it up, ask in groups or online communities like TechLadies and to see if people can volunteer an hour of their time to conduct a mock technical interview with you (this method has an added bonus of potential networking).

TL;DR: while (!jobOffer) { hustle(); }

You should polish up your resume to get in the door, cast a wide and strategic application net, stay organized, and practice as much you can on your own and with others so you can succeed once you’re inside. Don’t just hear it from me though. Listen to other people’s advice and notice the common themes, like this video on How to Get a Job at the Big Four: Amazon, Facebook, Google, and Microsoft. The road to landing an SWE role is not easy, but at least it’s fairly straightforward.

Happy hustling.

__

Do you have any advice for students or others looking to break into software engineering? Leave it in the comments!

--

--