Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How old were the most talented software engineers you've met?
195 points by diehunde on Jan 3, 2019 | hide | past | web | favorite | 180 comments
Talented in terms of general knowledge and practical skills

I've met two deeply talented software engineering minds in my life, and they fall on opposite ends of the spectrum:

The first I met when I was in my mid-20s and he was about 17. Gifted kid, absolutely. He'd published a programming book (!) and could do things with JavaScript that, in 2001, nobody had even thought of doing until the mid 2010s. Totally undisciplined of course -- we hired him and he refused to follow any instructions, got bored easily, thought he knew better than his engineering manager, and was ultimately fired after about 3 months on the job. Haven't kept up with him but I imagine he's gone on to do amazing things.

The second was someone I had the pleasure of working with over the past few years. He's early 50s now and far and away one of the most productive and intelligent engineers I've ever seen. Thinks about problems deeply and thoroughly, codes quickly, optimizes when and only when it's time, and is the purest measure of productivity I know. All the lessons one learns over a career in engineering put to use. Proof that hands-down, the ageism in SV is totally misplaced when it comes to skill level -- I'd work with that 50-something over any 20-something "rock star" any day of the week.

Same story here. The most talented engineers I know are either in their early 20s or in their late 40s/50s.

Of course it's for different reasons. Something many people don't want to admit is that a lot of talent comes from practice and experience, and someone in their 40s is much more likely to have 20+ years of experience than someone in their 20s.

The early-20s geniuses I know are talented for different reasons. The ones I am thinking about are people who pick up new things absurdly quickly; pick up on patterns very easily; have general experience in enough domains to make quick connections; etc. But some of them are extremely undisciplined (which may or may not be related).

Those same people with age, gain not only experience but also hopefully discipline. A combo like that yields you people like John Carmack and the like: Not just talented, but out-of-this-world "next level".

>The ones I am thinking about are people who pick up new things absurdly quickly; pick up on patterns very easily; have general experience in enough domains to make quick connections; etc.

That's my experience as well. Generalists are often the most productive people. A good generalist can often grasp the whole system faster than a niche programming language specialist. And you usually don't need those niche programming skills for 99.9% of problems. Humans are capable of much more than the small niches companies put us in.

Generalists are generally (hrhr) ignored by HR though. They don't fit any mold so have a harder time getting hired. The most successful ones I know usually freelance.

I hire at a FAANG for two roles where we specifically target generalists: Solutions Architect (design solutions for complex real-world problems) and Technical Solutions Engineer (last line of support for really gnarly cases). Both need people who can cover a lot of ground, and it's hard to be good at either if you don't have significant practical experience and can't traverse the stack from source code to tcpdumps if needed. That said, being just a generalist is not going to cut the mustard, you're going to need depth in at least one field, plus you need to be able to talk to customers too.

Mandatory plug: if you think you'd fit the bill and are keen to explore, find me through my HN profile. Bonus points for being anywhere in APAC, although I can refer you elsewhere too.

Do you (or anyone else) know of any more resources of what a Solutions Architect is doing day to day at that company? What artifacts are they producing, how much hands on are they, do they belong to teams etc?

I have the title right now but it is a new one in the company and it is up to me to navigate really what it means for us.

EDIT: And are there any books or other resources you or you see Solution Architects recommend?

Do you happen to hire co-ops for these type of roles? I have recently had interest in consulting

> Generalists are generally (hrhr) ignored by HR though. They don't fit any mold so have a harder time getting hired. The most successful ones I know usually freelance.

I think as you gain experience you naturally become more of a generalist over time.

I've been a freelance developer for 20ish years and I would consider myself a generalist at this point, but it took many many years to get to this point.

Everything from learning the Linux basics, how networking works, various programming languages and web frameworks, database modeling, dealing with the ops side of things, and the list goes on and on. Basically I spent a majority of my life learning all of these things in a lot of detail, but most of it ended up being on a need to know basis.

Basically once you become somewhat proficient in something, you naturally start learning about some other related topic. Even today I still think I know almost nothing in the grand scheme of things.

As a specialist who is currently looking for a job, HR generally only seeks generalists. Almost all interview loops that have been standardized seriously prefer generalists. The mold doesn’t fit anyone and are just generic programming/system design questions that do not evaluate specialist skills and experience at all.

PL specialists are also pretty good generalists. I mean, what hasn’t Jeff Dean done and do people even remember that he has a PL PhD anymore?

   PL specialists are also pretty 
   good generalists.
It has also been my experience that people with a PL / compiler background are often great generalists. At Google I can think of at least the following:

Jeff Dean, Fergus Henderson, Ken Thompson, Rob Pike, Ben Gomes, David Stoutamire, David Bailey, Urs Hoelzle, Hal Abelson, Martin Abadi, Peter Norvig, Sanjay Ghemawat.

There are more but can't think of them off the top of my head. Chris Lattner is a non-Google example.

