The requirements for software engineering jobs are ever changing, and the only way is to be prepared, do your homework, and succeed in tough interviews.

The class consists of five sessions, each session lasts 90 minutes.

**Session #1 July 23, 2017**

Topic: Algorithms – Arrays and Strings

Sample Questions:

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

Given an array of size *n*, find the majority element. The majority element is the element that appears more than `⌊ n/2 ⌋`

times.

You may assume that the array is non-empty and the majority element always exist in the array.

**Session #2 July 30, 2017**

Topic: Algorithms – Binary Search

Sample Questions:

There are two sorted arrays nums1 and nums2 of size m and n respectively.

Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).

**Session #3 Aug 6, 2017**

Topic: Algorithms – Graphs

Sample Questions:

Given a binary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

**Session #4 August 13, 2017**

Topic: Algorithms – Backtracking

Sample Questions:

Implement regular expression matching with support for `'.'`

and `'*'`

.

**Session #5 August 20, 2017**

Topic: Design – popular design questions such as design an Instagram, design Snapchat.

Instructor:

Hailin Wu

PhD in computer science.

Software engineer at Google.

Former LinkedIn staff software engineer.

Cracked interviews at Facebook, Airbnb, and Snap.

## Published by Hailin

Googler at Google.
View all posts by Hailin