117

I'm a developer who is gainfully employed. However, I've been having many discussions over the past 6 months, initiated by my superiors, about my career path and moving up.

I've made it abundantly clear that I don't want to pursue a management type of role. I enjoy writing code and I want to keep my fingers in the code as much as possible.

The alternative path would be towards a lead developer role. However, I've recently been told that to be a lead developer, I'd have to "widen my circle of influence" which has been described to me as mentoring and teaching more junior developers and becoming more well-known and influential in my industry.

I have a big problem with this. I am not a teacher and I have no aspirations to be one. Being a mentor involves a certain amount of responsibility for other people which is why I don't want to be anyone's manager.

As for influence in my industry, I'm an extremely private person who values his anonymity online. I don't have any social media accounts except for LinkedIn, which I rarely use. I don't have a Github account. I try to manage my "digital footprint" such that as little about me can be found as possible from a Google search of my name. I didn't become a programmer for fame or recognition in the industry. Unlike some of my coworkers (especially those from the West coast), I don't live or die by the number of stars I have on my Github repositories.

Does this mean I'm out of luck for advancement in my career? I like where I am now. I'm given a fair amount of freedom in my work. But I'd like to continue to increase my income more than just the small annual raises for inflation and the idea that I've peaked in my career at age 28 is very disconcerting to me.

11
  • 1
    I feel like my intent is being misread. I'm asking what career paths are available to a developer who's not interested in management, leadership, or becoming a teacher.
    – user34243
    Apr 20, 2015 at 2:54
  • 1
    related: workplace.stackexchange.com/questions/35251/…
    – Telastyn
    Apr 20, 2015 at 17:52
  • 1
    a) Do you mean 'career path reached its terminus in this company, or in general?' Is your instinct that you want to stay in the company, or leave? b) "many discussions over the past 6 months, initiated by my superiors" Basically they have a very high opinion of you, they're bending over backwards to help you get promoted, and you're just fighting their every suggestion.
    – smci
    Apr 21, 2015 at 1:14
  • 22
    I'm at the "other end" of a similar career - I'm 57 and still work as a software developer, writing code on a daily basis. I learned early that I lack the desire and the skills to be a "leader", but happily the world contains many different kinds of people - there are those such as myself who enjoy developing software, and then there are "the others" who fill roles I don't care for, such as "project lead", "manager", "VP", etc. Perhaps I'd make more money in a different role but I wouldn't be happy. So thank goodness "the others" exist. And it takes all kinds to make a world... :-) Apr 21, 2015 at 15:07
  • 7
    One long-term suggestion is to save and invest. I did that, and now have enough of an income stream that I can pick & choose the work I enjoy, without worrying about the paycheck.
    – jamesqf
    Apr 21, 2015 at 18:27

16 Answers 16

118

I know developers who successfully moved on towards a happier and more valuable developer career. They usually picked a special subject and worked to become an expert in that field. They also joined special projects that often lie outside of the classic corporate world.

A few examples would be a friend who became a Linux developer joining RedHat, another developer who joined CERN (European Organization for Nuclear Research), data mining specialist from Europe I met in Asia, or guys who code stuff to predict energy consumption in large geographic regions.

I myself used to run a really large scale analytics program in Asia where we hired mathematicians with executive salaries. So you can make money, too.

What these examples have in common, is that these guys have become an expert in an industry or academic field. So beyond coding, they have chosen another dimension. Like industry knowledge or special functional field (e.g. UI design or 3d game development, just to mention less scientific options).

Another common characteristic is that they moved away from the corporate world and found happiness on the borderlines of business and science or entertainment.

Such opportunities are not easy to find though. You need to look for special projects. These guys usually build their own careers themselves.

Regarding the future of development. Today there is a global need for more developers (especially Java), which is good news. You can use this opportunity to travel the world and build specialized skills.

I agree with the other answers, that if in your current company, leadership skills and mentoring are the key to promotion, you will probably not find happiness there. I spent 17 years in such organizations and the examples I gave, are people who left us, because I could not offer the right career path.

I spent my 17 years in consulting, and I disagree that consulting is a good option for you. Consulting shining stars are people with management skills, communications skills, mentoring skills and leadership skills. Silent developers don't get the top paychecks or much attention.

