22 Feb 2012
I am so tired. I woke up very excited every morning for 2 months (evening in SF == morning in Bangkok) checking my e-mails. Sometimes I was rejected and sometimes I was accepted to a next round.
I've applied for the jobs through a normal channel, which is email, though with Facebook, my friend over there referred me.
Startups have a very extreme can-do attitude. If you might be potentially good, they will do everything to talk to you. They will pay for your flight, sponsor your visa, and woo you in every way.
By the way, sponsoring a visa does not cost that much. It's only $3000, I guess, while your salary will be like $8000 a month (including tax). You can see how little the cost is.
Anyway, the results are in. I'm getting offers from Twitter and Expensify. I was rejected by Facebook, Yelp, Nextag, and Causes.com.
Other companies, e.g. Yammer and Groupon, responded, but never really carry out the interviews. Another group of companies, e.g. Square and Scribd, simply rejected me without any interview.
I have to be honest with you here. After almost every phone interview, I didn't even want to hire myself. I spoke very bad. I didn't express myself very well. I talked in circle.
But they usually advanced me. Amazing, huh?
So, if you feel bad after a phone interview, that is ok. They are very forgiving about it as long as you solve all technical problems.
In one instance, I talked to Witold from Expensify. I explained what I did in Germany very bad. I didn't even wanna hire myself :S
In another instance with Twitter, Takeshi asked me what I would do to help new twitter users. I told him the problem was that I didn't know who to follow. However, I didn't offer any good solution to solve that problem.
Anyway, I should tell you guys, millions of fans of my blog (Yes, I have a million unique viewers :P), about the rejections first.
For Facebook, I was rejected after the onsite interviews. There were 4 guys interviewing me. I had fun with 2 of them and no fun with the other twos.
The problem is that the interview is very structural. The not-so-fun guys were all about coding, and I didn't know how to behave. I kept asking for feedback, but I guess they expected me to quietly write the code.
In one instance, I kept asking if he was still following. He didn't answer me, but sometimes he answered “Oh yeah, I'm still following”. I can tell he is very smart. But it was not a pleasant experience.
I solved 4 out of 5 problems perfectly. There was one where I didn't write the best solution, but I did solve it.
And I thought the product manager loved me.
I still cannot figure out what is the reason for the rejection…
For Yelp, I have no idea what-so-ever. I solved the take-home assignment perfectly. It was not a difficult task at all. They checked my work for 3 weeks and sent me a copied-and-pasted rejection email.
My guess is that because I don't have experience in Python. I don't know, man, I thought they would look through concrete knowledge and see only the skills.
This is one of WTF rejections. They look for deep knowledge in Ruby on Rails.
Why on earth would you look for knowledge in a certain framework that evolves almost every 6 months? Besides, I have experience in Ruby on Rails.
Anyway, rejection is a rejection. I strongly disagree with their criteria, but, well, what do I know? My startup failed also.
I could see the rejection after finishing the interview.
At first, I was interviewed by the VP of Engineering. It went well. We had fun and solved problems together. I advanced to the next round.
This time, another engineer wanted to do pair programming on a Linux server. Alright, I never code on Linux without using a mouse before.
The task was too easy, building a Ruby-on-Rails app that does something. However, I was super clumsy with coding in Vi and using Git in a command-line environment. I am a Windows user….
The next morning I've got a copied-and-pasted rejection email, though I've got another personal rejection email from the VP.
I don't know what they are looking for, but we didn't have a great time anyway. I guess that was the main reason for rejection.
*A very weird coincidence is that the guy who rejected me worked for Yelp before. I guess Yelp's people don't like me in general.
After applying to many companies and having countless phone interviews, only 3 of them wanted onsite interviews.
It's funny how the hottest startups of this decade, Facebook and Twitter, want onsite interviews with me, while other startups don't want one.
Box.com contacted me through InterviewStreet but then rejected me because of the H1B visa stuff. The recruiter said that we should talk again in August. It doesn't make much sense to me to wait until August.
Expensify is a weird exception. I keep telling them that I didn't write PHP for a long long time. They don't care. They only look for the skills and the passion. I gotta say I like their criteria.
It was very entertaining. I got there at 11am and got out at 9:30pm. There were 2 real-world coding questions. They were not difficult, at least, for me.
At Expensify, they always give real-world challenges. In their phone interview, they asked me to write PHP code that connects to some APIs and offers some interactions.
I would go much faster if I could use Ruby.
The fun part was where David(CEO) or Witold(CFO/Engineer) herded everyone to discuss about my code. Witold later commented that herding everyone around was like herding cats. Hahaha.
The group discussion was so energetic, and I want to feel that in every of my working day.
There were also talks with Matt(Engineer) and Witold. It was about architectures, passions, and past experiences.
*An architecture is easier said (designed on paper) than done (actually implemented), like saying “I will go to USA” costs nothing, but actually going there costs a lot of money and time.
I was very entertained by the interview. I guess they felt it too. That's probably the main reason why I'm getting an offer.
At the end of the day, David explained me the whole history of the company and the possible future. And he told me on the spot that I would get an offer.
Twitter interviews were a little weird. I've found that their phone interviews' questions were rather easy, but their onsite interviews' questions were much much more difficult.
According to the NDA I've signed, I cannot tell you guys what the questions are.
The questions were designed to break me apart. But I solved them pretty well, though I think I didn't perform well on 2 questions.
Anyway, they lined up 6 engineers to interview me individually, each of which took 45 minutes.
Generally, the conversations were fun. We discussed about how to improve Twitter and stuffs. Then, each of them asked a few coding questions.
I remember the last guy pointed through the window to a building outside and asked a Fermi question, and I started to write on the window instead. That is spontaneously and authentically cool!
I wanna work in this kind of environment, where “coolness” emerges spontaneously.
30 minutes after the interview, the recruiter told me that the feedback was super positive. The team leader sent me an email later on the same day that everyone enjoyed interviewing with me.
I felt the same way. It was fun.
The recruiter confirmed the offer on the following day. Now I'm waiting for all the numbers, and I will make a decision.
I have been interviewing with so many companies. I have been nervous and not so nervous.
What I've realize is that the interview process is destined to be inaccurate. There will be many false-negatives. (A false-negative is better than a false-positive)
This is because we cannot spend too much time interviewing people.
Another thing I've found out is that they will ask you about everything.
They will ask for opinions, architectures, and comparisons. I can say that they asked a lot of stuffs that is relevant and irrelevant to my coding skill and software development skill.
Anyway, a rule of thumb is that:
If the interview is not fun, you won't get any offer.
One lesson I've learned through the interview is that:
Honesty is the key
Just try to be honest about everything you have done in your life, what you want in the future, and what you're not sure that you want. (Notice the difference)
The team leader at Twitter asked me if I wanted my own startup. I told him “Yes, but I don't have necessary skills right now. That's one of the reasons why I'm looking for a job”. Now that's an honest answer, and He seemed very satisfied with it.
And it's ok to tell people about the failures. My cover letter and resume are so full of failures, which turns out to prove that I don't work for money. (How about that, huh?)
And It's not about getting a well-paid job, but it is to find out whether or not the job suits you. Maybe you'd better off doing something else.