Navigating the Mid-Level Maze: 2025

Read the 2023 prequel [here]

TL;DR (click to reveal spoilers)

I’m working at Two Sigma now!


If you’ve read my three previous posts leading up to this, you already know how this story usually begins: me reminding you that Northeastern has a co-op program! That hasn’t changed, but I’ve been out of school for a couple of years now.

Let’s talk about what’s changed for my job search as a mid-level candidate.

“Why are you leaving Scale AI?”

The 2-year mark is a crucial milestone in every Scalien’s career. Beyond the 5-year post-termination exercise privilege we earn through it, it’s an indication that you’re dedicated enough to survive the most intense periods of our history. For most companies, the 2-year mark signals that you’ve grown into a mid-level engineer. You’re capable of working with autonomy, though not yet to the extent of a senior. This somewhat unlocks the flood of opportunities people often tout about software engineering that entry-level candidates rarely have access to.

Around 4 months ago, Meta invested $14B into Scale to hire our leadership for their superintelligence lab. After Meta’s investment and its payout to Scale employees, the company entered a new chapter. I remain bullish on Scale’s long-term mission, but it’s clear the next phase will be led by a different generation of talent.

My last reason for moving on was more personal. After a year in SF, I relocated to NYC in summer 2024 – something I’d wanted from the start but couldn’t do due to internal policies. (Some folks still think I live in SF.) The SF headquarters has always been the favorite child in terms of visibility and resources, which made it harder to feel fully integrated with the NYC office. I wanted my next company to be based here, where my work life and personal life actually line up.

The Application Process

As usual, here are some stats. This cycle lasted 2 months: I began recruiting mid-July and signed my offer mid-September.

Sample of companies I interviewed with

Applied: 59

Companies interviewed with (at least Phone/Onsite stage): 23

Companies withdrawn: 5

Team matching interviews: 5

Confirmed offers: 4

The market in 2025 still felt gritty, though it was somewhat better than 2023. The biggest difference between this cycle and previous ones is that recruiters reach out to you instead as an experienced candidate if they want you. Working at a reputable AI company certainly helped attract those recruiter reach-outs! It’s not the other way around anymore as a student where I’d spray and pray applications.

I had the privilege of being selective with the opportunities that interested me most, rejecting startups requiring me to be based in SF in particular. I mainly interviewed with big tech companies, NYC-based AI startups, and financial firms.

Dinner I had with folks from a startup who reached out to me

Interviewing while working full-time was tough, but being at a West Coast–headquartered company helped. My mornings from 9:00 AM–12:30 PM EDT were cleared for interviewing before starting work. This had the added benefit of fixing my sleep schedule compared to less powerful solutions, though my brain/vocal cords were certainly fried after those 2 months. During the climactic weeks, I was interviewing up to 4–5 times a day on top of my actual job, my heart rate was elevated going to bed, and I couldn’t drag it out long-term for my own sanity.

Interview Patterns

Here, I enumerate some of the patterns I’ve seen in interviews I’ve gotten this time around. I will not be breaking any NDAs, so don’t expect me to leak interview questions!

Much of the preparation happened before I kicked off my recruiting cycle.

Interview TypeThoughts
System designThis was the area I drastically invested my time upskilling in several months before recruiting started. It is a major differentiator between university and experienced recruiting. I keep a copy of DDIA as a reference, but in my opinion, the material is too pedantic to apply to a mid-level interview.

A better return on investment was doing the AI-guided practices on Hello Interview and reading the pattern articles they publish. This helped me shape the system design grind into the same LeetCode grind I was intimately familiar with. While a well-written resource overall, one callout here is that some niche interviewers may disregard some portions of Hello Interview’s delivery framework, meaning that it’s important to adapt your presentation to their preferences.
Algorithmic codingOl’ reliable. Given my experience from previous cycles and as a competitive programmer, this was one area I was not afraid of and the one I’d try to demonstrate a spike in. However, it does seem more companies are moving away from it in 2025, to my detriment.

To prepare, I’d still recommend going through the Tech Interview Handbook and doing its associated Blind 75 problem collection on LeetCode. If you want to overkill this part, you could also try problems from the USACO Guide up to the Gold level.
Implementation-heavy codingWhile these interviews may also involve algorithm knowledge, I’d consider this a different category because the main challenge is ending with a working, elegant solution to what might be a multi-part problem.

To prepare, I’d recommend Advent of Code to improve code implementation skill specifically. Problems up to Day 15 difficulty should be enough, and definitely stay away from Day 20 onwards. You’ll commit your language’s standard library to muscle memory by the end of it.
Practical codingDue to the sheer unpredictability of what you can be asked to code, I find them harder than the two types above. More commonly seen at smaller companies.

In general, though, to prepare, I’d recommend familiarizing yourself with technologies that can do the following:
  • HTTP requests
  • Data analysis (e.g., Pandas)
  • Making API calls to an LLM (e.g., converting text to structured output/JSON)
