On Failure and Success

I wrote this when I was a part of Ravi’s Study Program, an intensive coding and interview preparation program to prepare students for work. I later mentored for this program in the summer of 2025/26.

Throughout the past few months, many in this community have told us about their career successes. This is great if you’ve also gotten an internship, but if you haven’t, you can easily start to feel sad.

RSP’s update system is designed so that you only hear about others’ success and not their failures. No-one announces they got rejected from every FAANG they applied to. They only tell you if they succeed.

This is meant to be encouraging – to highlight that many people here get jobs and internships, and that you can do it too – but it gives you a distorted perception of reality. It can make you feel like you’re the only one who’s not good enough. It’s easy to catastrophize, to think that you have a leaden future.

That’s not true. I’ve seen too many people stress over it, get caught up emotionally, even conflate their temporary summer job with their self-worth. I’ve done some of that myself, and it’s not worth it. Keep these things in mind.

Most people don’t get internships

Most students don’t get internships.

To see why, it helps to understand why internships exist in the first place. For the internships that are sought after, it’s to secure highly talented people before they even start looking for grad jobs.

Put yourself in the shoes of a company that wants to hire the top 1% of graduates. How do you do that? Of course, you can hire grads.

But the problem is that you’re competing against every other company hiring grads, and you’re probably not the top-preferenced company for every applicant. Even if you’re Google or IMC, your star candidates could still get poached by exploding offers, or never apply because they’ve accepted a return offer elsewhere. And although you hire people you think are the top 1%, there’s a chance they’re not actually good at the job and you made a costly mistake.

That’s why you need internships.

They serve two roles – to poach talented students before they apply elsewhere, and as a work trial to help you assess their true future productivity.

They are not a cost-effective way to get labour. You have to advertise widely, screen thousands of resumes, schedule interviews, organize logistics, get highly-productive engineers to devote time as mentors, all so that you can hire some kids to work for 10-12 weeks, even though they spend half that time understanding the codebase. It is a terrible return on investment.

That’s why they are only offered by top companies. Their purpose is not actually to make you work for your salary, but to poach the very best engineers.

Most companies therefore don’t offer internships. They don’t make sense if you are an average company that just needs somewhat-above-average new engineers. Just hire them as grads and spare yourself the fuss.

What that means is that there are an order of magnitude more grad jobs than internships, and most people don’t get internships.

We can do a quick Fermi estimate on this. I estimate there are less than 200 internships for Australians and New Zealanders across all trading firms. Around 500 across big tech. But the number of annual CS graduates across Australia and New Zealand? Well over 30000.

So if you don’t have an internship lined up, you aren’t a failure – you’re literally the vast majority.

Don’t stress. You’re doing fine.

Internships do not determine your future

When I got a trading internship from Optiver at the end of my first year, I was ecstatic. I thought I had made it.

After the internship, not only did I not return to Optiver, but I didn’t even want to work in trading. I was markedly different from the person I thought I would be.

I applied to software engineering internships at some more reputable companies. I thought that with my Optiver experience and HD WAM, it wouldn’t be too hard.

I was rejected from almost every company.

It was a humbling experience. Fortunately, my friend Tom introduced me to Jack, who convinced me to do RSP full-time. Not finding a well-known internship didn’t dampen my prospects, and I’m glad I didn’t get too stressed out.

When you are young and inexperienced, when the trajectory of your life seems vague and uncertain, it is extremely easy to project the short-term into a more distant future. If you don’t get an internship, it’s easy to catastrophize that you won’t get a good grad offer, and if you don’t get a good grad offer, it’s easy to worry you’ll be stuck there.

But you will change much more than you expect. You will change jobs – people do this all the time – and you’ll change even the jobs you think you want.

Setbacks are temporary. Even if you haven’t filled out more of your resume, you’ve been studying hard for a year. You have improved. You know more, and you’re a better programmer. At the end of the day, that’s what counts, and you won’t be set back for long.

What matters is not your resume, it’s what you learn

I know someone who now works at Jane Street.

I remember him because he had a 5.9 GPA.

To be clear, he was not a 5.9 GPA kind of student. He had a 5.9 GPA because he didn’t care about his GPA. Instead, he tried to maximize how much he learned. He worked in AI research in America, even though that clashed with his courses so he failed two of them.

I think this is a very valuable thing to optimize for. If you get through resume screening, you should optimize for learning too.

This is because resumes do not carry much weight once you get an interview. Even if they aren’t “thrown out the window,” they’re almost always weighted at less than 10% after your final interview. This is especially true for entry-level roles where your previous experience doesn’t really matter, where they might be used only as a tiebreak.

Your entire past – the sum of your grades, every place you’ve worked, every award you received – is relegated to less than 10% of the final outcome. Trying to bolster your resume only gets you so far.

What about the rest? It comes through in your interviews. Nowadays, they don’t just test your leetcoding skills, but your class design, software systems understanding, basically how good you would be as an engineer. Trying to improve how much you actually know gets you the other 90% of the way.

And importantly, a good resume is only a proxy for being a good engineer. It’s much more effective to directly try to be a good engineer. Trying to fill up your resume is optimizing for getting your next job, but trying to learn more is optimizing for your entire career. It’s more fun, much more fulfilling, and it’s what determines your impact on the world and the respect you earn from your peers.

Here’s what that means: if you get OAs, stop fretting about how good you seem, and focus on improving how good you are. And if you’ve done RSP, you know that you can improve how good you are without an internship at all. It just takes genuine interest and hard work.

Find something you’re interested in and learn. Pick up another textbook and read it. Do a research project over the summer. Make a game or a mobile app or a neural network or an interpreter. And make sure it’s something you actually have an interest in, something you’ll enjoy.

As long as you stay hardworking and ambitious, you’ll be fine.

Thank you to Tom Frew and Jack Morton for providing feedback.