Ask HN: Who are your programming rockstars, and why?

57 points by bangonkeyboard ↗ HN
Carmack, Torvalds, Bellard, Wozniak, et al. Who do you personally admire as 10x or otherwise brilliant coders? What do you consider their most notable or emulable accomplishments, habits, or contributions?

70 comments

[ 2.9 ms ] story [ 132 ms ] thread
Apenwarr. https://apenwarr.ca/log/

I know him a little IRL and, although he hasn't done anything that has made him famous, I believe he's in the same league.

John Shutt : https://fexpr.blogspot.com/ https://web.cs.wpi.edu/~jshutt/play.html

He designed Kernel Programming Language, a very neat lisp that allow to exploit and reason about the semantics powers that lisp has binged over the years (symbolic, continuations, encapsulation …).

I also highly appreciates the articles that he writes in his blog, they gave me “insights” ...

This guy I know who’s 5-6 years into his career and can in 2-4 days line up 10+ interviews and has an 80%+ rate of converting offers. Even though he had a period of spending 3-4 months at four different companies.

It bows me away. That, to me at least is a rockstar programmer.

Him, Jose Valim of the Eixir project and the guy who wrote Asciinema (one of the best examples of a web / systems project written in elixir and phoenix).

Do you have any insight into his method for procuring offers, or his portfolio that impressive?
Not really, he never worked for a FAANG, only got into Cs after doing a two year program at a solid college after getting a political science degree from NYU.
Are you able to pm any more insights? As someone that's currently having trouble even getting a response this seems insane to me.
Not the OP and I'm not in a position where I'm hiring people, but feel free to send me your CV and I'll give you some feedback. Normally if you can't get a response it's because you've got a red flag on the CV. Getting job interviews and turning job interviews into job offers is a real skill, but it's a skill you can learn if you work at it. If you want, just remove any personally identifiable information from from your CV before sending it to me -- like I said, I'm not currently in a position where I'm hiring so no need to give me any personal info.
(comment deleted)
I know right, I think he has a really solid network. Yet, all the interviews he set up required tech screens and seemed random. Only other info is that his first job was at Comcast of all places.
The funny thing is with those aforementioned so-called 'rockstar programmers', without Dennis Ritchie's creation and contributions to both UNIX and the C Programming Language, these 'rockstars' would have been totally unknown in the first place.

And no, they are simply not '10x' programmers, they're just standing on the shoulders of giants like Ritchie as well as all other programmers are standing on their shoulders too.

Sure, Ritchie's awesome.

But I'm not sure why engineers slag other engineers so often.

Most of the startups in Silicon Valley started as prototypes written by one 10x guy.

(For you HN pedants, that's called an "existence proof.")

If you don't see 10x programmers after the startup phase, that's the fault of corporate mgmt. Tall poppy and all that.

> If you don't see 10x programmers after the startup phase, that's the fault of corporate mgmt. Tall poppy and all that.

Actually, it's because building a real product is 10x harder than building a prototype.

Not to gainsay C's role, but there were a number of competing languages back then with pretty innovative ideas (check out the history of programming languages), and even if C didn't exist, something else would have taken its place.

Because a discovery is more foundational doesn't mean its discoverer is necessarily more of a genius (it can mean that, but it doesn't necessarily). For example, just because Newton and Leibniz discovered the calculus, it doesn't mean they were necessarily greater geniuses (though Newton was a genius) than mathematicians who came after.

Earlier discoveries are impressive because the discoverers had to see something that no one else saw; but on the other hand, it would have been much easier for them to make progress because you reach breakthroughs very quickly once there's an attack. Compare this to fields that are mature -- it's very very hard to make a dent even if you are 10x the genius of the founder of the field.

Comparing geniuses who were active in different periods of time is hard because it's kinda apples and oranges.

For inspiration, take a look at this list [1].

[1] History of Programming Languages: Prominent people https://en.wikipedia.org/wiki/History_of_programming_languag...

I agree that Wozniak should get more credit for both his combined and separate hardware and software results.

Two programmers that are still not fully-appreciated are:

1) Monty Widenius (MySQL, the foundation of both Web 1.0 and 2.0)

2) Antirez (Redis, also the foundation of Web 2.0)

Jack Dongarra of perhaps most specially BLAS/LAPACK fame.
I don't do development full-time anymore and haven't kept up to date with superstars in the programming world so take this opinion with a grain of salt.

I've always admired the clarity of thought of Rich Hickey [1], creator of Clojure. I wish I could point to a single article or post that outlines his philosophy, but they're all over the Internet. I used to spend hours in the early 2010s scouring the web for his writings/videos.

