I felt that I had a better-than-average recruiting season. However, I also felt that I ran into more obstacles that I had not experienced in previous years- namely, companies only hiring for interns and being rejected because I moved my application too slowly. I know that intern classes fill up too, but this was the first time I've received responses from recruiters that I had performed well on the interview , but was being rejected because there were no more spots. (i.e Redfin)
My preparation involved skimming CTCI (for behavioral and core topics to address), Leetcode, and skimming Competitive Programmer's Handbook. I did not whiteboard or code out any of the practice problems for CTCI; I only looked at the question and thought of the solution in my head to check. I mostly used CPH for Dynamic Programming preparation, which I ended up not being asked at all for the entire cycle.
I began applying at the start of September and sent 137 applications. I applied to almost exclusively tech-hubs (around 10% NYC, 10% Seattle, 70% SF/Bay Area, and 10% other). I had my return offer from Capital One that expired on October 25, but I was surprised to find that I was unable to speedup the process for most companies.
My overall response rate was 27%, but I found a huge difference between shotgunning online applications and going to career fairs. I had an insane 58% response rate from companies I talked to at my school's career fairs, and a lot of these companies didn't even have openings online for new-grad; they recruited almost exclusively from these events.
I was pretty overwhelmed with balancing recruiting and classwork. After around the 2nd week of September, I was getting responses everyday and my schedule quickly filled up. I had an interview (sometimes multiple) everyday from mid-September to late October. I was missing weeks of classes due to onsiting and often scheduled interviews 2-3 weeks in advance because I couldn't do them earlier.
This probably ended up messing up some of my interviews and recruiting. Because I was scheduling so far in advance, my timeline was greatly increased and it resulted in some rejections due to the company being done with new-grad recruiting, my requested location running out of spots, or just being too burnt-out to continue interviewing. Once I had received an offer I was happy with, I didn't want to interview anymore and withdrew the rest of my active applications. My grades had also began to seriously suffer from missing class and I just wanted the season to end. I ended up withdrawing my application from Google, Amazon, Bloomberg, TripAdvisor, Epic, Roblox, and a host of other smaller companies. I felt especially guilty about Bloomberg and Amazon because I had spent so much time on their intermediate interviews to get to their final rounds only to quit.
The Blind 75 List was very efficient as far as studying Leetcode went. I felt pretty comfortable with almost all of my online assessments and interviews. I was unable to finish only 1 leetcode-style coding challenge (although I found that passing hackerranks did not guarantee moving on to the next round; I finished Samsara's in 10 minutes to get ghosted). Of the phone screens and onsites I did not pass, one was due to forgetting the syntax for raising an error in Python, one was due to blanking out on generating permutations, and one was due to being completely stuck and not knowing what data structure to use. (k-sorted array). I also failed a couple of trivia/quiz based hackerranks and failed a non-trivial amount of behaviorals. (if I wasn't feeling it/couldn't make a connection with the recruiter, I usually just completely bombed it)
Of the questions I was asked, the topics I ran into the most were trees and intervals by far. I was also asked a non-trivial amount of strings, linked-list, array, trie, and heap/priority queue based questions. I was asked 0 dynamic programming questions. The system-design I was asked mostly involved designing a simple application/product, (like UML diagrams) although I was often given the opportunity to discuss other things like scalability/parallelism, implications on user experience, real world feasibility, and tradeoffs.
My first onsite was in early October and was with Mastercard(formerly APT). I ended up being so nervous for that interview that I didn't end up with much sleep and ended up completely bombing the first round. I did pretty well the rest of the day, but I already knew in my heart that I had failed, which ironically lifted a lot of the pressure off of me and probably made me perform well on subsequent rounds. I was feeling really bad after that so I ended up taking a couple days off from recruiting after I flew back.
I ended up with 2 offers (not counting return). One was with a late stage startup in LA (Clutter) and the other was a public fintech company in SF (LendingClub). I was very satisfied with both companies (contrary to what I had read online, and was very happy with what I saw in person) so I knew I was going to decide between the 2 of them. In the end, my decision came down to solely personal reasons, so I ended up taking the latter. I wouldn't be surprised if the former became a unicorn in 2020 though and exploded in evaluation.
So that was my recruiting season; I felt like a huge mountain was lifted off my shoulders once I signed. The highlight of recruiting was definitely the hotels and meal reimbursement; delivering $20 worth of boba to my hotel and showering in glorious bathrooms were definitely 10/10 experiences. This process definitely has a lot of luck involved - and I know that it probably doesn't mean much coming from some random person, but if you're struggling and losing hope, I get it. I felt especially awful in October and felt that I was a complete idiot who couldn't hope to pass any onsite. I was watching people I knew secure huge offers from well known companies and I couldn't help but feel jealous and ask why that couldn't be me. The only advice I have in regards to that is to keep applying and that it only takes 1 company. If you applied to 1000 places and get 1 offer that you enjoy, then does it really matter what the results were for the 999 other applications? And also, take /r/cscareerquestions in moderation; my mental state was definitely not helped from religiously browsing the subreddit.