Live data from Hacker News

Google Tech Dev Guide

techdevguide.withgoogle.com

211–220 of 250 posts

Re: Google Tech Dev Guide

#211

"Given a string S and a set of words D, find the longest word in D that is a subsequence of S." Found under "Foundations of programming" -- this is exactly the type of problem I'd expect as question one under this section. When it's made by Googlers, that is. I make a lot of cool stuff day to day, and usually that requires a lot of code and knowledge about programming and topics that are rather advanced (currently I'…

These are pattern matching questions. They test how well one remembers a pattern and apply it. It is a skill but not sure how useful it is in the age of google. This is how IIT JEE (test for engineers in india for darkening IITs) was cracked by brute force pattern matchers who start at kindergarden. The resulting product does not bode well from my anectdotal experience interviewing and working with them.

Re: Google Tech Dev Guide

#212
post #196

Earlier quoted context omitted.

In case you think these questions are not actually asked in Google interviews, I should add that I was asked this very question in Google SDE interview just 6 days ago. I failed to answer this and was consequently rejected. Also, the interviewer asked me nothing other than this question. Nothing about the breadth of work that I have done in different sectors, my interest/passion, personal projects etc. I was so upset…

If you couldn't solve that question, maybe you shouldn't work at Google... def valid(S:str, word:str) -> bool: s = S for l in word: pos = s.find(l) if pos == -1: return False s = s[pos+1:] if not s: return False return True if __name__ == '__main__': D = ["able", "ale", "apple", "bale", "kangaroo"] S = "abppplee" in_s = {len(w): w for w in D if valid(S, w)} keys = list(in_s.keys()) sorted(keys) print(f"longest is {in…

Yeah, whenever I see a question like that one, I think it's pretty straightforward but then I wonder if my straightforward solution isn't the "brute force" solution and the interviewer isn't looking for some tricky "elegant" solution. Still, if I were asked that in an interview, I'm sure I'd put together something like your solution; I can't think of a "better" way to solve it.

Re: Google Tech Dev Guide

#213

Earlier quoted context omitted.

(Disclaimer: I work at Google). This is going to sound like a humble-brag, but it isn't, I'm trying to give some life advice based on my experience: I have used "CS" algorithmic thinking on multiple projects, I've even used facets of abstract algebra and number theory from my Math degree to further my career and it lifted me out of poverty. Here's an example. A few years ago, I was researching ways to crunch down the…

You’re the guy writing compilers at Google, so ya you’re the exception my friend.

But he's not that unique. One of my 20% projects recently required reading up on specialized parallel parsing trees/regular expression generalizations. I was able to sketch an algorithm structure that I thought should work, and some quick searching brought me a to a paper that formalized it (I wanted a 1-pass way to match a set of subtrees on a large tree, where each subtree could be vaguely regular-expression-y, such that I could apply the `*` or `?` operators to a node in the needle-tree instead of a to a substring of the needle-string). A generalization of aho-corasick seems to work here, though I haven't had time to implement it yet.

My day to day work involves lots of statistics[1], despite being an unsexy role (SETI), and I'm of the opinion that most people at Google should have a better understanding of statistics, despite by all accounts, the average statistical knowhow of my coworkers being well above average.

A coworker is working on code generation and parsing, so his automata know-how is coming in handy too.

And that doesn't even touch on the need to have some of this foundational knowledge when dealing with tooling like spanner or many of our other tools for dealing with data at scale.

I'd generally agree that one person need not know all of it, but a familiarity with the basics in all of these areas is necessary, especially if, as another user mentioned, you want any level of internal mobility.

[1]: https://queue.acm.org/detail.cfm?id=3194655

Re: Google Tech Dev Guide

#214
post #90
post #74

Earlier quoted context omitted.

To offer an alternative viewpoint: I have a degree in pure mathematics from a highly ranked institution. I published research as an undergraduate. I went to multiple REUs. I participated in the Putnam and similar competitions. I read CLRS in 9th grade and didn't even bother taking an algorithms course in college. But even I find that these sorts of questions are more gatekeeping than anything else. That's not a persp…

I interview for my company, too, and don't ask these kinds of algorithm questions because the reality is these problems aren't typical of day-to-day work for the positions we are hiring for. I'm interested to know what your interview process is. If you wouldn't mind sharing, how does the interview process work at your company?

We have the candidate sit at a workstation and write a functioning program to solve a relatively realistic but self-contained problem using the language of their choice. It usually involves extracting and working with some data from a few big CSV files -- we have pretty legitimate datasets set aside just for the interview. There really aren't any restrictions during this: the candidate can use any resources they would normally use, including Google or Stack Overflow.

We don't have the interviewer watch everything they're doing over their shoulder. They're allowed to just work on the problem on their own.

Re: Google Tech Dev Guide

#215

I have been putting off a Google interview for a whole year now. I have real experience building Cluster Filesystems, Distributed Caches, TCP/IP Control plane software and low latency Ad platform for more than a decade. Sounds good on paper, but I can guarantee I cannot solve most of these puzzles without actually solving them beforehand. Why? Because I do not have cycles or time to solve these on my own. I have a sy…

> Family obligations do not help. You've put your finger on it right there. These type of interview questions are biased toward candidates with plenty of free time and few obligations. This effectively has ageist, sexist, and classist[0] consequences. [0] Racist as well, to the extent (which is considerable) that class is entagled with race.

yes anything that requires competence has those consequences. you could say the same for not learning anything.

Re: Google Tech Dev Guide

#217

"Why not follow one of these paths curated by university computer science faculty and Google engineers?" The fact that Google equates their engineers with university faculty is either incredibly delusional or arrogant.

why? university faculty isn’t all that impressive? they are usually just people who made the choice to stay in school longer while others wanted to do something useful right away. many google engineers are phds. but once again this doesn’t mean anything

Re: Google Tech Dev Guide

#218

Earlier quoted context omitted.

This isn't really true. I've asked a few different interview questions in my time, and the number of candidates who have gotten the "optimal" solution currently sits at 0, to any of the questions. Despite this, I've suggested that we hire some of those "wrong" answer candidates. And given the interview feedback I've seen, I'm not the only one like this.

> Despite this, I've suggested that we hire some of those "wrong" answer candidates. And were they hired?

I think some of them were extended offers, yes, although it's hard to say specifically.

Re: Google Tech Dev Guide

#219

Earlier quoted context omitted.

You’re the guy writing compilers at Google, so ya you’re the exception my friend.

But he's not that unique. One of my 20% projects recently required reading up on specialized parallel parsing trees/regular expression generalizations. I was able to sketch an algorithm structure that I thought should work, and some quick searching brought me a to a paper that formalized it (I wanted a 1-pass way to match a set of subtrees on a large tree, where each subtree could be vaguely regular-expression-y, suc…

Right, I’m pretty mundane actually, I don’t think I’m all that special and there’s lots of people at Google I’m envious of able to solve problems I can’t begin to crack. Some of the people working on build systems at google are using some dizzying graph algorithms for example.

Consider how Bazel must build and test the world’s largest(?) monorepo at scale incrementally on every commit.

Perhaps this is an artifact of Google’s size, but a lot problems turn out to be “well, this would be simple if our input was a million items, Unfortunately it’s a trillion items” and now all of a sudden asymptotic complexity matters.

Re: Google Tech Dev Guide

#220

Earlier quoted context omitted.

(Disclaimer: I work at Google). This is going to sound like a humble-brag, but it isn't, I'm trying to give some life advice based on my experience: I have used "CS" algorithmic thinking on multiple projects, I've even used facets of abstract algebra and number theory from my Math degree to further my career and it lifted me out of poverty. Here's an example. A few years ago, I was researching ways to crunch down the…

> It turns out optimally computing the LZ Distance Metric requires efficiently solving the Longest Common Substring problem, which can be solved with a generalized suffix tree in O(N + M) time. Imagine you walked in to your Google interview, with all of the experience from improving the size of GWT output fresh in your mind, but before you "ran into the 'LZ Distance Metric'". They sit you down and say "LZ Distance Me…

Im totally sympathetic to the time pressure thing. I myself don’t do well under a clock with someone standing over my shoulder.

I know a lot of people like this, which is why I don’t like whiteboard interviews.

Post reply on HN