News for hackers. Stuff that matters.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by vinhboy on Friday October 19, 2018 @01:35AM (#18254428)
> Someone who can do that is ridiculous. Talk about 10x engineers. That's more like 1000x. And it's good, clean code too. Literally no number of median engineers can do that. You can give me a million median engineers and they would never be able to do that. They would just make a huge mess.

This is probably one of the most truest thing I've read about our profession.

Linus Torvalds, Steve Wozniak comes to mind, who else?

Re:Paul Buchheit on Joining Google, How to Become a Great En... by riazrizvi on Friday October 19, 2018 @10:45AM (#18257041)
Bracing for down votes but I think that’s garbage. Once the system has been precisely defined in code (even poorly, especially when poorly!), refactoring it is a much smaller task, it’s also a ‘smooth’ problem (there are no hidden problem mountains that sap your drive as you discover your expectations were way off week after week) because the problem is all there in front of you, in ascii. You are also motivated to look good because people do mis-compare these non-comparable tasks. I’ve refactored my own code, I’ve refactored others’ code, I’ve had my own code refactored. Every refactoring iteration is almost always a lot faster than the last, and there is almost always a benefit in performance, though maybe only iteration #2 provides a really big boost when #1 was a rush job. You just need to be a good engineer who knows how to write well organized, well patterned, and performant code. It’s important to remember that engineering, like design in general, is an activity done under time constraint, every iteration is an opportunity for more time, and it’s also a fresh break/perspective on the problem. I love refactoring code.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by gumoro on Friday October 19, 2018 @12:36PM (#18257909)
It's not just about code. In any non-trivial system you have a bunch of components, and any minor occurrence of "bad design" that affects boundaries, protocols, configuration, deployment, persistence schema, upgrade procedures, etc, can lead to huge complications down the road if there's no one to catch this early. Mediocre engineers will only make it worse and worse, and you'll get something super complex that costs big bucks to maintain. If you have someone capable of detecting & fixing such bad patterns early enough, in extreme cases that person can be considered a 1000x engineer.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by MauranKilom on Sunday October 21, 2018 @01:37PM (#18269083)
In my experience so far, good code strives for elegance. Not only "few LoC" but elegant design, abstractions, structure. With a sufficiently awful design (and "wild growth" by engineers just trying to add features), refactorings become tedious because the dependencies, interactions, assumptions etc. that have grown over time are painful to untangle with only equivalence transforms of the code in between. And you can't change easily change the other side of whatever the code interfaces with because it's similarly ingrown.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by rifung on Friday October 19, 2018 @10:42PM (#18261431)
I agree completely.

Also I feel what usually happens is that requirements change over time, and things get repurposed as "hacks" because ain't nobody got time to rewrite the entire thing.

But at some point the effort to rewrite is worth it and at that point even the same engineers who did the original implementation should be able to write a much cleaner and faster version.

When I was new I thought I was so awesome when I saw how I could write better code than I read. It was only way later I realized people usually had good reasons for writing it that way originally but those reasons disappeared.

Re:Paul Buchheit on Joining Google, How to Become a Great En... by sireat on Friday October 19, 2018 @09:48AM (#18256675)
Bill Joy (https://en.wikipedia.org/wiki/Bill_Joy) is another super programmer with numerous crucial projects(vi, parts of BSD Unix, stuff at Sun, etc) under his belt.

One of many Bill Joy legends: BBN had a big contract to implement TCP/IP, but their stuff didn't work, and grad student Joy's stuff worked. So they had this big meeting and this grad student in a T-shirt shows up, and they said, "How did you do this?" And Bill said, "It's very simple — you read the protocol and write the code"

Re:Paul Buchheit on Joining Google, How to Become a Great En... by jacquesm on Friday October 19, 2018 @02:04AM (#18254514)
Re:Paul Buchheit on Joining Google, How to Become a Great En... by whatever_dude on Friday October 19, 2018 @10:01AM (#18256768)
"Anyone with ownership" comes to mind.

When you have 10 people in a project there's way too much friction. Every decision is stalled, people code defensively rather than proactively. Everyone is trying so hard to get to the lowest common denominator that they can never do anything actually good.

That's not to say that better or worse engineers exist. They do. But I feel like a team's context and environment has a much higher impact on the quality of the output. You take away people's autonomy, the result will undoubtedly be shit. You give people autonomy, you can get bombs but you can also get brilliance.

Re:Paul Buchheit on Joining Google, How to Become a Great En... by natmaka on Friday October 19, 2018 @02:50AM (#18254664)
There is an interesting and quite surprising book about this (among other similar theses/memes/opinions/whatever) titled "The Leprechauns of Software Engineering" (by Laurent Bossavit).
Re:Paul Buchheit on Joining Google, How to Become a Great En... by Aeolun on Friday October 19, 2018 @08:02PM (#18260935)
I don’t think this is true so much as a programmer on his own works about 5-20x as fast as a team hindered by procedure, CYA and communication at every step.

The end result still depends on experience, but even the best programmers slow to a crawl when they work in an enterprise environment (obviously not always true, but as a general rule)

Re:Paul Buchheit on Joining Google, How to Become a Great En... by crdoconnor on Friday October 19, 2018 @06:30AM (#18255612)
Dave Cutler. The NT/XP/etc. architecture basically stalled as soon as he left and future improvements were incremental.

You can tell there wasn't a winer equivalent on the windows 95/98/ME teams

Re:Paul Buchheit on Joining Google, How to Become a Great En... by sporro on Friday October 19, 2018 @12:04PM (#18257683)
I'm pretty sure Dave Cutler is still at Microsoft. Cloud stuff.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by crdoconnor on Friday October 19, 2018 @03:03PM (#18259102)
I meant when he left the team.

But yea, now he's doing cloud stuff. I'm pretty sure it's no coincidence that that is now their best performing product line either. Satya can thank him for his promotion to CEO.

Re:Paul Buchheit on Joining Google, How to Become a Great En... by not_real_acct on Friday October 19, 2018 @08:21PM (#18261004)
Ten years ago, I moved to a state I'd always dreamed of living in, and I bought a home.

My timing was atrocious; every single month my home was worth less and less and less.

I absolutely bent over backwards to keep my job. Worked sixteen hour days, worked weekends.

My employer kept trying to replace me, because my rate was fairly high. First they tried to hire three people in India to replace me, but a third of the Indians quit, a third were gobbled up by another team, leaving one Indian who wasn't that great.

Then they brought in a couple of consultants. They basically phoned it in for a year, and were eventually sent back.

I think the reason that I weathered all this is that I simply didn't have a Plan B. I couldn't fail, if I did, I'd lose my house. I was willing to do whatever it takes to stay employed, and though they kept trying to replace me, they couldn't find anyone that was that invested in succeeding.

This isn't to say I was smart, or talented. But I was tenacious and I was relentless.

Re:Paul Buchheit on Joining Google, How to Become a Great En... by tinkerteller on Friday October 19, 2018 @05:49AM (#18255450)
(only including people who wrote massive amounts of important and complex code themselves and quite possibly dozen median engineers wouldn’t have cut it)

John Carmack

Dennis Ritchie

Ken Thompson

Bill Gates

Donald Knuth

Jeff Dean

Brian Kernighan

Re:Paul Buchheit on Joining Google, How to Become a Great En... by a7776f88862 on Friday October 19, 2018 @08:14PM (#18260980)
I would strongly disagree on the Bill Gates part. The early Microsoft compilers (yes, Microsoft started out as a compiler company) were by all accounts not that great. The really successful and technically impressive Microsoft projects have always been acquisitions. The technically best (or the only decent, depending on who you talk to) Microsoft product is SQL Server, which started out as a Sybase fork.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by not_real_acct on Friday October 19, 2018 @08:27PM (#18261020)
As I understand it, Microsoft's success is largely because they poached an operating system contract. Basically the CEO of their competition was on a two-week vacation and there was no way to get in contact with him. So the contract went to Microsoft by default. Then Microsoft purchased an existing operating system and hacked it for their client. And the rest is history.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by tinkerteller on Friday October 19, 2018 @08:32PM (#18261040)
Original interpreter Gates wrote was pretty hard. Imagine flipping switches to enter a program to do entire BASIC interpreter. You are literally entering machine code, not even Assembly. In those days doing any compiler or interpreter was a monumental amount of work and there was a reason Gates was able to sale his work to establish fairly profitable company standing on just one product: BASIC interpreter. He is not in this list for his later successes as businessman or leader but the fact he was able to code this almost single handedly.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by slededit on Saturday October 20, 2018 @04:34AM (#18262373)
He wrote his interpreter on a larger machine (PDP-11 I think), and tested it on an emulator they wrote. When they got to MITS to show off their code that was the first time it ever ran on real hardware.

They did not develop BASIC by flipping switches.

Re:Paul Buchheit on Joining Google, How to Become a Great En... by a7776f88862 on Monday October 22, 2018 @07:07PM (#18279370)
It was a PDP-10 at Harvard, and it was not just Gates, it was Gates and Paul Allen working on it together. Another interesting thing is that the PDP-10 was being paid for by Department of Defense grants, and when an auditor discovered how much computer time Gates and Allen (who was not even affiliated with Harvard) had used up, there was a disciplinary hearing, after which Gates left Harvard.[1] In his "Open Letter to Hobbyists"[2] Gates claims they used $40,000 worth of computer time. So basically Microsoft started with $40,000 stolen from the government.

[1] This is documented by Noam Cohen in The Know-It Alls. [2] https://en.wikipedia.org/wiki/Open_Letter_to_Hobbyists

Re:Paul Buchheit on Joining Google, How to Become a Great En... by slededit on Monday October 22, 2018 @07:51PM (#18279641)
BillG claims Paul did most of the emulator work and he worked on the interpreter core. With the floating point routines by Monte Davidoff who they hired. It was a team effort of course, but BillG was adamant to take credit for the interpreter specifically.

From the source code itself:

  PAUL ALLEN WROTE THE NON-RUNTIME STUFF.
  BILL GATES WROTE THE RUNTIME STUFF.
  MONTE DAVIDOFF WROTE THE MATH PACKAGE.
https://www.pagetable.com/?p=774
Re:Paul Buchheit on Joining Google, How to Become a Great En... by JoeAltmaier on Friday October 19, 2018 @08:34PM (#18261045)
I was in high school at the time, and Gate's interpreter was buggy and lame. I could have done better, and knew it at the time.

Fortunately the quality of his software had nothing to do with his success. It was about marketing and business timing.

Re:Paul Buchheit on Joining Google, How to Become a Great En... by tinkerteller on Sunday October 21, 2018 @06:10AM (#18267380)
People took his code and re-distributed en-mass. BASIC paid the Microsoft bills for almost 4 years. Are you saying people stole and/or paid for unusable code?
Re:Paul Buchheit on Joining Google, How to Become a Great En... by JoeAltmaier on Monday October 22, 2018 @08:18AM (#18274015)
Buggy, lame code still let you do something with your shiny new computing device. Early adopters will put up with anything. Which Gates understood very well. It was about timing, not quality.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by lallysingh on Friday October 19, 2018 @09:48AM (#18256674)
It's a combination of finding someone really talented, putting them in an area where their talent gets well used, and giving them lots of freedom to implement as they wish.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by tinkerteller on Friday October 19, 2018 @08:35PM (#18261048)
This list is not about talent finders/leaders/managers. It's about people who wrote ton of code to accomplish something by themselves that would have been very very hard for a good manager to accomplish by simply lining up big team of median engineers.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by tonyedgecombe on Friday October 19, 2018 @10:23AM (#18256907)
Being there at the right time helps as well, there were lots of low hanging fruit waiting to be picked.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by fossuser on Friday October 19, 2018 @02:28AM (#18254595)
John Carmack
Re:Paul Buchheit on Joining Google, How to Become a Great En... by not_real_acct on Friday October 19, 2018 @08:24PM (#18261012)
Michael Abrash paved the way for Carmack. Carmack is great, no doubt, but Abrash wrote the book (literally.)
Re:Paul Buchheit on Joining Google, How to Become a Great En... by fossuser on Friday October 19, 2018 @10:56PM (#18261468)
I think they both work together now at Oculus.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by not_real_acct on Monday October 22, 2018 @03:18PM (#18277467)
Yep! IIRC, Carmack learned a lot from Abrash, and then eventually hired him at ID Software. They've been working together for ages.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by tretiy3 on Saturday October 20, 2018 @04:42PM (#18265342)
All the guys from "Coders at work" [1]: - Jamie Zawinski - Brad Fitzpatrick - Douglas Crockford - Brendan Eich - Joshua Bloch - Joe Armstrong - Symon Peyton Jones - Peter Norvig - Guy Steele - Dan Ingalls - L Peter Deutsch - Ken Thompson - Fran Allen - Bernie Cossel - Donald Knuth [1] https://www.amazon.com/Coders-Work-Reflections-Craft-Program...
Re:Paul Buchheit on Joining Google, How to Become a Great En... by ensiferum on Friday October 19, 2018 @04:52AM (#18255200)
His claimed competency probably grows a bit every few years and on every telling of this legendary story. 10 years from now it was 100k lines over the weekend or whatever. Clean code too!
Re:Paul Buchheit on Joining Google, How to Become a Great En... by mrfredward on Friday October 19, 2018 @08:27AM (#18256197)
He didn't emphasize the number of lines written in that weekend, and that's important. The most productive programmers I've met don't talk about the number of lines, unless it is how many lines they eliminated. When they brag, it will be about finding a solution that is powerful and elegant, not how much they typed.

From the article: "And [Bret Taylor] rewrote the entire thing, making it 10 times as fast and a third of the size."

Re:Paul Buchheit on Joining Google, How to Become a Great En... by speps on Friday October 19, 2018 @03:45AM (#18254851)
Re:Paul Buchheit on Joining Google, How to Become a Great En... by langitbiru on Friday October 19, 2018 @04:46AM (#18255159)
Satoshi Nakamoto (but maybe it's more than one person), Vitalik Buterin, Yann LeCun, Sanjay Ghemawat, Jeff Dean.
Re:Paul Buchheit on Joining Google, How to Become a Great En... by olvo on Friday October 19, 2018 @12:25PM (#18257821)
> Linus Torvalds, Steve Wozniak comes to mind, who else?

I don't think those are generally good examples of 10x engineers. Most people don't get to have a large impact by making the most of something specific. I think in the wild it is more as described in the article. That 10x engineers are people who raise the standard for whatever is in front of them and save themselves, and their companies, thousands and thousands of man hours by doing so. It is really really hard to be better at people at hard things, it is a lot easier to be better than people at things that are supposedly easy, but people consistently fail at.

Re:Paul Buchheit on Joining Google, How to Become a Great En... by oblio on Friday October 19, 2018 @04:55AM (#18255220)
I haven't read that much about Woz, but from what I gather he was brilliant, but his code (or hardware) wasn't "clean". He did have great insights leading to performance, but some stuff sounds fairly ridiculous today, like the stuff he did for Apple II's color display: https://www.filfre.net/2011/10/mystery-house-part-1/

Basically: brilliant, but very quirky.

Re:Paul Buchheit on Joining Google, How to Become a Great En... by hef19898 on Friday October 19, 2018 @07:31AM (#18255903)
The difference between quality and quantity. In professions that tend more towards art than science this more pronounced. There is only so much you can solve by throwing resources at it.

On the other hand, if your problem is to simply produce more of something no 1000x genius will get you far enough. Farer than the mediocre resource, but even for these people a day has only 24 hours.

Re:Paul Buchheit on Joining Google, How to Become a Great En... by noblethrasher on Friday October 19, 2018 @09:46AM (#18256664)
Dan Ingalls

Ivan Sutherland

L. Peter Deutsch

Re:Paul Buchheit on Joining Google, How to Become a Great En... by vowelless on Friday October 19, 2018 @08:01AM (#18256052)
Rich Hickey