As I get older, I feel urgency to be an expert in area and go deeper, but I am still storing/pulling data from DB, transforming and presenting through REST/gRPC APIs.
Ideally, I would love to have a single area to which I can dedicate rest of my professional career, be it ML, ML Ops, Data engineering, Infra guy (AWS, Azure or GCP), maybe a security?
Any recommendations?
UPDATE: Thanks everyone, so many valuable insights are shared.
The flip side to a high-reward path is high risk. ML Ops is cool now, but ten years ago blockchain was cool. That hasn't really played out the way a lot of people thought it would, and those who went all-in may have wasted their time.
Then there are passion areas that are intrinsically cool, and the number of people willing to do this work will always exceed the number of jobs. Think video games.
You say you have kids, and in that case a low-reward, low-risk career was probably the prudent path to take. When people depend on you, the risk of failure is magnified, a lot.
The "correct" reaction to a midlife crisis is almost a trope now: you have it pretty good, don't rock the boat, don't screw things up.
If you have free time (I don't know how old your kids are) you can use that to explore new areas of technology. Just remember the grass is only greener when it's fertilized with BS, every passion eventually becomes just a job, and work does not define you.
Take them to do stuff they're interested in. Take them to do stuff you're interested in. Talk to them about school and what they want to do in life.
You're not going to die wishing you had worked harder for someone else.
It's only a 'crisis' if you do stupid things with the greater income/experience that you have now.
Don't.
Your age means you've grown up and it can be the greatest period of your life.
Also, instead of thinking that you're getting 'older', notice that today you're also the youngest you'll ever be in your life.
Try not to waste your energy regretting the time that has gone by, instead focus on how much more you could do with the time you still have.
Work and tech is just a small part of life. Surely you dreamed to do or get things but couldn't when you were younger. Now is the time to do that!
First and foremost, focus on your health, get fit. Make it a hobby. This will give you the positive energy you need to pursue whatever dreams you've had.
Now on the tech side of things, just a few thoughts:
Storing/pulling from DB, transforming and presenting is pretty much what we all do. The difference is the db and type of transformation and presentation.
So your experience is great and you can learn anything new that inspires you plus apply your skills to that!
Pick a subject and read about it every day, work through the tutorials, start small projects, until you can walk on your own. Technology changes fast and now with the emergence of AI it's hard to tell what will stick or if any of the skills we've learned for decades will still be useful in 5 years.
Fundamentals usually stick, refresh/get deeper into them, grokk the common algorithms, system design, architecture, design patterns.
As you get older, younger people will start to look up to you for guidance. Try softening your skills.
Software development is not just about technology, it's also about communication, intuition, knowing who to engage with, when to take up stand, when to back down, etc.
Those things come to us as we get older, so try to include them in your thought processes.
- Graphics: I'm interested in graphics (I learned some OpenGL years ago) but the amount of material is vast and it appears that there are many sub-domains to specialize in.
- HPC: With zero experience, I'm unsure if hobby projects would be enough to get a HPC role.
- Embedded: I've heard embedded doesn't pay great. Also, different people have different definitions of what qualifies as embedded. I've worked on car software but it was basically just a headless POSIX app.
- Finance: No real interest. Looks stressful.
I did the "hyper-focus-on-one-tech" thing for ~15 years. Talk about burn out.
1. Nothing wrong with shuffling jsons around or developing yet another REST API.
Domain expertise often matters and pays more. There are only so many DB developers, but experts in gRPC APIs for insurance (put here your industry) are always useful for all insurance companies.
2. Your feelings and attitudes ("can't say I am a successful engineer") is likely not related to your professional life per se. Low level CUDA experts have same issues around same age. They can push you to grow your career and can be a valuable resource, but don't expect it to fix a root cause.
At the same time, they have a side project that feeds their passions. It rarely pays well, if anything; but leaves the developer in complete control of what to do next and how long to do it.
Assuming you have another 20-25 years left in your career, the "tech stack" in each of those areas you listed will change multiple times before the end of your career.
Here’s an alternate piece of advice: find a new job and take the job that pays the most money. Repeat.
True joy is getting to where you don’t need to work. The moment you are there your entire outlook changes.
Please understand how lucky you are, and that what you have is a dream for millions, if not billions of people around the globe.
Maybe there's no need to change anything? Do you not feel content with your achievements?
My take on it? If you have the time, find a place to volunteer. EU has plans to cut digital exclusion heavily by 2030 and there is probably some social program in your area to deal with that. If you could share a very tiny bit of your Go knowledge with a few fellow citizens there is a chance you will feel better than buying a Miata.
I'm unsure if the employment number for aggregate total SWE headcount is accurate (the one pointing to less engineers being employed now than in 2018) but it seems like unless you're in the top 1-3% of talent now - it's going to be slow going or just time to exit.
I’m the same age with kids and have done all of the above. Work is just work. Live your life around it.
I'd take a couple of weeks to dig into that, why do you feel that way, what influences you to think that way, is it really what you want or what your area of work expects from you, &c. The grass is always greener...
Most data related projects require expertise on vectorized executions, CUDA optimizations, or memory layouts + OS scheduling/storage to optimize their solutions
Why do you romanticize the more specialist roles, what do you expect from them?
Is this ‘midlife crisis’ really about your work?
“20 years from now you will be more disappointed by the things you didn’t do than by the ones you did do. So throw off the bowlines. Sail away from the safe harbor. Catch the trade winds in your sails. Explore. Dream. Discover.” —Mark Twain