# Uber Interview Questions – Arrange Given Numbers To Form The Biggest Number Possible

This week, I’m going to discuss the question – arrange given numbers to form the biggest number possible. Like our previous posts about Uber interview questions, I’m focusing more about the analysis process than the final solution.

The idea is not to give our readers the answer/code immediately. Instead, I’d like to guide you through the whole analysis process. At the end, I hope you can be equipped everything you need to solve similar questions.

Here we go.
(more…)

# Uber Interview Questions – Search an Element in a Sorted and Rotated Array

In this post, we will talk about rotated array binary search problem. Three major things are discussed: First of all, instead of providing the solution, we’ll cover how to analyze the question and how to come up with the right idea. Second, it’s not easy to write the bug-free solution for this problem and we’ll talk about some tips and hacks. Last, like our other posts, common techniques are summarized at the end of the post so that you can use similar tools to solve other coding interview questions.

# Uber Interview Questions – Permutations of an Array of Arrays

Following our previous posts about Uber interview questions, this week we’re going to talk about one of my favorite questions – permutations of an array of arrays.

If you keep following our blog, I hope you can solve this problem by yourself as a lot of ideas and techniques used here are common. Here we go.

# Uber Interview Questions – Permutations of Parentheses

We’ve received a lot of feedback from our previous posts. Some readers pointed out bugs in the code and hopefully we’ve fixed all of them. Also, a lot of people are asking for more posts about dynamic programming/recursion. That’s why this week we’d like to talk about the question – permutations of parentheses.

Many people are afraid of this topic because it can be hard to come up with the solution if you haven’t practiced enough. On the flip side, the good news is that just because this topic is relatively difficult, the question cannot be too hard in a coding interview (otherwise, no one could solve it).

This week, we’ll continue to discuss this topic with a Uber interview question, but the analysis/solution is slightly different.

# Uber Interview Questions – Maximum Sum of Non-adjacent Elements

As you may know, one of our blog’s current focuses is on Uber interview questions. Their questions are usually representative and you can expect exactly the same kind of questions from other top companies like Google, Facebook, Airbnb, etc.. In addition, we only cover questions that were asked recently. This week, the question is maximum sum of non-adjacent elements. It’s of medium difficulty, you may expect to have it as the second question in an on-site interview. We are going to cover topics including array, recursion/dynamic programming, algorithm efficiency and so on so forth.

# Uber Interview Questions – Move Zeroes

As we’ve emphasized many times, most people overestimate the difficulty of Uber/Google/Facebook interview questions and underestimate the importance of bug-free code.

At the end of the day, many people have complained that the questions were simpler than expected, but they didn’t manage to write clean code. Especially when someone is looking over your shoulder, people tend to be nervous.

In our recent posts like this, I really want to discuss more fundamental questions, but get your code correct. This week, we’ll discuss a Uber interview question – move zeroes. This question is usually asked in phone screens or as the first question in on-site interviews. It’s for sure that you’ll write down the solid code and you get no chance if your code is buggy or inefficient.

# Uber Interview Questions: Weighted Random Numbers

This week, we’re going to discuss a recent Uber interview question – weighted random numbers. This is also one of my favorite questions to ask and I’m surprised at how many people failed this problem.

In a nutshell, we’ll talk about a couple topics in this post, including sampling, basic data structures, time/space complexity and tips for coding this question.
(more…)

# How to Design Youtube (Part II)

This is the second post about how to design Youtube. We’ll continue our discussion from the first one and please check it if you haven’t read.

In the last post, we mainly talked about database and storage. This week, we’ll cover much more topics, including scalability, web server, cache and security.
(more…)

# How to Design Youtube (Part I)

One of the most common types of system design interview questions is to design an existing popular system. For example, in the past, we’ve discussed How to Design Twitter, Design Facebook Chat Function and so on so forth.

Part of the reason is that the question is usually general enough so that there are a lot of areas to discuss. In addition, if candidates are generally curious enough, they are more likely to explore how existing products are designed.

So this week, we’re going to talk about how to design Youtube. It’s a broad question because building Youtube is like building a skyscraper from scratch and there are just too many things to consider. Therefore, we’ll cover most of the “major” components from interviewer’s perspective, including database model, video/image storage, scalability, recommendation, security and so on.

# 8 Secrets to Software Engineer Self Introduction

What is the most frequently asked question in coding interviews? It’s not string reverse problem, but can you introduce yourself? However, many people don’t know how to deliver a good software engineer self introduction.

In fact, it’s almost for sure that you will be asked this question in every coding interview and many time you have to answer this same question to multiple interviewers on the same day.

In this post, I will discuss tips and hacks about software engineer self introduction. And I’m going to make all the tips practical and actionable so that you’ll know exactly how to improve.