I gave myself 12 weeks. I had been working full-time as a backend engineer for four years and had not interviewed in three. I was going to apply to a mix of FAANG, scale-ups, and one Series B I was warm-introed to. I sent the first application on week 13. I want to write down what the prep actually looked like, hour by hour, because most prep posts I read while planning had the wrong shape: they were either three weeks of cramming or six months of deliberate study, and what I needed was a plan that fit alongside a real job.
The schedule
I worked 9 to 6 most days. The prep budget I could actually defend was 10 hours per week, broken up like this:
That is 9.5 hours on a clean week. I did 10 hours on maybe 7 of the 12 weeks. Three weeks I did 6 hours because work was heavy. The single most important habit was the early-morning 45 minutes; the lunch sessions slipped often, the weekend sessions sometimes ate themselves with chores. Mornings were the floor.
The problem mix
The trap I avoided: trying to do all of NeetCode 150 plus all of Blind 75 plus a chunk of grinding. I picked one structured set (NeetCode 150) and committed to it.
I split the 150 into three passes:
Pass 1 was about exposure. I needed to see binary search on rotated arrays, monotonic stacks, the trie shape, intervals, top-k with a heap. I did not need to be fast at any of them. Pass 2 was about retention; I noticed which patterns I had already forgotten from 4 weeks earlier and that was the data point I had been missing in past prep cycles. Pass 3 was about performance under interview conditions.
The single most useful thing I did was log every problem in a spreadsheet with three columns: name, the time I took, and one sentence on what made it hard. The third column is what mattered. "I forgot to consider the duplicate case" is a different lesson from "I could not see the BFS layer" is a different lesson from "I knew the answer in 3 minutes but spent 18 implementing it cleanly". The sentences became the actual study material on weekend Sundays.
The mocks
I did 11 mocks across the 12 weeks. The first 3 were useless (with friends, too friendly, the friend would not push back). The next 8 were on a paid mock-interview platform, with strangers, and were the largest single jump in my preparation. Three observations:
First, doing a mock and then immediately watching the recording back is twice as valuable as the mock itself. I noticed habits I did not know I had: I said "so um" before every code line, I would not narrate when I was thinking, I would write code in silence for 4 minutes and then read it back. The recording was unflattering. It was also actionable in a way I could not have gotten from another book.
Second, the mocks I did with people who had recently been hired at companies I was targeting were the best signal. They knew the rubric. They could tell me "the thing you just did would have been a no-hire signal at my company because you optimized too early". A generic mock interviewer cannot give you that.
Third, the mocks I did at 7am on a weekday were better practice than the mocks at 10am on a Saturday. Weekday mocks felt closer to a real interview because I was tired. Real interviews happen on weekdays, with a job in your head.
What I would skip if I did this again
Three things.
The first is the dynamic programming deep dive in week 6. I spent 8 hours grinding hard DP problems because every advice post said DP was the hardest topic. The DP problems I saw in actual interviews were medium-shaped, recognizable, and I could have prepared for them in 2 hours. The 8 hour grind on weeks-of-DP-only was overkill and it cost me a week I needed for behavioral prep.
The second is the system design book I bought in week 2 and read 80 pages of in week 3. It was the right book; it was the wrong week. System design prep belongs in the last 4 weeks once the coding muscle is loaded, not in week 3 when I had not even seen all of NeetCode 150 yet. Reading system design while still bombing easy coding problems gave me false confidence about the high-level rounds and false despair about the low-level ones.
The third is competitive programming. I did one weekend on Codeforces in week 7 because someone told me it would help. It did not help for the kinds of interviews I was running. It would have helped for a different shape of loop (some quant firms, some specific FAANG teams), but for the loops I was actually targeting, it was an expensive distraction.
7 loops, 4 offers, one schedule that held
I ran 7 loops in weeks 13 to 18. Got 4 offers. Took the one at the Series B. The 12 weeks worked because the schedule was honest about how much time I actually had and the problem mix was bounded. The biggest meta-lesson I would write down for myself: the bottleneck of interview prep when you have a real job is not how fast you can grind, it is how consistently you can show up at 6:45am for 45 minutes. Pick the schedule you can actually keep, then pick the problem mix that fits the schedule.