Please note that I'm using happiness instead of career or money. I am sure the people I mentioned above lost their frustrations and found a more satisfying work life in a new field. I am also sure that they have a decent compensation package and I am sure they learn something new and exciting every day. I don't know if they get a higher raise than inflation though, but I have a feeling it does not matter so much.

5
  • 21
    +1 for thinking outside the box :) I'll note that without a social media presence, these problem domain experts run a risk of being the problem domain experts that no one ever heard of. The more specialized the area, the more tightly knit the professional network and it's probably not a good idea to be the outside looking in. Apr 20, 2015 at 11:35
  • 1
    guys and girls too I guess Apr 20, 2015 at 14:13
  • 4
    The challenge wih this route is that @BlueJ774 does not want to gain public recognition. In order to be a recognized expert in an area, you need recognition. These kind of niche positions would likely be hard to find without a solid network and also hard to secure without some demonstrable success in the field.
    – Eric
    Apr 20, 2015 at 17:59
  • Great answer. I'd add that independent contractors (arguably a form of consulting) are perhaps the only exception to your advice on silent developers. Even then they benefit hugely from social skills and as @Eric mentioned those still need to demonstrate success publicly.
    – Lilienthal
    Apr 20, 2015 at 20:38
  • My past experience tells me, you may be right. These days, however, if I look at the market on oDesk and similar sites, I see independent contractors from around the world competing on price. Is this gonna change the way clients and developers work? It is already. Adding special skills looks like a better option to increase your value.
    – takacsmark
    Apr 21, 2015 at 8:11
130

What you are basically saying is "I want to continue to get more and more money without continuing to produce more value". I'm not saying you're not providing value as an individual contributor, but in order to continue to increase the value you produce, you have to provide some sort of leadership.

Think of it this way, did you spring forth from your mother's womb a superb coder? Did you even graduate college as a wonderful Sr. developer? No. Companies have invested time into grooming you and training you. They gave you projects that were of some value, but were also easier than the ones Sr. developers took so that you could learn to do them. Maybe someone else designed systems and you implemented them. Now it is your turn to decide if you want to help invest in others to grow new talent, or just continue to be solely focused on individual contribution.

I realized long ago that there is only so much I can do via my own direct contribution. That is why I decided to go into management, but technical leadership is just as valid of an option. A product architect is often the role for that sort of leadership, and doesn't necessarily require the level of interpersonal skills that management does (and keeps your fingers close to the code).

17
  • 61
    That's not what I'm saying. I'm asking how to produce more value without becoming a manager or leader.
    – user34243
    Apr 20, 2015 at 2:50
  • 160
    And I'm saying you can't.
    – Jared
    Apr 20, 2015 at 3:02
  • 7
    Generating worthwhile invention disclosures, or finding a way to reinvent your environment that will transparently improve everyone's productivity, are probably the only solo paths forward. Anything else will involve committee work at an absolute minimum, plus the leadership to help drive the committee to a conclusion and get its recommendations adopted. I'm going thru some of this myself, so believe me I know all your arguments -- but the company's request that we step out of our comfort zone really isn't' unreasonable. Ask if mentoring is available for this transition.
    – keshlam
    Apr 20, 2015 at 5:55
  • 14
    +1 for the architect portion. In my particular consulting firm that is exactly how someone advances without taking on management-like work. There's certainly increased responsibility, and you can't do it while being a total recluse, but it's basically for the people who want to stay eyeballs-deep in the code and just become geniuses at implementation and innovation with the platforms we use.
    – thanby
    Apr 20, 2015 at 18:22
  • 13
    I think there's a flaw in this in assuming that switching to management is how to provide more value. Granted, this could be an issue of perceived value by the company.
    – DA.
    Apr 21, 2015 at 2:09
51

From a senior dev spot the options for better salary and moving up tend to be:

  • Management - this includes Tech lead which is a management spot however low level.
  • Specialization - this means becoming the expert in something, preferably expertise in something that multiple companies need. This can be going into architects jobs, or a big data specialization, or embedded systems or all kinds of things.
  • Finding another job at another company - One company's senior level can be another company's intermediate or junior. Plus differnt companies have different pay scales even for the same job title. If you want to make your career more interesting, look for another company where you can grow your skills.
  • Research - in a way this is really a subset of getting a specialization, but some people do work on a PhD and get into the the more theoretical side of computer science. It takes a lot of work to go this route and you will need to learn to network, but the work will be interesting.

