Landing your dream coding job (internship / new grad)
I’ve found a lot of people asking me tips about how to land jobs at top companies. As someone who has interned at places like Tesla, NVIDIA and Jane Street, I think I am somewhat qualified to speak about this process for internships / new grads.
Below is a small opinionated guide that I’ve written, coming from personal experience as someone with a computer science / robotics background, so it might not generalize as well to other industries, but I believe the underlying principles are broadly applicable.
There are 2 simple steps to landing your dream job:
- Getting the interview
- Passing the interview
The skills required for each of these 2 steps are radically different.
1. Getting the interview
Getting the interview is all about convincing someone that you are worthy of getting the job. It’s about figuring out how to get your foot in the door.
Sub-steps:
- (1.1) Become someone capable (Foundation)
- (1.2) Showcase your work via your Resume / online platforms (Personal branding)
- (1.3) Reach the right people via email, X, LinkedIn (Outreach)
1.1. Become someone capable
90%+ of your time should be spent on this step. I argue that steps 1.2 and 1.3 merely help with increasing your surface area of Luck.
My number 1 tip for getting the interview actually comes way before interview season starts. It starts months / years in advance, building competence and extraordinary capabilities.
From the recruiter's perspective
Put yourself in the shoes of the recruiter or hiring manager. Why should they hire you over someone else?
Ultimately, they’re looking for evidence that you have exceptional capabilities and can make meaningful contributions to their company.
How do you convince them that you are exceptional? By actually becoming exceptional.
There are no shortcuts to this, it takes a long time and a lot of dedication. You must become Hyper-Obsessed. You must love what you do, and do it for the love of the game. Being passionate is important, otherwise it is a losing race.
Why passion matters
Imagine you’re competing with someone for the same job at a frontier AI lab like Anthropic. This person spends their evenings and weekends obsessing over the intricate details of the Muon Optimizer, not because they have to, but because they’re genuinely curious and find it fascinating.
Meanwhile, your mindset is, “I just need to learn this stuff so I can get the job.”
Who’s going to come out ahead in the long run? Probably not you.
It’s a marathon, not a sprint. You don’t become cracked overnight. It takes years of consistent effort. And when things get difficult, it’s much easier to keep going when you genuinely enjoy what you’re doing, rather than treating it as a means to an end.
If you don’t identify as the person who is Hyper-Obsessed, the good news is that passion can be developed and nurtured. As you get better, you’ll naturally start enjoying it more, and the more you enjoy it, the more you’re motivated to get better: a positive Feedback Loop.
My experience
When I got into university, I made it my goal to be the best engineer in the world. A big inspiration of mine was Stuff Made Here, whom I watched religiously over COVID-19.
Naturally, robotics seemed like a great place to start. But while many of my peers did FRC in high school, my only robotics experience was at a LEGO mindstorms summer camp in elementary school.
In my first year of university, I really struggled to find an internship. I spent a lot of time on LinkedIn, connecting with recruiters and asking them for a job.
Becoming a really good roboticist takes time, and my progression did not come overnight. My first internship was in 5G, not exactly robotics. But I was able to get a robotics internship in my 2nd year of university, and by my 3rd internship, I was working on robotics at NVIDIA.
How? I made it my active goal to be Hyper-Obsessed. I Invested time into Design Teams, I built a strong foundation in Linear Algebra, Firmware, Mechanical Engineering, and built projects that demonstrated what I was capable of, during a time when AI could not Zero-Shot / One-Shot it. I was also obssessed with maximizing Productivity, and spent a lot of time thinking about how maximize the unit value of Time. This paid many dividends over the coming months / years.
If you’re still unsure about what are passionate about / want to be passionate about, that’s totally fine too! Heck, I’ve recently transitioned from working in robotics to GPUs myself. Your interests will naturally evolve as you explore different fields and gain experience. Don’t be too Attached.
Figure out what niche you want to work in. Every company specializes in something. AI? Virtual Reality? Robotics? Don’t have a niche? Find one. What excites you? Where do you see yourself working? These are more fundamental questions that you should answer first before blindly optimizing for your big breakthrough at a FAANG or frontier AI company because everyone around you is doing the same thing.
When you do put in the time to explore, don’t expect to immediately land some of the most competitive jobs in the world when you’re still figuring out what you want to pursue.
Once you’ve figured that out, start working at it! How do you get started? You’ll figure it out! Beginners are too obsessed with “how”, and not the “how many hours”. You can look at my Robotics notes for specific advice on “How to get started in robotics?“.
In general, work on projects! Build cool things and document it! Once you’ve built your capabilities, getting interviews becomes a matter of demonstrating your track record and getting your work in front of the right people (step 1.2).
1.2. Present yourself to the outside world
In my class, there were several really smart kids, but they couldn’t get good internships for the life of them (not until their 5th-6th internship), while I was able to get a pretty good one (NVIDIA) on my 3rd internship. I don’t say this to brag, but what made me different than them? I certainly was not much smarter than them?
A big part of it was obviously luck, but I think I spent much more time than others working on projects, and was much better at marketing myself.
During my second year of university, I started working under professor Yash Pant to do autonomous racing research. At the same time, I had this knack and desire to document everything I learn. I would post on my YouTube channel documenting various projects that I was working on, and posted all my notes on my personal website that you are reading from right now.
Why I was working on side projects at the time
My thinking process at the time was that even if the side projects I worked on could not change the world, at least I can build something, learn from it, and share it with the world to hopefully Entertain - Inspire - Teach. Still to this day, even though I’ve become more technically capable, I try to maintain this Day 1 Mindset, always practicing intellectual humility.
I started making some videos about the autonomous racing with RC cars, which ended up going somewhat viral. And this led to me getting an NVIDIA internship.
Getting an internship at NVIDIA
One day, after I posted a video of my autonomous RC car, a representative from NVIDIA reached out, asking if I’d be interested in chatting. Of course, I said yes.
The call didn’t amount to much, they simply wanted to get to know me, and potentially collaborate with me in the future. However, I wanted an internship at NVIDIA, so I asked them quite directly.
Days passed without hearing from them. Then, I remembered seeing the VP of Robotics at NVIDIA, even though he hadn’t actually joined our originally scheduled call. So I cold-emailed him directly.
A week later, he calls me and tells me they had created an internship specifically for me. If I didn’t pass the interview, no one else would get the position.
And that’s how I landed my third internship at NVIDIA.
Because I built something interesting, put it on the internet, and wasn’t afraid to ask. And tapped into the hidden job market.
I certainly got extremely lucky. But this luck was created, and it only turned into an Opportunity because I was prepared.
You don’t need a viral video to get noticed, but it certainly helps a lot.
I think people grossly underestimate spending time building a cool demo that grabs people’s attention.
Of course, polishing your resume in the more traditional job application sense, to highlight your skills (see Resume for tips on how to write bullet points) is also extremely important, but I am very bullish on unconventional paths to getting a job.
Going viral
You don’t need to spend 100+ hours editing per video like me and try to make it go viral.
Currently, I think X is probably the best platform to go viral for showcasing your technical projects. Just put a 30 second demo of your project and try to go viral on X!
This will take a lot of iterations, trial and error, and most of your videos might flop. There’s an art in going viral. But eventually, you’ll figure it out if you Hyper-Obsess over virality. Look at Mr. Beast.
Some examples of people who are really good at personal branding with impressive projects (whether intentional or not):
- https://x.com/Almondgodd → His tinyworld projects https://x.com/Almondgodd/status/1971314283184259336
- https://x.com/MajmudarAdam → https://github.com/adam-maj/deep-learning, https://github.com/adam-maj/tiny-gpu
- actually went deep on these topics, it’s really impressive
- Other recs?
If you do step 1.2. right, if you build your personal brand properly, then soon enough, you don’t have to spend so much time reaching out to people, but rather they’ll find you, and you can skip step 1.3.
Side note on personal branding
Of course, personal branding isn’t the only way to stand out. If you’re a god like Kevin Yang, with an exceptional competitive programming record, your accomplishments already speak for themselves. You don’t need to spend months building an online presence. You can probably just email a recruiter and say, “Hey, I’m one of the best competitive programmers in Canada. Can I get an interview?”
The point isn’t to become an influencer. It’s to have something so impressive that people can’t ignore you. Personal branding is simply one way to make sure the right people see it.
1.3. Reach out to the right people
Sometimes you can’t just count on inbounds (especially in the earlier stages), and need to do a bit more outreach yourself to increase your surface area of luck.
Over my years in university and doing 6 different internships, I’ve gotten really good at writing a strong email, and many of my peers would say something similar.
By this point, you should have built up some impressive projects in step 1.1, and in stpe 1.2 you figured out how to sell yourself.
There’s this guide that I followed religiously and helped me write killer emails: https://www.nicksingh.com/posts/cold-email-tips-to-land-your-dream-job-with-examples
A summary of my main takeaways from guide:
- Send your emails at a time when people are likely to read it and respond
- Structure your email to be concise, to the point, will a clear call-to-action at the end (“who are you” + “why you’re cracked and destined to work at X company” + call to action “how can we get started?“)
Final general networking tips
Dig the well before you're thirsty
Try to build relationships with people, before you even know you need them. You never know where they’re going to end up, and they might land you a strong helping hand one day (Social Networking).
Connecting with people
Find people who went through a similar background as you. Even if you went to a non-target school, chances are someone from your school got into that position. They are much more likely to want to help you compared to someone that you have nothing in common with.
Great things take time. Just keep working hard and Your Time Will Come.
2. Passing the interview
Great, you got the interview! Congratulations, now you need to not fumble.
Depending on the company and the role, this may be 1-2 rounds, or it might be a full day of on-site interviews.
Many companies (ex: NVIDIA, Tesla, Apple) like to split the technical interview into 2 stages:
- Talk about your experience / projects (no coding)
- Live coding round
2.1. Talk about your experience (no coding)
- Be able to elaborate on every bullet point that is on your resume
- Especially if it seems super impressive. As an interviewer, I’m trying to assess if what you do it is actually impressive, and whether you actually did that (if so, you should be able to go super deep on that topic)
You should also have a project that’s super cool that you can talk about.
Best question to ask (elon style):
- “what is the hardest technical problem you’ve worked on in your life, and how did you solve it?”
- “Talk about your experience at XYZ. What was your main contribution to the company”
2.2. Live Coding round
Then, they move onto live coding rounds. Here are some general categories of technical topics that companies ask for.
1. LeetCode
This is the obvious http://leetcode.com/
Best way to practice this
Do lots of leetcode. Don’t practice pattern matching. Practice reasoning. I personally do Codeforces.
How to ace this:
- Write clean and modular code that is easy to understand and build on top of
2. Games
Games like checkers, connect 4. Tests your ability to clean code fast. Some quant companies like this, but I’ve also been asked this at Neuralink.
Best way to practice
Implement games. Be careful with edge cases.
How to ace this:
- Write clean and modular code that is easy to understand and build on top on
3. Systems Design
Honestly, I’m not really good at this, but I’m sure you can google / ask AI on how to prep for this.
4. Misc / AI use?
There may be other categories that I’m not covering.
more interview prep
See the following pages for some extra notes:
- Behavioral Interview (non-technical)
- Coding Interview (technical)
I also have some domain / company specific prep:
Last piece of advice
Generally, the recruiter is pretty helpful and will tell you what to expect for the interview so you can prepare accordingly. I strongly discourage you from finding the questions online, this defeats the purpose of the interview and undermines the spirit of the interview.
Conclusion
Thanks for reading my opinionated guide! Obviously, things are changing rapidly in our field with AI advances, but I think that many of the fundamentals that I talked about still strongly apply. If you have feedback, feel free to shoot me a message on X.