[Twitter thread]

Ever since graduation, people have been asking me: “What’s now?” My answer has been an unequivocal: “I don’t know.” I used to think that by the time I finished my master’s degree, I would know what to do. I thought I’d be a “master”.

Boy, was I wrong. School did little to prepare me for the post-school world. The academic environment provides continual feedback – you go off track a little and somebody is sure to let you know, even guide you back in. In the real world, I have this fear that I’ll make a series of wrong decisions and nobody will tell me until it’s too late. A wrong job choice could cost me a few years, together with many opportunities that should have come with a better choice.

When I looked up career advice for recent graduates online, most of the articles I found are concerned with how to get a job. I don’t want to sound like a snob, but realistically, for many recent grads with degrees in a demanding field like CS, the question is less about “what job can I get” and more about “what job should I get.” The availability of options doesn’t make the decision any easier. If anything, it threw someone with a massive case of FOMO like me into panic mode. I kept iterating through a series of questions: “Should I do a PhD?”, “Should I work for a big company or a startup?”, “Should I do my own startup?”, “Should I do engineering or something more social?”, “Should I just leave tech and pursue my passion for writing?”

Over the last year, I’ve bothered many people, both in industry and academia, with these questions, and I’ve been so lucky that some of them were kind enough to sit me down and share their insights with me. As their advice was extremely helpful to me, I thought they might be also useful for others who will one day have to go through the process that I did. This article is an attempt to put into words the overwhelming thought process that I went through and the advice that I received. If you just want the advice without the storytelling, go straight to the last section.

PhD or no PhD

My family farms in a small village in Vietnam, so the US academic world was obscure to me. I had no idea what a PhD was about, what people looked for in an PhD application, or how I should prepare for it if I ever wanted to apply. It was only when I started hanging out with PhD students at the beginning of my last year that I realized: “Wow, these people are really smart. They work on interesting problems. I want to be like them.”

I quickly realized that “PhD or no PhD” is a topic that everyone seemed to have an opinion on. I also realized that 100% of the professors I talked to (aka those who already did their PhDs) told me I should do a PhD, and 100% of the people in industry told me I should not.

Arguments supporting PhD include:

  • You’ll have time to immerse yourself in research.
  • If you want to become a professor, you have to do a PhD.
  • Many top research labs such as DeepMind only interview PhD candidates.
  • You won’t be too poor as AI internships pay well.

Arguments supporting no-PhD include:

  • There should be more people joining industry to bring research into production.
  • By the time you finish your PhD, what you learn might no longer be relevant.
  • Many professors have side gigs in the industry anyway so you can still work with them.
  • You won’t be poor for the next five years.

At first, I decided to go with doing PhD. Since it was too late for me to prepare my PhD app, my professors suggested that I apply next year and spend the year in between strengthening my app, so I lined up a bunch of research internships.

I graduated a quarter early and spent the next three months traveling. I wasn’t trying to find myself, but I stumbled upon it. During that time, I wrote every day for fun but didn’t read a single paper. I realized that I wanted to do a PhD not because I wanted to do AI research, but because I wanted to be the person who did AI research. The notion strengthened when I caught up with my PhD friends and saw them spend every waking moment talking/thinking about AI – I didn’t share their passion. I wanted something different. How different? I was still trying to figure it out.

Be a sell-out or follow your passion

Stanford offers a CS + English major. We used to joke that this major is for those who love writing but also want to get a job. Then a friend told me I was one of those.

I didn’t major in CS for the sake of getting a job. I got hooked on it from the first introductory class because the subject was fascinating. I love engineering, but my three months off rekindled the belief that writing is the biggest love of my life. Since I already spent nearly 4 years pursuing my degrees in CS, I longed to have some time invested in writing. I was also afraid of settling into the stereotypical complacency of being just another software engineer in Silicon Valley.

Pursuing your passion, it turns out, is not legal in the US when you’re an international student. To stay in the US, I have to have a job related to my field of study. I can, of course, go live in another country. The idea of living on some South American beach and writing is quite romantic. But AI is such a fast-changing field that I was already a bit disoriented after a quarter off – what if I couldn’t get back into the field after a year? Plus, logistics and immigration would be a nightmare.

When I came to my professor with this dilemma, he was confused: “Why do you have to choose between engineering and writing? Why not both?” There are many people who are accomplished in their technical fields but also prolific writers. His unquestioning confidence in my ability to do both inspired my own confidence: “You’re right. I can do both.” I can work full time in tech and spend evenings/weekends writing. I used to spend an ungodly amount of time doing homework + teaching in college so I’m sure I can spare 20+ hr/week for writing.