(As an aside, I see a similar phenomenon -- albeit at a much lower level of ability -- in my undergratuate students, and I've supervised a large number: top students almost always do well in / and have enjoyed their compilers course.) Why would that be the case? I can offer 3 hypotheses for discussion.

1. PL / compiler stuff is so trivial that everybody can be good at it.

2. PL / compiler stuff is so difficult that only the smartest can be good at it.

3. PL / compiler stuff forces you to think deeply about the most important tools in programming, namely the CPU and programming languages, and the bridge between them (the compiler).

I'm inclined to go for (3).

People are often into PL because they are into programming and want to improve the tools and languages used for programming. For us, programming isn’t just a means to an end, it’s an end also.

Or 4.: Most problems are about transforming A to B like in a compiler. Many of the techniques in compilers are also applicable elsewhere.

I think experience in compiler and language design is a strong signal of meta-thinking about problems and high-level abstraction. Compiler implementation requires a kind of rigorous thinking and separation of concerns to keep straight, because you're writing code that writes code, and need to model execution explicitly. Also, all edge cases and interacting features need to be considered in both disciplines - you generally can't get away with smoke and mirror demos or handwaving.

I don't think it adds up to generalist though. Generalists need knowledge in a lot of different things (though one man's generalist is another man's "full stack" web app developer), or else they're just smart people who don't know much yet.

None of the standardized interview looks test for that kind of knowledge however, they really are generic. Also, I’ve find that the really famous bigcorps don’t care as much about what you know than what you could learn, even for experienced hires. So by generalist, they simply mean someone who can learn to do anything rather than someone who can already do anything. Full stack job descriptions often come from lower tiered tech companies that can’t afford that and anyways don’t have as much specialized infrastructure as a place like google does anyways.

Very insightful: 'They are smart people who don't know much yet.' One thing to consider is that understanding only how a compiler organizes things or how a good assembly programmer understands the world is not conducive to anything but optimization. The true generalist, while able to perform binary analysis and understand executable file organization, is not tied to that. They are pattern people. Learn the pattern, see the relation.

I think whether or not you're a capable generalist is independent of whether or not you have a PL PhD. Jeff Dean is a generalist because he invested significant time in working across a wide variety of problems, not because of his PhD. If anything, a PhD makes you a specialist by default. You need to do extra work to gain diverse experience across the stack.

This is to say that I don't think you should use Jeff Dean as an argument for hiring PL specialists in generalist roles.

Google does this though. Whenever is PL PhDs get together, someone invariably talks about how they are doing ads for google these days. It’s actually so common that it has become a meme.

I don't know if I'd call that talented though? I mean, I also got the right number in the IQ and motivation lottery, but not only is that like 80% biochemistry, it's not a differentiator in the sense of doing qualitatively different things. I do all the same things as everybody else, just faster and without guidance.

But I work with people who are extreme specialists. (I don't mean in React. I mean in computer vision or non linear optimization, that kind of thing.) There is an entire class of problems that only those people can address properly; I could learn to but it would take me a couple years and the output from these years would be significantly below state of the art. In general they're skilled, not just talented, but they also work with mental models that require some amount of essential ability to grasp and that plenty of people will never be able to fully understand.

Although, the most successful developers I know (of) are both generalists and extremely talented. Their special talent is "people understanding"!

When I stopped programming I moved more into technical testing and that morphed into 'project guru' on some quite large projects. I could understand from low level network protocols up to the big fluffy clouds, I could also pick things up very quickly as I understood all the building blocks if not the latest buzz words. From my first exposure to SQL I was optimising databases better than the incumbent dba within a couple of months, and that wasn't even my job.

I loved the work, but the downside was no one ever advertised for that role despite it was very important to the project.

> From my first exposure to SQL I was optimising databases better than the incumbent dba within a couple of months, and that wasn't even my job.

That doesn't mean much, as in the not so distant past (and in some small shops even today) the resident database expert is far from experienced or even technically apt. In fact, it was and still is a job that was assigned internally to someone who happened to have anything to do with the project, who was thus forced to accumulate yet another responsibility.

Younger programmers: know less, but are more flexible learning new things; broad yet shallow

Older programmers: tired of having to be "flexible" for decades; extremely deep knowledge, siloed

Most clever programmer I saw was a guy in his 40's (in early 2000). He was a layout engineer who wrote a PowerPoint+VBA design rule checker for extremely rapid prototyping of layout ideas.

Most clever team I met was a group of 30 somethings (mid-1990s) who wrote a CPU architectural simulator that was essentially a tweak of the first linux kernel.

Most "how the fuck did you do that" was a 25 year old out of Russia who wrote a Windows 10 hack for hooking system calls for performance monitoring. He did things Windows docs said you couldn't do. All un-commented assembly. Glad I left before I had to own it!

That begs the question then, what happens to these early-20s geniuses once they are late 20s/30s?

Life gets in the way for a while: Kids. Spouse/partner. House. Hobbies. Cynicism. Burnout. Health. Elder care. Then things settle. You work through the life thing, and in your 50's you get a fresh perspective and new energy.

All of the above, plus, at most (non-FAANG) tech companies, as an individual contributor your salary will plateau when you’re around 30-35. During your 20s you’ll get used to double digit pay raises and then all of a sudden that will stop. Even changing jobs won’t give you more than a 1-2% bump as some point.

I’ve had that surreal “we really want you to stay but we can’t give you a raise” conversation too many times in my career.

Yes, this. So then those young brilliant individuals move into management because it's the only way to continue some semblance of career progression in your 30s.

Then a subset of the gifted technical individuals grow tired of management, step down and go back to the tech to do what they really loved all along.

I've met a fair amount of brilliant engineers in their 40s/50s who have been through management and decided it's not for them and are now shining as engineers again after a decade lost to leadership roles

I would also add massive family debt/mortgage to this list. I saw so many star engineers fear-driven and stagnating in their tiny comfort zones to the burn-out or layoff.

Whilst half joking I've had children around this age and I don' claim to be a genius but the time afforded to technical exploration and learning has dropped significantly while they are young.

Well, one of them now works at Facebook, another at Google, another at Amazon. The youngest one is still at a smaller company but I suspect he'll end up finding a job at a Big Five or some such.

To answer your question, they get swallowed. Google etc hoard talent, and those that can fake it. I don't know if that's good, but they definitely end up with resources to produce incredible things. Then again what would they do alone, I wonder.

Genius isn't a static quality. These things come with expiry dates.

Learning is the key to flying high when it comes to a knowledge intensive career like programming.

Its hard to do that a while. Also early 20's you just exit teenage, and a have degree of naivety and foolishness. That spark goes with time. And you become more intelligent, calculative and serious to stop experimenting the way you are before.

But mostly, they stop learning. That's what causes the downfall.

It would be interesting to know what the 50-something was like when they were younger. Did they have the characteristics of the 20-something rock star.

I was something of a rock star when younger, but I like to think that even if it turned out I was not Paul McCartney in talent I was at least Paul McCartney in affability.

I've worked with fortysomething guys that were "10x engineers" or "rockstars" when young a few times. One of them was very smart but really kind of a one trick pony engineer, he kind of always wanted to use the same hammer to solve every problem and that got in his was of self improvement and awareness. The Dunning Krueger effect was strong with him.

The other guy is kind of a legend and never ever stopped being a rockstar and kind of rockstared a few new fields and technologies again. He's also really humble but at the same easy knows exactly what he can do and what he can't do and is very good at always being at 100%.

I'm a 50-something, recently retired but still programming for fun and non-profits. "Rock star" meant something different 30 years ago. Less was expected of you, but also the tools and technologies weren't there to help you. No databases in the cloud, no google or stackoverflow. You had to wait for books to come in and hope they had the information you needed, otherwise you took a week and figured it out for yourself. My very first job, my IBM PC clone had two floppies. My code was on drive b:. I would put the editor floppy in drive a:, edit, then put in the compiler floppy, then the linker floppy. Programming in C, manual memory management. I was good then, I'm good now. Lessons learned then no doubt honed my skills in general, but I don't know if I "use" those skills nowadays.

Please don't say "rock star". It's such a tired term, right behind "ninja".

Please don't police other peoples' speech.

Thanks Mom.

This isn't Reddit. Please read the guidelines: https://news.ycombinator.com/newsguidelines.html

Specifically, "Be civil. Don't say things you wouldn't say face-to-face. Don't be snarky. Comments should get more civil and substantive, not less, as a topic gets more divisive. "

Thanks Dad

Damn this insubordination!

Totally undisciplined of course -- we hired him and he refused to follow any instructions, got bored easily, thought he knew better than his engineering manager, and was ultimately fired after about 3 months on the job.

Or in other words - apparently quite talented as a coder; but as an engineer not so much.

Nope, sorry, but being an asshole doesn't make you less of an engineer. It makes you a poor choice for a team and a bad hire, but that's a different story.

In other industries it's better defined, you pass the exams, you get the right to use the title. The software industry on the other hand is using the term engineer too liberally - we basically just invent those titles for ourselves, consultant, engineer, architect - but being an engineer still primarily means having a certain level of technical expertise in the field.

And btw, in every industry you have those lone-wolves characters who are arrogant and hard to work with, but they get tolerated because they can solve hard problems better than others. I think you get even more of this in other lines of work, because in programming those types are usually not as crucial resource as in say maintaining some old machines that only they know how to keep running properly. May dad was a civil engineer and he had quite a few colleagues like that, and while no one enjoyed working with them, they certainly respected their expertise and would never say that they're not engineers, just bricklayers.

being an asshole doesn't make you less of an engineer.

The issue wasn't that he was an "asshole"; but that he was undisciplined.

He was undisciplined when it came to listening to authority. He was not undisciplined for learning or for solving hard problems, which is what make you a good engineer.

I think the missing word here is “insubordinate”.

To be fair, he was 17. I think you learn a lot about how to be an employee on the job.

I was exactly like that at 19, sans genius. I spent way too much time on the "fun" parts of my work and not terribly much at actually getting work done. I'd also push-back on managers pretty hard. As a result, my first two jobs involved me coding alone on projects of negligible importance.

I remember when I was 17, honestly even if I was a genius, I would have been horrible to work with.

I'm not damning his character. Or even questioning his character.

Just saying, from the thumbnail description given of his work habits - you couldn't quite call him an "engineer".

The ageism in SV has very little to do with actual talent and productivity and much more with how the team feels someone can handle themselves at happy hour.

Don't forget be at work 80+ hours a week to impress the VCs.

"He's been at it for four days straight. He just re-wrote our core code five times and it 20% faster. never mind it still doesn't work right but man is it fast. And he works for lottery tickets."

I think there's three components to every employment position:

- sufficient work ability, rarely an issue.

- teamwork - at work interface, negotiating, empathy with others. be relentlessly resourceful and useful, but get yours too.

- off-the-clock skills and interpersonal/appearance likability - a bunch of awkward single dudes can't say "no" to the socially-calibrated dude who goes out and convinces a bunch of attractive-enough females to hang-out with a bunch of random engineer dudes. be that guy, and you'll have friends bugging you all the time... turn your phone off and rock out to Spotify. :D

How the fuck does convincing a group of women to hang out have anything to do with work? It doesn't and the idea that it should is the cause of lots of huge problems in this industry.

What if you have only the first two? Remote work only ?

Uhg, I'd love to be that 50 year old when I arrive at the age. Sadly, I feel like I'm sliding backwards. Oddly, I feel like I was a better, more thoughtful, certainly more energetic developer in my 20's.

I think some of it may be that each job I've taken has forced me to change language / platform multiple times. I'm an iOS, android, C++, C, Java, and python developer. All on production level code. Never an expert of any.

I decided early in my career to specialize on a technology stack so I could generalize over the entire stack. About a decade ago I got my first job on the Microsoft stack, and since then I've done 98% of my work on it.

It has it's disadvantages I'm definitely looked at as an old fuddy duddy because of my language choices. I'm pretty locked in, so if .net dies I'm gonna screwed while I come up to speed on the next big thing.

But it has its advantages too. I'm able to go deeper on a bunch of different parts of the stack than I would if I were having to jump around more. Web, desktop, services, database, mobile and even vba in Excel. There's no way I could be as proficient across the stack as am if I had to be proficient in different technologies. And it's allowed me to feel pretty confident addresssing any business problems as long as it's on the right stack.

I was wondering if you could give me a little advice as to what I should focus on to more specialize in the Microsoft stack?

I'm on a bit of an unusual track into software engineering, having started in finance and first teaching myself to code via VBA and SQL. That coding led to me getting a second degree in computer science, which I'll be finishing this year (and I now know way too much about VBA).

All that of that preamble to say that I've had a ton of experience with SQL Server, VBA, Excel in my old life. I think I could be a pretty good candidate to fully immerse myself in the .NET stack. However, my school doesn't touch much on the .NET technologies, focusing more on JavaScript, Python, and C++.

Would it make sense to focus on C# and move on from there? Or there other things I should know well? Do you use much PowerShell? Javascript?

Thanks! Sorry if this was a bit long.

I'd be familiar with c# but it's an easy language, and there are tons of devs with c# experience.

But I'd mainly focus on JavaScript/TypeScript. And if you're about to graduate then focus really heavily on react or angular. Microsoft shops are drowning in .net talent/experience but are starving for good front end devs with deep angular or react experience.

And I wouldn't bother with powershell at all, unless you have wanted to move away from development and towards infrastructure.

I can attest to this. Having worked in an finance shop myself, there were numerous .NET engineers there but none of which had relevant experience with Angular/React + Typescript.

This is really helpful, thank you. I've been diving into heavy doses of JavaScript lately -- I'll continue with that and augment it with TypeScript and React too.

This makes sense. MS office is moving to the “cloud” and extensions are now programmed in JavaScript or TypeScript (also a Microsoft project).

I did the same thing for the first half of my career - ASP.Net and C#. But with the fall of WebForms and the rise of MVC, I had to spend a lot more time on front ends (mainly cheap clients didn't want to pay the licenses on Telerik and the ilk), so I had to learn real html and javascript (albeit only jQuery at first).

Now I primarily use those tools on personal projects, and spend most of my day consulting on HOW to develop a project, and only able to get my hands dirty a couple of hours each week. The rest of the time is spent with management "architecting" solutions.

I think programming is one skill it doesn't change much by language if at all. So if you have a good grasp of OOP principles you're on a good path.

Totally same experience.

Young gifted hackers and old experienced veterans.

There aren't much to say about old veterans. They write bullet-proof code. They are stable. They are good.

The young hackers... they are so unstable. Their code is unmaintainable. But they can achieve things we thought impossible or too difficult to even consider implementing it.

They are usually mentally unstable. They usually suffers multiple mental issues like sleep disorders, development disabilities, bi-polar disorders, ADHD etc.

Looking at them, they are like burning their life to achieve short-term gain.

Anecdotally I'm so curious about this 17 kid and what happened to him.

I wonder if this loosely follows the whole Dunning-Kruger graph: https://i2.wp.com/thephysicianphilosopher.com/wp-content/upl...

Except when you're young you're full of confidence because you know you're good. It just takes you ten years to realise that in order to use it efficiently you have to learn how to get the most from others / let them get the most from you? By the time you're in your 40s/50s you're coming up the other side - still just as talented, but now you can work with people as well?

I spent a decade working with some very talented people in my mid-20s to 30s, and they aged along with me?

The single smartest person I worked with, the guy who wrote a h265 decoder by himself and did Project Euler problems for fun, was also in his mid-30s and worked 4 days a week to spend more time with his family. He was a mathematician by background though, and they tend to peak early; intellectually I think he would have been capable of doing all the same things at 16 given time to learn the prerequisites.

From exposure to a lot of smart people at Cambridge, not just in software, I would say that the biggest impairment to turning smartness into results was depression. The second biggest was lack of common sense - it's very easy to be convincing as a smart person, and if you're convincing to yourself and others about some piece of unconventional wisdom that turns out actually not to work, it can go very wrong.

Can you give an example of what you mean by common sense?

I'd prefer not to, because the examples I had in mind were from people's personal lives and are likely to generate needless controversy.

Wisest dude I've ever worked with was >50. Sharpest was probably a friend I grew up with, he was writing C before he was 12! Some mad productive cats from 30-45 too.

E: had to come back and say that the best PM's I've worked with have all been >40 year old women who have bigcorp experience. They don't take shit from anyone and protect their people.

I have also seen the same regards to engineering mangers. The best ones have tended to be older women with either bigcorp experience or have been in the current company for a long time. They know how to maximise the developers productivity and do a good job of allowing the dev to focus on work instead of attending stupid meetings and makes sure to fight for your stance when needed.


I always wonder about ageism in tech referenced regularly here. Without a doubt the rockstars I know are more experienced and consequently older. If you exclude older software engineers you're probably excluding the best talent and thus can't claim to hire only the top x% of talent.

Note: I don't belong to this group in age or talent.

I work out in Asia and over here a big reason for ageism in tech is a misunderstanding of development talent, there is a belief that coders are coders and that's all there is to it, young coders tend to be willing to work longer hours and basically work until they burn out so management sees them as the superior option since salaries and benefits are lower.

edit: Since I'm getting down voted for whatever reason here's an article that is along similar lines https://www.bloomberg.com/news/features/2018-05-02/china-s-t...

This is something that doesn't seem real in your 20s, but a realization in your early 30s.

Edit: There is an important balance to keep the enthusiasm of your 20s for a long time, and keeping a little wisdom of recognizing those situations that want to take advantage of a few years of your life in your 30s and being a little more conscious about it.

Where in Asia? I imagine the culture is pretty different depending on the country.

How does that work exactly? If no one is willing to pay higher salaries then the salaries aren’t higher. Senior people would presumably take junior pay over unemployment.

Junior developer salaries here are low enough that people just change industry. It's also not just about the salary but the way that they work. That all being said there are start ups out here that do look for experienced devs and pay accordingly, my previous comments mostly relate to large local businesses.

Some companies tend to hire only junior devs for junior positions. The argument is that, once hired, senior people complain about being paid lower than a less experienced dev. Some management does not want to deal with that. I know it sounds stupid, but that is what I've heard from some of my seniors.

Most talented were a russian(18 year old) and two brits(early 20's) with whom i have worked with. But i would say talent doesn't guarantee more productivity. In fact in most cases it can have adverse effect on productivity.

Let me list few points:

# Tend to deviate from task and try to fix functional things which they think are not elegant engineering

# They are motivated to learn new technology so they will squeeze one without thinking about long term side effects like shipping delays and maintenance issue

# They think they will be productive working alone and mostly avoid collaboration which can be very costly down the road

# Failing to understand that trade offs to achieve business goals is a good trait to have

# Code maintenance doesn't motivate them like new shinier stuff

# Can slowly turn the business to be people dependent

# Going over board with code reuse and in the end introducing too many dependencies

These are shit programmers. Complexity != talent.

Most gifted talent in my experience exhibit these negative traits which impact productivity. If you have a counter point based on your experience - would love to hear that.

I think his point is that truly intelligent people would know better than to do this because it requires more holistic thinking (i.e. accounting for the reality of other people). The person you’re describing may be intelligent in some ways, but not enough to zoom out and understand the bigger picture.

Elon Musk is another good example. Someone who is so much a victim of his behavioral impulses and savior complex that he’s a catastrophically negligent leader, as recounted by Tesla employees in a recent story.

I’m of the opinion that you’re not truly intelligent if you are unable to recognize and correct for your own character flaws.

That is the subtle point i was trying to make. In most cases talented young people are easily noticed and usually given more credit than due without measuring the overall contribution to productivity.

Eventually most with the tag will mellow down with experience. But when that switch slowly happens - many would hardly notice anything but a seasoned bankable asset.

Two very different examples come immediately to my mind. These remind me of the fox and hedgehog kinds of intellectual. The fox knows many clever things, while the hedgehog does one thing extremely well.

The first was a 65-year-old DBA I had the honor of working with on Aviation Logistics Systems for the Coast Guard. He was a brilliant architect who re-engineered our database to accommodate any asset and any business rule the organization could throw at us. He had been programming from the days of typing out code on paper and then renting time on IBM mainframes to see it run. He did one thing, database administration, but he was a genius at it. He was a hedgehog.

The second is a 20-something full-stack developer I worked with for six months. He built a laboratory information system that was visually dazzling. It blew customers' minds. I found supporting the code was overwhelming. There were dozens of frameworks at play with layer upon layer of abstraction. Making even small changes to the business model would take me hours to implement. I bowed out of the project, and watched him put in 80-hour work weeks developing it for years. He eventually sold it for a good deal of money, but there was definitely a tax on his health because of it. He was a fox who knew a lot of different solutions and how to patch them together.

Both of these were brilliant developers with very different approaches. I know foxes in their 40s who know how to balance work-life (I consider myself one), but all the 60-plus developers I currently know are hedgehogs with a deep institutional knowledge that makes them invaluable to their organizations. That said, I think we will see foxes in their 60s in the future as full-stack developers age.

> There were dozens of frameworks at play with layer upon layer of abstraction. Making even small changes to the business model would take me hours to implement.

Does that really make him a good software engineer though? Clearly a smart fellow, but in my experience, code maintainability is absolutely crucial. A system that isn't maintainable, no matter how clever at the time, will quickly become old news if non-genius level engineers (like myself) can't get their head around it.

Universally 35+. Several in their late 40s, a couple 60+ (tenured professors and the like). You know how books or movies that talk about martial arts masters use phrases like "no wasted motion" and "elegant grace"? Yeah. Like that. But with architectural design docs springing fully-formed from their foreheads and data manipulations that reveal their meaning in a single line when I'd have needed a page.

Edit: Oops, forgot one. Senior PhD student in my lab while I was in college. Might've been 28 or 30 at that point?

I actually haven't met many being a scientific programmer in a science with little need for programming. So, I guess I'm the most talented. I was at my best in my 40's, but at 72 I'm still very good, but slow.

I saw Miles Davis play a few years before he died. His band was all young, playing hard and fast. Miles walks slowly across the stage and plays one mind bending chord on a keyboard and the entire mood changed, totally reconfigured the whole composition. Conservation of energy. Coolest MF ever.

Care to tell what makes you slower, compared to your 40-ies? We need to prepare ;-)

Not the OP but to me, as best as I can tell from some self-analyzing, as you get older your brain just doesn't fizz and spark like it did way back when. It works in a different way - more pattern recognition, less raw grunt. Could be because of biochemistry, or maybe just that you don't have the blissful ignorance of youth, you know there are limits, you don't tend to just hurl yourself against the fences quite as readily.

Another factor might be that the industry has changed substantially, which makes you feel slower by comparison. When I started out, there were few libraries or open source. To do anything, you knuckled down and churned out code, a lot of it. These days the first step in any greenfield project is a lot of Googling, and your job is more about identifying products, libraries, APIs and stitching them together. I personally find that a lot more frustrating because of the context switching - hence feeling of slowness, less time churning out your own code.

I think this might describe what you are referring to: https://www.sciencedaily.com/releases/2017/02/170206155947.h...

I heard somebody say that as you age, you rely more on memory to infer the correct decision whereas when you are young, memories are few and decisions based either on gut feel or the current context.

I guess that means that older people are more likely to do something they have already done because it is familiar and will work rather than do something that might be newer/better/faster but which would only be deduced by more abstract analysis?

There's still a lot of nature vs. nurture to that. A lot more experience = a lot more failures.

"A lot more experience = a lot more failures." YES. Your failures both form you and inform you at least as much as your successes.

They also make you more pessimistic. Maybe rightly so.

I look at that differently. My favorite epigram goes like this:

Very few worthwhile projects are ever successful on the first attempt. Failure is just another useful metric giving guidance on the re-formulation of the problem and the solution. Failure has nothing what-so-ever to do with guilt.

For the longest time as a young man I did not understand this. I though something was wrong with me because I failed so often.

Question: do you exercise? https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3951958/ Let's not lump all older people into the same cognitive malaise. Disclaimer: I'm in my late 20s.

I do. I climbed stairs for 45 minutes four days a week for 2 decades. At 70 I was doing 1780 steps at a time. After my metatarsals complained, I began interval training on a stationary bike. During the summers I scramble up and down the Klamath Mountains looking for gold. It won't last forever, but I'm ok for now.

Most of us from 50-75 are capable of rolling our own. We did it in our 30s and edit it. Hope that answers any questions regarding reuse, language adaptation , etc..

It's the cumulative effect of lots of things. When I pose a question to my subconscious, it takes longer to get an answer. I make a few more mistakes, especially jumping to conclusions. It takes longer to debug them. Sustaining a train of thought is more difficult as my ADHD is a little worse, but writing out my thought processes (often in Q and A form) helps tremendously. Getting a synoptic view is definitely harder. All these things slow me down.

On the other hand, 51 years of adapting to new technology has strengthened my confidence that I can cope with problems. Having lost the usual confidence of youth, I have replaced it with determination based on the repeated experience of failure and the knowledge that I have overcome them. It's a different kind of confidence.

I am greatly envious of the education you folks have, but I make do.

Thanks a lot for your answer!

I wonder whether you may be too hard on yourself, how much of this should be written off on the today's objective conditions, and not on subjective aging. I am over 50 and am genuinely interested in the discussion, as I have to maintain my employability for long time to come.

> When I pose a question to my subconscious, it takes longer to get an answer.

This! But I always felt my subconscious gives answers more eagerly the more I load it. These days I cannot load it to the same degree as when I was younger, but there are good explanations: a) the nature of the job is different, nobody will let me go off radar, people now have to take calls even on vacations, let alone in the workdays. b) the nature of issues I am solving is also different, more system-wide now, it is hard to have all the knowledge about a bigger system, and complete knowledge is required to load the subconscious IMO (I think you see what I mean).

