The Friendship that made Google huge (2018)
newyorker.com
newyorker.com
I've had things that were close, but usually devolves into multiple short 10-20 minute meetings, division of tasks, then reconvene, rinse/repeat. That typically works well and I don't have to deal with people nitpicking how I use my editor or how many chrome tabs I have open.
It's not like I don't like reviews or cannot work alongside another person. It's I cannot learn while someone is talking to me or trying to make me place the cursor somewhere.
I'm all in for code review, even in pairs. In fact, I do that with a junior dev I have assigned and it's working well for us. I leave him thinking and come back to evaluate his solution.
I find reviewing him paired, is time saving for me. I make him lead me to the right code spots, rather than finding out on my own. I fire 3 quick questions and we're aligned on the spot.
I'll never work again on a 100% pp position but I think I've found my sweet spot with the technique.
I agree that, if no other safeguards are in place, using pp you can avoid real bad code. But without deep thought, you'll mostly converge to an average solution, when social dynamics are very much leading.
I've never learned so much about programming as during my years pair programming!
I got to see how other people solved problems, and surprisingly often, they have a completely different approach than what I though was the obvious way. Half the time their way was better than mine, and I became a better programmer, and half the time I taught the other person something.
This went on day after day, for years!
There is a technique for pair programming well. I was lucky to join a team of PP pros, and picked it up pretty fast. Sounds like you had worse luck :(
> I cannot learn while someone is talking to me
This sounds strange. Normally people learn by listening to others talking, right?
I think this worked because 1) he was comfortable with me staring over his shoulder with neither of us talking and 2) I was comfortable with just watching an learning. I've tried this style with my junior programmers, and I'm too anxious being quiet and coding while someone watches me, and most juniors are also too anxious to prove that they're paying attention so they have to talk, and that breaks the flow.
It was really special to see how this pair basically laid out the foundations of large-scale distributed computing. Protobufs, huge parts of the search stack, GFS, MapReduce, BigTable... the list goes on.
They are the only two people at Google at level 11 (senior fellow) on a scale that goes from 3 (fresh grad) to 10 (fellow).
One of my coworkers got assigned Sanjay on one of her CLs recently and she had no idea who he was. I had the pleasure of working with Sanjay as his intern at SRC the summer before he joined Google, and he taught be a lot of cool tricks related to compiler development. Both Sanjay and Jeff Dean are PhDs with PL focuses.
It's like nearly everyone in a who's-who of the language design & compiler implementation community circa 2002 ended up working for Google, and the few that didn't (notably Chris Lattner of LLVM and Slava Pestov of Factor) ended up at Apple.
[1] https://projectsweb.cs.washington.edu/research/projects/ceci...
[2] https://research.google/pubs/flumejava-easy-efficient-data-p...
They stopped being able to build a chat app after different people were hired.
Sure, they did good engineering to apply those techniques at Google, but they did not "lay out the foundations of large scale distributed computing".
And 102 comments on HN at the time: https://news.ycombinator.com/item?id=18588697
People forget how influential the architectures these guys came up with were in the industry a decade ago. Its great to read about the human factors behind the advances.
Just brilliant. :-)
If you need to revere anything, revere the achievement, not the man that did it.
It's not as if the court trial starts the very day the government notices the issue.
In fact, the higher the IQ, the better you are able to discern true intellect vs loud mouths.
I for one revere Jeff Dean and I'm proud of it. It doesn't affect my life negatively in any way. In fact betting on people that I revere (Jobs, Musk, Zuck, Bezos, Buffett) have profited me immensely
In many of the scenarios you hint at, new problems or opportunities arose, and those people were simply well-positioned by chance and circumstance to tackle them.
The problem should take center stage, not the men.
If you come to revere a pair of programmers then you've almost certainly missed the actual story of the true achievements or are blinding yourself to the fact that their achievement was only necessary due to the complete engineering failures of the company they were now attached to.
As opposed to it being obvious that very interesting things, opportunities, were happening at those companies. With word spreading throughout the industry. Along with talent flight into said companies, so as to pursue said opportunities along with other talent. Employees in tech typically see these things happening, it's not a big secret.
You can in fact do a lot better than blind dart throwing.