We try very hard to NOT ask questions that have only one correct answer, and my team only interviews/hires senior people. So my approach to interviewing might be different than someone who's interviewing a fresh grad.
I treat all questions as conversational. The direction the question goes depends on where I (or other prior interviewers) think more evidence is needed.
For example: merge sort is an answer that satisfies the conditions of the problem. Given that, I would decide if I need more evidence about your ability to code, if so I'd ask you to implement merge sort; I might want more evidence on how you explain things, so I would pretend that I didn't know what merge sort was and ask you to give me a description of it.
The interviewers in these loops are generally quite introverted themselves, I know I certainly am. I believe we are sensitive to people who are the same and cut them slack.
My goal when interviewing someone is to determine if they will, on net, add more lift or more drag. If someone is so nervous that they can't communicate, they (sadly) will almost certainly not be able to demonstrate this.
Luckily, there are personal referrals. A strong engineer who interviews very poorly but has good first hand references will be given MUCH more slack.
I can't really explain it. It was a puzzle to all of the interviewers.
The only reasonable hypothesis I have where I assume the candidate was honest is that the quality of the code in his github profile is largely due to help from others.
Oddly enough, people lie, unknown references can be bullshit.
The cost of hiring someone who is incompetent is high. High enough that companies generally make several attempts at finding and filtering people that might be incompetent. I don't think anyone who interviews programmers actually believes the standard technical interview process is fun or necessarily even accurate, but there's nothing else as low cost to implement that works better.
Further, someone who treated a technical problem in an engineering interview as a "shit test" would be walked out at any company I've interviewed for... Good luck with that!
>I have plenty of open source code, if they cannot figure how good I am looking at...
I've interviewed several people with lots of code on github and what looks like lots of accepted pull requests to many projects who still can't seem to reason through a problem described as "write a function that takes two unsorted lists and returns one sorted list".
I think I'll continue asking technical/coding questions...
Have you actually contacted customer support for Shopping Express? I have, twice and both times my issues were resolved very much to my satisfaction quickly.
Further, customer support for Nexus - my one issue with them was also satisfactorily resolved quickly.
I understand that my experiences are not necessarily the norm, but I see this quip posted regularly and I don't know if people who post it actually have any experience.
I do machine learning, I don't particularly care about object layout - almost everything I deal with is just arrays of floats, doubles, or longs. I'm also not bothered by GC issues as I simply iterate over the same arrays many times. Lastly, with the type of code I run, JITing of hotspots is done long before the first iteration over the data is complete.
A coworker bet that java would be within 30% of similarly structured c code. I didn't believe him, so I rewrote two of my companies computationally expensive algorithms; a variant of matrix factorization and a neural network.
The production version of the C code did some tricks that would not be possible in java, so I rewrote the C versions to be a bit simpler. I then ported the simpler C programs to java, a fairly straight forward and mostly mechanical job.
The MF code was 5-6% slower than in C, the RBM code was about 1% faster than C.
Granted the tricks I was able to exploit in the production versions made those versions decisively faster than the simple java version, but java was and is much better than I realized.
In my experience, PGO is something that relatively few C/C++ programmers know about or at least use... roughly the same percentage of java programmers know how JIT works. But all java programmers get to benefit from JIT.
Don't get me wrong, a lot of java bugs the hell out of me and I'm personally much more comfortable writing c++. I'm just pointing out that a code running on a virtual machine isn't some horrible back water.
Well... A lot of hotspots potential comes from runtime profiling, this is not necessarily the same as having an optimizing compiler generating code at compile time.
One good reason to use a VM - JIT's can generate very very fast code. Hotspot has gotten so good that there are several cases where numeric java code I've written is faster than reasonably tuned C.
zuul is used by the netflix API. It's not a cache. It's a request router.
EVCache is used internally for ephemeral systems data - things that would frequently go into mysql or cassandra but don't really need crash persistence.
I have a very different experience. I've had my fastmail account for ~5 years and get 20 new pieces of spam in my inbox daily, while on my gmail account, that I've used for ~10 years, I only get 1 spam per month on average.
Fastmail's spam filtering is atrocious in my experience.
Engineers are expected to take responsibility for themselves. They are, after all, "fully formed adults" (in Patty's parlance). And honestly it's not that hard to figure out which skills are useful to the work around you.
Netflix has traditionally only hired very senior engineers. Mentoring, at least technical, isn't seen as necessary for these people. Further, if an engineer thinks mentoring would help them, the onus is on them to seek it out.
Working there, IMHO, is no more demanding than any other company.
There are no bonus', the salary is just raised - the average pay for engineers at Netflix is something like $200k which is fairly competitive to the "total compensation" from other employers.
I might be wrong here, but being treated like an adult, a very liberal vacation policy, and 100% support for anything and everything I need to do my job; are more valuable than what most people consider perks...
And they're certainly not a "uncle scrooge" culture - I've never once had to justify a purchase and as far as I can tell unless you're asking for something odd or fairly expensive (>5k or so) manager approval isn't even needed.
Anyone's experience at Netflix is going to be heavily influenced by their manager, and sadly, Netflix doesn't seem to be much better than any other company at finding or growing good managers.
I treat all questions as conversational. The direction the question goes depends on where I (or other prior interviewers) think more evidence is needed.
For example: merge sort is an answer that satisfies the conditions of the problem. Given that, I would decide if I need more evidence about your ability to code, if so I'd ask you to implement merge sort; I might want more evidence on how you explain things, so I would pretend that I didn't know what merge sort was and ask you to give me a description of it.