> I make a few more mistakes, especially jumping to conclusions

No questions about that one ;-). However, I managed even to extract value out of it. I am debugging issues in complex systems without expensive equipment and frequently without an access to them. Every once in a while I jump and don't land on the target, but overall balance looks good enough for my employer to keep me.

> Sustaining a train of thought is more difficult as my ADHD is a little worse,

But again, isn't the way we do things these days simply very different, prompting this? I recall in my young days there were a dozen of us in a small room, and one could hear flies, well, fly. Also (am not nostalgic of that), not having cheap direct access to the computer (it was either batch submission or the night shift), required careful planning and bracing for any possibility. Now it is much easier to "just rebuild and try", but turns out, this doesn't always save as much time as one would hope.

What science has little need for programming these days?

It's a comparative thing, but I worked as a geologist/programmer. Nobody can avoid using computers. They are just so damn useful.

When I met him he was 30. Very skilled engineer and he’s on one or two AWS talks for “how we use AWS”. He was also a terrific manager to me but left because he wanted to spend more time developing so he’s now an early employee at a startup.

The second one was the CTO of a company we acquired. Truly the intellectual superior of nearly every person I know. Mid 30s. Helped write a well-used standard.

Funnily enough, while both were great at the leaps of logic often necessary to build new exciting things, both were also remarkably well-disciplined in code. People often tell me that writing good commit messages or variables, indenting their code, writing tests get in the way of their expression or iteration. These guys just did it in passing. I’ve watched them work and they didn’t consciously do it. Like a Navy SEAL and trigger discipline. It wasn’t exceptional. It was the default.

