home articles newsletter

Growing old as a programmer

I’ll be turning 40 this year, and I’ve started to wonder about my professional life in the next two decades. Not a lot of 60-year-old developers, hey?

I started working some twenty years ago, and I feel I need to plan - albeit very loosely - for the future. Building software is still very new to me. I want to keep working at it for some time. But I don’t know how to make this job grow with me.

a screenshot of a Mastodon toot with me asking: I've been wondering a lot about aging in software development. Any > 40-year old developers out there that'd like to share their perspective? How did you grow (technically, managing, etc...)? Picked up fields over others (embeded systems over web app, for instance)?

I shared my angst with folks on Mastodon. Turns out, there is a handful (*cough*) of older programmers. Many were kind enough to share their experience publicly.

This post is a collection of their replies, loosely sorted into broad categories. I’ll add some thoughts or reactions along the way.

Last update on Monday 19th February 2024.

After putting together this post, I shared it on Reddit. A lot of people added their experience. I’ll add the most significant ones to the list.

A few temporary conclusions:

Learn to learn

Learn to learn as always been a mantra for me. But as I grow older, I also realize I don’t want to learn new things only to stay relevant. I need topics to be fun and interesting (I know, the audacity!).

This strategy / philosophy is probably the most represented in the replies.

I’m a hair away from 40 and often the oldest on a team, I swung into management early. Keep learning, keep learning keep learning. Write a lot. Communication skills become more important since people start giving you less of the benefit of the doubt.

Older engineers I’ve managed usually fill their niche and go home at 5. Sometimes that niche is keep their heads down and execute. Other times it owning our incident response practice or other hard things that take a lot of skill

link

Short answer: you grow in the sense that whatever experience you’ve acquired loses its value over time. Technical skills become obsolete. Human skills stay relevant but people, values and norms change so you have to relearn them too.

link

Students keep asking me, "What languages, tools, and libraries should I learn, for a career in software development?"

And really, most of those that I use daily and am an expert in did not even exist when I was in college.

So you need to learn to learn.

Learn to change.

Learn to pick up new things and be successful with them.

link

The most valuable thing I've done is to learn how to learn new things.

The second most valuable is learning to work collaboratively as part of a team. We can't have expertise in everything we touch, which means we need teamwork and coordination.

Third, for me, is doing fairly deep dives into other fields that have some transferable overlap with the work we do - mathematics, linguistics, event management, and historical dance are some of the ones I've used a lot.

link

48 year old less programming but still some, mostly now concerned with making environments for stable running of software ie more on DEVOPS side, never stopped learning, more and learn stuff that does not expire, like principles of development , networking , specific programming environments are just exchangable tools

link

i got lucky and had independent study in pascal in high school in the early 90s which is the extent of my formal training. I started in front end and moved farther and farther back over time as I liked that work better.

Did time a LOT of small (< 5 dev) start ups where you had to learn everything from system management, people management, be/fe, dbs, devops etc because no one else was going to do it.

link

I did a bit of Fortran coding at uni (physics major, not CS), then upon graduation went to silicon valley at an electronics startup in QA dept and did some non-trivial coding in an early spreadsheet (least-squares curve fitting and X-bar/R-chart for production stats tracking). After that, moved to Sacramento to work at a DoD missile contractor and wrote image processing code for an aerospace CT scanner (Fortran and C). Then wrote medical imaging software for an eye/retina imaging company (C/DOS). After that, C/Unix/SQL first at an ERP/MRP company followed by C/C++/Unix/Windows at two network management systems vendors. Finally, I foolishly started a Java enterprise sw company, and after that, just boring jobs mostly in C#. Now, I write code for my own projects. I didn't really learn much about CS until about 2005-2010 because it wasn't needed and I wasn't even aware of CS course topics like Algorithms:( Now, I've self taught myself enough CS for the projects I'm currently working on. Edit: about 8 years ago I took some MOOC ML courses and learned R, but this didn't lead to a job doing ML. My website has some example coding side projects under the Tech Examples and ML Intro Project sub-pages which show that I've taught myself some CS:)

link

old here 🙋‍♂️

Once I realized this was going to be my career I started playing the long game

I took the time to really learn all the basics HTML, CSS then JavaScript / node

Made me realize that growth mindset is the best way. All we have is time

Hard watching new developers get caught up in trends and marketing preying on insecurities but I have seen that if people stick with it they eventually grow out of that phase as they level up from just wanting a job to wanting to do a good job

link

I'm 58, and ended up as a software developer largely by accident and considerable investment of time in trawling through tech books. I didn't have a CS degree - something of which the industry appears to have grown increasingly disdainful. I doubt that I'd have such an easy route into the profession now. Currently between jobs, and finding that I'm having to work harder than ever in order to prove my worth.
I have tended to pursue jobs that seemed interesting over those that were well remunerated, and don't expect that I'll be able to retire.
I still try to absorb as much as I can from books and online tutorials, and the job still feels like running on quicksand. Soft skills form a much more important component of my work than in my youth, but I'd be at a loss to say how I acquired them. I hope I'm humbler and more humane in my interactions.
Given the benefit of hindsight, I'd definitely have done things differently. My current language of choice is Clojure, which offers the most fun I've had with a programming language since learning machine code back in the early 80s.
That was terribly long-winded. Sorry about that!

link

I've always been a technical person not management. Over time the technology we used changed. I had the option to stay where I was comfortable and maintain a legacy system or take on new things. I've always chosen the new things. Being willing to learn new things is a key skill.

link

I'm now 51, started (non professional of course) programming at age of 12, and professionally at 23. I worked in various fields and adopted constant curiosity: learnt new languages (C and C++ in the 90s, Java then ruby, clojure and Scala, some php/js and finally go), paradigms (functional programming was eye opener), and skills (mentoring, documentation). Working on open source projects taught me a lot. I've been managing a team for a few years but I'm still learning!

link

