Earlier quoted context omitted.
No, any settlement would almost certainly include a mutual non-disclosure agreement and mutual non-disparagement agreement. Complaining about it here makes it more difficult to get those, though, and any settlement in general. Moreover, that's not how it works in SV. Assuming you do good work, nobody will care if you sued Google and settled except perhaps Google. I know plenty of engineers who were fired from compani…
I appreciate your thoughts and haven't taken them lightly. That's the thing, is this stupid college mistake on my record undermines my integrity. Never mind that I've been employed at multiple companies and been trusted with user data far and beyond what Google would ever trust me with. I would have hoped that after a five year history in this industry, I would have demonstrated some integrity. Not even my character…
A Wretched Google Interview Experience
251–260 of 359 posts
Re: A Wretched Google Interview Experience
#252Earlier quoted context omitted.
Because then your interviewer does a hatchet-job on you in a feedback form and you get shitlisted from interviewing at Google forever. That's the problem with large companies. There are companies where I would just walk out of an abusive interview, because the brokenness represents their whole company. Then you have massive, mega, ultra-sized companies like Google where even though this particular team is beating you…
That's definitely a fair point, especially about bigger companies. Personally, I value my reputation (real-life, not with whatever HN points says) very, very highly, so I'd imagine doing something like I described would be an excellent way to really leave a stain on your resume.
Re: A Wretched Google Interview Experience
#253Re: A Wretched Google Interview Experience
#254Earlier quoted context omitted.
> Just spend a year playing topcoder in your spare time and you could ace any of the questions I got. I wouldn't call this gaming the system. Doing a year of such training would raise your actual skill.
"I cheated on the test by studying really hard"
You can always game a test that you know ahead of time by prepping, it has no correlation on your non-prepping abilities though.
Re: A Wretched Google Interview Experience
#255Earlier quoted context omitted.
> Linked list questions are a favored choice of this class of interviewer despite the fact that 90%+ of programmers will never have a good reason to write a linked list - or even use one, for that matter. If you can't write basic algorithms to manipulate linked lists (traversal, reversal, etc) on demand, you almost certainly aren't a good coder. These kinds of questions are a good weed-out pass. They don't correlate…
50-100 lines? How horrifying. function mklist(v, ...) if v==nil then return nil end return {value=v, next=mklist(...)} end function listeq(a,b) if a==nil or b==nil then return a==b end if a.value==b.value then return listeq(a.next, b.next) end return false end function revlist(list, sofar) if list == nil then return sofar end local next = list.next list.next = sofar return revlist(next, list) end function test() asse…
Re: A Wretched Google Interview Experience
#256One very important purpose it serves is to see how well you can identify problems in algorithms. Probably I'm guessing it's not even important that you get it perfect, just that you can recognize and talk through the challenges.
One challenge relates to understanding the requirements. It needs to return the count for the preceding period of duration N, whether N is a second or a day. It could and usually does start in the middle of the preceding second, day, etc. It's a constantly moving window. That means if you just reset the counter each time you pass the absolute boundary of the next N (1:00, 1:01, etc.), you lose accuracy.
So that suggests that you might have to track each individual increment() somehow. But there's the next challenge, memory usage. If you just store all the timestamps, that's linear memory growth every time increment() is called.
So it seems to me like the solution is a tradeoff between memory usage and accuracy. If you don't call increment() very much or have a lot of memory, you can get perfect accuracy.
So that's the "theory". Now here's where it gets more interesting from an engineering perspective. Optimal implementations. Here's what I came up with in about 15 minutes.
First you minimize memory usage by storing offsets instead of the complete timestamp. Do this in 2 arrays, one for the preceding interval and one for the current one. This makes it easy to exploit our knowledge of when we've crossed the interval boundary, e.g. via now().getSecond(), to clear out old data.
(I am only considering one type of interval like seconds here.. you could extend this to minutes, hours, days by duplicating this method, or perhaps theres some way to consolidate more optimally.)
Anyway, increment() takes the offset from the fixed start of the current interval, i.e. the nanoseconds since the start of the current second, and appends it to the Current array. It also checks if we've passed into the next interval, in which case it reassigns the Current array to the Preceding array and starts a new Current array. The getter functions also do this.
To get the count, the getter simply
1) Finds the nearest offset in the Preceding array to the current offset (could just loop over it, start in the middle, etc.)
2) Subtracts that index from the array length to count the number of in-scope increments from that preceding interval (this works because the array is naturally sorted)
3) Adds that to the length of the Current array (because everything in the current array is in-scope)
SO, that should be a pretty fast way to do it with minimal memory requirements. If memory's going to be a problem,
A) you could spend a little more computation to do a kind of garbage collection. In step 2, resize the array to clear out the out-of-scope indexes. (Maybe you'd want a more optimized kind of data structure than a vanilla array for this.)
B) reduce accuracy by quantizing the offsets.
Ok am I hired yet? I'll go wait by the phone.
Just kidding, I'm sure this is wrong in many ways. But the point I'm trying to make is that it's a great problem for exploring tradeoffs, yet easy to understand what's being asked and requires no special technical knowledge.
Re: A Wretched Google Interview Experience
#257Earlier quoted context omitted.
And they can do all of that just because everybody still wants to work at Google. Let's say the have 100 applicants for a position, out of which 10 are qualified for it. Then they can still screw 9 of them and hire the one person that for one reason or the other had the luck of interviewing with the right people and talking to the right recruiters.
Whenever a company shows a too-big-to-care-about-candidate-experience attitude it's a symptom of their weakness not power. It's the sad aspect of scaling the organization without establishing a strong culture.
Re: A Wretched Google Interview Experience
#258Earlier quoted context omitted.
I appreciate your thoughts and haven't taken them lightly. That's the thing, is this stupid college mistake on my record undermines my integrity. Never mind that I've been employed at multiple companies and been trusted with user data far and beyond what Google would ever trust me with. I would have hoped that after a five year history in this industry, I would have demonstrated some integrity. Not even my character…
It sounds like you've decided your rejection is fait accompli . I don't think that's the case, but I'm not here to convince you otherwise. Good luck!
Thank you for the support, I really appreciate it.
Re: A Wretched Google Interview Experience
#259Earlier quoted context omitted.
My recruiter failed to call me at the scheduled time. Twice. I wasn't too terribly dismayed, as I was already home at the time anyway, but that put me in a pretty bad mood to begin with. I failed the first phone interview spectacularly because he asked about data structures and estimating powers of two, and I haven't done any of that after 4 years in the industry. I guess fair enough; if that's what they expect of th…
My experience of those interviews that ask CS or “puzzle” questions is that they are sincerely trying to determine that you are capable of dealing with inherently novel/theoretic problems or problems you've never seen before. Unfortunately this notion is misguided because the problems aren't real problems, and the context in which the problems are solved is entirely different to what it would be in the actual workpla…
Some companies have a mythology that every job in their company is like that, even if the actual job being interviewed for is the opposite.
Hardly limited to megacorp CA tech companies. No different than a boring old bank requiring janitor interview candidates to wear a suit and tie.
Re: A Wretched Google Interview Experience
#260I had a google interview about a year ago. The thing I found strangest is that some interviewers would walk in the room and throw up a coding exercise without any introduction at all. They literally wouldn't give their names and what projects they worked on. You don't care that I've been working for almost 10 years in the real world and would rather judge me on my ability to solve a linked list problem? Really? If an…
What is topcoder?