Oh and, the young chap who was 21 or so when I was a grad student who wrote lots of cool utilities at uni. Once, in my insecurity, I remarked that I’d love to work on stuff like that if I had the time (being a grad student). He told me I should make time if I actually loved it that much. Graybeard wisdom from a child. Well, it was good advice.

“Talent” I would say has been invariant with age. I’ve met very young (teens) and people in their seventies who show obvious talent. It also seems to hold, those young talents are still exceptional 20 years later. For knowledge and skills (perhaps we could call that “wisdom”?) that seems roughly linear with age, perhaps plateauing somewhat as skills learned earlier become obsolete. Productivity is kind of another axis, I’ve known prolific and successful developers who I think are of only middling talent, these almost always did better while young. (For context I’m 49 now have been working in software since my late teens.)

I've worked with a few, and they've been a mixed bunch.

One of them was one of the nicest guys I ever worked with, and his mind had a real understanding for what we do. When he learned something, he learned it well, and understood it deeply. A few weeks after being introduced to regular expressions, he had learned them to the extent where he could implement complex expressions, alongside knowing the differences between implementations in C#, PHP, and JavaScript. He was also very helpful, and despite being considered a junior-level dev was helping the more senior-level members of staff all the time.

Sadly, he had his own demons. One day we were all called into a meeting and were told he wouldn't be coming back. He had been battling drug issues that had resurfaced due to the heavy amount of painkillers he was taking for past injuries. Work had discovered that he hadn't done anything on a project he had been working on for a month, and when challenged on it he quit. This was a number of years ago, and by all accounts he's still without a job and lives with his parents.