Should I do my own startup?

Graduating from Stanford and living in Silicon Valley, I can’t escape the startup stereotype. Some have suggested that I’m the “startup type.” Some have even asked me to become their co-founder.

I have, more than once, been tempted. The idea of building something from scratch is appealing. I’ll undoubtedly learn a lot, not only about the problem I try to solve but also about how to inspire people to work with me, how to raise money, how to run an organization, how to sell my product… I have a lot of friends doing their own startups and their lives are a lot of things, but never boring. Plus, they have a substantially larger chance of becoming billionaires than I do.

Just reading news about this or that twenty-something raising millions of dollars makes it seem so easy. “Even that Yo app raised $1.5M!” someone once cited this as a reason why I should do a startup. But I’ve also seen enough of my friends to know that the startup life is stressful, cut-throat, and constrained by so many external factors. A fair share of my friends’ startups have already failed even though they are extremely smart, had great ideas and were backed by prestigious investors. Every time I feel like crap, I call up my startup friends, see their struggles, and feel glad that I’m not them.

I might be in the minority here, but I think starting a company just for the sake of starting a company is devoid of reason and a waste of everyone’s time. I wouldn’t start my own company until I’ve got at least three things:

  1. A problem I want to dedicate my life to solve.
  2. A belief that I can solve it.
  3. A co-founder I can work with for an extended period of time without either of us trying to murder the other.

Right now, I have none of those, so I’ll just hang around. I also think that working for someone else for a few years will much better prepare me, both finance-wise and skill-wise, to work for myself.

Big companies or startups

With the above factors internalized, I started my internship at NVIDIA. I cancelled my other internship plans and looked into full-time jobs. That was when my next big question arose: “Should I work for a big company or a startup?”

I had interned at both a big company and a startup during my undergrad. My impressions were very much aligned with what is usually said of the trade-off between big company stability and startup high impact (and high risk). Among my friends who chose not to do PhD, about 40% went to big companies, 40% worked for startups, and the rest started their own companies. They all gave me compelling arguments. The pros/cons below, of course, vary from company to company.

Startup vs big company

When I shared this concern with people, many told me to do what made me happy. While I appreciate the sentiment, this advice often left me even more confused. What does “happiness” even mean? How am I supposed to measure it? “Happiness” is also relative. Given enough time for adjustment, we can teach ourselves to be happy with just about anything.

There were two pieces of advice that I found helpful. The first was: “Which one gives you a once-in-a-lifetime opportunity?” Do you believe that the startup you’re considering is working on something truly important and it’s your once-in-a-lifetime opportunity to contribute to it? Or do you believe that working for a tech giant is your once-in-a-lifetime opportunity?

The second was: “What are you optimizing for?” An easy thing to optimize for is money. Some of my friends interview with multiple companies and go to the highest bidder. Some optimize for new experiences and choose a job that allows them to travel and meet a lot of people. Some optimize for prestige and go to the company that is the most well-known in their field.

At this stage in my life, I optimize for personal growth. I want a job that gives me the most freedom to grow. It means that the job should allow me to work with great colleagues/mentors and challenge myself as much as possible.

NVIDIA

In the end, I chose to stay at NVIDIA for the following reasons.

1. The culture

I’ve talked to many companies, and NVIDIA stands out as a big company that feels like a startup. One of the NVIDIA’s cultural tenets is SOL, speed of light – you have to move fast, much faster than a regular big organization. I talked to my manager about converting to full-time one afternoon and got my offer the next day.

On Glassdoor, some say that the startup-like culture means a higher workload. Some find the lack of organizational structure at NVIDIA disorienting. But I absolutely love the dynamics. As the company is growing so fast, there are so much to do. An employee can go out there and challenge themselves as much as they want.

The hierarchy is flat. You can reach out to everyone and they will listen to you. Even as an intern, I had the opportunity to work with two senior managers. Jensen Huang once offered me a beer. My experience is far from unique.

Also, Jensen Huang is the coolest CEO ever. His style is fire (leather jacket yo) and he has a wicked sense of humor. He invited all interns to his house for an end of summer party and everyone loved him. It takes a cool CEO to build a cool company.

2. The work

NVIDIA is known for hardware, but they also have a strong software engineering team. My manager lets me choose what I want to work on. The work ranges from research to large-scale production, so there are plenty of projects for me to choose from. My work is not restricted to a tiny piece of code, and I can be the owner of a project. I can also work with people from other teams. Once, I was impressed with someone’s work and he was on another team. I reached out to him and we did a project together.