You have already ruled out management for now, so look at the other options. If you don't want to move into management, your best option in the short term is to move to other companies. Right now tech jobs are hot, so salaries for new hires are increasing far more rapidly than for people who stay at a company. If you want to make more than an annual 2-3% inflation raise, then you need to move around more. The other options will take more work from you, but in the long run may be the more satisfying route. Only you can say for certain.

Also remember that what you want at 28 may not going to be what you want at 36 or 55. Management might look better to you in ten years. You may reinvent your career multiple times in your life. I have had at least 6 entirely different careers in my work life. So just because you want to keep coding right now doesn't mean you will always feel this way or that you will always want to work on the same type of code you currently work on. So don't get discouraged at 28 that there are no paths you currently like the looks of. Eventually you will find the path you want. It may be a path you wouldn't even consider right now. Sometimes in life, things are moving in new directions and sometimes they are not. Life ebbs and flows.

0
22

You disqualified yourself from the lead role by refusing to mentor. If you want to be a lead, you will have to interact with your subordinates and support them. You have no intention to do that.

You are not going to be influential any time soon with a non-existent github and a non-presence in social media and on the Internet e.g. no blogs.

You don't meet the requisites for advancement, so don't be surprised that you are looking at a future without advancement.

On the other hand, you meet all the requirements of your current position. Until these requirements change, that is.

7
  • 21
    Disagree re github/social media. Agree that what the company is asking you to work on is what's required to move into higher technical ranks... and if you don't move up they may suggest you move out. If you want to be a technical lead you need to demonstrate leadership in both learning and teaching the tech. Recommendation: Seek mentoring in the soft skills, and seek opportunities to have impact at a team/company level rather than just your own dept.
    – keshlam
    Apr 20, 2015 at 1:42
  • @keshlam You might think that the OP can do without a social media presence but that's not necessarily what the OP's employer has in mind. My attitude is that if you don't have a live network on Linkedin, you are not showing how you can use Facebook, you have nothing to show on github then you won't have much of any influence beyond the walss of your department and/or your company. This influence vanishes when you leave your company and of course, makes no impact on any prospective employer you are interviewing with. If your advice works for you, that's fine. Apr 20, 2015 at 10:46
  • 2
    "Not necessarily" is exactly my point. First step is to find out in more detail what the company is looking for. Leadership can be defined / demonstrated in many ways, and trying to guess risks wasting effort. This may be part of the answer, or it may not. ASK. Making assumptions (that simply being a good coder/architect would be enough) is a large part of how we got into this corner.
    – keshlam
    Apr 20, 2015 at 11:36
  • 3
    This doesn't answer the question, as the OP said at the start that s/he doesn't want to be a lead developer. Also, I agree that social media accounts are not necessary for advancement, at least not in all companies. (And - while I do have social media accounts - I don't want to work in places where you'd be required to have them.)
    – GreenMatt
    Apr 20, 2015 at 15:14
  • 2
    @GreenMatt If you were to ask me "Has my career path reached a terminus?" and I tell you that "you are looking at a future without advancement", what do you think I am telling you? Hint: you aren't going places. Apr 20, 2015 at 21:27
22

Has my career path reached its terminus?

No. You need to distinguish between a plateau, a local apex and a terminus.

You could terminate your career and do something else, possibly something more rewarding (financially or otherwise) but that would be your choice.

Does this mean I'm out of luck for advancement in my career?

No, the "luck" is there, you are choosing not to take that advancement because of the associated baggage.

I'd like to continue to increase my income

It means you need to look for other means of advancement. Either a change of employer or a move sideways into a more valued speciality.

the idea that I've peaked in my career at age 28 is very disconcerting to me.

Well that viewpoint is a mistake.

For example, some scientists do their best, most notable work, in their early career. History is full of people who are remembered only for what they did while young.

There seems to be two things you want and you simply have to choose.

  • You like where you are.
  • You want more money.

Countless people have faced that choice. Sometimes in life you can't have everything you want at the same time.

3
  • 6
    “most scientists do their best, most notable work, in their early career” — I’m not sure that’s accurate. I know there are very well-known examples of scientists who have (E.g. Einstein), but I think I remember hearing that there are plenty of examples of scientists who worked their whole lives in a field, and made a big contribution by the end, through not giving up. They’re just not as famous. Apr 20, 2015 at 19:57
  • 3
    @Paul: I accept that criticism, answer updated accordingly. Apr 20, 2015 at 20:06
  • 1
    I'm not sure how the point about scientists goes against what he is saying, it seems to support it. Apr 22, 2015 at 11:19
