When I started looking for internships last year, I had spent most of college doing research and knew very little about industry roles. I wanted to see my work become something people could use. Working out which jobs to apply for, and how to prepare for them, took longer than I expected.

These pages are about that part: the gaps in my preparation, things I only figured out after an interview, and decisions I changed along the way. I'm still looking for work myself, so this isn't a guide written from the other side of a finished search.

If you're preparing for an ML internship or a new-grad role, take whatever is useful. I'd be happy if this saved you some time searching for resources, or made a frustrating part of the process feel a little less lonely :)

Where to start

Getting ready to apply? Start with what to prepare. Use the goal-based routes to connect that to technical practice; reading every personal account is optional.

My experience

Preparation and the less technical parts

Technical practice

ML / LLM questions, ML coding, Python, and LeetCode are in Interview preparation. System design lives in Engineering practice. This section is for the experience of preparing and applying.

A little context

My background is mostly in ML and research. I'm not a good source of advice for SDE, frontend, or backend interviews. I'm also an international student, so work authorization, location, and timing affect my options in ways that may not apply to you.

Older entries stay attached to their recruiting season. Hiring changes, and one interview tells you very little about an entire company. I won't share specific interview questions or non-public processes here.

If something is unclear, feel free to open an issue. Your experience may be different from mine, and there are things you will have noticed that I haven't.