I’m right at the end of a career, still coding, but not in thick of things. Best growth is by curiosity and inculcating an interest in stuff sane people shy away from and tackling hard problems. Everyone claims to be logical and reasoning, but that isn’t 100% true. You learn new skills because you have little choice. I’ve done ~50 languages and a dozen platforms. Keep an eye out for new stuff that isn’t ideologically driven / making massive promissory claims, all unproven. …

link

Fifty languages! 0_o

I guess I'm a little over 40 by now. I did what I suppose anyone who takes the work seriously would do, regardless of their age. I tried to pay attention to new developments and learn the ones that looked as if they would be useful. There was usually a way to get a contract in which I could apply some of my existing skills while learning some new ones. Today, with almost everything available online, it's surely easier to do that than in the early years of my career. Why wouldn't you?

link

Well into my 50's

It doesn't matter how old you are as long as you keep up. You have to 'retrain' in new tech/approaches at least every 3 years, though I would say that's decreased to 18 months.

If you keep up-to-date then your valuable to employers regardless of age, and that experience is what I look for.

I've seen a lot of dev's fall at the 3rd or 4th tech change as they can't cope.

I've been a dev, senior dev, IT Manager, Project Troubleshooter and now Technical Director.

link

46, frontend dev since 2004, woman 🙂

I guess I went where the work was (know-how wise, not geographically), and I don't let anyone tell me that certain jobs aren't "real programming" (like JavaScript and CSS)

I started doing PHP full-stack before it was called that, got into content management systems, first frontend, then backend, then frontend again.
I stayed up-to-date with the main frontend frameworks, switched from CMS customizing to API clients with React / React Native
1/2

link

Yes! No gatekeeping, no Real Programming™ BS.

My current job has a 50% "consulting" part. I currently work for a company that sorta sends Mary Poppinses into other companies.

Looking back, I guess staying curious and being open for changes and new technologies helped to stay not only in work, but in interesting work :-)

2/2

link

I never stopped learning new languages; I pick up frameworks and technology as needed. I drifted towards appsec and identity/access management, but I'm still something of a generalist. I try to bring insights from my experiences to every team I work with. I learned to write, a lot. I keep paper & pen notebooks as well as digital documents.

link

i switched tracks from distsys to firmware... also i don't _intentionally_ force myself to learn new things for career reasons, but i'm an avid reader of lobsters (& similar) and after a new tech washes over me enough, i want to play with it and see what it can do, which occasionally leads to better job skills (typescript & rust were 2 examples of this)

link

Just turned 40 and just starting to feel old. I keep learning new skills because they're required to solve the problems I have. But I work in very small teams, usually as the most senior person by far, so there aren't many others to lean on if I don't know something. And that forces me to learn it.

I say let the work guide you. If you aren't learning new skills at work, that usually means you aren't solving any new problems. Maybe because you're a small cog in a large machine, or because the work just isn't very innovative. If you can't find interesting problems at work, try looking for them outside of work.

Not saying work a second pseudo-job on top of the current one, more like, try to negotiate spending less than 100% of yourself at the current job, so you can spend a few percents of yourself on something that matters more to you, like more interesting problems.

link

I'm still figuring this out.

One thing I have discovered is that being able to communicate and apply wisdom without getting stuck on being jaded or cynical about change is extremely valuable in a lot of situations. And it can take a lot of work (on yourself) to develop and maintain that kind of cognitive adaptability. A lot of people get stuck in whatever mindset worked for them in their early career.

Get good at learning. Get even better at learning.

link

Ah yes. I could be one of these people who “get stuck in whatever mindset worked for them in their early career”. The first 20 years of my professional life have been tough, so I’m happy to get a bit lazy.

just naturally picked up the habit of continually learning. Resisted moving into management for a long time then about 10 years back took a team lead role and picked up a whole bunch of new skills with some help from training and practice.

link

I started my programming career working in RPG on AS/400s. Up to that point I’d learned a multitude of languages. These days, I only seem to do SQL and low-code/no-code stuff - but I still code a lot in fun stuff in my spare time. I’m 51.

link

As many have already said, one key to a long career is never stop learning. Any tech you use now will either fall out of use or evolve capabilities that alter the way you need to use it. Of course new things are continually coming along. Technical breadth matters as much as depth. Communication skills (listening, speaking, and writing) are essential. If you can’t understand others and/or they cannot understand you, your effectiveness and area of impact will be limited.

link

I've remained curious. I play with technologies that catch my eye. (Crucially I don't play with everything as I don't have the time.) I enjoy what I do, and I do what I enjoy. I work hard on relationships, collaboration and communication. Having a blog turns out to be a way to create a long term memory that everyone can access. I try to notice talented people, help them where I can. I collaborate if there's an opportunity and learn from the experience

link

I've been a professional software geek since 1980. For most of that time I have been an independent contractor. I code, teach, and coach, split pretty evenly.

How did I grow? I read everything I could get my hands on. Had a great first mentor, only maybe 10 years older than me. I did lots of very different projects. I sought community wherever/however.

I hate the internet stack, so I work almost entirely either backend or desktop.

Feel free to ask, if you'd like more.

link

The first mentor makes or breaks a career. It might sound a tad overdramatic, but having people truly interested in making you grow professionally (without being toxic about it) is a godsend.

I got lucky and met people who answered my insatiable questionning with generosity. And I learned a lot with them (Hi Thibault! Hi Jonathan! Hi Jeremy!)

I'm 45ish, been coding since 12, CS in uni, summer internships coding, coding my whole career. around 40, I got a therapist to deal with my anger issues (took about 3 years of weekly sessions), figured out some goals for emotional maturity and growth. I ended up as a team lead for now, doing embedded dev (c on rtos, embedded linux, python host side stuff). Likely looking to get back to an IC role in the next 5 years and ideally I'd like to find a systems Rust gig.

The thing that works for me is, keep learning, work on the stuff that needs work, be as open as you can with ppl around you about what you're working on. My current boss has been helpful in hearing me out on like "this convo didn't go well, can you help me figure out how to do better in the future", my last one wasn't very good at that but had some other strengths, so it's real context dependent how to raise up everybody with your actions.

