Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Engineering Interview Information (updated Janu...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for SmartNews SmartNews
August 31, 2024
1.6k

Engineering Interview Information (updated January 2025)

At SmartNews, we strive to create an interview experience that reflects this principle, focusing on your problem-solving skills, technical expertise, and how you work as part of a team. Our goal is to ensure that our interview process is both challenging and fair, giving you the opportunity to showcase your strengths. To help you perform your best during your interview, we’ve put together descriptions of our different technical interview tracks and some tips on how to prepare so you know what to expect. Good luck!

Avatar for SmartNews

SmartNews

August 31, 2024

Transcript

  1. 2 At SmartNews, we strive to create an interview experience

    that reflects this principle, focusing on your problem-solving skills, technical expertise, and how you work as part of a team. Our goal is to ensure that our interview process is both challenging and fair, giving you the opportunity to showcase your strengths. To help you perform your best during your interview, we’ve put together descriptions of our different technical interview tracks and some tips on how to prepare so you know what to expect. Good luck! About this document
  2. Table of Contents System Design (Mobile) .......................................................... 4 System Design

    (Backend) ...................................................... 5 System Design (Data Platform) .......................................... 6 System Design (WebTech) .................................................... 7 iOS Knowledge .............................................................................. 8 Android Knowledge .................................................................... 9 Backend Knowledge ………………………………………………………….. 10 WebTech Knowledge ................................................................. 11 QA Knowledge .............................................................................. 12 ML Algorithm ................................................................................. 13 Test Automation ......................................................................... 14 Programming ................................................................................. 15 Programming (WebTech) ……………………………………………….. 16 Programming (Data Platform) ………………………………………. 17 Behavioral ....................................................................................... 18 AI Infrastructure ………………………………………………………………….. 19 System Design (SRE) …………………………………………..………….. 20 SRE Troubleshooting ………………………………………………………… 21 Cloud Knowledge and Experience ……………………………. 22 K8s Understanding ……………………………………………………………. 23
  3. 4 System Design (Mobile) During the Mobile System Design track,

    you will design a reliable, scalable, end-to-end client-server architecture that satisfies a specific product requirement. 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 design and architect a system while asking open-ended questions. They will evaluate 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 or a change of requirements during the interview. We use Miro as an online drawing board when done remotely. • Review your resume and prepare to discuss specific. experiences and decisions related to iOS development. • Ensure you can describe your proposed solution's end-to-end architecture (from client to server). • If your interview is online, take some time to get familiar with miro.com before the interview. Tips for preparing
  4. 5 System Design (Backend) During the System Design Track, you

    will design a highly scalable system that satisfies a specific product requirement. 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 requirements. When done remotely, we use a combination of online mediums, including AwwApp, Miro, and Google Slides. • There are no right or wrong answers for this track. Instead, the interviewer(s) will observe how you design and architect a system, asking 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 correct data is being received, processed, stored, and transmitted. Tips for preparing
  5. 6 System Design (Data Platform) Two types of questions are

    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 and consider points such as how it might be used, what value can be derived from it, and so on. • Make sure you are comfortable with the following topics: ◦ Big data technologies (spark, flink, trino) ◦ SQL ◦ Best practices for data storage and system design Tips for preparing
  6. 7 System Design (WebTech) You will design a reliable and

    scalable end-to-end web architecture that satisfies a specific product requirement. 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 design and architect a system while asking open-ended questions and evaluating your ability to examine underlying assumptions, articulate solutions and associated tradeoffs, and engage in highly technical discussions. The interviewer(s) 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. • Train yourself to overcommunicate. This track will require 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. Tips for preparing
  7. 8 iOS Knowledge 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. The track is broken down into two parts, each approximately equal in 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. • Review your resume and prepare to discuss specific experiences and decisions related to iOS development. Tips for preparing
  8. 9 Android Knowledge This track aims to understand your approach

    to Android application 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 in 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. • Review your resume and prepare to discuss specific experiences and decisions related to Android development. • Prepare yourself with general mobile application development knowledge as well as Android-specific topics. Tips for preparing
  9. 10 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. • 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. Tips for preparing
  10. 11 WebTech Knowledge This track aims to understand your approach

    to Web-related development and how your unique experience can help us develop even better features and platforms in the future. We will assess not only JavaScript/TypeScript skills but also comprehensive frontend knowledge like HTML/CSS, browser behavior, the basics of HTTP, and Web security. • Review your resume and prepare to discuss specific experiences and decisions related to Web development. Tips for preparing
  11. 12 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. • Review your resume and prepare to discuss specific experiences you had in the past related to QA and testing. • Relax and just be yourself! Tips for preparing
  12. 13 ML Algorithm 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, as well as your understanding of all nuances of ML model training. • Review your resume and prepare both machine learning highlights and technical challenging details for discussion. • Prepare yourself with general modeling knowledge like loss, optimizer, normalization, evaluation metrics, etc. • Prepare domain-specific knowledge like NLP, recommendation, search, etc. the SOTA model structure, and the pros and cons of other model structures. • Review your end-to-end machine learning application work experience. Tips for preparing
  13. 14 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. • 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. Tips for preparing
  14. 15 Programming This is not your typical LeetCode-style programming interview.

    Rather than solely assessing mastery of esoteric algorithms and data structures, this interview places a high emphasis on soft skills. We are not only interested in whether you can program the optimal solution but also in whether your programming style/process would fit into our rich engineering culture and allow both you and those around you to thrive. • Don’t spend all your preparation time memorizing optimal algorithms and data structures. • Instead, ensure you are comfortable coding in front of another person and communicating clearly as you go. • While the interview is much shorter than a typical professional situation, you don’t need to rush through the implementation. Instead, take your time and ensure you show off your mastery of engineering best practices, such as well-named variables, well-organized code, etc. Tips for preparing
  15. 16 Programming (WebTech) This track evaluates your capability for problem-solving

    and coding skills in JavaScript. You will be asked to solve a simple problem that most web engineers solve daily. • It may be useful to refresh your Vanilla JS coding basics. • We won’t ask any algorithmic questions, so just relax ;) Tips for preparing
  16. 17 Programming (Data Platform) Two types of questions are covered

    during this interview track: those related to system design and those about scheme/modeling. For the system design question, your interviewer(s) 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. • Make sure you are comfortable with the following topics: ◦ big data technologies (spark, flink, trino) ◦ SQL ◦ Functional programming for big data ◦ best practices for data storage and system design Tips for preparing
  17. 18 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 occurred and then follow up with more detailed questions based on your answer. In addition to hard skills, the interviewer(s) will assess alignment with SmartNews’ core values and soft skills such as empathy, leadership, perseverance, and so on. • There are no right or wrong answers in this interview, but you should prepare several episodes of your past experiences that highlight your successes and struggles. You will likely be asked follow-up questions about alternative decisions that could have been made and to consider 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 describe. Tips for preparing About the STAR method 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)
  18. 19 AI Infrastructure This track aims to understand your technical

    skills and experience building and maintaining the backbone that supports various AI/ML models and services in SmartNews. It may involve designing scalable, high-performance systems to manage data pipelines, model deployment, and monitoring across different environments to see if you are capable of delivering robust, reliable, and ready-for-production ML systems. • Be prepared to demonstrate your experience regarding the following topics: ◦ Understand the end-to-end AI/ML pipeline, from data ingestion to model deployment and monitoring. ◦ Common machine learning frameworks (TensorFlow, PyTorch) and how they are integrated into production systems. ◦ Low-level optimization on the large-scale model serving and the distributed training, etc. Tips for preparing
  19. 20 System Design (SRE) The SRE System Design track mostly

    covers 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. • Refresh your knowledge about using modern technologies to make a software system more scalable and reliable. • Be ready to ask as many questions about the initial system design as you need to understand it fully. • 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. Tips for preparing
  20. 21 SRE Troubleshooting The SRE Troubleshooting interview is designed to

    evaluate your ability to identify and solve real-world issues. We’ll focus on how you approach troubleshooting across a full-stack environment, including Kubernetes (k8s), AWS, and Linux. Our goal is not to test your memorization of specific tools or technologies. Instead, we want to see how you apply your knowledge to resolve practical challenges and understand the reasoning behind certain decisions. Expect questions that explore why and how rather than simple definitions. • Familiarize yourself with common SRE tools and technologies, particularly Kubernetes, AWS, and Linux. • Practice troubleshooting scenarios that involve multiple layers of infrastructure. • Be ready to explain your thought process and justify your decisions. • Focus on understanding the purpose and trade-offs behind different approaches, not just the technical steps. Tips for preparing
  21. 22 Cloud Knowledge and Experience This Cloud Knowledge and Experience

    interview focuses on your familiarity with cloud platforms, especially AWS. If you’ve used AWS, we’ll explore your knowledge and experience in using and managing it. If not, we’ll focus on your understanding of the cloud environment you’ve worked with (e.g., GCP or private cloud) and assess your ability to quickly learn AWS. • Review your experience with cloud platforms, particularly AWS or alternatives like GCP. • Be ready to discuss how you’ve managed and operated cloud resources in past projects. • Focus on demonstrating your adaptability and ability to learn new platforms. • Share examples of solving challenges in a cloud environment. Tips for preparing
  22. 23 Kubernetes (K8s) Understanding This K8s Understanding interview focuses on

    your ability to use and operate Kubernetes (K8s) in EKS, as well as your understanding of how it works. You’ll work through practical scenarios (e.g., creating a web app with deployments, services, and ingress) and discuss underlying processes like pod creation. The goal is to assess your knowledge and reasoning, including how you’d approach unfamiliar scenarios. • Review Kubernetes operations like deployments, services, and ingress. • Understand key processes like pod creation and the kube-scheduler. • Be ready to propose solutions or designs for hypothetical scenarios. • Focus on explaining your reasoning clearly. Tips for preparing