One other is smart, but in a different way. I met him when he was a contractor at one of my old work places. At the time, he was brought in to do some Flash work, and after a work night out he told us that he didn't enjoy programming, so he made the decision a few years back to learn legacy tech. He had no interest in learning the best/most popular languages, only the most lucrative, because "you won't earn shit as a standard dev (in the UK)". I still talk to him a few times a year, and it's a gamble that paid off very well for him. He travels across the country and the continent working on things like ActionScript for shop kiosk displays, enterprise-grade Salesforce builds, and ColdFusion support and development. In terms of smarts, he's not the best developer in the world, but you have to have something about you to decide to go against the grain and back technology that many developers actively fight against.

My definition of talented changed: it used to be very obviously smart people that could solve ‘shit’ fast. But those (and I was one of them) suffer from a lot of issues (the ones I met anyway; I am talking about having worked with roughly 400 software engineers which had a few of these); the most annoying one (for me at this moment being) that the throughput is very inconsistent. These were 17-23.

Now it is people who consistently deliver high quality, well thought out software. The speed matters far less to me (or my clients). These are over 40.

I can honestly say that the two most intelligent programmers I have ever met are no longer programmers and not even in tech related jobs now. I try not to think about this, it makes me wonder what they figured out that I haven't.

Reading this comment just made me realize the same. The two best developers I have worked with no longer write code.

