10 Apr 2016
This was the second time in my life that I went through interviews with tech companies in the Bay Area. Here’s what I’ve learned:
The early question that every recruiter asked was “What's your work authorisation situation in US?“. Fortunately, I have the EB-2 green card. If I didn't, the situation might have changed drastically.
For all newcomers, negotiate to get a green card. Most companies have a cliff time, e.g. you have to work there at least 1 year in order to start the green card application. The cliff time is arbitrary. As far as I know, there's no reason why they cannot start the GC process since day 1; it's just that they don't want to…
I never tried this, but I believe you can negotiate for it. From my personal experience, when I asked for the green card, the HR asked back if I was promised, in writing, to start the green card application earlier (than usual). So, it doesn't hurt to ask.
My interviewing skill is worse than it was before I joined Twitter. My code was sloppy. My problem solving was also sloppy.
If my performance was like this 3 years ago, I wouldn't get a job at all and wouldn't get to move from Thailand to San Francisco.
The pivot point was the onsite Google interview. After that interview, I have been very confident. The questions at Google are sort of difficult but can be expanded to be even more difficult; and they normally involve both designing systems and coding. The hints from Googlers are timely and super helpful. When I stuck for 20 seconds, a Googler would say “hmm, maybe we can try doing it this way instead.“. Then, I tried it, and it worked. I've got a lot of practice (and learned a lot) out of the Google interview.
A Google recruiter said I didn't need to do phone screens (because I was from Twitter and got a few internal references), and I happily agreed. The recruiter was not wrong, and I eventually got an offer from Google. However, I believe it was a mistake. If I had a phone screen with Google, I would perform much better in later interviews.
The lesson here is that the more you interview the better you are. A fake interview, though helpful, cannot match the pressure of a real interview. Please keep that in mind.
Fatigue is a myth. We only interview for 4-5 hours a day. An ordinary work day is more tiring and longer than that.
Nevertheless, the interview is still difficult. I failed a few companies.
One thing that I've noticed is that I have been asked more with behavioural questions.
And I didn't do well.
One company did reference check. Admittedly, I don't know if it's a normal procedure for that company. But I have been convinced that I failed the manager interview while doing well with other interviewers; He asked a lot of behavioural questions, and I answered some questions with confusion. (Even I myself could see it was confusing…lol) The reg flags were everywhere. Thus, the reference check is required. They eventually made an offer.
One interviewer from a different company asked what my technical challenge was at Twitter. And I said nothing was particularly challenging; the answer was like lol… but that was what I felt. If I solve a problem, then it's not challenging. A challenging problem is the one I still cannot solve.
Afterwards, in another interview with another different company, I was asked again what my technical challenge was at Twitter. I improved my answer. I said I was in a team that focused on a small set of users within Twitter, but we still needed to build systems within Twitter's infrastructure, where it's optimised for googol requests per second. Then, I proceeded to explain a few systems we built and how it was a bit difficult to live in Twitter's infrastructure.
There's another example where I tried to explain how I wanted to move toward Machine Learning/NLP. I explained something like “yeah, maybe I can do work around it and slowly move toward the area”. A person at Uber said he was doing similar things; he isn't good at theoretical stuffs, but he can model a problem, knows which approach is appropriate, and how to adjust parameters. He said “he has intuition around Machine Learning”. I replied “huh, that's a good way to explain it”. Since then, I have been using “intuition around ML” in the later interviews…
After each interview, I came out a changed person, a better one, with better explanations.
Talking cohesively when put on the spot is the area I need to improve. I always regret what I say in interview and later come up with a much better explanation/answer. This leads to the next point.
One side story: in 2006, I did have a phone screen with Google. I failed because I didn't explain my project well.
First, my situation is not setup for success. I applied for 7 companies at the same time. That was a big mistake. The offers were made on different days. The “artificial” deadlines on offers made me really stressful. It's hell to manage all these offers.
I should have applied to one or two companies at a time, starting from the ones I want the most, and set the expected compensation for each one. If the companies cannot meet my expectation, then I move on to the next group of companies. (Edit: Ok, maybe you can interview with the ones you want the least first, so that you get better enough for the companies you really want.)
I don't know how to negotiate. I wasn't clear about what I wanted. I acted very oddly. For example, there's one company that I really like; I insisted multiple times to them (over the span of 2 weeks) that they were number 1. But, after careful consideration on all factors, I've decided to join another company instead.
I've regretted my actions. I've plausibly burned the bridge with that company and the people in the team I wanted to join. That's disappointing. Maybe next time, I'll be better at this.
Recruiters usually send an email saying “Do you have time to chat?“. Now I need to make time (which is usually the next day). And I'll wait anxiously because interview result is important to me.
I understand that a lot of people think a phone call rejection is polite; I disagree. It's wasting my time and the recruiter's time.
The best courtesy one can offer to another is to reduce our wasted time.
Please simply send me an email and offer an optional phone call.