Good luck, hope you have some good conversations from your post!

link

yo, I'm old. Been at this since 1982. Still at it, still like it. I've mostly done static analysis of compiled code, modifying code, image processing. Always looking to learn.

link

Seniority as fitting in

I took every advice on internet and did the opposite:

- I'm more and more a "specialist in nothing" as per I use various (web) technologies depending on the needs
- I'm playing the pendulum between team lead and dev
- Being able to talk to stakeholders and convert their input into software is by far my most valued skill
- Being a former manager means I generally understand my boss pretty well which also makes me more efficient

link

Martin wrote a longer post expanding on his concept of fitting in. Read it, especially if you’re in the same position as me: leaving junior-land but not yet in senior-land.

Agree with "Seniority as in Fitting In"

I found that I'm an unusual consultant, in that I DO NOT walk in with a bunch of libraries, tools, methods, and such that I want them to adopt. (... other than "be more agile" generally, and "XP is good.")

I settle in, look around, and say, "You're using these things, but not getting anything like the full value out of them, let's 'double down' and do these *existing* things better."

link

Too old

Aging in software is often conceived as dynamic, as in “If I ever stop moving, I’ll be left out.” And, some people seemed vindinctive with younger programmers rather than with a system built on cost reduction and ageism.

But this feeling sparks a (very) political question: What do you do when you’re not allowed to fit in anymore?

Big topic.

One aspect is the ever changing tech landscape and the energy and enthusiasm required to keep up. Quite a few don't succeed, then if you do, you have to fight the resultant stereotypes and age discrimination. I've felt age discrimination from late 30s onwards, ever increasing until I'm established and proven at a company.

It becomes increasingly tough for older SWEs who can't, or don't want to, shift into the completely different role of directing other people. If you can find a good home, your experience can be put to good work and life is good. A good older SWE can often be extremely productive, not least because they know how to make things simpler. But perhaps the toughest thing is persuading people to hire you - in fact, probably the toughest thing is persuading them to interview you in the first place.

I've worked so often with many extremely prolific and energetic younger SWEs whose output is unnecessarily complex, obtuse, and intractable. For me one of the most important parts of the job is spending time trying to work out how a solution can be simpler and clearer. On the flipside I've also worked with older engineers who are stuck in the techniques and tools from 20+ years ago and seem unwilling to change.

link

Oh, it's great. It's nearly impossible to get hired, has been since 40, so I have endless time to work on my own thing, learn Scheme, Lisp, or Javascript development.

Better have some money or a backup plan, because the industry hates anyone with more than 10 years experience. I'm 4x better at programming than I was at 20 or 30, but that's not worth anything to a company if they can pay a kid or H1-B 25% of my salary to scrape stackoverflow.

link

I do find it nearly impossible to get interviews except through contacts. I've had numerous "casual chats" with some recruiter only to be told I'm not a "cultural fit". I suppose I can't prove they're wrong or exactly what their motivations are, but I have strong suspicions. I've certainly proved at a few places I fit in great with younger coworkers.

I've tolerated lower salaries in exchange for interesting work, but that means I'm earning about what decent youngsters with 3 years experience are earning. People I mentor from nothing to semi-useful. And even that doesn't make it easy for me to find work.

I have not pushed my children towards software, but when it's good, I really enjoy it.

link


- I SHOULD HAVE thought about established career growth paths, and worked to target the social and to a (much) lesser extent technical requirements thereof.
- But I DIDN'T because that's boring.
- And now I'm SCREWED, because nobody wants an old senior dev.

link

Being able to translate geek to human languages

I call this skill "geek to English translation" and it's invaluable. Being able to squeeze it the details of when "never" really means "never"and when it really means "sometimes" is critical too.

"If we enforce this requirement with code, never means never, and how will people lie or cheat for the corner cases is what they'll do for the non-corner cases too"

link

This idea of “geek to English” resonates a lot with me. I’ve always loved to make complex things sound easy. And I’m a firm believer that a lot of complex topics are mostly unarticulated explanations.

27 years in gamedev means while I might not get really into the weeds on a problem, I can inspire new ideas for tackling a bug, anticipate problems both technical and social, bigger picture type things.

Still pretty good (I hope) on communicating meaningfully with coders, and better able to translate for the less technical mgmt people, and able to see the merits of interesting but not necessarily scheduled tasks.

Always telling war stories about PS3 and Xbox 360 ;)

link

Somewhat more specifically, being able to develop a understanding of everything that's adjacent to the continued existence of the stream of engineering work you/your team works on:
- the needs of the users/customers
- the nature of the business
- the forces and culture at work in the organization

(And being able to explain any part of it clearly.)

Specific technologies come and go, if you're lucky you put a lot of effort into learning successful ones 🤷‍♀️

link

Amen to that! I also believe that programming is not some ex nihilo activity. Understanding where our work comes from, where it tends to, is crucial.

Specialize in a field (rather than a technology)

I'm more of a hacker than a developer, but I've been able to center my continuous learning around my core area of expertise: geospatial.

From there and a willingness to learn and a love of solving problems, I've been able to pick up Python, SQL, front-end web, and even dabble in Powershell.

I'm probably starting to fall behind in terms of keeping pace with a lot of those things, especially front end. But I still bring a lot of value with my experience.

link

47yo, started coding 23 years ago in C in a saas-sy/product company, now doing 'architectural' roles in a largish global consulting(/bodyshop).

Learned coding (c-on-unix-metaverse) strictly on-the-job and reading newsgroups like c.l.c and c.u.p et al. Then came perl, python as they were useful and after swapping jobs js and php were forced on me. Some15 years ago landed in my niche, open-sauce geospatial + postgresql, and with differing weights, been doing that ever since.

My takeaways:

link

0. Never talk in absolutes
1. There are 0 new probs
2. Every prob is a process prob
3. Exp beats (and begets) excellence
4. Persons over everything else,and any community needs a speck of dust to condense over
5. 68% is good enuff for everything
6. Only output matters [1]
7. Be interested. In anything.
8. Learn from other peeps failures

