How to Get a Job in Tech — Cheat Sheet

Interested in getting an internship? Here are a few things to look out for to set yourself up for success when looking to get an internship in tech!

What kind of job are you looking for?

When do you expect to graduate?

Is there a summer between now and your graduation date?

Looking for a Full Time Job

How do I get started?

Looking for a full time job is about the same process as looking for an internship, but you will have more options, as well as more intensive interviews. For an internship, you will likely have far fewer final round interviews in an interview loop than you will for full time. But the application process and resume process will look the same.

Don't be scared off by the requirements for jobs you are applying for. If you don't know a language yet, but the job is entry-level, and you know other languages, it will be easy enough to learn another language.

Start applying early! If you aren't graduating until the end of the school year, you can still start applying at the very beginning of the year. And it's better if you do, because it gives you more time to get something.

You should start looking for an internship

Why should I be getting an internship?

You want to start by getting an internship. Internships and personal projects will help you get the experience you will need to get a full time job in the field.

What computer science courses have you taken?

Looking for an Internship as a Freshman

Most companies will only be looking for students who have experience with Data Structures and Algorithms for their normal Software Engineering internships. But there are still companies that will hire Freshmen/Sophomores with little to no experience.

Look at the minimum qualifications for the job. Some jobs will specify that they don't need as much experience for the internship. And some will specifically target Freshman and Sophomores. For example, the Meta University program or the Google Step program. I'd also recommend looking at non-tech companies that have technical roles.

Looking for an Internship with only intro CS

Most companies will only be looking for students who have experience with Data Structures and Algorithms for their normal Software Engineering internships. But there are still companies that will hire students with little to no experience.

Look at the minimum qualifications for the job. Some jobs will specify that they don't need as much experience for the internship. And if you don't get an internship right away, there are other opportunities you can pursue. There are bootcamps you can sign up for, and self-learning you can do. You can look into summer classes to get ahead in your degree. Or you can work on personal projects to stretch your coding skills! Find problems that you are interested in solving and see what your current CS skills can do to solve the problem. Projects will look great on your resume and help you get an internship or job in the future.

Graduating before another summer?

If you are graduating in under a year, you likely should be looking for a full time job. Most companies, especially the larger ones, only allow students to apply for internships if they will be returning to school after the summer is over. Now, this is not always the case, and smaller companies may be happy to let you apply for an internship after you have graduated. But be aware that this is not likely.

You can instead start applying for full time jobs now.

Looking for an Internship

How do I get started?

Getting an internship is a great place to start! Internships and personal projects will help you get the experience you will need to get a full time job in the field.

What do I need to do to get a job in tech?

There are a few things that go into getting a job. The primary three things you'll need to prepare for are:

  • Having a good resume
  • Applying for jobs
  • Interviewing

We'll walk through each of these three areas of applying to get a job, why each of them are so important, and how you can do your best at each of them.

Resumes

Everyone has the potential to create a great resume even if you have no technical job / internship experience (class projects, personal projects, and more can show your software experience).

Recruiters spend under 10 seconds looking at a resume. Your job, above all else, is to make your resume skimmable. Someone should be able to get a sense of your experience and skills in just a couple of seconds. This is the one test every resume needs to be able to pass - it doesn't matter if it looks fancy or plain, if you won this hackathon or built that project - none of that matters if it's not easy to read.

Resume Rules

  1. One Page
    • Your resume should fit on one page, no exceptions. Better yet, your resume should take up exactly one page, so there shouldn't be a lot of empty space either.
  2. Use a Template
    • You can find resume templates online, on the your college's career center site, and on this cheat sheet. But you have to use a template. Do not go rogue and try to work your own document magic — the best way to be easy to read is to give recruiters what they're used to seeing.
    • You can use just about any template as long as it's easy to read. The only rule for fonts, colors, layouts, etc, is to not overdo it.
  3. Non-negotiable sections
    • Most resume templates will contain some pre-defined sections, like “Education,” “Experience,” “Awards”, “Publications,” etc. There is no one right set of sections to have on a resume - if you're the leader of a student club and that's an important part of your life, your resume will look a little different from someone who plays on the football team, and that one will look different from someone who already has or has had a job, or several.
    • That said, EVERY technical resume should contain four core sections:
      1. Contact info: the very top of the resume should list your name, email, LinkedIn, and GitHub. Some people include addresses and phone numbers, but it's not strictly necessary.
      2. Education: describing where you go to school, when you'll graduate, and what courses you've taken
      3. Project Experience: describing what you've built using your technical skills
      4. Skills: listing the programming languages and other technologies you've learned so far.
    • In general, the “Education” section should be the top section and the “Skills” section should be the bottom one. This is because the top and bottom of the resume are the most likely to get looked at, and a lot of times recruiters' biggest questions are
      1. when you graduate, and
      2. what programming languages you know

