vbrazo / interview-archives

My technical interview archives for an engineering management journey

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Interview Archives

This is my personal interviews archives and it's where I store my research that aims to provide resources to better interview developers in my engineering management journey.

Introduction

  • Introduce yourself
  • What’s the most challenging project you’ve ever worked on?
  • How do you balance feature development and technical debt?
  • Tell me about your experience with QA.
  • Why do you want to work for this company (company, product, team, market, target group)?
  • Expectations? Motivations?
  • What are your biggest weaknesses and strengths?
  • Tell me a situation that you demonstrated to be a team player
  • Why do you want to move to Vancouver?
  • Peer Review/Pair Programming. Do you know what it’s?
  • Where do you see yourself in the next few years?
  • What is your preferred way to learn new things?
  • What do you value the most in a company?
  • How do you deal with issues/problems/not knowing how to accomplish something?

Project Retrospective

  • Tell me about a project that you are most proud of:
    • What made this project technically interesting or complex?
    • How did you set up your team for success with this project?
    • Were there any conflicts during the project? How did you resolve them?
    • What was the outcome of the project?

Full Stack Development

Ruby on Rails

  • What's a scope?
  • Have you ever built a Rails app with a service-oriented architecture?
  • If you were starting up a new Rails app, what gems would you add?
  • Have you ever worked with Rails Engines?
  • What was the biggest challenge you have faced with Rails APIs?
  • If we talk about Ruby frameworks, do you have experience with any other framework outside the Rails universe?
  • Do you prefer Minitest or RSpec? Why?
  • What kind of tests do you judge important and essential for a backend app?
  • What's a shared context in RSpec?
  • What's TDD?
  • What do subdirectory app/controllers and app/helpers do?
  • Name five things Rails Migration can do.
  • What is the Rails Controller?
  • How can you protect Rails against Cross-Site Request Forgery?
  • What does garbage collection do in Ruby on Rails?
  • Name three limits of Ruby on Rails.
  • What are some advantages of using Ruby on Rails?
  • Name the four types of variables available in Ruby Class.
  • Explain MVC architecture.
  • What are your favorite design patterns in Ruby?

Reactjs

  • What is the difference between Element and Component?
  • When to use a Class Component over a Function Component?
  • What are Pure Components?
  • What is state in React?
  • What are props in React?
  • What is the difference between state and props?
  • Why should we not update the state directly?
  • What is the purpose of callback function as an argument of setState()?
  • What is the difference between HTML and React event handling?
  • How to bind methods or event handlers in JSX callbacks?
  • How to pass a parameter to an event handler or callback?
  • What are synthetic events in React?
  • What are inline conditional expressions?
  • What is Virtual DOM?
  • How Virtual DOM works?
  • What are controlled components?
  • What are uncontrolled components?
  • What is the difference between createElement and cloneElement?
  • What are the different phases of component lifecycle?
  • What are the lifecycle methods of React?
  • What are Higher-Order components?
  • What is context?
  • What is children prop?
  • What is the purpose of using super constructor with props argument?
  • Is lazy function supports named exports?
  • Why React uses className over class attribute?
  • What are stateless components?
  • What are stateful components?
  • What will happen if you use setState in constructor?
  • How you use decorators in React?
  • How do you memoize a component?
  • What are React Mixins?
  • Why is isMounted() an anti-pattern and what is the proper solution?
  • What are the Pointer Events supported in React?
  • Why should component names start with capital letter?
  • What is the difference between constructor and getInitialState?
  • Why ReactDOM is separated from React?
  • How to listen to state changes?
  • What is the recommended approach of removing an array element in react state?
  • Is it possible to use React without rendering HTML?

Mobile Development

iOS

  • What’s the difference between var and let? Which one would you choose for properties in a struct and why?
  • What are lazy properties?
  • What are closures?
  • What’s the application and controller lifecycle?
  • Which are the ways of achieving concurrency in iOS?
  • Explain the different types of iOS Application States.
  • Describe managed object context and the functionality that it provides.
  • Have you ever written a networking layer? Describe briefly how did/would you do that?
  • How do you parse JSON in Swift? How do you parse XML in Swift?
  • What’s a dispatch group?
  • How do you find and resolve memory leaks?
  • Do you have experience with unit testing? How about UI testing?
  • Have you ever developed a test-driven project (TDD)?
  • What is declarative programming? Have you tried SwiftUI yet?
  • Do you prefer imperative or declarative programming in iOS?
  • Explain the MVC architecture in iOS
  • Explain the MVP architecture in iOS
  • Explain the MVVM architecture in iOS
  • Explain the Viper architecture in iOS

