TYPICAL PROCESS
Recruiter Screen
Initial Interview
Onsite
After the Interview
Apply
How to Prepare & Tips for our Technical Interviews
As you prepare for your upcoming interview with the Snap team, there are a few things to keep in mind! Here are some tips to help you prepare:
- Finding a quiet place with a stable internet connection will help your interview go as smoothly as possible.
- When getting ready for the technical interviews, be prepared to share an overview of your background and experience. The more specific you can be with your previous experience/project work, the better!
- As you talk through your prior experience, please focus on areas your feel are most relevant and most impactful. Your interviewer will have your resume handy, so no need to go through your resume line by line. If your interviewer has further questions they can ask additional probing questions.
- One key area to focus on would be practicing leet code and computer science fundamental questions.
Some other key tips when preparing for the technical portions of the interviews:
- Ask clarifying questions. Many of the questions asked are deliberately underspecified because our engineers are looking to see how you engage the problem. In particular, they are looking to see which areas leap to your mind as the most important piece of the technological puzzle you've been presented with.
- Think about ways to improve the solution you'll present. In many cases, the first answer that springs to mind may not be the best solution and may need some refining. It's definitely worthwhile to talk through your initial thoughts to a question and take time to compose a more efficient solution.
How our Values play into the interview process
Our Values are the core of who we are at Snap. They drive our decisions and are an essential part of the interview process. You can expect to be asked a values-based question in every interview round. Successful candidates often frame their response with these values in mind when they meet with our team.
Our Values:
- Kind - We listen from the heart, think empathetically, and help each other grow.
- Smart - We think deeply, question conventions, and strive to never stop learning.
- Creative - We challenge the status quo to make things with a sense of purpose.
Thanks for taking the time to consider Snap for your next opportunity!
Learn about Snap's hiring process and access resources to help you along the way. Given the variety of roles within Snap,
our hiring process can differ between regions and teams. Nonetheless, here are some of the ways we get to know you.
General Hiring Process
For most of our engineering roles, the interview process is not team specific. During the interview process you will meet with relevant team members across organizations who are domain experts in the type of role you are interviewing for. Team matching takes place once you have passed the onsite interview stage.
For team specific hiring, your recruiter will share more details about the team you are interviewing for.
Apply to our Jobs!
- Browse our careers page and apply to the role in which you are interested in and meet minimum qualifications. When applying, try to focus on 1-2 roles that you feel you are the best fit for!
Recruiter Screen
- Before speaking with the recruiter, have your updated resume ready to share, be prepared to speak to your past projects and what you are looking for in future opportunities.
- Transparency is key! Sharing what you are looking for with the recruiter will help the teams make sure we are aligned with your interests and expectations.
- During this call, you can expect to go over job responsibilities, company culture as well as discuss target compensation, our equity plan, location, benefits etc.
- Please share any timeline restraints directly with your recruiter. Our team will try our best to work with your timeline, but cannot make any promises. It’s important we’re fair and equitable in our process, and with that we cannot skip any stages of our interview process.
Initial Interview
Typically this is a 1 hour video interview, taking place on Google Meet.
Experience Summary: It is common for interviewers to ask about your experience, as well as ask a values based behavioral question. As you talk through your background, make sure you can speak to your experience! Please provide specific examples of your work such as metrics, leadership, and impact.
Technical Capabilities: This can vary from role to role but generally these interviews will include a domain specific assessment and a coding question (data structures and algorithms). The coding portion of the interview will take place via Hackerrank.
If you have any time left during your interview we highly recommend asking your interviewer questions! Whether it's about their team at Snap, the type of projects they work on, or overall company culture, our interviewers are here to share their experiences.
Onsite Interview
The onsite interview can either be held virtually or in one of our office locations.
Your onsite will be specific to the type of role you're interviewing for. You can find our domain specific interview guides below
If you are interviewing for a team specific role, the recruiter will give you a rundown of what to expect for your interview.
FAQs for the Onsite Interviews
- Can my interview be split over more than one day? If the onsite interview is virtual, we have the ability to split it up over two days if needed. If you prefer to do this, please work with your recruiting coordinator to try and schedule it over two consecutive days.
- I just got my onsite interview confirmation, can you share who is covering each domain listed in the interview format guide? Due to the nature of our interview scheduling, we are unable to provide an individualized interview breakdown. Please be prepared for all rounds at the start of our interviews.
After the Interview
After the interviews, we will schedule an interview debrief.
Most candidates that make it to the next stage of our interview process will go through our team matching process (unless they have interviewed for a team-specific role). During this stage, your recruiter will work on finding a team match based on your skillset, interests, level, location preference and any other factors that are relevant. We strive to complete the team matching process within a few weeks of the onsite interview. However, occasionally the team matching process can take longer.
Once you have a chance to connect with the manager(s), we are able to confirm the team that is the best fit.
home
backend
MOBILE
mACHINE LEARNING
full stack
Backend
Backend Engineers at Snap are part of almost every engineering team. They help build the engines that run our products and move data. While we leverage Java, Python and GoLang most often, for the interview we are pretty language agnostic and in most cases you can leverage whichever language you feel most comfortable with.
Initial Interview The initial interview is typically a 1 hour video call that will take place on Google Meet. The interview will consist of: Background and past experience The first part the call will be spent discussing your previous experience/specific project work. Value based question This interview will also include a behavioral question related to your past experience. General Coding The coding challenge will generally revolve around either general OO coding, algos, data structures or a combination of all three. It’s best to prepare for all options to have the highest chance of doing well. Test code / think about edge cases. It’s even better if you can think about edge cases before coding your solution.
Onsite Interview The next stage of our interview process is the virtual onsite. A typical backend onsite consists of four 1-hour technical rounds and a 30 minute Q&A. This stage can cover the following: General Coding - Data Structures (1 hour) Make sure you're familiar with the basic data structure building blocks (e.g., hash tables, trees, graphs), and can iterate on that code. General Coding - Object Oriented Code (1 hour) We’re looking to test how deeply you understand OO development in your preferred language. You should be able to scale and optimize based on the parameters of the coding challenge and be ready for the interviewer to change those parameters. General Coding - Algorithms (1 hour) Ability to analyze algorithm performance (e.g. runtime + space complexity and tradeoffs). Deep understanding of standard general algorithms (e.g. searching, sorting). System Design (1 hour) The interview loop will assess your ability to design scalable, maintainable solutions. The problems can range from more junior object-oriented design to designing scalable, resilient, large-scale systems. The system design can range from API design to scaled systems design to full product design. Q&A (30 minutes) This round is an opportunity for you to ask questions to the interviewer about the team, project or company. While the loop breakdown above is what most candidates will typically see, depending on level and role there may be adjustments to the schedule and competencies. In these cases, the recruiter will update the candidate on what they can expect.
home
backend
MOBILE
mACHINE LEARNING
full stack
Machine Learning
Machine Learning Engineers at Snap work end-to-end and own the entire respective Machine Learning system. Due to this, our interview process aims to assess five to six functional competencies: ML depth and breadth, ML design and problem solving, system design, coding, leadership, and product.
Technical Interview Rounds Below are the competencies that will be assessed throughout the ML interview process. Depending on your target level, the order of these rounds may differ or you might have some rounds omitted. You can expect one to two interviews for the initial interview stage and five to six interviews for the onsite stage. The first 15 minutes of every technical interview will include a behavioral question aligned to Snap’s values, so please prepare accordingly. Following your answer, your interviewer will transition into the technical portion of the interview assessing one of the below competencies: Machine Learning Fundamentals The intent of the ML Fundamentals round is to assess depth and breadth across ML theory and principles. To understand the depth of your knowledge, you will be asked to speak about the ML modeling details from previous projects you were involved in. With regards to breadth, please be prepared to answer questions regarding commonly used ML models within the industry. Applied Machine Learning Also known as ML model design, this round will focus on using ML to solve real world problems. Be prepared to formulate the problem from a business application, identify relevant metrics, ideate on data sources and features, and come up with a model or solution to the problem. System Design This round is typically focused on designing a scalable system end-to-end for an ML heavy application. It will be similar to a distributed system design problem and the discussion should touch on the architectural components in a production ML system, latency v. performance, monitoring and alerting, practical awareness of scale, etc. General Coding This will be focused on general computer science fundamentals. You can expect algorithms and data structure question(s) for this round and you are able to code in your language of preference. Depending on the target level of the interview, there may be 2 coding rounds. Leadership and/or Q&A Depending on the target level, you will either have a 30 minute Q&A or a 1 hour leadership + Q&A interview. For the Q&A portion, this is an opportunity for you to ask questions to the interviewer about the team, project, or company. For leadership interviews, you can expect to spend the first 30 minutes covering leadership-based questions and the remaining 30 minutes will be open for Q&A. Product This round is required for L6+ interviews and will be conducted by a Product Manager or an ML Engineer. The objective is to assess your ability to understand customer needs, build business domain knowledge, bridge technical ML solutions and product requirements, and partner cross-functionally with Product Managers.
Initial Interview The initial interview is typically a 1 hour video call that will take place on Google Meet. The interview will consist of: Background and past experience Be prepared to discuss your past work and how you specifically contributed to past projects. Value based question This part of your interview will include a behavioral question related to your past experience. General Coding This round will assess problem solving skills as well as data structure & algorithms coding questions and can cover mobile topics such as: Android: Android runtime, Java/Kotlin language features & interop Concurrency (RX, Coroutines, Futures, Schedulers) Android app lifecycle (Activities, Fragments) Background work approaches (threading, services, JobScheduler) iOS: Objective-C/Swift runtime, Language features GCD and async/parallel programming, Memory management, UIKit and CoreGraphics, iOS app lifecycle,
home
backend
MOBILE
mACHINE LEARNING
full stack
Mobile
Mobile Engineers drive major impact and innovation here at Snap as they are responsible for our flagship product. Our interview process is similar for both iOS and Android, however the domain specific round will cover your respective discipline.
Onsite Interview A typical mobile onsite consists of four 1-hour interview rounds and a 30 minute Q&A. The onsite will generally focus on the following competencies: Coding (1 hour) This round will assess problem solving skills as well as data structure & algorithms coding questions. Software Engineering & API/Object Oriented Design (1 hour) Expect general software engineering type questions as well as API/object oriented design questions. Mobile Domain Specific Questions (1 hour) This round will test the depth of either your Android or iOS knowledge. System Design (1 hour) These system design questions could be general or mobile specific. Q&A (30 minutes) This round is an opportunity for you to ask questions to the interviewer about the team, project or company. We are language agnostic with our interview process, so we encourage you to use which language you feel most comfortable coding in! However, below lists the iOS and Android technical stack here at Snap. iOS Tech Stack: Languages: Objective-C, Swift Libraries/Frameworks: UIKit, RxSwift, Swift UI, CoreGraphics, Xcode, JSON, MVVM Android Tech Stack: Languages: Kotlin,Java Libraries/Frameworks: Rxjava, retrofit, dagger While the loop breakdown above is what most candidates will typically see, depending on level and role there may be adjustments to the schedule and competencies. In these cases, the recruiter will update the candidate on what they can expect.
Full Stack
Initial Interview The initial interview is typically a 1 hour video call that will take place on Google Meet. The interview will consist of: Background Assessment Be prepared to discuss your past work and how you specifically contributed to past projects. Value based question This part of your interview will include a behavioral question related to your past experience. General Coding This interview can cover topics topics such as: Frontend coding (familiarity with Javascript and/or Typescript and at least one framework including React, Vue, Angular, etc.) Coding Fundamentals
Onsite Interview A typical full stack onsite consists of four 1-hour interview rounds and a 30 minute Q&A. The onsite will generally focus on the following competencies: Interactivity and Display (1 hour) The frontend side of the full stack engineering position requires the ability to build interactive and polished user interfaces. This means components should be laid out correctly, pages should account for things like responsive design and dynamic device size, animations, and general ease of use. Ideally have a solid understanding of CSS (e.g. flexbox, media queries, etc.) and be able to translate a design into code. Frontend Coding and Fundamentals (1 Hour) Expect questions focusing on Front End fundamentals and basic CS concepts. General Coding (1 Hour) Prepare for either backend coding (data structure/algorithms) or an additional front-end coding assessment. System Design (1 Hour) These system design topics could be general or full stack specific. You will design a scalable web system from end-to-end spanning the front end, the back end, and into the data-serving layer. Q&A (30 minutes) This round is an opportunity for you to ask questions to the interviewer about the team, project or company. While the loop breakdown above is what most candidates will typically see, depending on level and role there may be adjustments to the schedule and competencies. In these cases, the recruiter will update the candidate on what they can expect.
home
backend
MOBILE
mACHINE LEARNING
full stack
Full Stack Engineers at Snap collaborate on building captivating user interfaces in web and mobile environments. Using Javascript, Typescript, HTML/CSS, and React, our teams create interactive and polished experiences for our users.