12

I've hammered thousands of nails and no one has ever called me a carpenter. If someone comes to you with a question or you make a correction during a code review, you're teaching. It doesn't have to become a part-time job.

Speaking up during meetings and make beneficial suggestions is how you leverage your knowledge and benefit your company significantly more than others. If you just want to sit on your hands and wait for people to tell you what to code, you're no senior developer.

Unfortunately, you're in a profession with a known shortage of talent, but we still continue to promote the best ones away from coding. Too many companies confuse being "fair" with paying everyone relatively the same. That's going to have to change or we lose people like you. Professional sports figured it out. Some players are worth 10x more than others and get paid accordingly.

Either convince your company that you are too valuable to do anything else but code and improve other's code (you don't have to be a teacher) or find a company who can. Maybe there's a start up willing to give you a lot of stock options. You can decide if you want to take the risk.

10

I'm going to re-iterate what others here have said, but with an analogy that might make this more clear for you, and two alternative solutions.

Direct production vs management

If you are selling widgets that you make yourself, your income is directly tied to your ability to quickly produce quality widgets.

If you've upgraded your tools and skills and are at the peak of your ability, you may be able to get a comfortable living selling X widgets per month.

Now you have a choice - you can either farm out the widget production to other workers, or you can keep doing it yourself.

If you keep doing it yourself, your income is set. You may be able to command a slightly higher price over time based on improvements in the product and your own expertise, but you are essentially limited by your production. Unfortunately you inevitably have competitors, so even with improvements over time you might have reached a plateau.

If you, as the expert, are willing to take on workers to do the more mundane parts of the production while you handle the production that requires more expertise, you can pay them less than you pay yourself, and produce more widgets per month.

In the same way, you are selling your hours of time. Unless you can improve your value of each hour you sell, you are unlikely to get more for your time than you already are. You can job hop and get a raise each time, but ultimately you'll reach a limit where you are getting paid the maximum value per hour.

If you accept that your time and effort might be amplified with the use of workers producing under your supervision, while you handle the more difficult aspects of the work, you may be worth more to the company. Until then, though, you are only going to get paid for what you produce.

Entrepreneurship

What you might notice, however, is that the company itself is using you to amplify their product. You are getting paid X per hour, but because of your work they are making Y for each hour you put in. Depending on the industry this isn't always a direct or clear connection, but what should be clear is that your work is worth more than you are getting. They are able to use it and sell it in a way that brings profit, a fraction of which you are getting.

Many people run into the same management/production problem you've run into, and they've come to the conclusion that if they have to manage anything, they want to reap the benefits as well. Striking out on your own, even if you intend to have no employees, still increases your administrative overhead significantly, but if you are able to sell your product you may be able to increase your income substantially while still spending over half your time in production.

Gain expertise in another field

Another option that can increase your value substantially without going into management is learning another art or skill on your own. While the skills you have and the skills you gain individually may not yield a higher salary, you'll find that if you find the right employer who needs someone versed in both areas you'll be able to demand a higher salary.

It does limit you somewhat in terms of available positions, but you can choose your secondary skill. Check out the market and look at what's needed. A programmer who understands genetics will have a high paying job in the biotech industry. A mechanical engineer with expertise in control systems will be able to work in many manufacturing industries.

4
  • 2
    +1 for Entrepreneurship. If you absolutely don't want to teach/mentor, running your own show as a freelance contractor is probably your only option. However, that job also often entails mentoring teams, if nothing else to transition the work you've done for them when you roll off to the next gig. Apr 21, 2015 at 14:16
  • I'm not so sure about entrepreneurship in this case. The successful entrepreneurs I've run across are in general very outgoing and seem to know everyone (and everyone knows of them). Apr 22, 2015 at 16:56
  • @DavidHammen There's nothing in the op's post which suggests he has no network, or networking skills. I've known many entrepreneurs, however, who become or were outgoing for the purposes of their business, but for them it was a skill they developed - not something that was in their personal nature initially. Same thing could be said about networking. Still, it's just one option of many that some people who don't want to go into management choose.
    – Adam Davis
    Apr 22, 2015 at 16:58
  • I have seen more than one Software Engineer leave to develop a product. One was a special tree control for creating print-ready documents. Another was the maker of an excellent framework, who built his product and then travelled to sell it, and it was very successful. There are many times you come across a product and say, "I could do better," and that's another way to make more money -- and you don't have to leave your job until it's working and you have your first sale, for instance. Libraries, languages, a microservices product/library. All of this is to me also Entrepreneurship. Sep 1, 2020 at 1:30