Android

  • Which are the ways of achieving concurrency in Android?
  • What is the difference between a fragment and an activity?
  • What are the core components under the Android application architecture?
  • What is the life cycle of android activity?
  • What is the difference between File, Class, and Activity in android?
  • What are broadcast receivers? How is it implemented?
  • What is a Service? How is it implemented?
  • What is the difference between Service and Thread?
  • How does Manifest file plays an integral role in App development?
  • What are some of the disadvantages of Android?
  • What is an Android Runtime?
  • What is the difference between a regular bitmap and a nine-patch image?
  • What is a sticky broadcast? Give an example.
  • Explain the MVC architecture in Android
  • Explain the MVP architecture in Android
  • Explain the MVVM architecture in Android

QA

  • Can you write test scripts? What testing software do you use?
  • Tell me about your experience with automated and manual testing.
  • What was the best catch you ever made?
  • Tell me about the bug that got away.
  • How do you write a test case?
  • How do you organize your work?
  • How much time is enough time to test for a release?
  • How important is it for QA to take part in development planning sessions?

Systems Design

Interview Questions

Question 1

The goal is to build a service for tens of millions of Amazon shoppers, which will store each shopper’s past 100 viewed products. The stored data is shopper specific, and should be used for targeted product advertisements towards that shopper. It’s fine if this data is a little out-of-date. What kind of database should be used? Hint: The last sentence mentions it’s fine if the data is a bit stale. Hint 2: There is a lot of data that needs to be stored.

Solution: NoSQL

Question 2

A company has been experiencing some scaling pains as the engineering team has been building a lot of new microservices and many of them make read requests to the main SQL database regarding customer metrics. The goal is to build a cache service that sits in front of the database to offload some of these read queries. This cache service should look up the query and if it hasn’t been cached in the last 10 minutes, then query the database for the result and cache it. Else, the cache service just gets the result from the cache without querying the main database. What kind of database should be used to build the cache? Hint: This database should be able to look up the cached result by the SQL query (string). Hint 2: The stored data is non-relational.

Solution: NoSQL

Question 3

The goal is to build a service at PayPal that can allow users to apply for loans through the app. The service needs a database to store loan applications. In addition to the loan amount, the application also needs information regarding the user’s current balance and prior transaction history. What kind of database should be used? Hint: This is a financial application where data consistency is very important. Hint 2: Data about the loan, user’s balance and transaction history all need to be stored, and there’s relationships between these data.

Solution: SQL

Interview Challenges

Many systems design questions are intentionally left very vague and are literally given in the form of Design Foobar. It's the candidates' job to ask clarifying questions to better understand the system that you have to build.

These challenges were created to be used in 1 hour session with a candidate.

Design a Neobank

Design a Neobank.

Design Stripe

Design Stripe system.

Design Apple Store

Design Apple Store.

Design Whatsapp

Design a chat app like Whatsapp.

Design Instagram

Design Instagram.

Design A Code-Deployment System

Design a global and fast code-deployment system.

Design GitHub

Design www.github.com.

Design A Stockbroker

Design a stockbroker: a platform that acts as the intermediary between end-customers and some central stock exchange.

Design Facebook News Feed

Design facebook news feed.

Design Google Drive

Design Google Drive.

Design The Instagram API

Design the Instagram API.

Design Netflix

Design Netflix.

Design Slack

Design Slack.

Design Airbnb

Design Airbnb.

General Questions

  • What's availability of a system?
  • What's the latency between systems?
  • What's throughput of a system? How do you measure throughput?
  • When do we need load balancing? Explain what load balancing is and use cases.
  • When do we need Database Replication?
  • When do we need Sharding?
  • What's Rate Limiting and when do we need to implement it?
  • Explain with your own words what Publish/Subscribe (Pub/Sub) Pattern is.
  • What's a reverse proxy and when to use?
  • What happens when you type https://www.linkedin.com in your browser?
  • What's TCP/IP and HTTP? What are their responsibilities?
  • Do you have experience with Relational databases? Which ones?
  • Do you have experience with Non-Relational databases? Which ones?
  • What other types of Storage do you know?
  • What's the difference between Pooling and Streaming?
  • What are Peer-To-Peer Networks?
  • What's Leader Election?
  • What's MapReduce?

Microservices x Monolithic application

Microservices

Monolithic

About

My technical interview archives for an engineering management journey