Work for me is the thing I need to do so that I can afford the things I enjoy doing, such as hobbies, time with family, etc.
If your current job is absolutely soul crushing and terrible, by all means make a move. But more importantly, find the things you enjoy doing that's not work, and find the time to do those things.
Realistically, most people don't get to work on meaningful cutting-edge projects. Of those who do, few are moving the needle. Education might not be the best path to a fulfilling job either.
Personally, I find fulfilment at a much smaller scale, away from the spotlight. I write software to support another goal: simplifying local bureaucracy. It's not as glamourous as AI and rockets, but I have a grateful audience and a lot of agency over my work.
Working on my own stuff has brought back the joy of programming for me. I do a little bit of everything, and it's always in support of a greater objective. This might be something interesting to you.
Think about it this way: you've spent a decade writing software.
> Does it make sense to change direction at this point?
Changing direction isn't a binary thing. You can aim, say, 4.5 degrees to the left to change your trajectory ever so slightly. This is possible because whether you're working on CRUD forms or self-driving car data analytics pipelines many principles of software engineering are the same. For example good software is usually simple, clear, and portable [1].
Specialise in an industry vertical that is not just web development. Let's use healthcare as an example. If you're doing dropdowns and modals in healthcare software - try and understand if those widgets could be easily used in other healthcare software. Why or why not? Could that same dropdown be implemented in a native app using GTK and/or WinUI? Perhaps given the type of data you're working with a dropdown isn't the best way that it could be represented. Try loading up some disease definitions into Typesense[2] and presenting a more free-form text search for particular diseases. From there you can think beyond UI widgets and think more about general problem solving.
[1]: https://en.wikipedia.org/wiki/The_Practice_of_Programming [2]: https://typesense.org
Chatgpt as a teacher is seriously a super power.
After you learn about pointers, different style of OOP, etc.. you can switch to something with manual memory management like Odin, Zig or Rust.
I would say, try Go for six months, then, if you want, move to one of the other languages. In a year, your career might be completely transformed and many new avenues will become available to you. THEN you can start thinking about what you'd like to do.
You don’t need a PhD to work on rockets. Well, you might depending on what you want to do.
There are a lot of software opportunities at rocket companies from test systems, real-time measurements, operator interfaces, flight simulation, and various other internal supporting software.
You might be interested in and have the right experience for, for example, operator interfaces and various internal dashboards and database applications. That might be your entry into the field and you can try to branch out from there into other areas.
Leaving certainly won't help anything. Find companies and people that align with your values and build with them.
Or become a woodworker :)
…or do you pick things up relatively quickly?
How do you feel about being responsible for your own thing?
Good, you still have your soul. Listen to it. All these arseholes want is their machines of loving grace that never say no, and orchestrate the masses for them. Self-driving to shape how/where/when people can move.
Build things for you and let the rest languish. Maybe share what you learn with aspiring juniors, and become the eccentric techie. The moral backbone is so lacking right now, I feel absolutely no motivation to extend the industry's grasp. My humble opinion.
"A bird in hand is always worth two in the bush" when it comes to Finances in today's uncertain world.
However, "Purpose in Life" != "Job Needs"; Disambiguate them in your head and pursue/manage each separately. Learn/Study whatever you find interesting and want to do. Whether you decide to make it a job to make money out of is a separate decision.
> Does it make sense to change direction at this point?
It may or may-not based on your financial/family situation and appetite for risk.
> I envy PhDs working on self-driving cars and rockets and AI.
Change that envy to inspiration so that you can study any of the above or other subjects that you find interesting. You can orient this towards getting a more satisfying job in the domain that you love or just do it for the intellectual enjoyment.
> But also question overall morality of the tech industry.
Don't go there unless you want to change everything about your life.
PS: Study Philosophy both the ideal and pragmatic kind.