The 2025/2026 recruiting cycle was probably the most chaotic thing I've ever put myself through. Dozens of rounds, dozens of rejections, and a lot of sitting with the uncomfortable question of whether I was actually good enough. This is a reflection on all of it — the tactical shifts, the psychological weight, and what it finally took to land somewhere I'm proud of (hopefully).
The Beginning: 3A / 2025 Cycle 1
Faire · Dawson Partner · onsemi · Magi.inc · Intact
Coming off my co-op at UWaterloo IST, I felt quietly confident. I had shipped JADA — a real end-to-end AI pipeline serving 42,500 students — and had worked with a solid team on something that actually mattered. Customer obsession, student outcomes, quality over volume. I thought that story would carry me.
It didn't.
Cycle 1 gave me five interviews: Faire (AI Platform Engineer), Dawson Partner (ML Engineer), onsemi (voice agent team), and OAs from Magi.inc and Intact. I passed none of them. Faire was a two-pointer leetcode problem I almost solved. Dawson Partner was a linked list leetcode question I solved too slowly. onsemi asked me to define gradient descent in a behavioral round — which should have been easy, and wasn't. Each one stung in a different way.
The honest post-mortem: I wasn't doing enough LeetCode. I had real project experience and real stories, but I couldn't close under pressure. When the term was already loaded with CS246E (Object-Oriented Software Development - Enriched), CO367 (Nonlinear Optimization), and CO456 (Game Theory), and midseason hit right after Cycle 1, the gap between "I know this" and "I can execute this in 45 minutes with someone watching" became very real, very fast.
So I started grinding. That was the actual turning point.
3A / 2025 Cycle 2: The Grind Pays Off (Kind Of)
ARUP · Capital One · imbue · Ericsson · Orderholic · Loadlink · WDI Wise Device INC · CS 136 ISA · Port 443 · The EPCM Group · Legacy · ATS Corporation · Analyst3 · Zomp · QC Career School · Qorsa · Toronto Transit Commission · Rocket Innovation Studio (offer)
Cycle 2 was peak chaos. Reading week opened up and I revised my resume, applied aggressively, and suddenly had 20+ rounds of interviews and OAs running simultaneously. There were days I finished a full slate of classes, sat down, and did three interviews back to back — for companies I couldn't even skip a lecture to prepare for, because the profs didn't post slides or recordings. It was a grind in the truest sense.
The full list: OAs from ARUP, Capital One, and imbue. An HR phone call with Ericsson. Pure behavioral rounds with Orderholic and Loadlink. WDI Wise Device INC added a C++ line-drawing question on top of the BQs. I also interviewed for a CS 136 ISA position on campus, which was a different kind of pressure — teaching-adjacent, not engineering.
Some of the more memorable ones: Port 443 is a music app startup and they brought me in for an in-person — whiteboard coding, resume deep-dive, and then a logic puzzle. Two ropes, each burns for exactly one hour, but at uneven rates. No clock. How do you measure 45 minutes? You light one rope from both ends simultaneously and the other from one end only. When the first rope burns out (30 minutes), you light the second end of the other rope. It burns out in 15 more minutes. 45 minutes total. I almost didn't get it. They gave everyone donuts at the end and said it was a company tradition. Genuinely one of the more human interviews I've had.
The EPCM Group ran two rounds — the first was resume deep-dives and logic walkthroughs with engineers, the second was live C# and SQL to mock a backend service. I passed the first, got the round 2 invite, and just didn't show up. The interview volume that cycle had broken me and something had to give. HR reached out afterward and told me I had been their priority candidate. I still think about that one.
Legacy was a US health startup hiring a Founding Full Stack Developer. They asked me to prototype a RAG pipeline live, essentially vibe-coding in real time. I got it working. Didn't get selected. ATS Corporation and Analyst3 were both behavioral-only, resume deep-dives. Zomp was a small outsourcing shop — and in the most humbling twist of the cycle, the interviewers were also co-op students, same year as me, with mutual friends. They gave me a problem that wasn't LeetCode-style: something involving logic inside a class object with binary search woven in. I can barely remember the specifics, honestly. I got cooked. Getting cooked in front of people who know the same people you know hits differently. QC Career School asked for a live React coding round.
The standout was Qorsa — a UWaterloo-adjacent company working at the intersection of quantum information and security plus some AI applications. I interviewed for two roles: ML Engineer and Programming Language Developer. Got to talk directly with their research lead and CTO, which was genuinely enjoyable. Ended up ranked but unmatched.
Toronto Transit Commission was purely behavioral, straightforward compared to the rest.
Most of the cycle ended with ranked-but-no-match. Rocket Innovation Studio was the exception: they gave me rank 1. Almost entirely behavioral and resume-based — they wanted to understand how you think and how you collaborate, not just whether you can solve a graph problem. I took the offer. The team had a reputation, and the work had real infrastructure scope: DevOps, CI/CD, production systems. Exactly the gaps I knew I needed to close.
3B / 2026 Cycle 1: When Preparation Meets a Streak of Bad Luck
Amazon · BitGo · Base Power · Capital One · Super.com · ITPipes
I'll be honest about why I'm writing this at all. I spent two days reading The Freedom of Money by CZ, and something about it made me want to put my own story down somewhere — even if nobody reads it. Partly a self-review, partly just needing to process.
Heading into 3B, I felt like a different candidate. The Rocket term had filled in gaps I'd been quietly aware of for a while. On the backend side, I did the initial implementation of a transaction verification service — extending existing risk-check logic into a multi-state decision system, wiring in notifications to underwriters, and closing an auto-complete bypass loophole that had been sitting in the codebase. It was the kind of work where correctness constraints actually matter, not just "does it run." On the infrastructure side, I solo-migrated a set of Helm charts and proposed a canary deployment strategy via Argo Rollouts that got greenlit. DevOps and CI/CD had been blind spots in earlier interviews — now they weren't. I had done more than 100 LeetCode problems and mediums were no longer a wall. CS246E left me with a solid OOP foundation in C++, and I'd built an ASCII game engine from scratch as a course project. CO456 produced Slopfish — a chess engine variant with alpha-beta pruning, NNUE training, and GPU acceleration via CUDA. On top of that, the Rust work-stealing scheduler I'd been building independently — lock-free queues, CPU affinity, benchmarked throughput — my own dig into systems programming and concurrency.
I felt prepared. I was wrong about what that preparation would actually deliver.
Super.com OA — rejected. Capital One OA — rejected. ITPipes was a Seattle-based company doing computer vision applied to physical infrastructure — pipes, sewers, the unglamorous stuff that actually matters. Cool problem space, and they offered sponsorship. Two rounds: first was resume deep-dives and behaviorals, second was a real-world implementation problem. I got ranked but didn't match.
BitGo's post-trade team ran two back-to-back technical rounds. The first went fine — data handling via priority queues, worked through it cleanly. The second was consecutive with no break, and I was burned out by the time the Wordy problem landed. Pure logic implementation, no algorithmic trick to lean on. I couldn't close it.
Base Power is a unicorn out of Austin doing energy infrastructure. The Quant Developer interview was structured like a graduate-level optimization lecture and expected live Python — a language I hadn't seriously touched in a term. I genuinely had no idea what they were looking for. I ended up asking the interviewer to just show me the answer. Turns out the whole thing was about optimizing a class design around high cohesion and low coupling — a straightforward OOP concept — while I had been spiraling through race conditions and concurrency issues that had nothing to do with it. It was rough, and a good reminder that "100+ LeetCode problems" doesn't mean "prepared for every format in every language" — or every interviewer's definition of "optimization."
Amazon was the one that really sat with me. Passed the OA. Two rounds of technical interviews — I enjoyed both conversations, worked through the problems, felt okay walking out. The rejection email arrived two days later, the same evening I got cooked on a stats midterm I hadn't properly studied for because I'd been deep in interview prep. Two things going wrong at once. I sat with that for a while.
Summerloo has always carried a particular weight. About two years ago at 2A, I almost had no interviews. Nokia and Tata Group were the only ones, and I barely knew what backend development meant at that point, let alone machine learning. I'm still not sure how I got those calls. I didn't get either of them.
I was trying to transfer into CS, giving up most things that made life feel normal — staying up late grinding CS136, applying to hundreds of jobs, chasing a GPA that felt like a gate I had to break through. And despite hitting exactly the cutoff point for the transfer that semester, not one point more or less, I still didn't get in. (I tried again using CS246E as my qualifying course, ended up with the same mark as CS136, and got rejected again — but that's a story for another time.) Watching peers get in and land internships in the same breath was its own kind of discouragement.
No offers in North America and no success at school. Just a depressed mind and a body worn down by too many late nights — and honestly, not all of it was even productive. Some of it was just sitting in the sadness and the nerves. Studying abroad, no relatives nearby, doing everything alone without a financial safety net or some natural gift for math and CS — it was genuinely hard in a way that's difficult to explain to people who haven't been there.
Now it's third year and I'm watching peers head to San Francisco, New York, or FAANG while I'm still in the cycle. Some of them started coding in high school, had parents in the industry, or just had a cleaner path into CS. That's its own kind of pressure — not resentment, just the quiet weight of comparison. I know the excuses I could reach for — started coding late, not enrolled in CS major, not as gifted as others, etc. But I chose this field because I like building things and believe software is one of the most direct ways to change the world. So the excuses don't really help. What actually helps is going back to fundamentals: more LeetCode, contributing to open source, fixing the gaps the rejections keep pointing to.
Malcolm Gladwell wrote in Outliers that mastering something takes 10,000 hours. I think about that a lot. I'm not there yet — but I'm on my way. The past is the past. Compared to first year, this is already a completely different story.
The Lessons That Actually Landed
LeetCode is a floor, not a ceiling. You need it to even get in the room, but passing rounds requires something harder to train: composure, articulation, and the ability to think out loud while someone evaluates you.
Behavioral rounds are technical rounds. The best story in the world doesn't help if you tell it poorly. Specificity matters. Verified numbers matter. Knowing exactly what you did versus what the team did matters. I got better at this by being ruthless about what I could actually confirm — and refusing to pad with things I couldn't.
Domain gaps show up at the worst times. Python fluency, OOP articulation, language-specific idioms — these aren't things you can fake when someone asks you to optimize live in a language you haven't touched in a term.
100+ LeetCode problems later, I still got rejected. That's recruiting. The honest version of this story doesn't have a clean arc. I'm going into Cycle 2 having worked harder than I ever have, with more real experience than I had a year ago, and I'm still figuring it out.
What's Next
Cycle 2 and externals. More applications, more rounds, probably more rejections before something lands.
CZ wrote: "Hey, it's just a game. Take work seriously. Take life seriously. But don't take yourself too seriously. Make the best out of your simulation." That's probably the right frame for all of this.
Compared to 2 interviews in all of 2A, this is already a different world. The trajectory is real even when the outcomes don't feel like it. Life needs to continue. I will keep focusing my energy on the future since "there are always more opportunities in the future than there were in the past." — and I'm moving forward.