- Introduction
- General Information
- MAANG and Large Companies
- Small and Medium Sized Companies
- Start-Ups
In general, leetcode interview questions draw from data structures, algorithms, and introductory programming knowledge. Specific topics include linked lists, stacks, heaps and priority queues, hash map, graph, BFS, DFS, tree, BT, BTS, sorting methods, dynamic programming, binary search, and recursion. Some undergraduate CS courses that teach you these topics include CSC148, CSC165, CSC236, CSC263, CSC373. You do not need to wait to take these courses to learn about these topics, as there are many online resources (including practicing leetcode questions). Linked below are some resources for you:
- Popular data structures and algorithm course
- Webpage outlining further data structure and algorithm courses, with a brief description of what each course will teach you
Some questions that you should always prepare for are ‘Tell me why you want to work here.’ , ‘What excites you about the company?’, ‘Can you tell me a bit about what you know about the company?’. In addition to reviewing your own resume, it is very important that you do research on your interviewer and their current work, and the company, their recent projects, and which projects you find most interesting. Linked below are some resources to help you prepare for the behavioral question portion of the interview.
When it comes to answering behavioral questions, don’t stress! If you thoroughly reviewed your resume, and conducted sufficient research on your interviewee and the company you are interviewing for, your answers should come naturally.
Whenever someone mentions tech, it's usually these companies that first come to mind. MAANG which stands for Meta, Apple, Amazon, Netflix and Google are amongst the biggest names in the technology industry. Employing a couple thousand people across the globe, these companies usually have revenues in the billions. Typically, roles are not flexible, you work on a very small part of the whole and hours can be long. The major draws to work at these companies are usually the brand value and the compensation.
In addition to the general behavioral questions. Many of these companies have "guiding principles" and seek employees that embody these principles. They often stucture their behavioural questions to try and see if you exhibit these values.
For example, Amazon has their Leadership Principles and Meta has their Core Values. It is a very good idea to go through each of these values and come up with stories/answers that showcase how you embody them.
Intern: Usually around $40-$50/hour, totalling around $7500 - $9000/month. In case you are required to move to a different city, these companies provide a relocation stipend and/or sometimes even corporate housing.
Full Time: The compensation stucture for these companies usually involves 3 components:
- A base salary: ~ $100k - 120k
- Signing bonus (for first 1-2 years): ~$20k - 40k
- Stocks (with varying vesting schedules): ~ 100k
Total/year : ~ $140k - $180k
Usually have comprehensive benefits in terms of health insurance, relocation stipends etc.
The hiring process for these companies typically involves 3-5 rounds. The first round is usually an online assessment with 2-3 leetcode questions of varying difficulty. The next couple rounds will be any combination of phone screens, behavioural interviews, work place simulations or technical interviews. These companies often change their interview process, checking forums like reddit, glassdoor, youtube etc. is a good way to get a clue as to what the next steps might be, the company themselves usually also provide you with comprehensive information for each step of the process.
Given the competitive nature of these jobs, long hours are not uncommon. That said, considering how large these companies are, there is never a one shoe fits all, and the "work culture" is very team/manager dependant. Your individual work is usually a small part of the whole and as an entry level SDE, you will not usually have too much say in bigger picture stuff.
Mid/small sized tech companies typically employ 50 - 250 people and generate a revenue of $10 million to $1 billion. There are many benefits to working at a midsize company including a typically flexible schedule and work life balance and the ability to re-invent and measure the impact of your work as the company grows. Similar to start-ups you might also have the opportunity to work with the full technical stack and learn it inside out.
Depending on the company you are interviewing for you may or may not be asked to solve leetcode questions. Just in case, it is recommended that you practice some leetcode questions. Linked below are some resources for you to use:
The behavioral questions you will be asked in your interview will be similar to those asked for larger companies and start-ups. In general, interviews for small and medium sized companies are more personal and less structured than larger companies.
The average hourly wage of a software engineering intern at a small/medium sized company is around $25/hour or $4000/month. Some companies will also offer you a sign on bonus of around $1000 to $2000. Small/medium sized companies do not have extensive benefits for their interns, and depending on the company you are working for you may or may not be paid for vacation days.
The hiring process for small/medium tech companies is similar to that of large tech companies. After applying/networking you may receive an email inviting you for an interview. The primary interview is typically a more behavioral question based interview that lasts around 30 minutes. If you are successful with the first interview you may be invited back for a second more technical interview. In this interview the interviewer may ask you a question and ask you to step through a solution verbally, they may ask you to solve a leetcode question, or they might ask you to share your screen and write some basic code. Now depending on the company they may even conduct a third interview. This typically occurs if the company is trying to decide between multiple candidates. This interview could then be tailored to compare the candidates so they can make their final decision.
From a variety of sources, and personal experience, working at a small/medium sized company provides a good workplace culture and work life balance. With a maximum of a few hundred employees, while working in a small/medium sized company you will have more insight into the work being done at the various levels of staff. It will be easier to interact with your leaders and decision makers and thus you will not feel like just a number. Work will feel more like a small community.
Working in startups is, in a certain sense, a high-risk, high-reward game. But it all depends on who you are, and what you are looking for in a company. A good thing about startups is that often you will not find the same style of interviewing as big, medium or even small companies. Most of the information comes from experience here, with some research.
No leetcode questions! Or at least, often there are none or they are not the focal point of an interview (exceptions do apply: if they are hiring you specifically for the contributions you can make regarding algorithms, you may get tested on your knowledge). Startups are “companies in the process of starting up”, and they know they usually have less to offer than established companies. But also, a person that prefers to follow specific instructions and work highly-managed tasks in bigger groups may not be a right fit for a startup. Startups want someone that is capable of handling multiple projects at once, often jumping from one to the other, as well as being capable of good collaboration and thinking outside the box. That is why it is less common to be presented with leetcode questions, especially if you have limited experience; they are willing to let you grow with the company. They put much more focus on behaviour.
Specific behavioural questions you may get are:
- Are you able to work on multiple tasks at once?
- Would you say you are a good worker under-pressure? Startups are often working under a time limit (due to budget constraints), and so you will need to be able to work fast and possibly put extra hours for the good of the company. They don’t want you to work extra time (hopefully!) and that is why they want someone that works fast under pressure.
- Why did you decide to apply for this job, rather than a bigger company?
For such questions, it is important you prepare yourself on the market the startup is targeting; they don’t expect you to know about the values of the companies or their work, since the startup may not even have a public website yet; but they want to know you are passionate about the problem they are targeting. - “What do you think we could give you as a company in terms of your professional experience?” This is also a way to mask a question about “how long would you be willing to stay with us”. Startups are the companies that invest the most in relation to their small budget into hiring young workers and train them; they often look to hire people that are willing to stay working with them after the internship ends.
The average hourly wage of a software engineering intern at a startup is usually a bit lower than what you would get at an already-established company. For an intern, you may expect anything between $18.50 to $23 an hour. To counterbalance this, you may find that the company will offer you a set amount of shares per month that, if and when the company gets successful and goes public (if that is their goal), you will be able to turn into stocks at a discounted “symbolic” price (usually 0.10 cents per share) and sell them for the current market value (which is usually above 30 cents and around a dollar). This could turn into a significant money bonus in the future. However, you can expect a bit more flexibility in terms of hours, and you will connect a lot with the other members of the team, which usually results in social hangouts.
For startups, the number one way of being hired is through your network. Since startups need trustworthy and competent people, people that the leader needs to make a bet on, they will go first for people that are recommended by trusted friends, then coworkers, and so on. You may also find some offers on LinkedIn and similar services, but that is more rare. So, building a network is essential if you plan to get to work in a startup. After you get contacted, usually via email or phone, you will get a first interview, which will heavily focus on behavioral questions and your experience. You may get a couple of questions on how you would approach a particular problem, but these really are not about your technical skills, and more to your approach to problems and teamwork.
If the interview goes well, you will be contacted a bit later with the final decision.
A unique aspect of startups is that, depending on the size and your role, you can help actively shape the workplace culture. You will get the chance to hang out closely with tour colleagues, and you will probably be in contact often with the "higher-ups". With anything from 3 to 20 employees, it will be a very useful opportunity for you to network, even if the startup does not end up getting anywhere.