8

I believe you misunderstood (to some extent) what influence and recognition means. It's not being a well known blogger or have a popular open source project. It's more about people respecting your opinion and decisions, and being a role model for more junior colleagues.

As a leader, you will make decisions. When there is no single right decision or it's a controversial one then influence matters. If your subordinates don't respect you, you might have hard time making a decision.

As Jared points out, after some point it's hard to keep adding more value. Michael O'Church (https://michaelochurch.wordpress.com/2012/01/26/the-trajectory-of-a-software-engineer-and-where-it-all-goes-wrong/ ) divides developers to adders and multipliers. Coders are adders. But good managers multiply the value produced by the adders. That's what your company wants you to be.

1
  • 2
    I'm surprised the "10x developer" didnt come up elsewhere in this discussion. Your point about being a multiplier instead of an adder is exactly what the OP is missing. Here is a Quora that puts it pretty well: quora.com/… and outlines the ways to be a multiplier instead of an adder. Not all of them involve management (only most).
    – Jeff Meden
    Apr 21, 2015 at 15:43
4

In the comments you specifically asked:

"What career paths are available to a developer who's not interested in management, leadership, or becoming a teacher."

You are limiting yourself massively with these caveats, the traditional career path for a developer would involve at least some amount of the above, but there are other options.

You don't specify what language you are developing in, one possible option would be to retrain/upskill in a different language/discpline.

Where I live (UK, not London) the average PHP developer, for example, earns around £20k, a .NET developer can command more like £30k, so you could find out what the better paid disciplines are in your area and consider retraining into a more lucrative area.

Another option depending on your skill set, is to go freelance/set up your own business. This can be lucrative but the risks are high, on the plus side you can go after work that you find interesting but you do have to manage and "lead" yourself. You may also have to educate your clients! The downsides are many, mainly being it can be tough to get enough work to earn a living at least to start with, but you could start out doing this work part-time, be aware of possible conflict of interests with your existing employer.

Finally don't forget that the more experienced you become as a developer, the higher salary you can command, at least in theory. A developer with 10 years experience will usually be offered a higher salary than one with just a couple of years under their belt. Having more expertise on your CV, more skills etc will also lead to having a higher salary potential, so try to up skill where you can.

3
  • 4
    "A developer with 10 years experience will usually be offered a higher salary than one with just a couple of years under their belt" -- this is absolutely true, but as part of that deal the developer with 10 years will usually be expected to mentor/teach more junior devs, at least informally. Not always, though, so the trick would be to find the posts where it isn't required. Apr 20, 2015 at 16:38
  • 2
    @SteveJessop Your comment has a side note that may be important for the OP to distinguish: "at least informally". I'm also averse to mentoring/teaching, but dropping information here and there - for example, during pair programming - is easy enough
    – Izkata
    Apr 20, 2015 at 16:43
  • 2
    @Izkata: good point. And if the questioner can become comfortable with informally helping to "look after" juniors without being fully responsible as their teacher or line manager, then they might lose some of their aversion to taking on jobs where a certain amount of mentoring is required. Apr 20, 2015 at 16:47
4

to be a lead developer, I'd have to "widen my circle of influence" which has been described to me as mentoring and teaching more junior developers and becoming more well-known and influential in my industry.

Yes and no. Some companies make a distinction between two different career paths beyond senior developer--one that's more a management role (lead developer), and one that is like being a senior developer, only with more autonomy and responsibility. Basically, the latter indicates that you are being recognized as a (pardon the jargon) thought leader, as opposed to a team leader; management has identified you as someone with beyond-senior skills in software development. You may be expected to have a deeper understanding of legacy systems, architect greenfield projects with little supervision, specialize in one particular area (e.g. database performance optimization), or all three. This role has different titles at different companies--you might be called a principal engineer, consulting engineer, or something else. It sounds like this might be the direction you want to go. Ask your management if they have room for this kind of role; just because nobody else has the title "Principal Software Engineer" there doesn't mean that it's impossible for you to be the first.

As for influence in my industry, I'm an extremely private person who values his anonymity online. ... I didn't become a programmer for fame or recognition in the industry.

Depending on the culture at your company, this could be a show-stopper, or it could be irrelevant. Some companies do expect their high-ranking engineering staff to submit conference talks and write blog posts, but many do not. This is more common in open source communities, but not unheard of in commercial software (e.g. the .NET community). Again, can you talk to management, and find out whether this will really be expected of you as you grow beyond a senior role?

One other thing to consider--it's possible to be a thought leader in an engineering community while maintaining your privacy and even anonymity. why the lucky stiff's influence on the Ruby community is a great example. Or, as a compromise, perhaps you could write whitepapers strictly for internal consumption (i.e. spreading your knowledge throughout the company, but not into the larger community). The latter looks great as part of your personnel file, too, when it comes time for review (especially if you've been reorganized and put under a different manager who doesn't know your history, as often happens).

4

I have been in a similar situation for the last 2-3 years. So I will tell you what I have done in the last few years to keep my skills relevant in the industry.

Firstly, I think you should increase your technical domain. So if you are a Java guy learn .NET, open source, servers, cloud, or other new/cutting-edge technologies. This will ensure that in your current industry the company can give you other choices besides forcing you to accept management roles. In other words, don't limit yourself to one technology or domain - learn others.

Secondly, accept some responsibilities regarding helping junior developers in technologies which you already have experience in. This ensures the team will get more technological guidance. Believe me, this is an easy path for a programmer as this is still part of his domain. At the start, you don't need to go for a training program, just help them about technologies. That will definitely increase your value as a senior/lead - and, at the same time, can reduce the company's pressure on you.

The company still can pressure you to accept a management role, but if you follow the above advice you will get more opportunities in your career.

1
  • Comment about studying new fields of technology is a good one. It will actually improve you in your current area as well, just because you broaden your own horizon. Apr 21, 2015 at 20:36
3

Many of the responses here do not line up with my experiences so maybe I can offer a different perspective.

The most well paid and experienced developers I have come across are contractors who follow a) the money and b) the interesting work. The least well paid are those that stay in the same jobs doing the same thing with minimal learning and progressing year after year.

