How to land Software Engineer offers in 43 days while working on a full-time job

Siyi Fan
7 min readNov 8, 2017


Around one year ago, I got offers as Software Engineer from Google, LinkedIn, Amazon, Uber… Most of the offers came with a promotion, and the base salary raise was as high as 40%. I ended up choosing Uber out of all those companies (not the one with the highest pay but I was deeply aligned with the potential of this company haha). As today marks the first work anniversary with Uber, and as friends around me are constantly requesting advices with interviews, I decided to reflect on the interview process a year ago and try to include the very essence that I found helpful during the preparation.

Why Start?

I value highly on both my career and the city I live in. I worked for Microsoft Office team and lived in Bellevue by the time I started my job hunting and both factors contributed equally to my job hunting decision. I would like to work on web related software engineering and live in a vibrant city full of young work-professionals who can both work hard and party. With none of preferences being fulfilled by my previous job and city, I decided to move on.

Plan Overview

IMO, Silicon Valley style interview for Software Engineers is a separate evaluating system which is a lot different from evaluating one’s performance at work. Although many of the companies are trying to modify the interview process so that the signal emitted from the interviews would reflect the candidates’ capability of doing real work as much as possible, it is still far from perfect. At the very start of this preparation process, my goal is crystal clear: view the interview process as a standardized test and nail it.

Benefited/survived from the long exposure of China’s education system, preparing a standardized test, for me, has always been on the easier side of the spectrum: I need a high intensity timeline, and I will only spend time on things that are going to be impactful towards interview. There are countless posts online telling people to read textbooks from college all over again, and to me that is an overkill. You simply do not need to know the history of Knapsack in order nail the interview, all you need to do is being familiar with how to use Dynamic Programming to solve the problems. I am not saying there is necessarily a “shortcut” for interview preparation, but there should be at least this “clear path” that reasonable…