[1] nobody should care about the tech used to solve a problem. Nobody should be forced to work w/ a c-nut no matter how 'good' he is for the bottom line.

link

I'm in game development, specifically graphics. Surprisingly, at 45, I am not the oldest in my team. I have so far been able to resist going into management (though I enjoy mentoring junior devs, I prefer to stay in the technical side of things for now). I feel like my speed at learning new things has started slowing down, but I think I make up for it with my experience and insight into the right directions to take. We'll see how long I can keep this up. Hope this helps!

link

This comment from amirrajan on Reddit was very thoughful. I’ve edited and collated their different responses for clarity.

I turned 40 myself this year. My role in a team ends up being a 50/50 split between coding and managing. The experience over that time is invaluable and I lay down the ground work for solutions and then devs flesh out the details.

I come in as a consultant/specialist who helps teams with transitioning legacy code (kind of operate as a translator between legacy tech, new tech, and the teams that maintain those codebases).

Primary differentiator is that I have an immense amount of respect for legacy code and am not afraid to work with messy codebases that are painful to set up. Green field devs turn their nose up to it and don’t want to do the “dirty work". On the flip side legacy teams don't have familiarity/experience with new stacks and are comfortable with their existing environment and don't want to change. I help bridge that gap.

The problem with older devs is that they don't have 20 years of experience. They stagnated early and have repeated the same 2 years of experience, 10 times (honestly this is applicable regardless of age, but becomes a focal point as you get older)

Eg: Legacy devs know jquery, new devs only know React. How does a dev incrementally transition an app from/to the new tech without jeopardizing the business? That’s the niche skill I occupy :-)

Time and time again I’ve seen rewrites end up as mangled as the systems they were trying to replace. Devil in the details, slipping deadlines, feature creep, new engineers not having domain knowledge, etc.

A legacy code base is a successful, battle hardened piece of machinery. Every line of code that was written was done in good faith under who knows what kinds of pressure and constraints.

Managing a company's tech stack and incorporating beneficial tech is a part of full lifecycle software development (literal definition of enterprise architecture). People get desensitized to the pain points of their environment and that's where stagnation begins.

link

I’ve found this specific (and conscious) strategy very interesting. Filling such a niche implies a lot of skills - both technical and human. To help teams transition from one tech to another means to (at least broadly) understand each tech, to talk to different people, to convince them, etc.

Or move between fields

@j

I'm early 40s. and have remained an "IC", but I do more system architecture now and find myself drawn to improving systems to make teams productive.

I've moved between fields to keep it interesting. VR/AI/Crypto (ugh)... After getting annoyed at hype and vapourware, recently I've moved more into utilities like power and finance, which pay well but let me focus more time/energy into my own non-work projects.

link

I’m in my late 50’s, and I started out in skunkworks defense technology, then did commercial aerospace embedded and video game consoles, then telecom equipment, which got me into IETF work (where I really learned how politics and communication are important). At some point, my hobby projects led me to learning the OCaml language, which taught me how to make software modular and composable, and why that’s so hard in other languages. Finally, I have to say as I’ve matured, my labor consciousness has only intensified over the years. It kills me to see younger engineers adopting the false consciousness so common in software industries that resists labor organizing. It was especially bad in the video game console business, but it’s terrible everywhere. It’s the one thing that I haven’t figured out how keeping from contributing to my risk of burnout.

link

52 years old here. I’ve been doing software development as a career since my previous career went poof when I was 28. I knew just enough at the time to get an entry-level position at a company that basically needed someone who knew how to make web sites remember form data, and then do cool stuff with the data.

Especially later on (late 30s onward) it’s been important to change focus every few years. Doesn’t necessarily mean “new job” or “new company” but picking up new responsibilities to avoid stagnation in one area of thinking. In other words, you have to be a bit proactive in identifying things you could do and working them into what you actually get to do. My last 15 years took me from fairly generic web dev to mostly-backend-with-a-lot-of-DevOpsy stuff to working primarily with data-specific projects (no web, lots of backend infrastructure development).

link

heading into my fourth decade of software development, we call that aging. Have had a full career where I was able to explore a wide range of experiences: [all] industries, geographies, deployment targets and roles. This kept it interesting.

Started at the dawn of software engineering, so early on I was influenced by Grady Booch (via my supervisor, Tim Lethbridge). So patterns, HCI, cognitive aspects, staying close to the code, have always been part of my varied experience

link

I'm 56.

I've got better at coping/dealing with people over the years (I'm autistic), learned project management, TDD, agile etc, but due to various drivers stayed working with the same language, Openedge. (At home is another matter.)

My current job has been open minded enough to get me coding in Ruby, Python, and now C#.

link

Question your priorities

I took jobs that let me support my family and be a participating parent. That's pretty much it. Maybe not career-optimizing, I admit, but there are always other factors to consider.

link

I relate to this experience. There’s a big push in software for working harder, writing blog posts, and doing much more than “just your job”. This testimony was the one that hit closest to home for me.

I am fifty and switched to documentation for new programmers, now. I never switched jobs and where as the corporate Java world was boring, the corporate clients, their quirks, their requirements, the people in my team kept changing and that was entertaining enough for me. I never wanted to go into project management and haven’t done technical lead in a long time, mostly because I preferred working part time (60%) over rising in the ranks. Living and working in Switzerland – that surely also makes a difference.

link

💯

I'm 55 now and after being at the edge of burn-out I agree with @requiem on re-balancing work and life.

What was important to me in the past: completing knowledge on things I work with, learning new ideas and tools from younger colleagues (in exchange for coaching them on old tools), deepening knowledge in my work area (medical) to better communicate with my users.

link

Move to management or product

I switched to management a couple of years ago. New things to learn!

Am still keeping up with technical knowledge, am still doing pro bono projects, but I must admit that my enthusiasm for learning a new programming language, paradigm, technique, library every couple of years is dwindling.