To give some background on my perspective, I have social anxiety and so I have difficulty interacting with people I don't know and I have no interest in medicating myself out of it. While that can't be entirely avoided it means that like you I have no interest in mentoring, training, managing, playing office politics, running meetings, liaising with clients.

It has in no way hampered my career as a software developer now in my mid 30s I have worked in multiple countries for many different companies. I am a partner in a highly profitable software company and involved in a recent startup. I'm not trying to tell you that I think I'm awesome just that there are alternative and very real paths to moving into management. A few things I have learned a long the way:

  1. Working in small companies your true value can be better perceived instead of larger companies where office politics and popularity become key components to career progression.

  2. Contractors can earn twice as much as full time developers and the risk of being unemployed is smaller then most people perceive.

  3. Changing jobs is the easiest way to get a pay raise.

  4. People don't change... much. Sure push your comfort zone a little but don't expect to become something you are not comfortable with and don't listen to those who tell you that you should be someone you are not.

  5. Play to your natural strengths instead of fretting about your weaknesses. Know what those are and don't be worried about telling others about them.

I am shocked that developers believe you have to move into management or become some kind of "personality" with linked in accounts and GitHub repositories to further a career and earn more money. To me that screams "look at me" and "hipster". You don't need to be one of the cool kids to have a exceptional and rewarding software career but you do need to put in a lot of effort, it won't just magically come to you.

In answer, your career can continue to advance but possibly not at your current work place given the options made available to you.

2

I recently had some very similar conversation with developers for whom I am responsible. Indeed, I talked about widening circles of influences as a way to evolve as an engineer (rather than making a move to management).

You'll need to talk to your manager(s) to understand their specific philosophy, but I think there is probably a wider array of things that you can do other than 'teaching' and 'mentoring' to extend your influence beyond yourself. In addition, those two specific skills encompass a broad spectrum of activities.

Clearly, in order to be a 'lead' developer, there needs to be an element of leading. Since 'leading' implies working with a group, then there certainly needs to be influence beyond yourself. This influence is multi-faceted.