What I find admirable about Rich is that he was originally trained as a musician, yet has an impressive theoretical grasp of software concepts and is tempered in his designs by way of a battle-tested pragmatism (stemming from his having written software for real-world systems).

I've never written a single line of Clojure (and it's unlikely I will ever do so), but his thinking process has been an inspiration to me.

[1] https://www.red-gate.com/simple-talk/opinion/geek-of-the-wee...

Agree, Clojure has the most influence on me. There are lots of things to learn from Clojure and I don't see anyone taking lessons from Clojure people. it seems like everything is just one large MVC after rails. We are not ready to move on.
Ulrich Drepper. I know him personally, and respect his contributions to glibc. His writing style on bug tickets was blunt, but in most of the examples I’ve seen I believe he had the correct argument in the end (the exception is his calling ARM a toy instruction set).

https://www.akkadia.org/drepper/

An unsung hero of mine is John Resig... hear me out - TONS of stuff that jQuery had became mainstream over the years, and I think it did a lot to popularize things like AJAX which led to much more dynamic web experiences.

It was the first library that worked consistently well across the board, provided an easy-to-use CSS-selector based experience to query and manipulate the DOM, and had very solid documentation.

I feel like jQuery is/was a mainstay of the web and although we've seen it lose popularity over the years it's still one of the biggest game changers in my web development tooling.

He also is a key player at Khan Academy* which is one of the best online learning resources to date.

All-in-all I think the guy is an excellent example of an entrepreneurial engineer and I would fanboy so hard if I ever met him.

* Not founder of Khan Academy (doh!)

>>He also started Khan Academy which is one of the best online learning resources to date.

I agree with your points about John Resig (great choice!), except I'm pretty sure that Resig joined Khan Academy in 2011[1] while Salman Khan[2] was the sole founder in 2008[3].

[1] https://johnresig.com/blog/next-steps-in-2011/-

[2] https://en.wikipedia.org/wiki/Sal_Khan

[3] https://en.wikipedia.org/wiki/Khan_Academy

Ah thanks for the correction! Edited my comment for accuracy =)
John Resig does deserve a lot of credit for his work on jQuery and at Khan Academy. Small correction though, he wasn't a founder of Khan Academy. It was started in 2008 by Sal Khan, and Resig joined later in 2011.
Corrected! Thanks for the heads up!!
I was going to name John Resig too. He was one of the few programmers who seemed to get it, that a library should be easy to use, even fun. The function names are short, chainability helps keep the whole snippet short, the flexible arguments and graceful handling of empty sets --- all these things made it a breeze. The ergonomic improvement over its predecessor, Prototype.js, was remarkable.

The internals were impressive too. Making a library that worked with all browsers in those days was no small feat. Furthermore, in its releases, jQuery was always talking about speed --- how must faster it was than the last version. A prioritization of speed is always a good sign.

> The ergonomic improvement over its predecessor, Prototype.js, was remarkable.

It was night and day... I'd also throw MooTools in there too. Not to throw them under the bus as they were baby steps in the right direction. But, jQuery just "got it" and was incredibly well designed under the hood as well.

Fabrice Bellard: http://bellard.org

Notable: no social media, nothing like that. Just shows up occasionally with something that would take another dev probably a couple years to do.

No daily scrum.

No social media.

No code of conduct.

He just sat there.

Programming.

Like a psychopath.

In software, you get economies of focus, not so much economies of scale.

But he generally creates 'tech', not 'products' which are much harder to make.

Though of course we owe him and others like him a lot.

A bazillion times this!

Fabrice Bellard is a "programming god" in my opinion :-) The man has done so many different and complicated things that it is mind-blowing. Nobody else even comes close. I really would like to understand his thought processes and way of working. What drives him? How does he approach design and implementation? What are his thoughts on "Software Engineering"? Etcetra, Etcetra ...

Somebody needs to do a proper in-depth interview with him and get him to write a book. There is a brain i really would like to know :-)

I always get Fabrice Bellard mixed up with Daniel Lemire. Both hardcore programmers and fine writers, both have French names - although i believe Bellard is French, and Lemire is Quebecois!
I'm pretty surprised to not see Jeff Dean mentioned so far.

Co-Inventor with Sanjay Ghemawat on:

- MapReduce - Spanner - BigTable - Tensorflow

Jeff Dean Facts: https://www.quora.com/What-are-all-the-Jeff-Dean-facts

Sanjay Ghemawat is as big as Jeff Dean. It is just that he is more of an introvert and takes a backseat to Jeff in the public discourse.

Here is a great article on their partnership: https://www.newyorker.com/magazine/2018/12/10/the-friendship...