I was always an advocate of knowing how to program, instead of knowing how to program in a specific language, but even that got old after three decades.

link

I relate to the idea of always learning. I’ve found it crucial for the past twenty years. Yet, I also relate to the dwindling of my curiosity tech-wise. Maybe it’s not so much about dwindling, but it’s less all-consuming, and more centered.

it has been a mix of interests and job opportunities - what I now do is, in a way, a reflex of my work history, but how I chose me jobs had much to do with my personal interests - and disinterests: for eg., I never had a job I couldn't do while being a GNU/Linux user - the fact that I've not been interested in positions where I'd need to be a Windows user in a way directed me towards some types of companies and work fields in detriment of others. The growth in terms of management was not a "carreer step" or something planned, it has been just a reflection of experience (not exactly age, but you need time to get experience, so...). It ends happening naturally: if you're working with people with less experience, you end up pointing paths out, warning about mistakes you are able to predict, etc.: it is normal that, having been there before, you have learned some lessons or from past mistakes... and being able to notice those things puts you naturally in a position of "guide" (call it "technical expert", "technical manager" or whatever else is the name for it in a certain company's structure).

I'm not quite sure what were you expecting for answers, so... I'm sorry this wasn't anything of the sort of stuff you'd like to hear about 😇

link

I ended up moving into product management. It keeps me close to engineering, and allows me to flex my dev muscles when researching product ideas.

I found 4 years ago, my salary and age were limiting my options; this move gave me more.

There's a lot that I don't love (the amount of spreadsheets and PowerPoint I do now kill me), but I also far better appreciate how a business runs now.

link

49 and moved into people management in the last 5 years. Still do easier or boring "individual contributor" tasks but (with age and a 5 y/o kid) it's hard to concentrate in the way I'd need to for anything more complicated. Never thought I'd be management 10 years ago.

Employer has 4+ relatively niche mgmt roles so that helped a lot.

link

I feel you!

I prefer team leadership as technical leadership among peers over "being a Manager."

I've been "An Official Manager" several times in my career, and even for my current employer. But they seem to forget that.

I have conflicts with most "big company management," as I'm committed to agile team empowerment, while most are stuck in pre-agile Command-and-Control mindsets.

link

… and back again

I'm 42. I started as a web dev back in 2004 and basically followed the normal route of increasing management responsibility, then decided I hate management responsibility and I just want to code, so I'm now I'm living my best life as an IC again.

link

my experience: I’ve been a developer the entire time, gaining the “senior” title after 5, and “lead” after 8. After a few years at lead I picked up the job of an actual manager for my team of around 7. “Peaked” as a combo of Architect+Manager (always coding along the way) before deciding to switch jobs and go back to a senior(and now lead) dev.

link

Good enough, fast enough

Life seems to want to chose fields for me. And techs.

Am not a specialist in anything but becoming good enough in anything fast enough.

It’s mostly about experience. Former manager, former consulting, former PM, former lead dev… = better at understanding what’s at stake.

Better at understanding new techs.

Better at converting inputs into software (or, at times, NOT into software).

link

The key is to remain curious in your side hobbies and keep gathering general understanding. That way, if a new topic (or new job) comes up, you have a basic framework to start diving into. "Smart guy one level deep" is a bit of a notorious menace, but it's still better than no knowledge at all.

5-year plans are fine. Don't expect to stick to them.

"Plans are worthless, but planning is invaluable."

But also:

"I am a great believer in luck. The harder I work the more I seem to have."

link

Technical seniority (comes in many flavours)

I got a few oppertunities to move towards an architectural role within my organisation over the years, but I love coding and solving technical problems, so I stuck with that. I'm in a small team (1 other dev) so I'm not doing mentoring. I did have an intern last year, and it was painfully obvious social skills are not my strenght. I focus on technical things, which are my strenght. I tend to push the technical stuff within my team, setting examples for other teams to follow.

link

I learn that less code is much, much better than more.

link

I’m a strong believer that technical seniority takes many forms. And the YAGNI philosophy is often forgotten in the whole lifecycle of a product. The best code is the code we don’t write.

"For me one of the most important parts of the job is spending time trying to work out how a solution can be simpler and clearer."

If someone said this during an interview, I would probably hire them on the spot (assuming they had 15+ years of experience as a programmer).

link

52 yo staff software engineer here. started late after some time in academia. i am pretty established as a database guy but always learning new things as tech stacks come and go. i prefer mentoring to managing.

link

The biggest shift in my approach to coding has been that I end up in arguments against things like loose coupling/SOLID/small pieces. A lot of less experienced devs take this kind of thing as gospel, but I’ve been through that and come out the other side, and learned that these things are not always good. Sometimes you have to look at the bigger picture. I didn’t learn that until about 15 years in though, so there are *many* others who don’t get it.

link
@Rk

I am 43. I still work in C/C++, languages that i picked when I was a teen, but I have way less patience about language lawyers and uninteresting nitpicking. I spent a decade+ working on embedded systems at various scales and my major growths were not in managing people or climbing functional ladders. The more the time goes on, the more I am interested in the maths around the things and the less i care about bulls**t. Two years ago I went freelance and so far so good.

link

I'm in the position of having used the same programming language for 20+ years to maintain a legacy codebase, updating it over time to keep pace with modern developments in evolving web standards. It's an interesting mix to be sure, but I've never worried about becoming irrelevant. I also regularly dabble in other languages on hobby projects in order to keep in touch with popular trends.

link

Please don't believe any BS about "people over age X can't develop software". Most of the devs I work with are 50+, and regularly making major code contributions to a very successful product.

Experience goes a long way to making sure things make sense architecturally and schedules are realistic.

link

I worked until recently, about 50, but I know plenty who keep going longer. Many of the larger companies have plenty of room for experienced people without getting into management; I worked with lots of people a similar age. I'm certainly slower than the youngsters, but give me a fun bug and I love chasing it. There are also 'technical lead' roles that aren't management - e.g. a bit more design than actually day-to-day coding.

link

47 here. been programming professionally since about '98.

for me, I find it's my experience that keeps me relevant. there will always be new programming languages and frameworks, but the big issues stay the same.

I've always been the "the buck stops here" guy - if an issue isn't solved by someone else, it eventually finds its way into my lap. And because it might look similar to something I saw 15 years ago, I solve it quickly. A new developer just doesn't have the xp to do that.

link

Zooming out

I'm not a developer but I'm an over 50 database administrator that's been doing it for over 20 years. I've grown by tackling larger and larger environments and problems. I don't write many queries any more but I do write PowerShell and Typescript. I don't manage a server, it's hundreds. I've chosen what fields to pick up based on what seemed like it would be interesting and have legs. I've taken on more senior roles by thinking beyond just databases.

link

I think as I get older I zoom out more - away from arguing over syntax and out to the bigger problems. These days, I see myself much less as an 'amazing' IC and much more as a force multiplier. It doesn't matter how amazing any one individual is as a developer, they can't push the whole cart uphill by themselves. I try and put my experience and focus onto helping many teams / devs to be successful, which is largely much more beneficial

link

50 year old here. Technical specifics generally become less relevant (languages, APIs, platforms, tools) because you've had to switch so many times and have seen the pros and cons over and over in different scenarios. You get better at picking up new ones because there’s nothing really new under the sun. The problem to be solved is priority 1, and the tools should be driven by that more than any technology preference.

Also: simple solutions are always better than clever ones.

link

43 year old here. I started programming as a hobby at around 10 years of age and professionally since I was 20. I’m not exactly sure what you’re asking for, so I’ll just jump in head first.

Throughout my career, concrete skills, tools and languages have come and gone, but social and abstract knowledge has stuck and stands out as the most important and permanent learning experiences.

Learning i.e. functional programming and event sourcing is relevant regardless of which language you use.

The more paradigms and patterns you know, the better you’ll be at expressing yourself in your language of choice. Learn as many languages as possible. Don’t grow too comfortable; challenge yourself regularly.

Learning how to cooperate and contribute positively to a larger team is invaluable.

Being simultaneously humble and self confident enough to show vulnerability are important qualities that will make you a better learner, teacher, colleague and human being.

link

I'm more the full stack data guy. I moved from web to fullstack to backend to data science/engineering.
University to different cooperate/startup roles.
Everything got more Web like(rest). All the server stuff got absourdly automated(Cloud). Everything got very professional: git, CI/CD, Tests ... (but that definitely depends on the context. )
I was never a big fan of using new libraries and frameworks without a valid reason. I got very minimalistic.

link

I’m in my late fifties even. I find the coding harder these days. What I found really interesting was standards work (i.e. being in the working groups).

link

Mental health, burnout

I had a huge panic around 40 that I would be too old to keep up and/or I would become bored. Turned out that being obsessed with making things work never gets old. I combined Product Management with coding for a more senior role + took more care of myself physically and mentally.

link

48 year old here. Did not graduate college. Coding professionally for 25+ years. Fan of agile values and practices. In my 20s/30s I was big on continuously learning and adapting. In the last few years I've gotten pretty tired of jumping between technologies so much - there's always something new and "better". Pretty burned out at this point and currently on a self-imposed career break. It's possible my attitude is the problem. Or perhaps it's time for something different.

link

I’m almost 50 and little has changed for me wrt the technical aspects of the work (I follow my passion to choose what I learn and the industry eventually catches-up in most cases).

What has changed a lot since 40 was learning about the importance of self-care, mental health and caring for others both at work and at home. I learned a lot leading up to that point about the fallacy of meritocracy and the exploitative nature of capitalism. I studied the labor movement and learned how we’ve lost most of what they died for (in the U.S. at least) in the way we treat workers in the tech industry.

So the big difference between how I worked before and after 40 is that I don’t compete with my fellow workers, I help them however I can and I prioritize my actual family and friends over my job. These choices have had consequences and have limited my career in ways, but I’ve still managed to make a living so far.

This, more than anything else has contributed more to my ability to keep learning continuously and exploring new ideas because without it I would have completely burned-out and left the field.

link

Switching between technologies

I picked up web dev in mid 2005, having worked previously on mainframes (for the beginning of my career). These days I find new tech dubious as it's moving ever towards renting. Happy as can be with boring Ruby and #emacs (a very recent add but transformative for me)

link

40 here. I've focused on PHP as the bread & butter of my career. Along the way, I discovered a love for Laravel and front-end in various forms. Currently digging Livewire in the Laravel ecosystem and Svelte outside. I also worked with Vue, Ember, and React.

I've never been interested in leadership. My career has "peaked" at senior engineer and that's where I like it.

link

I like the calm satisfaction in brbcoding’s reply.

I'm 55, would love to be doing a little more low level stuff, but went from graphics stuff to low level database core and message routing to embedded stuff and back to Mac app coding. I feel like I'm incredibly more effective now than I was even ten years ago, even in siloed solo work, because every bit of work, and all of my hobbies, bring new growth and attitudes to my code (and occasional hardware).

link

54 now started coding at 11, professionally at 20. COBOL, C/C++, many years of Java, then when the iPhone launched I wanted to write apps for it. First in Objective-C now Swift. All completely self taught. Did a couple of years of JS and webdev along the way.
I’ve always loved coding and never wanted to be a manager. For my last few jobs I’ve been almost twice the age of the rest of the team, but it’s never been an issue. I guess I’m lucky that I don’t look as old as I am.

link

Keeping things fun

I've been earning a living writing software since I was 14 (43 years ago). I don't have a career in the traditional sense; I've worked mainly for myself. My specialty has changed about every 10 years. I was never interested in managing other people. My hobbies turn into my new source of income over time. My latest transition (optimizing other people's software to PCBs and prototyping) is about half complete. Many lessons learned along the way. Feel free to ask if interested.

