When seeking a tech internship or job, it can be daunting to figure out where to start. A large aspect of trying to find an internship lies in determining where and how to apply, and then going through the recruiting process.
While Software Engineering is the title that seems to come up most often, there are many other roles you can pursue, ranging from Site Reliability Engineer to Data Scientist, Data Analyst, and Product/Project Management. Even within the role of software engineering, companies will make the distinction between front-end, back-end, and mobile engineers. If you’re not sure what you want to work on, you can apply to a number of different roles, even at the same company; however, keep in mind that companies often look for specific skill sets for each role. Think about the types of projects you’ve worked on and the skills you possess when applying so you can really make your application stand out.
Given that there are a lot of roles in tech, your career experience will be vastly different depending on the type of company you work at. Technology is a field that touches almost every industry, so you don’t have to restrict your search to just the typical technology-focused companies. Two big questions to ask yourself are: what type of industry do I want to work in, and what size company do I want to work for? You might not know, and that’s totally fine! The process of interning or even recruiting will illuminate what types of things you’re interested in.
When I was recruiting for my full-time job, I wasn’t really sure of the answer to either of these questions, so I cast a wide net, applying to a range of company sizes and industries. As I talked to more and more engineers at different sized companies, even visiting some of the companies, I quickly understood that I didn’t want to work at a company of less than 100 engineers. Outside of recruitment, there are also other ways to learn about the company such as reaching out to current employees and previous interns and attending tech talks and webinars. RTC partners with a lot of companies like Lyft to host events, and this is a good way not only to learn more about different companies but also apply to positions through the partnership.
There are many ways to apply to positions, the most obvious being through a company’s website. A simple Google search can usually turn up their Jobs page, and then it’s only a matter of attaching your resume and basic information. Other methods include your school’s career fair (and if they have one, internal jobs posting), referrals, and conferences like Grace Hopper Celebration and Tapia Conference. Referrals are when interns or employees of a company submit your resume and information internally, making it more likely your application will be considered. Referrals can come from your friends or classmates, or even larger groups like the RTC Facebook group.
My recruitment process revolved around a hefty excel spreadsheet. I recorded the companies I applied to, the roles, how and when I applied, and updates in status (rejection, phone interview, onsite, etc.), using color-coordinated sections in order to keep track of things I might need to accomplish or next steps in the process. If you’re doing a lot of recruitment, it’s helpful to have all of this information laid out, so you don’t miss any key information.
A recreation of my spreadsheet – mine wasn’t nearly as neat.
The basic steps in the recruiting process are coding challenges, recruiter calls, phone interviews, and onsites. Not all companies will utilize all of these steps, but most employ a combination.
A coding challenge is often conducted through a site like HackerRank or HireVue, where a company will email you a link to a timed assessment where you will program a solution to a prompt and be able to compile and run your code within the site’s environment. Usually you will be able to practice coding in this environment before you have to work on the actual “challenge,” and you will be able to choose from a list of languages the one you feel most comfortable working in, as the coding challenges are fairly language agnostic. Often you will be able to run your code on test cases and see how many you have passed, allowing you to debug your code until the time is up. Usually a coding challenge is one of the initial stages of the recruiting process with a company, because you aren’t interacting with a person and the only thing that you can show is through your code.
Recruiter calls are short calls with a non-technical recruiter designed both for the company to vet you, but also for you to understand more about the position, the company, and the program. Usually non-technical in nature, you will discuss your projects and previous work experience, why you’re interested in the position or company, and what makes you a good fit for the role.
Phone interviews are usually around an hour long, consisting of both technical and more behavioral aspects. You usually will be asked to code through a problem on a site like HackerRank or CoderPad, but unlike in the coding challenge, you are interacting with an engineer as you code. It’s important to be able to talk through your code and explain your thought process to your interviewer, not only so they can see what it would be like to be your coworker, but also so they can guide you through the process. A large misconception is that you need to be perfect in solving the problem; however, being able to understand and utilize information that the interviewer provides is often a more valued skill.
Onsite interviews are usually conducted at the company, and consist of a number of interviews that are both technical and behavioral. They will still ask you to work through problems similar to those you would encounter in phone interviews (though perhaps more difficult). Since it is the last step, the company is trying to understand how you would fit in while allowing you to get a feel for the company itself. You might meet with a potential manager, or have lunch with an employee so you can get a better sense of the company.
When I first started interviewing, I struggled with technical questions and being able to talk through my code with an interviewer. It was a very different experience from what I was used to in class because I was accustomed to doing larger projects and not having to explain my choices or thought process until I was finished. I found that doing practice problems in books like Cracking the Coding Interview or websites like LeetCode were helpful in becoming familiar with the types of problems I would be asked, and talking through these problems as I did them made it seem less foreign. I also recommend doing mock interviews with your friends, as that is a good way of seeing things from the interviewer’s perspective.
Recruiting can be a tiring process, but it’s important to keep in mind that it is not only a way for a company to hire you, but also a way for you to decide what company is the best fit for you. It’s easy to only view it as the number of rejections you got, or an interview you really bombed, but it can be a good way to hone your programming and communication skills, and really think about what you’re looking for in your future job.
-Victoria Yang, 2019 RTC Fellow