It’s been a while since I’ve made a post, technical or otherwise, and it been largely due to the amount of stuff going on! Ever since quitting my last job almost 5 months ago now, I’ve been on familiar path, that of the ‘cracking the coding interview’, looking for an internship to tide me over whilst I finish my master’s. I’ve had jobs and internships before, but this would be the first time that I was applying to software developer positions explicitly (in my last role I was promoted internally to that position). What can I say, it was a huge bundle of stress for the most part, and I’m only in a position to reflect on the experience now, having been offered a position for summer 2019. If anyone is treading, or planning to tread, along this path in the near future, hopefully this post will offer some solace on this fairly solitary journey.
1. Prepare to work really hard
Constant failure, and rejection, seem to be a part of this experience, which is based on numbers more than anything else. I applied to maybe 30 companies, this translated into 15 phone screens, 9 code interviews, 4 phone interviews, 2 onsite interviews and a solitary offer. Bear in mind, this was just for an internship. Considering the time spent studying, and working on applications, never mind attending all the interviews (which could last up to 5 hours, excluding travel), I probably spent a good 200-250 hours working on this.
2. Double down
I have never felt lower at times, being told to your face that you’re simply not smart enough, repeatedly, is exhausting, and frustrating. Especially when a lot of tech interviews are down to whether or not you’ve seen some puzzle before, and if you have then you’ll ace it. This was my least favourite aspect, but it is a feature of this space. Especially if you make it later stages. The lesson I learned is you’ve got to double down, even if you feel like you’re not getting anywhere, keep applying.
3. ‘Congrats for making it to the next stage!….’
There are so many stages to these things, and sometimes - even after investing maybe a month or so in a process, prepare to get abandoned - with no feedback nada. This actually happened to me twice. I had collectively 4 interviews over the course of 2 months with a company, 2 code interviews, 1 maths interview, 1 general interview, and 5 hours on-site. I was told everything was going great, and that I’d hear back in the next few days - radio silence, no response to emails or phone-calls, it was awful, especially considering the time I’d already invested in this company. Despite the media reiterating the lucrative nature of tech jobs, it’s somehow also a super-saturated market, especially at the higher end, where there’re always better/faster/smarter/more well connected people. The number of stages, meant to make the process objective and egalitarian, are actually somewhat counterproductive in the sense that the best prepared/connected have to try less hard for each stage, meaning that the poeple who were always gonna get it do so anyway.
4. You can prepare for them
Everyone wants to work at one of the Big “N” (fb, appl, googl, msft, amzn), one of the massive internet companies. However, these guys only hire the ‘best’, but this is something you can prepare and study for. I think working in an early stage startup meant that I wasn’t exposed to the highly competitive world of hackerrank, leetcode, etc, where you have to whip out a functioning implementation of some random algorithm in a couple of minutes. But, like with other tests, you can study - and I have gotten better with practice, but it takes time. When you see those folks at the big tech companies, you better believe that they studied, hard, to get there.
5. You can feel spread very thin
Everyone is looking for a different skill set, as a junior person you don’t really have any domain expertise, so you kind of have to know a little bit about everything, this can get frustrating. Imagine studying sorting algorithms for 2 weeks, only to be asked about networking for 2 hours in an interview - something you know nothing about, but might be closely related to the job. This is definitely the interviewer’s fault, but the problem is you have to take this as a given - it will happen, maybe more than once.
I guess in making the above list I just wanted to highlight how common all of these experiences are. If anything, the past 4 months - though draining - have been a great experience in learning how this whole thing seems to work anyways.