link

I got a late start as a programmer — didn’t have my first paid job until 27 in 1998. Became one of the PHP’s community’s biggest advocates for automated testing. Spoke at lots of conferences. Traveled all across Europe, the US, and even got to Australia. Wrote half-a-dozen books on testing PHP code. Kept moving from job to job, always trying to find interesting things to do. Still at it at age 52 as a programmer with no desire to become a manager.

link

I'm 50, and I've remained an "IC" and never moved into management. Actually I did run my own business for two years when I was 21 and although it was reasonably successful, I hated every minute. Never again!

How do I pick up new fields? I dunno - I just sit down and start typing. I started as a graphics programmer, moved into animation middleware, then hardware and instruction set design, then everything to do with VR, now back in graphics software. It's all over the place.

link


Not a developer, but I play one at work sometimes. Especially when dealing with users who are git deficient.

I'm 53 and started with BASIC on a Commodore 64. Coding for fun because I wanted to see what I could make that device do. Going to a PC (286) was the next logical step and they had QuickBasic! OMG it was fast.

I learned some Pascal and a hint of C and COBOL. Between High School and some College, that was my decision. I learned a little Visual Basic, gotta go with what you know!

My job introduced me to linux and I was in love. I saw for the first time the ability to have a machine that is always on and I could make things that do things on a schedule!! I learned some Web (html3&4) and perl. I was steadfast in perl over python. But I was ok with Bash scripting if the job fit it.

