How I got offers from OpenAI, Midjourney, Cursor, ElevenLabs, Vercel, etc.
This is the playbook I and many friends have followed to land jobs at OpenAI, Midjourney, Cursor, and similar companies, without impressive backgrounds. The interviews aren't much harder than at other startups. If you're willing to put in a few months of focused effort, it's achievable. It won't be pleasant, but it's very likely to increase your salary by 3-10x.
I'll walk through everything: getting interviews, nailing them, and negotiating offers. Then in the end there's a checklist summarizing all the advice. This is focused on technical roles, but most of it applies broadly.
The most common advice is to improve your resume and then reach out to hiring managers or apply on career pages. This is simply bad advice, especially if your background is non-traditional like mine. I haven't studied at university. Nor worked at a reputable startup. I didn't get a single interview from applying directly. You're also likely to face a longer and more difficult interview process going this route.
Here are methods I tried, ranked from worst to best:
Once you have interviews lined up, you need to pass them.
Interviewing is very different from normal work. Luckily, you can get much better at it with practice. That's because interview questions are mostly similar: you'll often encounter the same question or a variant of one you've already seen. This is why you shouldn't start with your top company. Save them for when you've had some reps.
I had never interviewed before, so I didn't know what to expect. During my process I did at least 70 interviews. When interviewing for technical roles, these are the interview formats at almost all companies:
Recruiter / first call: You can't really fail this. Just prepare a good personal pitch that concisely explains what you worked on and why it's impressive.
Vibe interview: For all non-technical interviews, be prepared to talk about 1-2 previous projects. Show a quick demo and explain what you did and why - even if they don't ask for it. I'd recommend spending a few hours writing something like a blog post about the project. This will help collect your thoughts.
Take-home / project interview: Usually open-ended where you get a few days to build something. Put effort into the presentation and demo. Explain the choices you made and what you'd improve with more time. Example demo:
Live coding interview: You get a starter project and implement a new feature. Often there's an image or video of the final result. All my live coding interviews were on Coderpad. Try it out beforehand since it has quirks (sometimes you need to refresh the preview, and formatting doesn't work). Almost all live coding I did was fairly easy, mainly testing basic React knowledge and logic.
System design: In system design interviews, you are planning how a feature or product should work. Usually you'd use Excalidraw or Google Docs. There are example system design questions here: GreatFrontend and HelloInterview.
This is what the interviews were like for Cursor and OpenAI:
Once you have an interview scheduled, make your preparation company-specific. Research the hardest technical parts of their product and try building them yourself:
One more thing: treat the interviewer as a coworker, not an examiner. Ask questions and discuss potential solutions openly. Many challenges are deliberately vague. They're testing whether you can work in ambiguous environments and figure out what to ask.
Preparing for interviews is important, but it still depends on luck. Companies simulate work with random challenges that might not cover what you're uniquely good at.
Another way you can show the company what you're uniquely good at is with a demo. Something you've built yourself that is obviously impressive and easy to understand in seconds. In multiple interviews, I started demoing my past projects without being asked. If you get this right, the rest of the process becomes much less scary.
A good demo does three things at once:
It's instantly understandable. Someone should be able to look at a short clip or screenshot and, in two seconds, understand the problem and why your solution is impressive.
It's clearly technically non-trivial. Under the hood, it should be obvious that something interesting is happening: tricky UX, real-time stuff, clever data structures, complex state, performance constraints, etc. Even better if it's so specific that they don't fully understand how it's made.
It's verifiably yours. Open source is ideal. They should be able to look at the repo, see the commits, and verify that you wrote it. That removes a huge amount of uncertainty: you're not just someone who talks well about projects; you can point to a Git history that shows you doing the work.
The easiest path is: build what your dream company is already thinking about. A few ways to figure that out:
You don't need the perfect idea upfront. Just start building somewhere close to the problem space you care about.
If you try to recreate something like Claude Code, you'll spend a lot of time thinking about agents, context, file systems, streaming, UX for errors, etc. Along the way you'll find that one part of the system is disproportionately fun or hard—and might make a great demo.
That's what happened to me: I started with a bigger, more ambitious project (ASI). The diff viewer was just one part, but I noticed that's where I kept spending all my energy. So I leaned into it, polished that piece, and that became the thing I shared.
After nailing the interviews, you'll hopefully get offers.
One company increased their offer by 50% when I said I had a competing offer. One added a $600k signing bonus to match another company. Multiple companies even opened with "this is just a starting point". They want you to negotiate and there's a lot more wiggle room than people think. A little strategy on your end can make a massive difference.
The key is having multiple offers at the same time. That last part is crucial, and tricky. You don't know how long each process will take, and once you have an offer, you typically have 1-2 weeks to respond. You have two main ways to do this:
On your first call with any company, ask about the full interview process and write it down. Use this to synchronize your final rounds. Most companies deliver offers on a call. You can delay scheduling that call to buy time.
Here's what this looked like for me: after a final interview with the founder, the recruiter wanted to schedule a follow-up call. I was 99% certain it was an offer call (people rarely hop on a call to say you sucked). So I told other companies I had an offer and needed to decide by a certain date. It worked. I got all five offers within a week and a half.
Once everyone has made their first bid, let each company know roughly how far they are from the top offer — in cash, equity, or both - and ask what they can do.
Negotiation basics:
Practical resources on negotiation:
General preparation
Prepare personal pitch.
i coded & designed professionally since 16. went to the most selective coding school in Europe. ~1% get in. after a year there, i realized i could learn better by building real projects. so I released 9 different apps and became a maker of the year on product hunt 2021
one of those projects quickly got traction and we went from 0 to 1M MAU in just a few months so we started working full time on that. i worked very much across the stack. we tried a few different constellations, but majority of the time it was me carrying product, design, and frontend alone, while we had 4 backend devs.
in the beginning of the year I went to SF and met with my friends working in OpenAI, Midjourney, Cursor, etc., and they told me the things they were working on. I realized that sounded much more interesting. So I left in April, and want to move to SF.
Write about two projects you've done and record demo.
Contact recruiters to get initial interviews
Do a lot of screening calls (20-50)
Select 5-10 companies and do full loop, hopefully get at least 2 offers. Do this before interviewing with your dream companies.
Technical interview preparation
Practice example interviews.
Practice system design.
Practice LeetCode.
Specific interview preparation
Try the product, prepare feedback. According to friends conducting interviews at Lovable, many people show up without even having used the product?!
Ask o3 about the person you're talking to. What do they care about? What have they worked on? What can you bond over?
Prepare questions you care about
These are more generic, but you should have some specific to the company.
Replicate the company's product and understand how it works technically.
Target dream company
Build relevant demo. Ideas →
Post on X and try to go viral
DM people there with feedback or that you're open for work.
hey [name] i previously built @zealy.io from 0 to 1.5M MAU & $2M arr, working across engineering/design/product. love what you're building with [company name] i'm very interested in what design will look like in the future and been experimenting with token studio to bring design & code closer together. are you hiring for product engineers? here's more info
Thanks to Gabriel for support and the initial strategy :) Thanks to David for feedback on early drafts.