fly

Microsoft – Software Development Engineer

In 2014, as my summer internship at Microsoft was approaching its end, I started to realize that I probably would get a return offer as an software engineer in Bellevue. I had mixed feelings about the situation. I was happy but confused at the same time.

My impression at Microsoft was actually pretty good. There were many friendly colleagues and the projects were also okay. It’s just that I had been a long-time Linux user and an open source supporter. This personal identity made me less willing to work at Microsoft full-time.

However, due to encouragement from colleagues as well as the financial motives, I started to think that maybe it’s not such a bad idea to accept the offer. I would always remember how naive I was when I got the offer:

“Your compensation would be like this.”

“Well, I am actually not sure about the value of this number.” I said.

“Okay, that’s take a look at the exchange rate… Well, it’s about this many NTD.”

I almost accepted the offer, if not for the email that I received from a Google recruiter.

I was encouraged by the recruiter to take the interviews at Google. Since Microsoft only gave me about 2.5 weeks to make a decision, we had to act quickly. However, after the interviews, I felt that I had no chance to get accepted because I did not do very well.

Since the results would not be announced before the deadline, I sent a letter to Google to stop the recruiting process, and wrote a letter for Microsoft to accept the offer. But just before I sent the email, the Google recruiter contacted me and made me to reconsider about this.

Eventually, I decided to wait.

So I lost my Microsoft offer, and unfortunately I did not get an offer from Google either.

Of course things have changed a lot since then. Microsoft started to embrace open source and Linux. Perhaps I wouldn’t be so hesitate about working at Microsoft next time?

Google – Software Engineer

My relationship with Google was really special. My first-ever interview for an internship was with Google Taipei. At that time, I was inexperienced and didn’t even know how to write a resume well. But still, I was really lucky to get selected for an internship. The lucky experience must also have given me many benefits afterwards.

After many years, just when I started to wonder about what to do after graduation, I received a letter from Google again, asking whether I was interested in a full-time position.

I thought, “Of course this was a good opportunity!” I had always had the feeling that Google was a dream company. It had so many interesting and impactful projects. I really wanted to become part of the force that could transform the society. Although as a inexperienced software engineer, I probably would not be able to do exciting projects, I was still wiling to help them make money to support other exciting projects.

The problem was that I was not very determined to go abroad at that time. So I had not started to prepare the technical interviews when I received the email. And due to the Microsoft offer, I had so little time to prepare for the interviews. Unfortunately, I did not get lucky this time and my performance at the interviews was not so good. The recruiter scheduled another two on-site interviews for me, and this time I thought I did better, but eventually I was unable to get the offer.

Facebook – Software Engineer

I’ve applied for internships at Facebook before. But I never received any responses. Luckily, I was able to get a referral this time for a full-time position in Seattle. Although the process was rather slow, a phone interview was finally scheduled for me.

In the first phone interview, I choose to use Python initially, but the interviewer said I should choose a more serious language so I decided to use C++ instead. It appeared that the reason he said that was because he wanted to test me about object-oriented programming. I completed the interview, but was told that a second phone interview was required.1

The second interviewer had a strong accent and it was really difficult for me to understand him. Although I managed to complete the problems, I eventually failed the interview.

Later I discovered that most of the problems tested could be found on LeetCode. I was really regretful that I did not practice more problems on LeetCode.

Quora – Software Engineer

If not for the Internet, I wouldn’t know that it’s possible to apply for an internship abroad. As I searched the information about companies, I also started to use Quora. I looked up their web page and found that at that time there was a Taiwanese employee there as well. So I thought perhaps I could apply for this company.

Firstly there were two phone interviews for technical problems. The problems were not easy, but luckily I passed the interviews. For on-site interviews, I had to book the airplane tickets by myself and get reimbursement later, this was different from other companies that directly book the tickets for me.

Besides the usual technical problems, the on-site interviews involved many design problems and a special practical interview that imitated real tasks engineers encountered at work.

Although I felt I did okay for the interviews, I still got rejected afterwards.

Jane Street Capital – Software Engineer

Jane Street was a really special company. I had never known about it until I accidentally learned about its existence on Quora. It’s a proprietary trading firm that utilized computer programs to automatically trade in the market. Jane Street was also using OCaml, a functional programming language, as their main programming language.

As I found some good reviews about the company, I decided to give it a try. I felt regretful that even though I had tried a little bit of Haskell when I was an undergraduate, I had not continued my efforts.

Due to my lack of experience in functional languages, I thought I could never pass the phone interviews. However, it’s actually okay to use other languages such as Python. And I did pass the phone interviews.

The onsite interviews lasted a whole day, and involved a lot of problems. Moreover, most of the problems were very different from what I encountered in other companies. They were really interesting but also challenging.

After I talked with the employees, I started to like the company. The interviewers said that most of the employees there were really smart and therefore they could learn a lot during work. In addition, the workplace politics was minimal there due to its small size. And as they were not a product company, they did not have to rush through many deadlines and could spend time to polish their work. Finally, their compensation was also very competitive compared to other companies.

However, the interview results were not definitive enough for a hire. So they scheduled another rounds of on-site interviews. Unfortunately, I did not get the offer eventually.


  1. It was said that you only got a secend phone interview when you performed not so well on the first. ↩︎