Later I learned php, some mysql, and a little python. My bash scripting increased dramatically. And my skills at automation flourished.

Today I code so I don't need to "work". Work for me is doing inane tasks repeatedly. If I do something two or three times, I automate it because I see myself doing it a thousand times over. And that I do not want to do. Spend five minutes now to save hours later.

I have for about 25 years had a unix machine at home running almost 24/7 just to be there for me when I need it.

link

i think I’m 48 now. Been coding for more thab 33 years. Still strong in the java space. Still writing articles and now a book again. But also graphql, ml. Did a lot with dsls, patterns, databases. last 13 years neo4j. Lots of devrel - content, conferences
Gave up management after 4 years and went back to IC, didn’t work out with ADHD and inability to deal with conflicts

Learning new things and teaching as a way to do that was always core to me
Always tried to mentor and make others better

link

I’m 54 and I have to admit that I don’t get the whole growth thing, so it’s possible I’m atypical. I’ve never made career decisions in terms of growth. I’m not a plant. It’s always been about doing something interesting. That’s generally my advice. Do what you love.

link

Mixture of being insanely curious about all sorts of things, and being in an environment (R&D) where you can try new stuff. However, it gets inc. difficult to stay ahead of the "pack" as you get older. Just too much to learn, with less stamina than I had when I was in my 20s. I feel fortunate I've done HW & SW in pretty much all their forms. Still marvel at people who write compilers and at cell phone HW tech.

link

57 here, still learning new things, new languages, and pushing into new areas of programming. It never stops being fun. Interviewing? Not fun, despite all the working software I've shipped to millions of users through the years.

One thing that keeps me interested today that I couldn't do before is teach less-experienced programmers what I've learned, preferably as we work together. Sometimes they need to be tricked into listening, as I needed back then, but I know it'll stick in their heads and be useful some day.

link

61.
Learned of computers in 1976, while in Junior High School, from another parent who built their own home computer.

Read books and magazines, and learned from a few high school and college students, and took adult night school classes.

Took over and ran the high school systems for the other students.

Got a job in contract programming and worked my way through college.

...

link

Lots of micro and mini-computer experience, in a variety of languages, including different assembly languages.

Tried contract game programming. Quickly concluded "I could starve to death doing this." Really bad pay, and crazy long hours.

Decided to go into business programming -- for the money and "can get a job anywhere" kind of flexibility. Joined EDS. Mainframe and Unix programming.

Went from there to contract programming, in Saint Louis.

...

link

Quite a lot of variety, in languages, systems, and kinds of business doing work for.

Was involved in the creation of the agile movement. This is still a seriously underused improvement to the industry, and our work.

Joined a company to travel and implement systems at insurance companies. Sold my house and car and embraced "100% travel," living in hotels, for nine years.

...

link

Get to know yourself

I am 56 and I have been writing software since I was 15. If there is an issue with the time passing, is not in my skills or in any "mental decay", but one of adapting to changing perspectives of the people who work with (there are so many!). I have grown by changing many companies over time but it takes a long time to know how you want to develop yourself professionally, mostly because you have to learn to stop listening to the "you should" (which also varies over time!).

link

I learned early that I enjoyed sharing my improvements with others, but then I failed at that, so I learned about various parts of psychology: first, how to influence people; next, how people learn.

I decided after less than 10 years that programming was the easy part and my interests changed.

link

46yo here. I believe that by the time you get up there into your 40's you've had more than enough time to dig into a deep level of self-awareness. Whether that's (merely) time, or existentialism, mortality, or pattern-matching - you should know *yourself* well enough to recognize strengths, weaknesses, and how to effectively evolve.

link

for me that was:

* starting a family (impetus to get incredibly serious about pretty much everything - life, health, etc)
* building a body of work where I could compare and contrast what worked well vs what didn't vs where I excelled and failed
* having worked at a significant amt of companies to pattern match who did a particular job well or not

All of that led to - "I'm a pretty good engineer. I'd be a better manager."

link

After 25+ years making software in various industries and tech stacks, I can be comfortable working from a position of ignorance or uncertainty. I have been there before and understand what is required to get to a better place. I can help other people do it too.

link

And get to know your privileges

I've never experienced anything I could describe as ageism, but I'm well aware that's probably due to a plethora of privilege, being white, male, relatively youthful-looking, and well-known in my field.

link

People, teams, groups, social skills

Some other points of mine: teams FTW. People having a common mission working together is extremely fulfilling and joy. Doing anything "by the book" is stupid. Books give us all the ideas and patterns we need to know but we need to decide alone how and when to use them. Devs are not needed to program but to solve problems. We don't spend enough time to understand those problems and have hard times to think around the corner. We are responsible for what we build.

link

The other key is learning how to work well with others, especially younger angrier folks, even if (a) you could do the job quicker than them and (b) they're irritating antisocial arrogant little shits.

You don't necessarily have to actively teach them, but you can "lead" by example and be a smooth operator, not a sharp annoyance. Some people (and technical issues) are not your problem to solve. Learn to be OK with that.

link

I am in a long- running software study group. We met three times a month, voting on a book to cover one or two chapters a week. There were a lot of books about Java. I continued to attend, even though I never used Java at work, although I did get into Apache ant for a while. A couple of years ago, we switched from Books to videos. We choose our topics by vote from the Thoughtworks radars, published quarterly. BTW,1 new skill per quarter is not too bad a goal shoot for.🍸🐈

link


…I never wanted to manage as I know I’m bad at it and it is hard to do well. Thus consulting is a great gig if you are not climbing. But you need to develop good relationships with peers and CEO types and do loss leading work sometimes. Hardest thing? Peers will age out so no referrals and you have to cold call the young. Some folks fear gray hair and don’t want your body around, some think you’re feeble because you try to NOT write code, or only write after solving problems in your mind.

link

I picked up #GStreamer over anything else I had done until that time, including a PhD, because:

1) The software itself is cool and interesting, and always evolving
2) The community is fantastic
3) There's a lot of demand in the market
4) Always better to work with FOSS

Learning new technologies is always part of growing, but learning about people is another never-ending wonderful quest. Your job becomes much easier if you understand why each person behaves the way they do, what their motives are, how to de-escalate stuff before it becomes an issue, etc. And understanding people is part of understanding the world around me, so of course it's fun and interesting.

link

Climb the ladder

I’m lucky to have found an organisation which values my grey in the form of putting “principal” in the front of my title and lets me work on open source about half the time. Previously I’ve had organise think that I must be good at managing people because I’m the oldest. It almost always ends badly.

link

just turned 43. My career was a pretty linear path from junior dev to principal engineer over 25 years. The largest jumps in my learning came from switching companies and being given completely new domain challenges, or new bits of stack that made me rethink the patterns I was used to (like switching databases, or cloud providers).

The thing that probably makes me a bit of an odd duck, to some, is that my entire career has been in JavaScript, and theres no sign of that changing.

link

Hi Remi. I stayed on a technical track for my entire career (35+ years), moving through roles team lead, etc, to various sr dev / architectural roles.

Some things I think I was good at: picking up new areas quickly, and being able to ask relevant questions without having all the details yet; give clear non-technobabble explanations of a complex situation; re-evaluate my "gut reactions" when challenged; help others break down a problem into clear pieces.

Happy to chat more.

link

49 year old here. Been learning how to delegate more , but still take on difficult technical challenges - I’m the lead developer on my team, and that means developing software and developing the team equally.

link

Tell a good story

I've found that I don't have "a" resume anymore. I constantly repackage my work history for my potential freelance clients. Web work gets my web projects, work that's close to visual designers gets my collaborations with design teams, non profits get my history with museums and schools. I do a fair bit of research on clients and their teams to decide how to present myself. Like many older devs, I've got a deep and varied enough history to make that worthwhile.

link

Help other people

53, programming since 27. My biggest growth came when I realized that my job shouldn't be to write code, but to help other people. I was with an employer that believed in investing in training, and received a lot of emotional intelligence and leadership training over the years.

That opened me up to new ideas, letting me learn from the passions of other people. I also quickly found that the best value I could provide was helping other people work faster. Getting obstacles out of their way, automating tedious tasks, introducing experiments to find new ways of working.

Just last week I automated our build and deploy process, which until then had been a tedious manual task that made our Principal's life hard. She saw the automation and immediately found ways to make it even better.

link

Found a company

I am super lucky that I just love programming and will often do it in my spare time. It’s a legitimate hobby! I had a whole career flow out of this from junior developer to senior, management and co-founding a successful start up. Now I’m making a game, but whether that’s a success or not I’m sure I’ll be programming until I’m physically unable to do so.

link

I thought I’d get more “founding a company” but this was the only occurrence with a positive outcome.

😂

having kids, and learning how to step out of myself to be a better parent, was tremendously useful when i became a team lead. not saying engineers act like children, except that we do sometimes 😂

link

The good ol’ days

Software continues to get worse, and has consistently since somewhere around the turn of the century, if not before. We can do more, faster, but none of it lasts, and most of it can only be "maintained" by replacement.

Powerful work by real computer scientists/engineers still gets published, but gets either ignored or corrupted well before it positively impacts users.

Learning is also getting more difficult, I think; references are getting worse at least.

But, maybe I'm a curmudgeon.

link

Suggested resources

I actually did an interview about this with Marcel Gagne a while ago:

lpi.org/blog/2018/10/08/open-s

Happy to answer any other questions you might have.

link

I went into this a bit in my Monktoberfest 2022 talk, "Coming of Age": youtube.com/watch?v=VzdVSMRu16

link

You might enjoy Alexander Serebrenik's research on ageism in software development: youtube.com/watch?v=vofY6oeAaB

link

In 2017 I went to my first RubyConf, and Chad Fowler gave a keynote called Growing Old. It’s always been one of my favorites to pass around because it really helped me appreciate and respect “legacy code.” At the time, (and still today) we were still supporting a product that had started in the late 90s as vb.net, and eventually a few pieces of c#. It’s not our only product, but it was easy to diss thanks to the many decisions and compromises that have gone into a 20 year old software project.

Most code never gets the chance to earn its (disdain and) legacy.

And honestly, it’s a great addition to the OP topic overall too!

I can’t recommend it enough.

link

Thanks a million to you lovely people for sharing your experience with me.

I didn’t know what to expect, but many replies already struck a chord. I know I’ll get back to the list, and I’m sure I’ll be able to identify some strategies/ideas that’ll work for me.

Cheers,

Rémi - @remi@ruby.social