Quote: But, for those who know them both, Sanjay is an equal talent. “Jeff is great at coming up with wild new ideas and prototyping things,” Wilson Hsieh, their longtime colleague, said. “Sanjay was the one who built things to last.”

Yea it was a toss-up between the two, but there's been so little out there about Sanjay that he's hard to know enough about to emulate unless you work with him directly I assume.

Jeff on the other hand, because he's slightly more extroverted as you point out, does videos and press which makes it easier to follow him.

Searched the comments for this. I read Jeff Dean's undergrad thesis and it's super inspiring to see how skilled he was way, way before Google
Slava Pestov, who started the jEdit Editor, created the Factor programming language and now working on Swift.
(comment deleted)
Carmack is not only at the top of my list but is an awesome communicator at the same time.
Rich Hickey is the model of technical leadership.

- He reflects on the experience of programming.

- He identifies and can articulate what's wrong with our tools, conventions, and thinking.

- He builds and advocates abstractions that don't suffer from those problems.

Even if Clojure and Datomic remain obscure, he'll have taught me what I want to be when I grow up.

I might agree with you if it weren't for his misguided railings against types.
Brad Fitzpatrick (https://en.wikipedia.org/wiki/Brad_Fitzpatrick). He invented lots of cool stuff before he got heavily involved with Golang. It was inspiring to see him talking at Perl meetups in Portland back when Perl was cool.

Derek Sivers is a great developer because he shared his experiences learning (at the time Ruby on Rails was brand new). He's doing that same sharing now with a higher level of abstraction, sharing about how to think.

Yes. A fan of Brad myself. The number of things he invented (memcached, gearman, djabberd, etc.) or had a direct impact on (OpenID, PubSub in general, Golang, etc.) is phenomenal.

His website gives a better idea of his interests and involvements. http://www.bradfitz.com/

I think, Knuth. I think TeX and METAFONT and MMIX and TAOCP and so on is good.
Knuth is my favourite on several levels. He wrote the definitive version of quite a number of algorithms, and when he wrote The Art Of Computer Programming, he wrote TeX because he was unhappy with the state of typesetting technology at the time. There are legendary stories about his ability to program bug-free code on on his first try and his ability to debug other people's code while he was typing it for them on punchcards.
I'm surprised nobody mentioned Bill Gates. Building a boot loader on a flight. Solving the same problems most of us do daily, but while in school and with a lower level language. A career with operating systems.

Chris Sawyer. Built a fun, complex game in Assembly that most people can't do with JavaScript.

Barbara Liskov. Lay the foundation for object oriented back when there was nothing to start with.

Tarn Adams. Lots of room for improvement, but incredible, incredible stamina and understanding of mathematics and procedural generation.

Mike Pall

Writing a full just-in-time compiler for a dynamic language (Lua) [1] that was not only much faster than contemporary browser Javascript engines, but also faster than the Android JVM (at the time) [2].

Also porting that compiler to emit x86, x64, ARM, PPC, MIPS. All as one person.

It was so impressive that I'm actually a little curious what he's been working on now, since he's mostly moved on from the project and has (I'm sure deliberately) little online presence. Maybe some company has some amazing secret project that we'll find out about someday.

[1] http://lua-users.org/lists/lua-l/2009-11/msg00089.html

[2] https://news.ycombinator.com/item?id=2617628

Oren eini/ayende rahien. Hands down one of the best. Great at both low level and high level programming...
I have come around to worshiping the pioneers :-) Edsger W. Dijkstra, Niklaus Wirth, Tony Hoare etc.

Though i have not read all their works (nor completely understood their ideas) just the way of exposition and breadth of their thoughts, the insistence on mathematical rigour and formalism etc. always makes me think that i don't yet understand what "programming" is all about. Just slinging code is NOT enough. The idea of programming to a specification using "correctness by design" methodologies (eg. Hoare triples and logic) seems to me to be fundamental to programming. And yet most of us only follow "trial and error" methodology limited by our own lack of knowledge and discipline.

Andrew Braybrook - Game designer and programmer of Paradroid and Uridium amongst others. Prominent in the 8 and 16bit era (an age of rockstars, really) I still think about those days to inspire myself.

Kai Krause - Early Photoshop pioneer, designer of Kai's Power Tools, Bryce. I see him as a kind of artist/programmer, who demonstrated that application software development wasn't just about cranking out features, but about creating an experience for the user, a particular window onto this amazing digital world.

Matthew Dillon - Developer of Dragonfly BSD and prominent old-school Amiga hacker. Absolutely solid programmer. Wish he did more interviews.

Rich Hickey - I don't yet have a reason to use Clojure or Datomic, but I watch every Rich Hickey talk or interview I can get my hands on. Hammock Driven Development is the only development ideology that appeals to me :)