This is pretty much what I used to think. If it works out for you, then great, but I think you might find its unrealistic.
I suspect that your 9 year plan is an unrealistic, best-case scenario, that won't come to pass.
Also, 9 years is a long time to survive if you're miserable. I think you may find that at some point, your employer and coworkers notice it, get sick of working with you, and replace you with someone else that really likes programming. Like a lot. But right now, not N years ago.
I am finding the day to day experience of being a developer in a team / corporate environment quite taxing on mental health these days.
Some issues are:
JIRA / agile / whatever methodologies, so many metadata fields in the ticketing system that are all just matters of opinion. So much time spent hoarding and prioritizing "wishlist" items, and discussing which order to do things if, hypothetically, they were to be done... instead of actually doing them.
Pull requests / code reviews - now that these are done in a web browser, there is no bar to having an opinion and having your two cents. As a developer, the pull request is something I produce after executing and debugging some code for a few days, but then I cant merge it until people are happy with how it looks, not how it works.
Testing & documentation - everyone wants this, nobody can agree how it should work. It's in a constant state of "aspiration", a few broken / flakey test cases from the last attempt that slow down development, but provide no confidence in the safety of changes. You can improve the situation by writing new testcases and fixing old ones, but sooner or later someone will have an urgent change that they "know" is safe that breaks the test cases that they will merge anyway, and then it's back to square one.
General poor quality work environment - open plan, long hours, noisy, some "interesting" characters. Very little scope to ever control your work environment.
I find all these to be instances of cognitive dissonance, where there is a huge gulf between how people think things should work, and the actual, day-to-day reality of making a change. Somehow people are only interested in talking about some hypothetical future state, but nobody cares about how things are now and how to get there, and if you do, you are perceived as being "difficult".
All of the big firms in NYC already have their own heavily branded / promoted charity day / events / philanthropy programs - your own charitable contributions aren't going to be a selling point for them.
If you want do this for your own reasons, great, I am sure it could deliver a lot of meaning and satisfaction in a field where that is perhaps hard to come by.
(Shameless plug - I do happen to be on the job market in NYC now, if you wanted to connect or offer any advice I'd be receptive, email in my profile).
I reached this conclusion embarrassingly recently, after a few attempts at increasing productivity rapidly that were not well-received by coworkers.
Having thought about it more, it makes sense. Businesses are generally not paying developers by the hour, so why would they care about productivity when they can just pressure people to work extra hours, pretend it's a one-off crunch, make vague promises of future remuneration, or bring onboard inexpensive junior developers to work through their low-productivity processes?
I've often seen developers invent elaborate JIRA workflows and pre-checkin validation workflows that slow development to a glacial pace.
Also, JIRA / other ticketing workflows can take on a life of their own - at some point, many developers seem to realize that it's easier to describe defects and potential fixes, spend time categorizing, prioritizing, assigning tickets for doing things than it is to ever actually do them.
Right, I am revising my resume currently, and for the first time I'm considering dropping off my earliest jobs - both because they were a long time ago, and because what I was doing then is more or less completely irrelevant to what I would want to be doing next.
My thought, looking at the senior developers around me, is that adding whole new bullet points is good.
I'd be pretty keen to correspond with you, OP, or other "senior" / experienced (30s, 10+ years) developers in NYC trying to skill up and get into higher salary positions, or at least share some experiences and intel. email is in my profile.
Also mid-late 30s, work in finance / NYC, hit a bit of a plateau salary + skills-wise that I am trying to work through, also hoping to avoid management, here are my thoughts.
* Staying focused on long-lived, core technologies, C++/Java/Python. I'm not too interested in chasing AWS/docker/Kubernetes or anything with a half-life approaching that of a js framework.
* Need to add new skills. For me, coming up to speed with kdb+/q. I realize that while I have gained breadth / experience with my skills, it had been too long since I have added an entire new "bullet point" / category to my resume.
I am in a very similar situation, 4.5 years in at a large / prestigious organization where I was thinking there was a lot of scope for progression and I could stay long term.
First 3 years were great, good work and appraisals, I learnt a lot. After that, things deteriorated quite suddenly, a combination of some urgent but poorly conceived projects, passive management, too much time in meetings, a few layers of extra paperwork / approvals introduced.
Basically, the work environment really did go downhill, but in hindsight I didn't deal with that very well or put together a plan to move.
I would suggest you come up with a plan to bring this to a head sooner rather than later. Try to do an excellent job with your status reports and pointless meetings, so that you can transfer or get a good reference from your manager, and leave on a high note. At the same, research the market for your next job, pick up any missing skills, and prepare for a move on your own terms and schedule. Don't let the situation fester without doing anything about it.
Yes, I have thought about trying my hand at some teaching / mentoring.
How did you get into being an adjunct? I have absolutely no idea how to approach something that, but I would be pretty interested to try it. I don't actually have a CS degree / academic background, would that be much of a problem?
The only things I've seen like this when I've looked have been coding bootcamp or high school level stuff, which doesn't really appeal to me.
That's cool, I hope it works out for you! I've thought about this kind of thing too.
I think for most mainstream programming languages, the market for books, blogs, tutorials, youtube channels is pretty much saturated. However, I have worked with several proprietary / vendor products over the years that have perfunctory documentation, not much in the way of a user community, where serious users end up having to experiment + reverse engineer things to get it working well.
I think it could be interesting to become a third party "expert" for such a product, blog about tips and tricks, offer training and consulting, write books, etc. I guess it's the same as what you're doing, just not for a "popular programming language", but for something slightly specialized but still actively used.
I suspect that your 9 year plan is an unrealistic, best-case scenario, that won't come to pass.
Also, 9 years is a long time to survive if you're miserable. I think you may find that at some point, your employer and coworkers notice it, get sick of working with you, and replace you with someone else that really likes programming. Like a lot. But right now, not N years ago.