Consider, for instance working with a group to implement an architecture that you've designed. They will need to understand that architecture and work with in it; explaining a concept or a design to a colleague is influence. Let's say your group needs to make a decision on which toolkit to use or what approach should be taken for a design; advocating for one framework or pattern over another is influence.

Expanding your influence does not require you to exclusively teach, lead, advocate, mentor or whatever. It does mean that you need to spend more time that you would just working on your own.

As for influence in your industry, I wouldn't worry about that just yet. If you're currently at the stage where you're worried about whether you want to be influencing junior developers, then you don't need to be worrying about industry influence.

When that time comes, though, you don't have to cultivate a constant and broad impact on your industry. Maybe, once a year, you present at some local conference or meet-up. Maybe you write a useful blog post on some aspect of your favorite language that garners some small attention.

Or maybe you just don't want to do that at all. Not wanting to have influence outside of your company will put a limit on your advancement, but probably not for quite some time yet and, once it does, you might be quite satisfied with the advancement you've made... or you may have changed your mind about your willingness to expand your influence outside of where you work.

1

This:

I have a big problem with this. I am not a teacher and I have no aspirations to be one.

is in direct contradiction with:

the idea that I've peaked in my career at age 28 is very disconcerting

It cannot be that "disconcerting" if you've been given a clear path forward and are specifically refusing to take that path.

Mentoring is extremely rewarding. It sounds like you've never tried it. Why are you so unwilling to do so?

There is a bigger point here as well: Your employer has specifically asked you to be a mentor and/or a manager. By refusing to do so, you have probably somewhat tainted yourself in their eyes. You have not only refused to advance your career, but have probably taken a step backwards. If I were you, I would do an about-face quickly, by approaching my employer and agreeing to mentor. Otherwise, do not be surprised if you are part of their next headcount reduction.

0

I suggest aiming to become "an X Developer", not just "a Developer". By "X" I mean specialize in an area that is in demand (now and into the future). It should also be an area that you have some interest in and are prepared to invest your own time into (to get started).

The risk if you stay as "a Developer" is that you are now competing in a global market against thousands/millions who will happily undercut you.

Becoming an 'Independent Contractor' / freelancer may look attractive, but be aware that it doesn't suit all personalities. If you struggle to bring yourself to interact with junior Devs, how will you go facing a customer who doesn't want to pay?

0

An alternative to management is to climb your employer's technical ladder (if they have one). Beware, though, that the technical ladder at many companies is a short and rather rickety structure compared to the tall and well-constructed management ladder.

You need to advance in one way or another your career is at risk. Suppose you keep doing tasks just beyond new hire level for the next five years or more. Your cost of living advances plus a small raise will eventually build up. Why should an employer pay you to do a task when they can give it to someone fresh out of college at a much reduced cost to the company?

There are lots of ways to advance without jumping into management. You need to get out of your comfort shell. Just a few:

  • Join a technical society and attend the local branch's monthly dinner meetings. Talk to the people seated near you.

  • Read articles in technical journals and talk about the ones that tickle your technical fancy at work.

  • Learn a major new programming concept on a yearly basis (minimum). Give a brown bag lunch session at work.

  • When you see run across some goofy technical nonsense at work, speak up and offer to fix it. For example, suppose your employer doesn't use configuration management (or on the flip side, goes overboard with process). Volunteer to research the problem, make recommendations, and show how those recommendations will save the company operate more efficiently.

  • Learn to see the bigger picture, seeing modules instead of individual functions, architecture instead modules. Learn to see what does and does not go together. This is a big problem in software, and it's getting bigger and hairier all the time.

  • Learn to foresee software risks. Some capability that you think can be written in a couple of weeks will run into roadblock after roadblock and take months. Learn to anticipate where those alligators lie in waiting, and learn how to stem them off.

  • Learn to estimate development costs. How long will this task take? That one? Are there dependencies? How certain are you of those estimates? I'm really good some of the time, really bad others. Develop a feel for when a guess might be a bad guess.

You'll find that you are learning, teaching, mentoring, and adding technical value. It isn't that taxing, and your perceived value by your employer will skyrocket.

But I'd like to continue to increase my income more than just the small annual raises for inflation and the idea that I've peaked in my career at age 28 is very disconcerting to me.

At 28, you should be seeing more than just cost of living raises. That you aren't should be disconcerting. Qualified young people should see raises well over inflation throughout their 20s.