5 interview questions
It's not 5 interview questions, it's 5 categories of interview questions.
Goal: do these all in C++, Java, and Rust
Steve Yegge influenced a lot of people with this post.
It's not 5 interview questions, it's 5 categories of interview questions.
Goal: do these all in C++, Java, and Rust
Steve Yegge influenced a lot of people with this post.
The lesson to be learned from this is that it is often undesirable to go for the right thing first. It is better to get half of the right thing available so that it spreads like a virus. Once people are hooked on it, take the time to improve it to 90% of the right thing.
A wrong lesson is to take the parable literally and to conclude that C is the right vehicle for AI software. The 50% solution has to be basically right, and in this case it isn't.
From the apocryphal The Rise of "Worse is Better" by Richard Gabriel.
Adventures in smart buttplug penetration testing
{% include youtube.html id="RnxcPeemHSc" %}
These guys know how to draw in a crowd, that's for sure.
More can be found with danluu's archive of HN comments
For those who work inside Google, it's well worth it to look at Jeff & Sanjay's commit history and code review dashboard. They aren't actually all that much more productive in terms of code written than a decent SWE3 who knows his codebase.
The reason they have a reputation as rockstars is that they can apply this productivity to things that really matter; they're able to pick out the really important parts of the problem and then focus their efforts there, so that the end result ends up being much more impactful than what the SWE3 wrote. The SWE3 may spend his time writing a bunch of unit tests that catch bugs that wouldn't really have happened anyway, or migrating from one system to another that isn't really a large improvement, or going down an architectural dead end that'll just have to be rewritten later. Jeff or Sanjay (or any of the other folks operating at that level) will spend their time running a proposed API by clients to ensure it meets their needs, or measuring the performance of subsystems so they fully understand their building blocks, or mentally simulating the operation of the system before building it so they rapidly test out alternatives. They don't actually write more code than a junior developer (oftentimes, they write less), but the code they do write gives them more information, which makes them ensure that they write the rightcode.
I feel like this point needs to be stressed a whole lot more than it is, as there's a whole mythology that's grown up around 10x developers that's not all that helpful. In particular, people need to realize that these developers rapidly become 1x developers (or worse) if you don't let them make their own architectural choices - the reason they're excellent in the first place is because they know how to determine if certain work is going to be useless and avoid doing it in the first place. If you dictate that they do it anyway, they're going to be just as slow as any other developer.
Blog of Avery Pennarun at https://apenwarr.ca/log/
This guy was a L7 at Google. His best is his post on bug triage and system design so far.
I can't quite understand his IPv6 posts yet.
Wish I can get into TailScale (his new company).