Let me tell you what it is. They were not in charge. They designed for love of the design, performance|correctness and the output. They did not design for other people. There is no joy in designing for another persons expectation based on experiences that person had with other software.

IMHO...I think that there is so much waste in the lead-up work that comes before the programmers get their hands on it that it can be very satisfying to move out into the roles that prevent that waste and help the programmers make more valuable things.

Ok, i think we all want to hear more about this.

Most were early and mid twenties; they were my colleague for at most a couple of years before moving on to e.g. Google in Europe or SV startups (working from Ireland until he could get a green card). Another one was iirc late twenties / early 30's, great Scala developer - perhaps too good because his work didn't really land at our customers because they couldn't find any developers that could work with it. (that's more down to Scala than the guy though).

But I don't actually know any developer above the age of 40. If they do anything it's code challenges like Advent of Code, but they've long moved on from software development to e.g. architecture, management, coaching, etc and making more money through that - and giving off an air that they're much more content and at peace with it - than they could with software development.

I'm in my early to mid 30's myself and I'm pondering what I'd like to do beyond software development, I've had enough and ten years of making websites without an opportunity to branch out wears on you.

Hey! I’d actually say that’s a... reflection on your friend. I thought for a couple hours about whether to reply to this comment, and I ultimately decided that writing maintainable or readable code in any language is the engineer’s primary responsibility. So if nobody could maintain this person’s code after they were done with it, maybe they were truly brilliant, but not so good on the “raise up the others who come after me” part of engineering :/

I’ve seen some kids on the internet doing crazy algorithms stuff. But I was like that at that age too - at 16, 17, 18, I was able to do a lot. But I’m much better now that I’ve hit 30. I don’t really do any algorithms anymore, but my code is cleaner, I resolve tickets quickly and with robust, tested solutions, and I can anticipate business needs and problems that relate to my job way better than someone without professional experience.

There’s a lot of people like that - the best blogs are from devs in their late 30s or 40s. The answer is basically that older is almost always better.

How about this 9 year old speaking at ReactNYC: https://www.youtube.com/watch?v=mbiryVTIJ4Q

edit: removed gender

WOW. What blew me away was not his programming skills, but his ability to explain. There are many levels to understanding, and you can tell that Revel intuitively understands not just how to build things, but also how the code is working on top of that. From the very beginning he speaks so confidently and concisely that you can immediately tell he's a genius. Big contrast to many other "child prodigies" that I've seen.

Revel is a boy

One of them is a friend of mine who is around 55 now, maybe 57. He's seen enough shit that he knows how design scalable, maintainable and well-documented software. He wrote this:


The other one is around 40, I think, and he's both one of the best business people I've ever met, easily the best manager and best developer as well. I have a suspicion that he never sleeps, as I've never seen him asleep.

This is kind of an odd question. It only indicates how old they were when you were lucky enough to meet them. Presumably, that person has been gifted before and would be gifted after as well, not just when they were XX years old.

I would be interested to know the trajectory these engineers had as they aged. Were they average until they got some experience under their belt? Genius from day one, but productivity improved? How did they develop over time and what were the predictors of greatness?

As a general rule: Old enough that I feel that it would be rude to ask their age. Wikipedia entries for three of them indicate 41, 52, and 64, though.

Please don't treat old timers any differently than anyone else. If you're comfortable asking someone in their 20s what their age is, you should figure out what is making you hesitate for someone past a certain perceived age.

I'm not comfortable asking anyone their age. Someone in their 20s, could be perceived as experience-shaming (I am in my late 30s).

I know what's making me hesitate: In my culture it's generally considered rude to ask someone older than you what their age is. (And the larger the age difference, the ruder it is.)

Cultural factors are important. I would just challenge you a little to consider that some people who are older than you might not like this cultural tradition. I don't know if there is a polite way to find out, but I personally don't feel like an older person. Even my Mom doesn't feel like an older person! Being treated like an older person when you still have that same young enthusiastic person inside of you can feel like you are being excluded for nothing more than how you look.

Mid 30s. I'm thinking of someone in particular for that who taught me a lot of stuff that really improved my process and code cleanliness. At the time I felt like I was really hot stuff because I was hired as a "junior programmer" but was managing all the code across a few languages for an entire tech-based company. He was hired after the company hired half a dozen other programmers and he really helped all of us improve our skills in just a couple months. He then quit because the company wasn't taking his advice, and went back to freelancing. (Advice that 2 entire programming teams agreed on at that time.)

There was one programmer in his mid-20s that many co-workers thought was amazing, but I thought he was full of himself and produced overly complicated work that even he had trouble fixing and those around him found impossible.

Below that, I know of programmers who are very quick to learn things but just don't have the raw experience to really take care of things on their own yet.

May I recommend “The Talent Code”?

It’s an excellent book discussing the concept of “talent” in the context of practice and quality attention.

The word talent implies something one is born with. Turns out that how good one is at something has much more to do with the quality of the neuropathways generated by specific practice habits.

Talent exists, and is very real. [0] Talent is immensely important, and I find that there's a growing movement to dismiss it and pretend it's all about hard work.

Most people can get pretty good at a particular task if they dedicate enough time. But you're never, ever going to be as good as Magnus Carlsen, Terrence Tao, Michael Phelps, Euler, or DaVinci just by hard work and a positive mindset.

[0] https://slatestarcodex.com/2015/01/31/the-parable-of-the-tal...

