Background, I'm very much a jack of all trades; I can do stuff from up and down the stack, for example:
- phd in biochemistry, can do molecular biology, synthetic organic chemistry, etc.
- wrote a test framework for debugging the machine code for a chip that hadn't been built yet (it taped out shortly thereafter with bugfixes for a ton of critical bugs I discovered)
- designed research alternatives to IEEE floating point, cited by FB AI, live-demoed at a lecture at stanford
- wrote from-scratch orchestration software for linux containers (didn't hit prod) and virtual machines (went into production)
- assembled physical hardware to go into a rack that is a staging environment for the vm orchestration system
- network admin (switches, etc) for the above system
- wrote a layer-7 TLS-terminating reverse proxy server for jupyter notebooks
- several small-time web-ish things for myself, in various languages over the years, none publically hosted (so, yes I know the principles and basic howtos of a rest-ful server, and wrangle react, but I'll be slow at it at first).
Most recent experience (past 2 months):
I can't pass a standard FAANG interview for shit. I couldn't give a damn about finding mindepth for a binary tree. It made me angrier that they conducted the interview over coderpad and had disabled execution. I wasted precious time commenting-out the instructions that the interviewer pasted into the coderpad. (I'd given interviews in coderpad before, and the interviewer asked me if I'd used it before, so I assumed I knew what I could do).
In the past, all of my jobs I've gotten "because I knew someone"; this was the first time I applied to jobs via "normal employment track" and I'll admit I was a bit jaded about the process.
My strategy was to focus on companies that were hiring for the language that I was the strongest at. Relatively niche, so over the last couple of months I only really saw about 10-12 realistic opportunities go by. One strength is that I have a ton of open source libraries that I've written over the years and I made sure to pin these to the top on github. I also took care to make sure that the documentation is above average on all of these libraries (and the readmes all link to them). I figured I have some runway to apply to "other stack" jobs later. Might as well optimize for developer comfort.
Actually only got three interviews. A lot of the "bigger names you have heard of" that use this stack passed on me immediately, probably because I don't have any publicly visible webdev chops. First one kind of wiffed on me by trying to make me a contract tryout (and the team felt super strange, too). Second one, which was a fantastic interview, I failed the tech exam (debug this miscoded UX experience) because I had forgotten how one of the macros that I don't use in the web framework works, forgot to check the network pane in the web console (I don't do a ton of frontend so it's tool I reach for relatively late), and didn't notice that the central problem was a misnamed variable, even though I intuited (and verbalized) that this was likely the problem early on. Third interview didn't have a tech component at all. I guess they can see my output and they trust it? Anyways, got an offer after some short chats, it's in a vertical that I find very appealing, so I'll probably be starting there soon.
Pipeline ~12 -> 3 -> 1. Not bad. Definitely stress-free.
Specific advice:
If you think you will fail standard tech questions, focus on startups, I think they're bimodal in their attitude towards FAANG-style interviews, some cargo cult it like they're gonna try to scale to a billion users in the next year, and some avoid it like plague).
I would say, try to find a niche-but-provably-valuable (obvi don't shoot for "I can program in zig" companies) skills, especially if you would enjoy working in it - and try to find a company that matches this. Your life will be easier, you'll probably have a greater chance of avoiding the FAANG questions. Make sure your resume/github highlights real work done in this niche.
Finally, maybe a positive is that in an early screen, the CEO asked me, "do you know anything about X domain". I kind of demurred and said "not really" and then explained that I thought it meant "<x keyword>, <y keyword>" and used those terms correctly, and he was impressed, saying that I knew more about the domain than most of the programmers currently on staff.
Disclaimer:
probably a lot of this is stochastic, 12 is squarely still in the "statistics of small numbers" range, your experience and tech stack may not necessarily make this possible. For example if you're a java wizard, I suspect you might have a harder time pulling this off, just statistically due to cultural buy-in to the enterprise mindset.... It might be time to break out the cracking the coding interview in that case.
This has been debunked many times in most jobs, lots of interview questions have nothing to do with job performance and CVs are outdated also in the non-tech world. I really feel the hate towards such approach.
Personally I just decided not to participate in such a system. If somebody is treating the interview process like it was 20 years ago, I just finish it earlier.
The best jobs I got was from applying and having a normal discussion like human being with founders but thats mostly startup approach.
There were a few attempts to end credentialism and mind puzzles but its a systemic issue.
- phd in biochemistry, can do molecular biology, synthetic organic chemistry, etc.
- wrote a test framework for debugging the machine code for a chip that hadn't been built yet (it taped out shortly thereafter with bugfixes for a ton of critical bugs I discovered)
- designed research alternatives to IEEE floating point, cited by FB AI, live-demoed at a lecture at stanford
- wrote from-scratch orchestration software for linux containers (didn't hit prod) and virtual machines (went into production)
- assembled physical hardware to go into a rack that is a staging environment for the vm orchestration system
- network admin (switches, etc) for the above system
- wrote a layer-7 TLS-terminating reverse proxy server for jupyter notebooks
- several small-time web-ish things for myself, in various languages over the years, none publically hosted (so, yes I know the principles and basic howtos of a rest-ful server, and wrangle react, but I'll be slow at it at first).
Most recent experience (past 2 months):
I can't pass a standard FAANG interview for shit. I couldn't give a damn about finding mindepth for a binary tree. It made me angrier that they conducted the interview over coderpad and had disabled execution. I wasted precious time commenting-out the instructions that the interviewer pasted into the coderpad. (I'd given interviews in coderpad before, and the interviewer asked me if I'd used it before, so I assumed I knew what I could do).
In the past, all of my jobs I've gotten "because I knew someone"; this was the first time I applied to jobs via "normal employment track" and I'll admit I was a bit jaded about the process.
My strategy was to focus on companies that were hiring for the language that I was the strongest at. Relatively niche, so over the last couple of months I only really saw about 10-12 realistic opportunities go by. One strength is that I have a ton of open source libraries that I've written over the years and I made sure to pin these to the top on github. I also took care to make sure that the documentation is above average on all of these libraries (and the readmes all link to them). I figured I have some runway to apply to "other stack" jobs later. Might as well optimize for developer comfort.
Actually only got three interviews. A lot of the "bigger names you have heard of" that use this stack passed on me immediately, probably because I don't have any publicly visible webdev chops. First one kind of wiffed on me by trying to make me a contract tryout (and the team felt super strange, too). Second one, which was a fantastic interview, I failed the tech exam (debug this miscoded UX experience) because I had forgotten how one of the macros that I don't use in the web framework works, forgot to check the network pane in the web console (I don't do a ton of frontend so it's tool I reach for relatively late), and didn't notice that the central problem was a misnamed variable, even though I intuited (and verbalized) that this was likely the problem early on. Third interview didn't have a tech component at all. I guess they can see my output and they trust it? Anyways, got an offer after some short chats, it's in a vertical that I find very appealing, so I'll probably be starting there soon.
Pipeline ~12 -> 3 -> 1. Not bad. Definitely stress-free.
Specific advice:
If you think you will fail standard tech questions, focus on startups, I think they're bimodal in their attitude towards FAANG-style interviews, some cargo cult it like they're gonna try to scale to a billion users in the next year, and some avoid it like plague).
I would say, try to find a niche-but-provably-valuable (obvi don't shoot for "I can program in zig" companies) skills, especially if you would enjoy working in it - and try to find a company that matches this. Your life will be easier, you'll probably have a greater chance of avoiding the FAANG questions. Make sure your resume/github highlights real work done in this niche.
Finally, maybe a positive is that in an early screen, the CEO asked me, "do you know anything about X domain". I kind of demurred and said "not really" and then explained that I thought it meant "<x keyword>, <y keyword>" and used those terms correctly, and he was impressed, saying that I knew more about the domain than most of the programmers currently on staff.
Disclaimer:
probably a lot of this is stochastic, 12 is squarely still in the "statistics of small numbers" range, your experience and tech stack may not necessarily make this possible. For example if you're a java wizard, I suspect you might have a harder time pulling this off, just statistically due to cultural buy-in to the enterprise mindset.... It might be time to break out the cracking the coding interview in that case.
Good luck!