3 ms·
You’re the guy writing compilers at Google, so ya you’re the exception my friend.
by lwansbrough 8y ago
You’re the guy writing compilers at Google, so ya you’re the exception my friend.
- joshuamorton 8y agoBut 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 https://queue.acm.org/detail.cfm?id=3194655
- cromwellian 8y agoRight, 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.