You don't need talent to be successful. Not every chess player is as talented as Carlsen but there are several thousand chess players making a living as professionals. Using talent as a prerequisite to success in a field is just dishonest.

Put two people on equal effort paths, the talented one is going to come out ahead. 100% of the time.

"equal effort" in your sentence is very important. Effort is rarely equal and life is not a simulated situation like a race. Success is not a one-variable equation that can be solved with "talent".

It's a bit hard to answer, because the most talented I know became more talented as they aged (so I'm tempted to answer their current age which is 30s or 40s because of my own age range) but they were definitely noticeably more talented than their peers when young, too. They would have been decent hires at 17 for those who were coding then -- not better than the best experienced people, but decent, definitely leagues above other first year students.

Some of them weren't coding until 25 or so but in that case same applies -- they were noticeably very competent at 25, and better at 35 than they were at 25.

Obviously motivation, desire to stay in tech, specific technology stack, etc, varies.

He was probably mid thirties. I watchrd him grow as a rock solid engineer. He consistently blogs, and owns a database startup among other things.

http://ayende.com is him. Have infinite respect for him.

One very bright guy maybe still in his 30's.

Otherwise, 40's and 50's.

Not just experience. Problem solving, including creative thought. Practicality. Reduction in B.S. -- although that can cut both ways, with age, depending upon the person.

P.S. A lack of ego/defensiveness can also be very helpful. It becomes about fixing the problem, not excessively defending one's turf and an unrealistic reputation.

P.P.S. Younger people can have these things, and be quite excellent. Maybe a bit more insecurity is still common -- whether overt or over-compensated for in expression. I spent a lot of time in BigCorps; that may have influenced the demographics of my environment and thus my observations.

I work with a 'rockstar' programmer in his mid 30s. This guy can hammer out good code ridiculously fast and probably does close to half the total work on our team of 8.

Worst person I've worked with is >50. Second worst was <25.

Best person I worked with was in their 20's, second best in their 40's.

I think it matters less about age and more about mentality.

17, ~25, ~30, ~40, ~45, ~65 and even ~70. I think it depends on the personality property of curiosity to delve into the software-hardware stack turtles of details all the way down and not see anything as a real barrier that can't be overcome with effort.

There's something to be said for lots of experience shipping product under a deadline, politely questioning technically-expensive features that wouldn't be good for the user and managing stakeholders' expectations.

About 10 years ago I attended a small local conference in Poland and met a guy who came there with his ~10yo son. As it turned out, the father was only an escort.

The kid was the most active person from the audience when it came to QA sessions after the talks. He asked genuine and interesting questions and spoke from his own experiences about building web apps and browser extensions.

I've never met anyone like him, even though I worked with some really good engineers in their 20s and 30s.

Ive worked with 100s of developers, and 2 stand out. One was around 60 and the other was early 20s.

The one who was around 60 would think through problems at a much deeper level then the entire team. I remember one instance where most of the senior members of the team had been trying to figure out a pretty complex problem and we had little luck. He walked in, we explained the problem, then we went for lunch. Once we got back to the office he submitted a PR a few minutes later, essentially avoiding the problem all together. This guy knew everything from low level computing, to the newest JS trends.

The second young guy was a front end specialist. I have yet to meet a developer who could write code as quickly as this guy. He wrote an entire front end in 2 days for a project I had budgeted a month for. 0 tests, but I could not find a single bug. I taught him how to write some tests, and 24 hours later the entire thing had unit tests, integration tests, and he had refactored some of the code so it would be easier to test. My jaw dropped. He had no formal education, attended a boot camp, and in my opinion was more valuable to the team then I was (at near 3x his salary and 15 years more experience!).

Late 30s up to late 60s for people who consistently do stuff right on the first try regardless of complexity ( and I only say late 60s because everybody over about 35 has a pension in our industryn so they all retire when they hit their 60s). In aerospace there isn't as much age discrimination as on startup culture, and we are blessed with a lot of these fantastic senior engineers.

One of the most talented engineers I ever met was 24. He built a 3D engine in JavaScript for fun as well as a raycaster for fun. He also enjoyed challenging himself in all sorts of interesting ways like doing Advent of Code in C++.

What's weird about doing Advent of Code in C++? You'll find a sizable number of the people on the leaderboard do it that way. I think it's partially due to competition programming habits dying extremely hard.

Of course, Python is by far the most popular, but C++ isn't that much more verbose.

it depends, I think some people do advent of code did it as sort of race every day, in which case I think C++ would be a pretty big challenge IMO.

I've met two that made my jaw drop. One was a guy I went to university with, 19 yo first time I met him, who was extremely good and had been running his own web developing business as a side gig since he was 16 (for Swedish readers, just to get a sense of how good he is, he made www.breakit.se in 2014, no idea if he's still maintaining it though or if they've switched to a different stack). I haven't heard of anyone who knows who he is know in this city who's also seen a better JS developer. However, he was a real pain to work with. If you didn't work quickly enough for his taste he would tell you to move away from the keyboard and he'd show you how it's done. He also did not like compromising with other people in discussions and he liked to do other people's tasks without telling them. Despite that, I recommended him when my boss asked about him with the caveat that he should ask honest questions about expectations on the work culture, specifically team work. Turns out he insulted my boss and my company pretty quickly in the interview. My boss told this guy about how we've worked hard to do continuous delivery the way we do today and this guy laughed my boss in his face and basically said "well, you might win over a lot of people who write software for the government with that story of how you guys put on your big boy pants but I do six deploys on a bad day". Apparently he instead went to a game studio and is a better fit at that place.