I realized that I loved my work at NVIDIA when one Saturday, I suddenly had the urge to come to the office to finish some experiments. I have never felt bored at work. There is always something to work on or someone to talk to. I’m learning so much.

3. The impact

Unlikely many big companies, NVIDIA managers share the company’s strategy with their staff. Even as a low-level engineer, I feel like I know where the company is headed.

NVIDIA is ambitious. They offer many projects with huge potential. I can make a difference with the project I’m working on. The managers watch out for your work and make sure they get the attention they deserve. I once volunteered to do something for the company and my work got detailed feedback from one VP and two senior directors. This is unlikely to happen at other big companies.

4. The fight

The hardware competition is red hot right now. Every tech giant seems to want to a piece of it. Working at NVIDIA gives me a front-row seat to watch it unfold.

When I asked my manager why he moved here from Apple, he said it’s because of “the fight”. For some reason I haven’t been able to internalize, being part of NVIDIA seems heroic. I want to do my best to help NVIDIA win the fight.

Some people might ask: what about the pay? Did money really not factor in my thought process at all? It’d be a lie to say I wasn’t tempted when someone mentioned their 6-figure sign on bonus fresh out of their master’s program. Like many of peers, I have the goal of one day having enough money to never have to work for money.

But for now, working in tech, I know that whatever job I choose will probably pay me well enough. I believe that if I opt for personal growth, one day, I will have a set of skills desirable enough to make more money than I care to spend. Youth is too precious to be sold for money.

General advice

  1. Know what you’re optimizing for: money, new experiences, prestige, personal growth, or something else?
  2. If you don’t know what you want to do, pay attention to what you do in your free time. It’s what you do when nobody is watching that shows your true interests.
  3. At least for AI, the line between industry and academia is getting blurrier and blurrier. Don’t fret about PhD or no PhD. You can always start your PhD and then drop out, or apply for a PhD after a few years in industry.
  4. Publish your code on GitHub and invest your time to build some decent GitHub repos. I’ve had more than one company that offered me a job because they were impressed with my GitHub.
  5. Don’t freak out about your GPA. If you think it’s low (e.g. < 3.3), just don’t put it on your resume. As long as you have a decent technical background (e.g. past internships + side projects + GitHub), nobody cares about your GPA.
  6. During college, intern at both big companies and startups to get a sense of what kind of organization you want to join.
  7. The easiest kind of offer you can aim for is an intern-to-full-time conversion offer. The intern interview process can be 3x easier than a full-time interview process.
  8. Start your job search early, preferably at the beginning of your senior year. Most of my friends get their full-time offers 2-3 quarters in advance. Early job offers give you peace of mind to be yourself in interviews and leverage to negotiate later.
  9. Don’t give up just because you haven’t heard back from some companies. I know people who sent their resumes to hundreds of companies until they got a job.
  10. Technical interviews are a pain. Prepare for them a least a month in advance.
  11. During interviews, ask about the kind of tasks you’ll do in the role, the manager you’ll report to, and the kind of mentorship you’ll get.
  12. Don’t shy away from negotiation. Even if you don’t work for money, you have every right to be paid your worth.
  13. In my experience, companies always match offers, even if they say they don’t. I’ve seen two friends with similar experience joining the same company for the same role, but one got $50k more a year because he had a competitive offer.
  14. Ask people you admire for their experiences and career advice.
  15. Read Glassdoor reviews to get a sense of what you’re getting yourself into.
  16. Take some time off between college and your first full-time job, as it’s unlikely you’ll have a vacation again for a long time.
  17. If the only reason you stay in a job is the pay, leave.
  18. If you don’t find yourself learning in a job, leave.
  19. Resist the rat race.
  20. Stop comparing yourself to other people. No matter how good you are, there will always be someone who’s better than you at something. Instead, compare you of today with you of yesterday.
  21. Be nice.
  22. Be kind to yourself. You don’t have to graduate at xx, get a PhD when you’re xx, or become a millionaire when you’re xx. Discover the world. Get to know yourself. Enjoy the process.

Acknowledgements

This post wouldn’t have been possible without long conversations over the year with many people I admire, in both industry and academia. I’d like to thank Christopher Manning, Mykel Kochenderfer, Alexander Rush, Lukasz Kaiser, Laurence Moroney, Danijar Hafner, Lucas Baker, Paul Warren, Jonathan Cohen, Boris Ginsburg, Rex Garland, David Buickians, Dung Ho Chi, and many other friends for putting up with my indecisiveness and unclogging my impossibly dense mind.

P/S: If this post makes you interested in learning more about working at NVIDIA, shoot me an email!