As the question states, can you realistically (outside of large software firms like Google, Microsoft, IBM) be an "architect" or similar when you reach your 30s?
Is project management the only natural career step after developer?
I'm 50, and still cheerfully under-achieving as an individual contributor.
"But on me, it looks good"
There are plenty of opportunities.
There are others, but these are widely out there.
I really hope not - most people have to be in their thirties to have ten years' programming experience, and that's when they start to get good!
Either that or "Highly Paid Consultant".
Why should I drop being a developer just because I got older? I gain more and more experience and become a valuable expert. But I need to keep fit and it's only reasonable that I continue developing software. If I enjoy all of this why should I change to anything else?
It is definitely possible to stay in a "hands on" type of position past your 30s, but because with time you (hopefully) gain experience and hindsight there will be some pressure put on you to take on some kind of management role.
From the employer point of view this makes perfect sense as having a clueful person in charge of decision-making is a guarantee of return on investment. However many employers don't necessarily realize that a technical expert doesn't automagically turn into a good manager (see Peter Principle )
Now if you are good at what you do, and don't want to get into management type of positions, there are ways to keep growing:
If the company you work for does not offer a career path that would allow you to grow while staying in a technical position then you need to stop and think about your own goals:
And finally I wanted to point out that your question is really a question from a "young" software developer.
My point is that as you grow older what you enjoy in your job will evolve and you may even one day (shock) consider management positions as desirable. In my experience this is heavily influenced by the manager "role-models" that you'll meet in your professional life:
I think what you have to think of is that what position you want to be. When you are 30, you should think of what is your career and what do you wanna be after you understand yourself. e.g. what strength you have..etc.
Life is not like computer game that you advance level by level.e.g. junior developer -> int. developer -> senior developer -> team lead -> architect or dba -> business analyst -> Project manager -> senior Project manager -> C whatever O.
NO.. if life is that simple, that will be so boring.
I was a developer, team lead, and then I was a boss + PM for my startup, then now, I am developer again doing something I like.
My experience and recommendation is, the role or developer and PM are so different. People think that when someone get experience he/she can be Project Manager. I see people around me was a great developer but a poor PM, or a poor developer but an excellent PM. Why? because they require different skill set and face different situation. Being a PM is more than using the MS Project or SVN, budget tools....etc. it is People Management as well. How to bring your team together and go for the same goal.
Therefore, if you think you are a PM type of person, go for it. However, if you don't like deal with people and like to create things, why don't be an excellent developer or architect? :)
I was at a conference last Friday and there were quite a few older folks there that had just recently been laid off. It struck me how one person in particular told me that they were "thinking about" signing up for linked in. Another told me that they didn't really get google.
I think the most important thing for long term success is keeping up. Make sure that when people search for your name they see that you are involved in modern technologies. Don't dismiss new things as "fads" as the whole industry is really based on "fads".
I'm not sure what you are getting at. I'm in my 40's happily developing software, and frankly most of my co-workers are older than I am.
If you are talking about ways to make much more money, then you really have two choices. You can go into management. You might not start off making much more there, but the possible upside to management is theoretically limitless.
I say theoretically, because companies have a culture, and this includes where they like to promote people from. Some companies like to promote from sales, some from accounting. If none of your upper-level managers came out of engineering, you probably aren't going to get there either.
Your other option is to go into consulting. The upside isn't quite as high here. But it is still quite high. If you write books and make yourself famous, you can really command a high price. The downside is that you don't have quite as much security. You have to pay your own insurance, don't get paid holidays or sick days. In theory you will be the first to loose your job when things go bad, and you will generally not get asked to help out with projects that are well run and in great shape.
The startups offer a very fertile ground for experienced developers, people that can start from scratch and grow with the company and projects.
Of course is a riskier option than the large IT firms, but at the same time in my experience a very rewarding one.
I have done everything from senior developer to CTO (not in that order) in a variety of startups over the past 10 years
No, we have a separate branch for technical specialists. With same band and salary as project management.
And even my boss is an almost fulltime developer.
This is a great question and i look forward to reading the responses it generates. In my opinion, i think it would be a shame to "force" a person who loves doing a specific task into management if they do not want to go in that route or feel they have the skills or personality. It is the perennial case of the excellent programmer who becomes an awful manager after he's pushed-promoted to a management position.
some people just want to program, or do graphic design. Why should your time and experience punish you by requiring that you be promoted?
I'm currently 47 years old. For the last 6 years, I had the ultimate position - it was a new "start up" within Kodak. That meant I had the good pay of a big company (instead of the low pay and stock options of a real start-up). I was part of a small programming team, responsible for the database design and the server code, and half the GUI code as well. It was great. Unfortunately, the credit crunch ended that start up, and so now I'm doing grunt contract programming work at a company that does payroll stuff. It's stifling, but I've got a side-project in my spare time to develop an iPhone app to keep my skills up.
If you're skillfull and lucky enough, you can stay a coder as long as I have, and hopefully longer. It's been a long fun road, and I wouldn't trade it for anything.
No. There are lots of alternatives. I remain a programmer and program designer and my 30s were a long time ago. Fortunately, the companies I work for recognize that techies are often good at being techie and not so good at other things and provide a career path for those who want to remain techie - that would be me.
Not all all. I am 41 and have been developing since my 20's. While project management is an option for me, I still prefer writing code. Of course, things do change as you get older.
Today I am more counted on to help with design and architecture, and project managers sometimes look for my direction to help guide a project.
But no thank you, I don't want that job!!!
I much prefer to live in my little cave, hacking away at the keyboard....
Absolutely not. You have the choice if you want to stay on a technical track or move onto the management track.
When I say you have the choice, it really comes down to you and what you like to do. If you enjoy managing people, seeing the big picture, and helping to align resources for success then by all means, go into management. On the other hand, if you love to code, love solving technical problems, and are more comfortable coding that dealing with the political minefield that management can be, then stay technical.
Then once you decide on what track you want, stay there. If your company wants to move you onto a different track because you are senior and they promote senior people that get things done, then honest with them. In my experience, senior technical people that are good and wish to stay technical are respected by management.
Make sure that you know what you're talking about when you say "program management." It means different things to different people. I'm out of my 30s (by a bit) and I try hard to be a program manager like Joel describes  in addition to the individual technical contributions as / when I have time.
I also get to go all over the world and do some crazy fun stuff every now and then. When you look up from the keyboard, you might realize that there are a variety of interesting and challenging opportunities in addition to your developer role. I know I did. http://www.joelonsoftware.com/items/2009/03/09.html
If you are a really bad programmer, may be yes . http://en.wikipedia.org/wiki/The%5FDilbert%5FPrinciple
The only path is the one that is right for you. A programmer - someone who truly loves to solve code related problems - should remain a programmer if that is what they desire. Don't confuse titles with career paths, there are many Sr. Programmers and other related titles. I think IT gets a bad rap from people who move to a position they are truly not right for just for the $ (even though $ is good) and a title (never has done much for me). This is why many project managers are ineffective, or IT Managers poor managers - people should pursue what they enjoy and depending on their ability placed at the right level.
We're in an exciting period of time in software development. Platforms are richer than ever before. I enjoy being laison to Sales and helping to onboard clients, turning opportunities to projects. It's rewarding to see a wary client up front thrilled and excited about the soolution we built for them. I've managed to get myself into the legal side of things, which has always interested me and put my contract law courses to good work. The PM in my shop crafts the SOW and works with the client and legal to negotiate the contract. Also, working with legal and your client to negotiate the IP and licenses provided for the solution is interesting to me as well. So, I guess for me in my late 30's, I find the balance between Account Management, Sales, and Project Management rewarding in my career.
A strong technical background from working in the trenches, and a strong interest in the business side of software development prompted me to go back to school as an adult and finish my MBA several yrs ago. I find operations a good career path for me now and wouldn't change a thing I've done in the past. Do and follow what you love. I still crack open vi to write some csh or korn scripts.
I left development and tried my hand at project management type roles and found it boring and frustrating. I hated the fact that I had no control over the software that may have been buggy, I couldn't go and look at it myself and being a developer previously, this was just too much for me. So I went back to development.
Ideally I would have liked a role that combined some project management with software development so I could have the best of both worlds I guess.
If you enjoy developing, then don't leave it. If you fancy trying your hand at project management, try and obtain a role where you can do both.
I think one path to continued career growth as a developer is to become an expert in the business that you're writing software for. That skill can only be gained through experience. Software design books often portray the developer's role on a project as working with the domain experts to design software to automate their processes. My experience is that developers are almost always asked to design "magic bullet" software in concert with massive business process overhauls. This happens because the current process sucks, the "domain experts" are busy and/or clueless, and they want software to magically make all their pain go away. A developer who can fully participate in or lead business process designin and the software to automate them is a very valuable resource (and hopefully more highly compensated).
This problem is not unique to coding. Engineering and Chemistry have similar issues. A family member of mine, an Analytical Chemist by trade, is now a software developer. The 20 years of experience as an Analytical Chemist becomes his niche as a developer, as he understands the user very very well thanks to his experience as a chemist.
Not sure how you apply that to programming; but perhaps part of the point is that its different depending on the organization. Some organizations see the world in that way: "manager by 40 or you fail", some organizations value technical people for what they are and don't insist on migrating people to roles they have no interest in just because of age. The OP mentions mega corporations like Google/MS/IBM as examples of where mature developers might be welcomed, but I don't think its limited to that. the Chemist-now-Developer I refer to works at a mid sized non-profit organization as a technical contributor, though he's well over 50. Don't assume all companies work the same way; you might be very much happier somewhere else.
I have tried this path. I even got a PMP qualification. Project Management is NOTHING like programming. I discovered I am much better being a senior developer.
(p.s. in an ideal organisation, a great programmer should be able to earn more money that a manager.)
I worked with a guy called Jurij who joined Experian  when it was founded in 1974. He was a coder then and was still a coder for Experian when I left the company in 2004.
When he started, his team leader was John Peace . By the time I joined the company in 1997, he was leading the company and had grown it into a vast multi-national.
Jurij felt no bitterness or resentment towards his former colleague, though by then their pay packets must have been an order of magnitude or two apart. Both men had found the roles they were happy in, had become the best they could at what they did and gained a lot of satisfaction from doing so.
Personally, I know I'll always be a Jurij rather than a John. So long as I can keep my perspective, I think I'll always be happy with that too. http://www.experian.com/
It would seem that this depends a great deal on the company. Where I work right now, there are engineers that have been engineers for over 30 years, and still write code on a regular basis.
I think this is something definitely worth investigating at each company you interview with; simply ask them about career paths, look around and try to see if you see any developers that look past their 30s, etc.
If you ever think there's an "only path", it's because you've got blinders on and don't want to see what other options you have.
Mike Rowe has been seen on TV castrating sheep with his mouth for his job, but I would hazard to guess that this is not the only career path for opera singers.
In your 30's eh?
I too have been called an expert (ex=old and spurt=drip-under-pressure?) Okay it's an 'old' one ;)
But...You probably did manage to accrue years of valuable knowledge coding/architecting systems that make other people rich. Well played.
Maybe its a great time-of-life to start exploring one's entrepreneurial side? There is only CEO at the top of the ladder... and he's a drip. Oh wait.
Project Management? That's a horrible choice. How about this instead: Work your way up through engineering management, but be one of the good managers who still codes. Eventually, become a VP of engineering... Or, start your own company, call yourself whatever you want and get filthy rich. That sounds a lot better than project management!