The second dev who took my breath away was a man in his late 40s who had consistently moved from companies as soon as they wanted to put him into management. He loved to code and was very good at it, but for some reason management wanted him to make room for younger hires (can anyone with more experience explain why that would be the case? This man has 20+ years of experience and loves to code, shouldn't he be more preferable to some kid?) so he was able to leverage his contacts he picked up as a consultant to change into high paying developer jobs. He was very understanding of how bad I was when I started out as a developer and was my mentor for a long time and his discipline still inspires me. It was an honor working for him, why people want to make such a good developer into anything but a developer, I'll never know.

I have a strong bias: the university crowd (haven't seen old programmers yet).

One guy who was about 24/25. He came in already experienced in creating extensions for clang and LLVM. He wanted to do a masters in cyber security. I told him to get a job, but we became friends instead.

When I wrote my first if-statement for an operating system course, he finished the entire program. It was unreal to see. Funnily enough I was quick enough to read his code and to see where he'd be sub-optimal in his architecture.

Why do these people even go to uni when its such a waste of time. I went to uni for a year and learned absolutely nothing because it was all so incredibly basic that its only useful if you don't know how to learn on your own.

Some people use the university not only as an opportunity to learn but to nurture friendships and connections that last for life. You are only young once, why you have to hurry to jump into the rat race? Especially someone whose identity is so tied with their ability to "be a good programmer" it might be a great chance to digest new perspectives towards life. Also if the bachelor level courses felt too easy you should probably haven take some master's level stuff.

The most annoying type of people in CS studies I encountered were those who thought they "knew it all" yet in fact, in the large scale, they knew very little. And whatever knowledge they had they often communicated poorly, perhaps disparaging others for not knowing what they did.

I wasn't aware that there was any way to skip the basic stuff.

If you followed only the first year then yes, you've wasted your time. Things start to get interesting in the years after that.

Most of them >30 years old. Some were a bit younger, I have seen some raw talent at earlier ages, but their usefulness were severely limited because of lack of experience.

Late 30s through mid 50s.

They've all had diverse experience, were great mentors for younger engineers, very adaptable, and mostly dependable... especially during crisis moments.

First is an early 30s guy who currently works on search and NLP (amongst other things) and has a PhD in mathematics. He optimizes things for fun, and does it with the same flair and ease a musical virtuoso would do variations on chopsticks.

Second is a mostly retired RPG / CL programmer in his 60s who occasionally contracts to IBM i shops and can make that platform sing like a supercomputer on steroids.

Both are inspiring in different ways.

At any American company if you are past a certain age you are perceived as expensive and slowly ushered out, regardless of talent.

The guy is ~35 in the Air Force Research Lab. My group would work on a project for days before he'd come in and show us a better way. The key though was that he'd work us through the problem and the rationale behind his decision. Probably the best programmer and one of the most talented teachers I've ever worked with.

Early '20s. By late '20s most programmers (and I include myself in that) seem to have accumulated a bunch of intuition that's out of date, so that even though they might have a deeper skillset than their younger colleagues, they apply those skills in the wrong places and optimize for the wrong things.

LOL, there’s more to programming than gluing together npm libs.

Age has nothing to do with talent. Older devs tend to have more experience, go figure.

One was mid-50s, and nearing an early retirement. He'd worked in a dozen or more languages, was working mostly in Python and C (for performance-critical Python extensions) when I worked with him. He'd been significantly involved in the development of the IBM Oberon compiler and environment in the past, as well as done something with OS/2, though I don't know the specifics. Very broad experience, though, including a lot of low-level stuff. He was treated uniquely in the company at the time. He was the only person with an office by himself, he skipped most meetings, and was generally a bit quiet and introverted. He liked to come in, do his work, and go home. He didn't stay late, didn't work weekends, didn't do crunch-time even if everyone else was (because his part of the project was already done, on schedule), didn't go out for drinks after work, usually, though he would go out for lunch with everyone. He was a super nice guy, and generous with his knowledge, he just wasn't into being very social. He wanted to go home, be with his family, and work on his hobbies (some involved code, others were gaming and video production and 3D modeling...so lots of tech hobbies).

The other I met when he was in his mid-20s, he's in his mid-40s now, and I still work with him. He was extremely talented and productive then, and remains so today. He maintains roughly a million lines of code that he mostly wrote by himself (mostly while working an unrelated full-time job). It's a world unto itself (for better or worse, it looks nothing like any other project you'd find in the same language, and his coding style hasn't changed notably in at least a decade), but he delivers new features in an absurdly short time. He's a completely different sort of developer than the previous one I mentioned; the first was always eager to try new things. The latter has built up a system that works for him, and rarely changes...he just keeps churning out code every year at an alarming rate, because he knows the system inside and out. Bugs evaporate in seconds sometimes, once identified and reproduced.

In the former case, I was impressed with the breadth of his knowledge and his ability to drop in on a project and figure it out extraordinarily quickly, and his ability to zero in on what needed to be solved today and what would fall out naturally and easily once the core problems were solved. While in the latter case, I've always been impressed by how quickly he can deliver pretty much anything the project needs. He's written everything from the ground up (including things most people would pull in via libraries)...so, no element of the codebase is a mystery to him. He's looked at the same codebase nearly every day for two decades and he can sit down and be productive immediately.

Guru working alone on a project: looks pretty much like a silo to me.

Usually in their thirties, although I've met a few quite talented ones (just maybe lacking in experience) in their twenties.

So the usual I guess; I haven't met whiz kids nor luminaries, sadly.

The only one I met who really stood out was 34 at the time. He was a very hands on cto at a small company.

Mostly +10 yrs older than me. But lately, I've been meeting some my age and about +10 yrs younger.

What is this question trying to find out? A connection between talent and age?

30 but that’s mostly because most as engineers I’ve met are late 20 early 30s

the majority 40+, one around 38 one in early 30s

Know someone who is 47. He is super awesome.

Old, like 50-60.


He is incredible. Rigorous. He wrote a book.

One year-old older every year.


Older than me- always.

All the talented devs I have seen:

- They had no kids

Or with 1-2 kids:

- They were old (45+) and had worked as Developer for so long that they became very good at it.

ONLY 1 guy with 2 kids in mid-30s I know is pretty good.

tl;dr - perhaps there is a co-relation between kids and brain cells of a Software Developer.

..I have kids myself...

Early 40s, so far.

i met with 20 years old software enginer

53, 41, and 27

this dude at pixar named lars.




During the .com I was quite young, my friends were all doing nascent e-commerce in SF, I was doing Telecom stuff in the Valley.

My friends were all 'architects', while I was maybe one of only a couple of people out of 100 Engs. who were under 30!

I could walk to any cubicle and 'learn for days' from whoever was there about so many subjects. Such specialization that nobody knew precisely what their cubicle neighbours were doing!

You want to know what 'full stack' really means? We did proprietary ASICS, hardware, firmware, control plane software, networking control UI and servers! From the silicon all the way up!

The team was mostly 35-45 and they were amazing, I'll never work with people like that again.

I've run into a fair number of 'young geniuses' and astonishingly talented young folk ... but not the kind I would trust a major project to.

That said, they were a little bit more 'set in their ways'. It was a time when people 'went deep' as opposed to 'wide' generally. Very high degrees of specialization, typically only one professional grade language.

I think that the ability to measure a person is: "innovation and execution ability" to solve problems. age is not a problem.

I am an ICD (International Classification of Diseases) coder.

Before I was 30, I wrote some foxpro programs, and 1~2K lines VB and C# programs.

After the age of 30, I started using clojure, core.logic (miniKanren) and R, fusion financial analysis, artificial intelligence, statistical knowledge,to write a formal project in my spare time, the financial analysis expert system(https://github.com/linpengcheng/fa), and therefore, based on finance and management, created a software engineering methodology ---- Pure function pipeline data flow (https://github.com/linpengcheng/PurefunctionPipelineDataflow).

I met a 12-year-old kid the other day that can write React and Redux apps like nobodies business! He's currently CTO at a FAANG that I won't mention here (this is a throwaway account btw)

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact