Heading into this loop I honestly wasn't sure I'd make it through. I figured I could be a borderline candidate at best, and part of me expected to flop outright. The reason was simple: I've never really worked hands-on with cloud. My general software engineering background carries over, but it isn't the same, and I feared that unfamiliar terminology would trip me up or that I'd come across like someone who crammed the night before.
The role mattered a lot to me, so I went all in on preparing. I even did a mock interview with a real person on another platform and did fine, but I kept grinding anyway, since a great performance gets you a bigger offer than a decent one. Raises are a percentage of your existing pay, so that gap snowballs over the years. I kept telling myself this was the best return on time I'd ever get. It wasn't easy with a job that sometimes ate my whole week and three kids at home, but I got it done, and my wife was incredibly supportive through all of it.
Roughly half of my prep time went to system design, a quarter to coding (mostly LeetCode problems), and the remaining quarter was split evenly between the behavioral round and the case study round.
One good thing about Capital One's system design round is that the topics stay within banking and credit cards, so there's less ground to cover than for something like Google or Amazon. I began by chatting with Claude and ChatGPT to see where I stood, and had them walk me through concepts I half-knew. For the things I knew almost nothing about, such as Redis and load balancing, I read articles. I tried one or two other sites for system design, but the online course I settled on had just the depth I needed.
Once I started on its practice problems, I came up with a mnemonic for the functional and non-functional requirements I had to remember to cover. Each time the course's AI feedback said I'd missed something, I reshuffled the letters of the mnemonic so I'd remember that item next time. In total I did 7 of the 10 most common problems and went through most of the design patterns material. I skipped the final two, large blobs and long-running tasks, because I doubted they'd come up.
As time went on I leaned more on that course than on anything else, but I still used Claude and ChatGPT as a quiz tool whenever I had a spare ten minutes or so. At first I asked for multiple choice. When I was getting about 19 of 20 right, I moved to short-answer quizzes. That worked well next to the longer guided practice sessions in the course.
Since system design is what I prepared for the most, I'll describe that round. The functional requirements they handed me were far more detailed than I expected, around 5 bullet points, when I had pictured a one-line prompt. I wrote down my non-functional requirements, checked the scope of the functional ones, and then got into the design.
The course advises a rough high-level sketch first and a few deep dives afterwards, but that's not how my head works. I'd rather get one subsystem fully onto the whiteboard and then go to the next. Now and then I went back to add something I'd forgotten, but for me this felt far more natural than drawing everything shallow and picking deep-dive topics at the end. It seemed to suit my interviewer too. I did most of the talking, and every so often I asked him whether a topic deserved more time, or just stopped for a few seconds to see if he wanted to steer me somewhere else.
When we finished, he told me I'd done a very good job, and the recruiter's follow-up passed along the same feedback.
If there's anything I skipped or you'd like more detail on, ask and I'll answer as best I can.
Discussion
Loading comments…