At the end of every year, we all take stock: which goals did we reach, which ones did we miss, and how should we plan for the year ahead?

In the second half of this year, I joined a mentorship program at work, and the company paired me with a senior engineering manager as my mentor. At our very first meeting, after introductions and some background, we talked about how he could help me most during the program. I told him my biggest goal was for him to help me find my medium- and long-term career direction, and to grow my personal impact. I told him that I had started learning to code in October 2012, and that back then I set myself a five-year goal:

Year one: learn some programming languages, finish some online courses, and be able to build small applications.

Year two: start looking for a programming-related job near Maryland, where I lived at the time.

Year three: keep improving at work, get better technically, and become better at solving problems.

Year four: get to Silicon Valley and work at the center of the tech world.

Year five: by the end of 2017, get into Google. I interviewed at Google twice and did not get in, but in early 2017 I joined Facebook, a company on Google’s level, so you could say I reached the goal ahead of schedule.

Speaking of companies, I recently heard a joke about how people in Silicon Valley say where they work when they are on a blind date:

People who say they work at a “FLAG” company are usually at the A company. (Facebook, LinkedIn, Apple/Amazon, Google)

There used to be people who said “FLG”; they were usually at the L company, but not anymore. (LinkedIn was bought by Microsoft.)

People who say “FG” are usually at the G company.

And people at FB just say they work at the F company.

Inside the F company there is an even more elite subset called FAIR. They would never let themselves be lumped in with the common FLAG crowd, and they always make a point of singling themselves out. (FAIR is Facebook’s AI research division, full of god-tier people.)

I had no idea Facebook carried this much weight on the Silicon Valley blind-date market. Next time I meet a single FAIR colleague, besides paying my respects, I will have to ask whether it really makes them that popular at matchmaking events. XD

I have been working at Facebook for over two years now. At the beginning, and still sometimes, I get hit by impostor syndrome for no clear reason (see my earlier post: Do You Have Impostor Syndrome?). Most of the time, work has been busy and fulfilling (for more about the job itself, see My Days Working at Facebook). But I had completed my previous five-year plan, and I had no idea which direction the next five years should take. Should I keep specializing in front-end? Move toward back-end? Every company needs mobile development; should I build up my mobile skills? Machine learning, AI, blockchain: everything looks interesting. How do I combine the trends of the moment with my own development plan?

Reading this blog, you might think I always have it figured out and know what I want. In truth, I am like everyone else: I have my impostor syndrome moments, and my moments of being unsure about the future. I am writing this post to record the searching and thinking I have been doing over the past few months.

Talking It Through With My Mentor and Senior Colleagues

My mentor has a lot of experience, and spent a good stretch of time as an engineering manager leading people. He went through it with me one question at a time: why I wanted to learn to code in the first place, what coding gives me, what I am good at, and who I want to become.

Talking things through with a mentor like that, he would often draw on his own experience, and his management experience, to clear up a blind spot in my thinking the moment I finished speaking. On top of that, over the past two months I spent time asking several senior people I respect about their past experiences and how they plan their lives.

Among the people I asked, some learn different technologies and take on different projects every so often to accumulate breadth. Some focus on a single domain from start to finish and take it to the extreme. Some, once their technical skills reach a certain level, start learning cross-disciplinary things like business and project management. Some, once their technical foundation is solid, move into full-time management roles. And some, when their careers were going well, put more of their time into family, spending more time with their spouses and kids.

Everyone’s life path is different, and each person’s pursuit of success and goals comes with different considerations at different stages of life.

The founder of Bridgewater Associates, the world’s largest hedge fund, wrote in his book Principles:

In general you can have anything you want, but not everything you want.

What I want for my life:

But our time is limited, and every one of these goals takes a lot of time to pursue. It is like planning a project at work: we rank things by importance, and resources and people always go to the highest-priority tasks first. At different stages of life, we likewise allocate our resource (time) to whichever goal currently needs it most.

My dear wife says she can tell I have been somewhat lost these past few months, unable to find my direction. Compared with when I first started learning to code, when I first arrived in Silicon Valley, and when I first joined Facebook, my medium- and long-term goals really have started to blur. There are many possible futures, and I can see many different paths. But unlike the clarity of going from 0 to 1 at the beginning, this stage is much harder to pin down. And if I do not set medium- and long-term goals, the one- to two-year goals are hard to plan around them.

Other People’s Goals Will Not Be Mine

The title of this post is “How do you set goals for your career and your life?” and after all this talk, I still do not have a good system or method to share with you. The company’s mentorship program, and the discussions with senior people, did leave me less lost. The big insight and advice I took away is that other people’s goals and achievements will not be the same as mine, and the effort they put in and the price they paid are not necessarily ones I could match. Many things also require the right circumstances and timing to fall into place. What I need to do is think about why I wanted to learn to code in the first place, why I was willing to do whatever it took to come to Silicon Valley, what makes me happy day to day or month to month, what in life is important, and which goals can wait a few years. Thinking through and answering those questions helped me clarify my new goals for the future.

There is a saying:

What Got You Here Won’t Get You There.

Only while writing this post did I realize that this is the title of a well-reviewed book. I ordered it right away so I can read it.

I still have not fully set my new five-year goals. If you have book recommendations, or any suggestions, please share them in the comments. I hope we can reflect on the past year together, look ahead to the future, and set new medium- and long-term goals for our lives.


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