Earlier quoted context omitted.
The inode question gave me flashbacks to my interview with Amazon. They wanted me to explain what a hash function is. I kept giving answers for about 3 minutes explaining hashing, common algorithms, reasons to use it and places it applies. Recruiter: "I was looking for you to say it's a fingerprint " So I guess I was wrong, because despite explaining them in decent detail, I didn't use the one keyword.
On my phone screen a Google recruiter asked me "how much is 2^24", and I knew the answer by heart and answered immediately. So he asked "how did you figure this out so fast?". I told him I didn't, I just remember all the "important" powers of 2. He said "well... that's not what I was looking for, I wanted you to calculate it, but... I guess a candidate who memorizes powers of 2 is a positive sign?". I passed.
Google's “Director of Engineering” Hiring Test
511–520 of 969 posts
Re: Google's “Director of Engineering” Hiring Test
#512Earlier quoted context omitted.
> they found a 20+ years experienced engineering manager holding patents on computer networking under-qualified for an ordinary site maintenance position. To be fair, I've interviewed people at previous companies that had patents and 15 years at IBM on their CV and completely failed even the most basic system / coding questions. (fizzbuzz style). There are a lot of people that read great on the CV but then it turns o…
Perhaps that suggests you're giving them the wrong interview.
I'd expect any technical candidate to be able to do at least a fizzbuzz-type question.
Re: Google's “Director of Engineering” Hiring Test
#513Earlier quoted context omitted.
The inode question gave me flashbacks to my interview with Amazon. They wanted me to explain what a hash function is. I kept giving answers for about 3 minutes explaining hashing, common algorithms, reasons to use it and places it applies. Recruiter: "I was looking for you to say it's a fingerprint " So I guess I was wrong, because despite explaining them in decent detail, I didn't use the one keyword.
I'd have failed too, because I use a very particular way to describe a hashing function. A hashing function is actually a sorting function. It's supposed to take an input space and sort it in an unpredictable and evenly distributed way across the output space. What's more, neighboring points in the input space, no matter the sort used to determine proximity should not result in neighboring points in the output space.…
Re: Google's “Director of Engineering” Hiring Test
#514Earlier quoted context omitted.
> I mean who would know just how long a MAC address is? Uh, my main languages are PHP and Python (high level stuff) and I'm a student (not someone with 10 years of experience) but I knew that. 3 bytes for the vendor block, 3 bytes for the device. > Or what the actual SYN/ACK etc tcp flags are? Yeah the actual bytes, who ever uses that? A MAC address I've seen plenty of times in my life as hex, and I've seen the TCP s…
> Uh, my main languages are PHP and Python (high level stuff) and I'm a student (not someone with 10 years of experience) but I knew that. 3 bytes for the vendor block, 3 bytes for the device. Thanks for the refresher! I knew that too when I was in college. Good luck remembering that 5 years from now :)
I did not learn this because some course demanded I learn a text book by heart. I'm not doing that kind of theoretical university. I knew that particular thing because I look at a lot of packet captures.
Re: Google's “Director of Engineering” Hiring Test
#515But I kind of agree with the sentiment of "uhg, srsly, are we still doing this?". I answered a few of those with "not sure, I'd Google that". The recruiter's reply was "but what if Google's down". Well, there's always Bing.
Re: Google's “Director of Engineering” Hiring Test
#516Earlier quoted context omitted.
The goal of a fingerprint hash is to convert an input space of "large" values to an output space where the output space values are much shorter- typically fixed size and two similar input values have effectively random outputs (without spending the CPU cycles to implement a cryptographic hash). This permits a wide range of optimizations (a document can be fingerprinted, and looked up by its fingerprint, to see if it'…
Thanks for the elaborate answer! I knew about things like acoustic fingerprints but not that people use the term "hash function" to describe something that indicates similarity. Could something like Hamming distance be called a hash function too? It's not mentioned on its Wikipedia page.
Re: Google's “Director of Engineering” Hiring Test
#517Earlier quoted context omitted.
How can you imagine Google being totally right here? The disconnect between the questions being asked and the interviewer's lack of knowledge made the interview a waste of time no matter WHAT role they are interviewing for. Take, for example, the sorting question. "Why is QuickSort the best sorting algorithm?" The answer being looked for was, "It has the best Big O." And this is wrong. Its average case is O(n log(n))…
> Its average case is O(n log(n)). Its worst case is O(n^2). Which do you call its big-O? I know this is irrelevant to the larger point of your post, and I'm sure that you know this already, but the worst case is the big-O. This is just another reason why "big-O" is not the most helpful thing to discuss in practice.
Big-O is a way of categorizing the growth of mathematical functions. Those functions can represent anything. It is wrong to talk about the big-O of an algorithm without specifying what you are measuring. Be it average operations, worst case operations, average memory, worst case memory, amortized average time, amortized average memory, and so on.
It happens to be that when we talk informally, we're usually talking about the worst case we are willing to think about. Quicksort's worst case is a sorted set, so we think of that as O(n^2). But then we turn around and cheerfully call a hash lookup O(1) because its O(n) worst case is incredibly rare in practice.
Re: Google's “Director of Engineering” Hiring Test
#518An inode is not an identifier. This super-awesome-knowitall has not bothered googling "define inode" before posting this.
If this really is the transcript then not only did you answer questions wrong, you also argued with the recruiter.
I have worked with people who used to be the best where they came from, who are not used to being wrong. This guy did not handle it well.
If this really is a true transcript, with internal monologue, then Google has avoided accidentally hiring someone arrogant who can't accept being wrong, or is at least not open to being wrong.
The reaction -- posting prescreen questions in anger in retaliation -- only reaffirms that Google did the right thing.
Re: Google's “Director of Engineering” Hiring Test
#519Ha ha re: > 10. what is the type of the packets exchanged to establish a TCP connection? > Me: in hexadecimal: 0x02, 0x12, 0x10 – literally "synchronize" and "acknowledge". > Recruiter: wrong, it's SYN, SYN-ACK and ACK; if Google is down you will need to know this to diagnose what the problem is. We will stop here because it's obvious that you don't have the necessary skills to write or review network applications. Y…
Surprising they wouldn't have given the recruiter a list of alternate acceptable answers. Almost feels like the recruiter was conspiring against you, but why?
Re: Google's “Director of Engineering” Hiring Test
#520Earlier quoted context omitted.
> they found a 20+ years experienced engineering manager holding patents on computer networking under-qualified for an ordinary site maintenance position. To be fair, I've interviewed people at previous companies that had patents and 15 years at IBM on their CV and completely failed even the most basic system / coding questions. (fizzbuzz style). There are a lot of people that read great on the CV but then it turns o…
Perhaps that suggests you're giving them the wrong interview.
I had a candidate in a few months ago that was interviewing for Software Development Manager, so he got an initial phone screen and then a face-to-face with myself and another dev on the team he'd be managing. I was impressed with how little he knew about programming.
"Name some data structures." "What does MVC stand for?" "Name some design patterns" etc. All of which were unanswerable. Generally when it becomes clear someone was dishonest about their skillset, the ability to get hired for any position becomes impossible.