To achieve our goal of hiring the world’s best engineering talent, we’ve prepared the following information about our hiring process so you know how to prepare so you can perform at your best.
There are certain engineering positions for which we will ask you to take a code test early in the application process using an external platform called Codility. You will have two hours to complete two to four questions during this test. The number and content of the questions depend on the role. We strongly recommend reading the FAQ page prepared by Codility carefully so that you know what to expect before you begin!
For interviews conducted online, your interviewer(s) may use one or more of the following tools to facilitate the interview. You may want to take a look and explore how each tool works before the interview.
AwwApp / Miro / Google Slides / CoderPad
SmartNews uses structured interviews to evaluate engineering candidates. We ask you standardized questions and assess your answers against a scoring system. In addition to providing a consistent interview experience for all candidates, using structured interviews also helps us reduce potential bias during the interview and evaluate candidates’ performance more accurately.
We organize the content of our interviews into individual modules called tracks. Each track is designed to assess a specific knowledge or skill set. Each track is approximately 45-60 minutes in length, and there are typically two interviews per round. You can find more information about our engineering tracks and tips on how best to prepare below.
We look for problem-solving skills, a basic understanding of commonly used data structures and algorithms and their time and space complexity, and coding skills during the Programming Track. Be prepared to solve programming problems that will be solvable by design with basic data structures and algorithms or combinations of them. Also, be ready to talk through your thought process as you work to find a solution to the problem.
You will do the coding portions of the interview on a whiteboard. For interviews held online, we use CoderPad as a virtual whiteboard.
You will design a highly scalable system that satisfies a specific product requirement during the System Design Track. The scope of the questions can vary widely, and you can expect challenging and deep technical discussions about usability issues, scalability, extensibility, data models, and technologies used. Examples include designing a hotel reservation system, designing YouTube, and/or designing a photo-sharing service. You will lead the discussion, thinking through high-level goals and proposing solutions, while the interviewers provide guidance on the requirement.
When done remotely, we use a combination of online mediums, including:
You will design a reliable and scalable end-to-end client-server architecture that satisfies a specific product requirement during the Mobile System Design track. You will need to consider points such as gathering requirements, API design, software architecture decisions, or tradeoff discussions.
The interviewer(s) will observe how you lead the discussion and how you design and architect a system while asking you open-ended questions and evaluating your ability to examine underlying assumptions, articulate solutions and associated tradeoffs, and engage in highly technical discussions.
The interviewer will also challenge you; you may expect additional requirements or a change of requirements during the interview.
We use Miro as an online drawing board when done remotely.
The Backend track evaluates how you use backend technologies by exploring your knowledge of how they work. You can expect a deep discussion with the interviewer(s) about what happens inside the technologies or languages you use, such as Java/JVM, Redis, TCP/IP, HTTP, TLS, AWS, Linux, or MySQL, how your distributed systems work, and so on.
This track focuses on understanding the depth of your knowledge of model understanding and training of ML algorithms. We will evaluate your capability to design new algorithms, select the right algorithms to solve given problems, tune hyper-parameters, and your understanding of all nuances of ML model training.
This track asks you to focus on applying machine learning algorithms to real-world problems to evaluate your depth of machine learning and software engineering experience with highly scalable systems. We usually provide an actual use case and ask you to apply machine learning algorithms, working with you to create an end-to-end design and then dive deep into model training, feature engineering, and optimization. You can expect discussions about coding, design capability, problem-solving, debugging, and distributed architecture.
This track aims to understand your approach to Android-related development and how your unique experience can help us develop even better features and platforms in the future. This track is broken down into two parts, each approximately equal length, to evaluate your understanding of the Android platform and JVM. The first part is a discussion of your prior experience with Android development with a focus on understanding your approach to problem-solving and tradeoffs for implementing specific solutions. The second part is a demonstration of your theoretical understanding in which you will discuss some basic to complex Android-specific development challenges.
This track aims to understand your approach to iOS-related development and how your unique experience can help us develop even better features and platforms in the future. This track is broken down into two parts, each approximately equal length, to evaluate your understanding of the iOS platform and Objective-C/Swift. The first part is a discussion of your prior experience with iOS development with a focus on understanding your approach to problem-solving and tradeoffs for implementing specific solutions. The second part is a demonstration of your theoretical understanding in which you will discuss some basic to complex iOS-specific development challenges.
This track aims to evaluate your ability to design a frontend solution to fulfill a given requirement. You can expect many open-ended questions around usability, scalability, performance, and technologies, clarifying the scope and requirements with your interviewer as necessary. Your answers will not be evaluated as “right” or “wrong;” instead, we want to observe how you approach the problem and your process of designing and architecting your solution.
Our goal for this track is to understand the breadth and depth of your knowledge of frontend technologies such as JavaScript, HTML/CSS, and Browser/Network. Additionally, the interviewer(s) will ask you to consider the strengths and weaknesses of these technologies from a business and a technical perspective.
This track assesses your JavaScript implementation skills by asking you to solve a frontend-specific problem. We will be evaluating your work based on how concise and correct your answers are, so we recommend taking hints from the interviewer(s) where you can and talking through or commenting on your code as you write.
The SRE System Design track will mostly cover non-functional requirements instead of designing a system’s functional requirements. We will start with an already existing system that implements the most basic use cases but would not be able to bear the load of a global audience. From there, we will discuss how to address common non-functional requirements such as scalability, reliability, availability, and others.
Having knowledge is great; understanding how to use that knowledge to solve problems is even better. This track evaluates your ability to use your understanding of technologies such as AWS, Kubernetes, Terraform, Linux, and networking to solve real-life issues and understand the reasons those solutions work.
There are two types of questions covered during this interview: those related to system design and those about scheme/modeling. For the system design question, your interviewers will ask you to architect the backend design of a data platform-specific problem. For the scheme/modeling question, they will ask you to think about the data itself, considering points like how it may be used, what value can be derived from it, and so on.
The QA Knowledge track assesses—as the name suggests—your knowledge of QA across various areas, including your understanding of mobile and web-related testing and automation. You can expect questions about your experience handling actual releases and incidents and your communication style when interacting with developers and planners. Lastly, we evaluate your potential to positively impact the engineering division and build a stronger QA team.
This track has two sections. In the first section, your interviewer(s) will ask you to demonstrate your technical knowledge in programming and testing. The second section is an in-depth presentation of test automation best practices and how they are integrated into the delivery pipeline using a whiteboard-style interview, followed by a question-and-answer-style interview.
For interviews held online, we use CoderPad as a virtual whiteboard.
The security track explores your knowledge of either security operations or product security by asking questions on various security areas, including network, software, cloud, and other areas. The interviewer(s) will usually introduce some real-world scenario and ask you how to apply practical security knowledge or strategy to solve the problem.
Behavioral interviews focus on your previous experiences, including past successes, what you learned from the experience, and what you might do differently or repeat if the same situation occurred again to understand your skills and abilities. You can expect your interviewer(s) to ask you questions about a time when a specific kind of situation had occurred and then follow up with more detailed questions based on your answer. In addition to hard skills, the interviewer(s) will also be assessing alignment with SmartNews’ core values as well as soft skills such as empathy, leadership, perseverance, and so on.