Resume Examples

Resume Example

Resume Example -- No Work Experience

Note: When submitting your resume, send it in as a PDF, not as a .docx file!

Applying for Internships / Full Time Jobs

Applications Information

Now that you have a resume, you're ready to start applying for internships. You can search on Linkedin, Handshake, indeed, Google jobs, or other sites to find companies hiring for interns. I'd recommend looking both locally at companies that have tech roles and elsewhere in the country for internships that sound interesting.

START APPLYING EARLY. Be aware of recruiting cycles. A decent rule of thumb is that the best time to apply is in the first half of a given semester. Companies are looking as early as September of one year for employees to start work after the Summer of the next year. That being said, it is never “too late” to apply, including a couple months before a job starts (and in some cases, much shorter time frames apply).

Check the minimum qualifications. For international students, most of these will mention if the company will sponsor visas or not. Apply to anything you're interested in, even if you're not nominally qualified for it, e.g. if it says “new grad” but says they want Python experience ... even if you don't have it, you can still apply. Especially when you're trying to get your first internship, you will likely get more rejections than you want. But you only need one acceptance, so keep trying! Something will come through in the end.

Some companies may ask for cover letters with your application. You can have a somewhat standard cover letter that you use as a base for every company, but make sure to change it for each company you apply for. Before an interview, and hence before you apply, you'll want to know a bit about the company you are applying for. Talking about why you want to work there, with regards to what the company does, will be important in both a cover letter and your interview.

Ways to Find Jobs

  • Centralized sites with several listings:
    • Handshake, LinkedIn, Glassdoor, indeed
    • Crowdsourced Github Pages: try googling “github [summer/fall/winter] [year] internship”
    • Venture-captialist websites
  • Useful Tools
  • To find smaller companies / startups: AngleList, YCombinator
  • Referrals from Friends / Colleagues
  • Applying Directly on the Company Career website
  • Messaging LinkedIn Recruiters
  • Career Fairs

Interviews

Now that you've gotten your resume ready and you've started applying for jobs, you need to make sure you're ready for the interviews. Ideally you've started doing interview prep even before applying for jobs.

Interview Preparation

Do your research for the particular company / role you're applying for, including asking the recruiter directly what you might be able to expect in the interview.

Practice is so important

We can view interviewing like a sport or a new game. You have “building muscles / athleticism” through your coursework, but even athletic people need to practice to become good at a sport that's new to them.

Some research shows that you double your chances of passing a technical interview once you have done 5+ interviews.

Failing your technical interview does NOT mean you are not a good engineer. It just means you need more practice at the “game” of interviewing.

General Coding Interview Advice

  • Coding interviews are NOT
    • exactly the same kind of work engineers are doing every day
    • the same across all companies
    • a perfectly accurate system that is consistent in outcome
  • Failing your technical interview does NOT mean you are not a good engineer. It just means you need more practice at the “game” of interviewing. It is a game / skill to practice like anything else, which is unfortunately sometimes disjoint from what you learned in school.
  • You do NOT have to write mistake-free code to get a “hire” decision.
  • You shouldn't expect to engage with the interviewer much. During the coding portion, many interviewers will let the candidate drive. Don't be anxious about the lack of engagement.
  • Some tech interview formats and tech interviewers are generally cold / distant and not friendly. It is unfortunate that this is the reality, but when you see it, just know it is not a reflection on you and instead a reflection on them / the culture of their interviews.

