For me, 2017 was busier and more fulfilling than 2016. At the start of 2017, I left Tesla to join Facebook. In November 2016, SolarCity had only just officially merged into Tesla, and the team I was on was integrating with Tesla Energy, which looked like it could be an interesting experience too. But Facebook held a bigger attraction for software engineers. Its company culture, its users, and what it focuses on developing are all very different from Tesla, and I wanted to see how a world-class software company operates, so I jumped to Facebook.

I started on the Facebook Ads team, learning how online advertising works and how Facebook keeps making the ad experience better. In the second half of the year I joined the Infrastructure team, learning how the infrastructure that supports all the Facebook apps (Facebook, Messenger, WhatsApp, Instagram) is built and run.

One fairly big achievement this year was being featured on the Facebook Engineering Blog. This interview on the Facebook engineering blog, Accelerating growth through Facebook’s Rotational Engineering Program, presented my nontraditional computer science education background and story, the projects I contributed to at Facebook, and my reflections. Honestly, Facebook has tons of amazing people, and a big part of why I had the chance to be interviewed and featured was simply that I was different: my background is different, the path I took into Facebook was different (a new program), and together with my own hard work and some luck, I happened to be chosen. Being featured by Facebook officially really feels magical, and I am very grateful for the experience.

Highlight 2: First Place in a Facebook Infrastructure Competition

Another fun achievement was winning first place in the Facebook Infrastructure Net System Reliability Week competition. It seems that since college I have rarely had the chance to win awards or rankings. At Facebook, every day I see people with better credentials and more talent than me working tirelessly, which keeps me diligent too, hoping to improve a little each day, become a technically better software engineer, help my team reach its goals, and broaden my vision and insight.

Highlight 3: A Cheers Magazine Interview

Another interesting achievement was a transoceanic interview with Cheers magazine, discussing my experience job hunting in the US and how to write a resume. The interview covers content similar to my earlier job-hunting series post, “My Experience Job Hunting as a Software Engineer in America”. The interview was published in the August 2017 issue of the magazine. If you are interested, you can read these two Cheers articles: Use Numbers and Keywords to Show Achievements and Build a Borderless Resume and Show Logical Thinking and Fight Your Way Through Interviews.

Life Lesson 1: Time Is Limited, So Set Your Priorities

I also gained many life lessons this year. The biggest is probably feeling that time passes faster and faster, and I do not have time to do everything I want to do: at work I want to ramp up quickly and make contributions; I want more quality time with family, travel, gatherings with friends, broadening my horizons, reading, writing. But all of these things compete for my limited time. In the past I wanted to attend all kinds of meetups, but now, considering the travel time and the meetup schedule, I really think carefully and only attend events that truly appeal to me. Since I started blogging, I regularly receive emails from readers asking things like “I have read all your articles, how do I apply for jobs in the US,” “How did you switch careers into programming,” or “Hi, can we chat?” At first I would answer properly and point out which article was relevant, but many people’s job-hunting questions are actually already answered in my articles, so over time I have replied less and less to such inquiries. And people who want to chat with no purpose at all are even scarier: my time is not enough as it is, and I cannot chat aimlessly. Of course, there are also many readers who have thought things through, have a clear purpose, have done their homework, and ask things I am relatively able and willing to answer, or who ask about company culture or possibly an internal referral from me. When time allows, I do answer, or help with an easy referral. All in all, learning to set priorities for my life, and actually follow through on them, is an important lesson.

Life Lesson 2: Less Unnecessary Networking

Another lesson is to reduce unnecessary networking. Networking has its uses, provided my ability can also benefit the other side. Otherwise it is just one-sided taking. A line that resonates with me deeply is “When the flower blooms, the butterflies come on their own.” A vivid example of my own: I attended an event at a well-known Silicon Valley company and met someone from that company’s HR department. After the event, I spoke with that HR person on the phone, and after learning about my education and experience, she told me I had no CS degree and not that many years of work experience, and said I should work hard at SolarCity, and in a year to a year and a half, if the need arose, I could contact her again about changing jobs or joining their talent pool. Four months later, I changed jobs to Facebook. Guess what: that HR person saw my LinkedIn update and reached out on her own, wanting to understand my needs, hoping that if there was anything her company’s services could provide, I would come to them. This is of course a very pragmatic change. There were still several months left in the year she had originally mentioned, but because my company changed, they immediately forgot their own earlier requirement and hoped I would keep their company in mind. Of course, from her perspective her change is very reasonable too. I have no CS degree, and my work experience is an East Coast startup and SolarCity, which is not a top-tier software company. If I were her, I would not have been eager to build a relationship with someone like me either. Experiences like this let me face whatever unfair treatment I might encounter with more equanimity, focus on getting better myself, so that one day I can bring something to the table too.

Life Lesson 3: Aim Higher

Finally, always set your goals a little higher. Do not sell yourself short. On my career-changer software engineer blog, besides the title, another idea I truly believe in is “Whether you think you can, or you think you can’t, you’re right. Henry Ford.” And “Shoot for the stars because even if you miss, you can land on the moon.” If I, with no CS degree, could teach myself within five years to work at a top software company like Facebook, then you, with a degree or a better foundation, can surely achieve anything you want. Some readers ask things like “I am turning 2X or 3X next year, I do not know whether I can apply to Silicon Valley companies,” or “I do not have a US degree, I am afraid I cannot land this or that job.” Some of these questions have a slight logical problem: whatever we do, our age increases year by year anyway. And as for applying for a job, unless you apply, nobody knows the result. Once a goal or a dream is set, for the sake of the one life you have, believe firmly that you can achieve it. Aim a little higher, and even if you fail, you may go farther and achieve more than a mediocre goal would have taken you.

Thank you for reading my career-changer software engineer blog all this time. I hope you have a wonderful year too.


This post was originally published on my former blog, 「半路出家軟體工程師在矽谷」, on December 23, 2017. The blog is now offline, and the text is preserved via the Wayback Machine. It has been lightly edited for this site.