BehavioralThe usual advice applies: follow the STAR framework and have 3–4 fleshed-out stories highlighting (but not limited to) teamwork, conflict resolution, an impactful project, and perseverance.

In particular, I enjoyed and recommend Austen McDonald’s Substack for preparing for behavioral interviews.
Debugging/code readingReading code is harder than writing code, and the intuitions can only be developed with experience. That’s why some companies require this type of interview.

If going in blind, the best advice I can give here is to aggressively make print statements at important functions given to you and question whether the data looks right at important sections of the code.
Frontend codingWorking as full-stack at Scale AI also qualified me for frontend-specific roles. But I learned the hard way that I was more suited for backend development after a lot of failed interviews. Frontend seems to me like one of those specializations where learning the first 90% of what you need to know is simple, with the remaining 10% becoming exponentially harder.

To prepare, I’d recommend working through the study plans on GreatFrontEnd. Get exposure to building popular HTML/React components from first principles, and understand the fundamentals of JavaScript very well.
TriviaSome companies may quiz you on niche topics during the interview. There is no way to predict what is asked, so the best approach is to develop an understanding of the fundamentals of a few important topics.

Here are some topics I’ve been quizzed on and the resources I used to prepare for them:
Take-home projectUncommon outside of early-stage startups. As its name suggests, you work on them in your own time and decide when your code is “good enough” to submit.

To avoid the trap of overinvesting in a project that may or may not pass, I learned that timeboxing is especially important. Also, don’t be afraid to turn down projects from companies that won’t compensate you for your time.

In 2025, I’ve noticed more companies embracing the “vibe-coding” trend, permitting AI use during interviews. I personally see this as more difficult as you’re expected to get farther in the problem than you might have without AI. I also am not keen on correcting AI mistakes during an interview (in addition to the ones that I make!).

Takeaways

Behavioral and system design gauge seniority.

Or, in other words, determine what level you’d get hired at. That’s because in these interviews, the depth of your answers and how you respond to probing questions is a better reflection of your experience than what signal a coding interview could provide.

For example: at Meta, I was told it was possible for me to get up-leveled to a L5 (Senior) with stellar performance in these two areas. Thus, I spent a lot of mock interviews preparing for these two.

Before prepping

After prepping

Split the onsite.

Whether I feel good or bad about the first few rounds, I’m the type who values a day in between to reflect and recalibrate.

More companies than not default to getting the entire onsite over with in one day, so it’s important to make your preference known to your recruiter beforehand.

Inquire about the difficulty of your panel.

It’s no secret that a large factor in succeeding in interviews is getting lucky with who your interviewer is. One question you can ask your recruiter, if they do some sort of call to brief you, is if your interviewers lean toward the stricter or nicer end of those at the company.

It not only affords you some peace of mind, but also you can use that information to decide whether it’s worth attempting to reschedule upcoming rounds. One of my recruiters recommended against rescheduling for this reason, and I took the hint with a favorable outcome.

Save the best for last.

When you begin a new recruiting cycle, your performance is more likely going to start off bad and improve as time goes on.

In the past, I made the mistake of scheduling interviews at the companies I really wanted to work for at the beginning of the cycle, interwoven with those I was less passionate about. It’s important to interview with companies you’re lukewarm about first, gauging what answers your interviewers respond well or poorly to. As a mid-level candidate, this was more in my control than compared to university recruiting, where I’d rush to be first in line for the most competitive opportunities.

On the flip side, some of those “warm-up” companies ended up surprising me. I liked them far more than I’d expected.

Don’t celebrate until the team match is done.

While some companies match you with a preset team when starting the interview loop, other companies won’t until after you pass the onsite. If the team match is unsuccessful, you don’t get the offer even if you pass the onsite.

In particular, Google is infamous for this happening to some candidates. I experienced this firsthand with Ramp during this cycle.

Where Next?

The climax of this cycle was a nail-biter. I received offers from Coinbase and Meta that I used as negotiation leverage against two remaining firms I was contending with: Two Sigma and Citadel.

That last week felt like an arms race. Two Sigma signaled they were moving forward with an offer, while Citadel had just pulled me into team matching. Four different forces were all tugging at once: Two Sigma’s hiring team moving swiftly through offer approvals, Citadel’s team finalizing their evaluations, and two separate headhunting agencies pushing from opposite sides to close their respective deals. Emails, calls, and deadlines collided in real time, and I was in the middle just trying to stay composed as the pace kept accelerating.

In the end, Two Sigma made a decisive move with an offer that cut through the noise. Citadel, though positive about my performance, chose not to accelerate their final stages, and that sealed the outcome. I accepted the offer an hour later after all the news settled.

I’ll stay for a while.

Acknowledgements

Many connections/ex-Scaliens extended a helping hand this cycle, offering referrals to fast-track my applications at some great companies and helping me practice for interviews.

If you are one of those people reading this now, you have my gratitude, and some of the insights in this article would not be possible without you.