How to Prepare

  • LeetCode
  • Mock Interviews (pair up with a friend if nothing else!)
  • Online courses / videos
Your priorities should be: (in this order)
  1. You want to be able to write code like a fish can swim (once you have an algorithm down, you can convert it to code easily)
  2. You want to have practiced the code interview format, specifically
  3. You want to be proficient in as many algorithmic topics as possible.

These priorities are in order, so don't go and practice graph algorithms if you don't feel like you can take an easy problem and just go in whatever language you're best at. Things like being able to write a binary search, reverse a string, or any other "easy" coding tasks (they can even be greedy /naive approaches to harder problems). The way to test this is to do practice questions where the solution is immediately obvious to you, or you already know it, and see if you can write correct code pretty quickly. If you haven't ever done this before, LeetCode and HackerRank are great sites to get questions, write code, and see if it works.

Once you've cleared that first hurdle, it's time to get comfortable solving questions with an audience. The second most important tip I have for you in this module is this: practice interviews with other people. You can be really good at solving coding questions alone in your room and then walk into an interview and freeze up. This is because communicating with an interviewer adds another layer of difficulty to the interview question, so it's not uncommon to get confused on problems you'd have no trouble with under normal circumstances. Practicing by having someone else pretend to interview you is the absolute best bet here, because you'll have to simulate that process of thinking out loud with another actual human.

Other Types of Technical Interviews

Aside from coding interviews, there are other technical interviews you might encounter. For the most part, these take significantly less time to prepare for than the coding interviews you may see, but it is still important to practice and be aware of them, especially because many smaller and older companies rely on them more than coding interviews. The formats include

  • Project experience: they may ask you about a previous project you've done and ask you to explain how you built it, why you made certain design decisions, bugs that you encountered and fixed, etc.
  • Domain-specific: they may ask questions about particular technologies or workflows. For example, if you are interviewing for an iOS or Android app development position, they might ask some questions specific to that role. If the role is a more general role, there may be less domain-specific knowledge.
  • Object-oriented / language-related programming trivia: they may ask questions related to topics you may have learned in school like “what is inheritance”, “what are classes used for”, “explain what a pointer is”, etc.

Note that you do not need to answer every question perfectly to get an offer and be a good fit for the job. Also, asking your recruiter in advance what kind of interview it might be (e.g. “Will I expect a traditional coding interview or might they also ask some mobile development questions? Will they be interested in discussing my previous projects?”) is the best way to know what to prepare for for a particular opportunity.

Behavioral Interviews

Teamwork is very important in industry, and these interviews are used to judge your fit and maturity here. They want to see you are an effective team player and individual contributor: empathetic, good at resolving conflicts, clear with communicating, motivated, and more.

For each question, think to yourself “What is the interviewer trying to understand about me?” and answer authentically with an appropriate example.

  • For example, with “What is your biggest weakness”, the interviewer is assessing your self-awareness and growth mindset.
  • For “Tell me about a time you worked with someone you disagreed with”, they are assessing if you can work on a team, handle difficult situations, and exercise empathy for your teammates.

Be sure to reflect beforehand on your strengths and weaknesses and be prepared to talk about them.

Be prepared to talk about the projects on your resume and why you were excited to build them.

Research your company's culture, values, and mission to answer “Why do you want to work at this company”.

In the process of researching your company, note if there are any principles / values that should influence your answer. For example, a value of “Be Frugal / Smart with Expenses” would suggest the company values being savvy about how to cut costs while still achieving results, while “Achieve More Impact with More Resources” would suggest alternative company values. If natural, you can reflect these in your answer.

Prepare stories / examples for common interview questions. Consider using the STAR format when asked to “tell me about a time when…”

Good Luck!

Applying for jobs can be a long and draining process. Don't give up! In the beginning, you may get more rejections than you'd like. Just remember, you only need to get one acceptance, and then you're all set. That first line on your resume will open up doors and make getting the next job so much easier. You can do it!

Author: Batya Zamansky, Software Engineer at Meta, Engineer in Residence at GSU

Last updated: April 28th, 2023