|
Have you studied extensively for the technical exams? I've tried, and I've gotten interviews at several of the FAANGs as well as some desirable mature startups, but I fail at the technical screeinging stage. Not sure if I've tanked it or was close, but I get the "no hire" call or email after take-home projects or whiteboard exams. Btw, to give you sense of it, I'd have no trouble finding a loop in a linked list, printing all permutations of a set, or searching a tree recursively. I'd have to puzzle a bit to figure out how to do DFS vs BFS, but I'd get there, I don't have it loaded into memory. I wouldn't be able to implement merge sort on the spot, I'd need to look it up, though I could probably get it frontloaded. All I can say is dayum those interview exams are hard, what I described is a pre-req, nobody will just ask you to permute a set, but if you can't, you'll never solve whiteboard the problem they ask you in 45 minutes. For take-home projects, one (a rails app) was rejected because I used named routes rather than using the more conventional methods (I know this wouldn't be good to do in a production app... guess I just wasn't thinking about routes, it was a demo app, so I just threw some names routes in there for demo purposes, it was a take-home), along with some "duplicated" code that I thought was justified but never got to explain (I personally think extracting this into another method would be a pre-optimization that would need to be undone when the methods diverged, something I thought would be likely under the admittedly fabricated business requirements). I did have what I though was good testing, the reviewers did complement that along with some aspects of the app in their review. Sorry, don't mean to give you my sob story, I just... I'm at the point where I wouldn't mind a crack at these jobs but just feel like maybe it's not an effort that's going to pay off (I mean, how much more time do I really want to spend on the kind of problems in cracking the coding interview? I actually feel like I got something out of studying it and preparing, but going back over and over, nah... maybe other people retain this stuff better than I do, and you know, maybe that does actually say something about suitability for these jobs). |
I haven't totaled up my stats, but this is roughly how things went:
1. Once I got a recruiter on the phone, I had a 100% chance of going to next stage
2. For take-home projects, I had a 100% pass rate (did 3-4 of these)
3. For online assessments, I had a 50% pass rate (did 2 of these)
4. For live coding screens, had about a 60% pass rate (did 10-12 of these)
5. For onsites, I had a 50% offer rate. I did 4 of these at NYC startups, and 2 at bigger tech companies, one of which made an offer. Still waiting to hear from other one, but not hopeful.
I'm still in loop at 3 big tech companies.
The point is, it's pretty random. I flopped a couple of tech screens pretty badly because the interviewer was just difficult. Some give easy questions, some give hard. Some you click with, some you don't. And you get better at this over time too.
(I've also been amused to watch startups give more challenging interviews than the big tech companies and then make offers that are 1/2 as valuable)
In terms of prep, I took a data structures / algos class at Harvard Extension a couple years ago that was really helpful, and then I've been doing some Leetcode and CTCI problems the last couple months. Not enough though, honestly. I also went through some mock interviews with Interviewing.io and TripleByte, both of which were helpful.
By far the most helpful thing though is that both of the big tech companies where I did onsites actually tested me on mostly real world iOS dev, not generalist whiteboarding algorithms. And the other tech companies where I'm in the mix have also been a little more flexible. Twitter for example offered me the option of a take-home iOS project or a traditional 1-hour generalist tech screen. Although their onsite is still whiteboard coding algorithms from what I understand. Sigh...