Engineering Interviews

Engineering Interviews

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.

  1. 01 Code Test using Codility

    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!

  2. 02 Tools for Online Interviews

    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

  3. 03 Structured Interviews

    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.

  4. 04 Engineering Interview Tracks

    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.

Programming: Data Structures & Algorithms (DS&A)

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. 

Preparation Tips for this Track

  • Review common algorithms and data structures. Be sure to understand the strengths and weaknesses of each of these coding components, such as Quick Search, Binary Search, DFS, BFS, Recursion, List, Tree, Stack, Queue, and dictionaries/hash tables.
  • Be prepared to explain the time and space complexities of any functions in your solution using big O notation.
  • Be ready to explain your thoughts logically, even when something goes wrong. The interviewer(s) may help you if what blocks your solution is clear.
  • Be prepared to add error validation and unit tests where reasonable.
  • Be prepared to add error validation and unit tests where reasonable.

System Design: Backend

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: 

Preparation Tips for this Track

  • There are no right or wrong answers for this track. Instead, the interviewer(s) will observe how you design and architect a system, asking you open-ended questions and evaluating your ability to examine underlying assumptions, articulate various solutions and associated tradeoffs, and engage in highly technical discussions.
  • While this is not a programming track per se, be prepared to discuss basic data structures and algorithms when needed to ensure the right data is being received, processed, stored, and transmitted.

System Design: Mobile

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.

Preparation Tips for this Track

  • Train yourself to overcommunicate: this track will need you to explain and discuss your choices with the interviewer(s).
  • Make sure you can describe the end-to-end architecture (from client to server) of one of your previous projects.
  • If your interview is online, take some time to get familiar with miro.com before the interview.

Backend Knowledge

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.

Preparation Tips for this Track

  • Review your tech stacks and be ready to explain and discuss how these technologies work, the reasons they are used to achieve certain desired outcomes, and so on.
  • If you have used some of these stacks in your previous projects, be prepared to explain why you chose to use them and the alternatives you considered.

Machine Learning Algorithms

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.

Applied Machine Learning

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.

Android Development

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.

Preparation Tips for this Track

  • Review your resume and prepare to discuss specific experiences and decisions related to Android development

iOS Development

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.

Preparation Tips for this Track

  • Review your resume and prepare to discuss specific experiences and decisions related to iOS development

System Design: Frontend

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.

Preparation Tips for this Track

  • The role of the interviewer(s) for this track is to guide you on the requirements, so you should be prepared to lead the discussion during the interview.
  • The interviewer(s) will ask open-ended questions to evaluate your ability to examine underlying assumptions and consider multiple possible solutions as well as their tradeoffs.

Frontend Knowledge

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.

Preparation Tips for this Track

  • The questions will range in difficulty from easy to very challenging. Don’t worry if you can’t answer some of the questions. Use the knowledge you have to respond to the best of your ability.
  • Sometimes an interviewer may ask you to estimate some value. We will expect you to choose an answer based on your knowledge of the technology, so please be prepared to explain how you made your choice.

Programming: Frontend

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.

Preparation Tips for this Track

  • Correctness is important, so please be careful with minor bugs and check for edge cases.

System Design: SRE

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.

Preparation Tips for this Track

  • Refresh your knowledge about what it takes to make a software system more scalable and more reliable using modern technologies.
  • Be ready to ask as many questions about the initial system design as you need in order to fully understand it.
  • Try to lead the discussion while answering the interviewer’s open-ended questions after the initial explanation of the system design.
  • Keep in mind that most technology choices are a tradeoff between multiple options. We will be more interested in why you choose a certain technology than what that technology is.

Cloud Infrastructure Tooling

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.

Preparation Tips for this Track

  • Be prepared to discuss best practices regarding technologies. The interviewer(s) are keen to hear why you would choose a specific technology or how you would implement it rather than a description of the technology itself.
  • Understand the best practices of the modern industry, including DevOps, SRE, and the AWS Well-Architected Framework.

Data Platform

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.

Preparation Tips for this Track

  • Make sure you are comfortable with the following topics:
    ・big data technologies (spark, flink, trino)
    ・SQL
    ・best practices for data storage and system design

QA Knowledge

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.

Preparation Tips for this Track

  • Review your resume and prepare to discuss specific experiences you had in the past related to QA and testing.
  • Relax and just be yourself!

System Design: Test Automation

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.

Preparation Tips for this Track

  • Be prepared to do hands-on coding and testing. We are interested in knowing which automation best practices you use and why you use them.
  • Keep in mind that most technology choices are a tradeoff between multiple options. We will be more interested in why you chose a certain technology than what that technology is.

Security

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.

Preparation Tips for this Track

  • Make sure that you are familiar with and able to speak about the following topics:
    ・OWASP Top 10 familiarity and other security standards
    ・Security incident knowledge
    ・Cloud architecture security practices
    ・Defense in depth design approach

Behavioral

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.

Preparation Tips for this Track

  • There are no right or wrong answers in this interview, but you should prepare several episodes of your past experiences that highlight both your successes and struggles. You will likely be asked follow-up questions about alternative decisions that could have been made, and to think about what both you and others were thinking or feeling at various points in your story.
  • It may be helpful to structure your answers using the STAR method, during which you will discuss the specific Situation, Task, Action, and Result of the situation you are describing. There are many resources available online about how to use the STAR method, but here is a brief breakdown:
    ・Situation: describe the background of the episode you are describing
    ・Task: state the goal or mission you were working to achieve
    ・Action: describe the actions that you personally took during the episode
    ・Result: state the outcome in a way that reflects your contribution and, if possible, use quantitative metrics (e.g., a profit increase of a certain percentage)