I'm 31 and have been in technology for almost a decade, so I can relate to this.
There are two kinds of boredom. There's the acute, dangerous kind which is a form of anxiety. That's when you physically can't do the work, because it's so menial, and fall into a dangerous feedback loop of underperformance, anxiety, burnout, social stress, etc. That sort of "emergency" boredom is a different beast, and I won't address that because it doesn't sound like you're facing that. Instead, you seem to be fighting the nagging, "I could be doing more with my life, but I don't know what" kind of boredom that all of us get, from time to time.
The good news is that the latter kind of boredom, alone, rarely transmutes into the acute, emergency kind. There's always that nagging fear that it might, that you might wake up one day and say, "I can't do this", but it rarely happens that way. Emergency boredom (the early stages of sudden-onset anxiety and depression) either involves a biological mental illness, or low social status, and it doesn't seem like either is a problem for you.
Some people are advising sabbaticals. I'm sure that it works for some people, but the problem with that approach is that many people try to "find themselves" and come back with nothing, but are six months of savings poorer. You typically find out what you want to do when you're trying to do something else. Getting out of this kind of lull is like falling asleep. You can't consciously "find yourself". You have to let go and let it happen on its own time.
I'll address the four problems by line item.
Problem 1: High compensation may reduce your options somewhat, but that's a good problem to have. Why? Because the myth is that companies slot people to appropriate roles and status levels and then pay accordingly. The reality is that most of the important, high-status people have no idea how good you are, so they work in reverse: they look at your compensation (and compensation history, and titles, and how your carry yourself) and assume that to be "your level" and find appropriate work based on that. With no prior experience of the sort, you could be a VP/Engineering or VP/Research at a startup tomorrow, just on the credibility conferred by your $200k salary alone. You might be taking a 10-20 percent pay cut to do it, but if the startup is genuinely interesting, it might be worth it.
You might think you have fewer options than at 23, because of your compensation history (and justified desire to stay at that level) and the pyramid shape of this industry. In reality, you have far more good options. You've already won. At 23, you have a lot of shitty options. At 38, with a decent professional history, you have a small number of better options. This can still be problematic if you lose your job suddenly (it can happen to any of us, even if not especially the best) because the smaller job pool does make searches longer, even if what is found is usually of higher quality, but it sounds like you're employed.
Problem 2: you probably wouldn't be happy as a junior developer, churning tickets and dealing with problems you've already seen before, while using technologies that are new and different but generally not better. Nostalgia and the fact that you were new to the craft makes those junior years seem better than what they actually were. In reality, the percentage of people, at any rank, who get to spend more than 2 hours per day on real coding is quite small.
Your best odds might be with taking a 9-to-5 that doesn't tax you too much, and getting your hours of real programming in early mornings, weekends, or evenings. If you can block out 2 hours each morning, and 8 hours each weekend, to work on projects you care about, then you're doing more real coding than 95% of professional programmers.
Problem 3: That's a "going to sleep" problem. You won't find it if you consciously look for it. There are plenty of things worth working on: alternative energy, cancer research, even making social games more engaging and less manipulative. The problem is that it's damn near impossible to get paid to do them (especially if you're not already a "brand name" domain expert). Corporate capitalism is dying (slowly, and it'll probably be 50 years before it's definitively dead) and generating all sorts of incentives to do pointless work while systematically neglecting the long-range R&D work the country (and world) so desperately needs.
A month on vacation will get you to the point where you have the opposite problem: there are tons of things you want to do with your life. Getting paid to do them is the nasty, ugly, stupid problem that no one should face but, while corporate capitalism persists, we all do. Committing to one, and actually seeing it through, is a secondary, internal challenge. (Committing to exactly two projects-- the day job and one side project-- is even harder.) Most people end up committing to the one prospect that gets them paid, even though that tends to stop being rewarding after a couple of years.
My advice would be to find smart people, work with them, and learn things. The upshot of this career is that there's always new stuff to learn: machine learning, GPU programming, new programming languages (Rust, Haskell, Clojure), and plenty of cool, slowly-changing stuff (compilers, operating systems, algorithms) worth a refresh as well. I doubt that MOOCs and online resources will "take over the world" (they're tailored toward highly motivated, intelligent 25+ year olds who want to accelerate their knowledge and who don't need the social context of immersive education) but there are a lot of great free resources out there for us. Get a Safari Books subscription if you don't already have one. Make contacts, learn cool shit, and level-grind. That has you doing more than 95% of your peers. Read papers and books, go to conferences, and do this on company time as much as you can (by your late 30s, you should be politically adept enough that you can work nearly exclusively on your career goals without getting in trouble, and that approach is more rewarding and less boring than regular-ol' slacking). You can't force yourself to find something worth working on, so just make the contacts and learn the skills that'll have you prepared when the muse comes.
Problem 4: The bad news: as a traditionally managed developer, you're well past maxed out. Most of Corporate America is manage-or-be-managed and, now that you're the eminent senior and "tech lead", there are very few places (effectively zero, because you can't get into them without contacts or a Stanford PhD) where you'll learn anything technical from the people telling you what to do. If you stay on your current path, you'll probably be stuck as an interface between non-technical management and the programmers you'll envy because they get to do "the fun work" and seem to be progressing while you stand still. Unless you can work directly for someone Peter Norvig or Jeff Dean... you're going to stagnate as a managed programmer. In truth, you're at risk of backsliding as new-ways-of-doing-old-shit keep emerging and eroding your relative status. You can still be a programmer post-45, but as a traditionally-managed programmer, you're just fucked by that age.
My advice would be to go into management, not because it's great but because it's better. It will give you credibility and status and a bird's eye view into the social and technical aspects of the organization. Try to leapfrog over the lower-middle management stage (MacLeod Clueless) where you have responsibility without power or status. Those jobs are traps and don't lead anywhere better. You may have to change companies, taking a lower-upper-management job (Sr. Director or VP) at a smaller company. But get a job where you have autonomy and some executive control, smart people under you (who you can learn from, because the people under you will know more about their domains but you can get them to teach you) and enough status and leverage that you can cut away a couple hours per day to keep current on the parts of technology that interest you. It's not like executives can't code. No one says they aren't allowed. If your eventual goal is to have your own startup, then orient your 1:1's toward learning as much as you can from your subordinates (and, if you're willing to play that way, ask them to investigate technologies you're curious about, but don't personally have time to look into).
The perception that management is "hard" comes from two sources. The first is complain-bragging, because executives don't want people to realize that they have better work lives in all dimensions (respect, autonomy, flexibility, compensation). They dog-whistle it, so their jobs sound easy to their peers (projecting status and competence) but painful and sacrificial to those below them. The second is that middle management is often a trap that leaves you cleaning up messes made below and above you, and doesn't confer much status or respect. You're best to jump over that "uncanny valley" and into a role where you get to make actual decisions. With 15 years of experience, you're more than qualified for those jobs. (You were probably more than qualified several years ago, to tell the truth.)
There are two kinds of boredom. There's the acute, dangerous kind which is a form of anxiety. That's when you physically can't do the work, because it's so menial, and fall into a dangerous feedback loop of underperformance, anxiety, burnout, social stress, etc. That sort of "emergency" boredom is a different beast, and I won't address that because it doesn't sound like you're facing that. Instead, you seem to be fighting the nagging, "I could be doing more with my life, but I don't know what" kind of boredom that all of us get, from time to time.
The good news is that the latter kind of boredom, alone, rarely transmutes into the acute, emergency kind. There's always that nagging fear that it might, that you might wake up one day and say, "I can't do this", but it rarely happens that way. Emergency boredom (the early stages of sudden-onset anxiety and depression) either involves a biological mental illness, or low social status, and it doesn't seem like either is a problem for you.
Some people are advising sabbaticals. I'm sure that it works for some people, but the problem with that approach is that many people try to "find themselves" and come back with nothing, but are six months of savings poorer. You typically find out what you want to do when you're trying to do something else. Getting out of this kind of lull is like falling asleep. You can't consciously "find yourself". You have to let go and let it happen on its own time.
I'll address the four problems by line item.
Problem 1: High compensation may reduce your options somewhat, but that's a good problem to have. Why? Because the myth is that companies slot people to appropriate roles and status levels and then pay accordingly. The reality is that most of the important, high-status people have no idea how good you are, so they work in reverse: they look at your compensation (and compensation history, and titles, and how your carry yourself) and assume that to be "your level" and find appropriate work based on that. With no prior experience of the sort, you could be a VP/Engineering or VP/Research at a startup tomorrow, just on the credibility conferred by your $200k salary alone. You might be taking a 10-20 percent pay cut to do it, but if the startup is genuinely interesting, it might be worth it.
You might think you have fewer options than at 23, because of your compensation history (and justified desire to stay at that level) and the pyramid shape of this industry. In reality, you have far more good options. You've already won. At 23, you have a lot of shitty options. At 38, with a decent professional history, you have a small number of better options. This can still be problematic if you lose your job suddenly (it can happen to any of us, even if not especially the best) because the smaller job pool does make searches longer, even if what is found is usually of higher quality, but it sounds like you're employed.
Problem 2: you probably wouldn't be happy as a junior developer, churning tickets and dealing with problems you've already seen before, while using technologies that are new and different but generally not better. Nostalgia and the fact that you were new to the craft makes those junior years seem better than what they actually were. In reality, the percentage of people, at any rank, who get to spend more than 2 hours per day on real coding is quite small.
Your best odds might be with taking a 9-to-5 that doesn't tax you too much, and getting your hours of real programming in early mornings, weekends, or evenings. If you can block out 2 hours each morning, and 8 hours each weekend, to work on projects you care about, then you're doing more real coding than 95% of professional programmers.
Problem 3: That's a "going to sleep" problem. You won't find it if you consciously look for it. There are plenty of things worth working on: alternative energy, cancer research, even making social games more engaging and less manipulative. The problem is that it's damn near impossible to get paid to do them (especially if you're not already a "brand name" domain expert). Corporate capitalism is dying (slowly, and it'll probably be 50 years before it's definitively dead) and generating all sorts of incentives to do pointless work while systematically neglecting the long-range R&D work the country (and world) so desperately needs.
A month on vacation will get you to the point where you have the opposite problem: there are tons of things you want to do with your life. Getting paid to do them is the nasty, ugly, stupid problem that no one should face but, while corporate capitalism persists, we all do. Committing to one, and actually seeing it through, is a secondary, internal challenge. (Committing to exactly two projects-- the day job and one side project-- is even harder.) Most people end up committing to the one prospect that gets them paid, even though that tends to stop being rewarding after a couple of years.
My advice would be to find smart people, work with them, and learn things. The upshot of this career is that there's always new stuff to learn: machine learning, GPU programming, new programming languages (Rust, Haskell, Clojure), and plenty of cool, slowly-changing stuff (compilers, operating systems, algorithms) worth a refresh as well. I doubt that MOOCs and online resources will "take over the world" (they're tailored toward highly motivated, intelligent 25+ year olds who want to accelerate their knowledge and who don't need the social context of immersive education) but there are a lot of great free resources out there for us. Get a Safari Books subscription if you don't already have one. Make contacts, learn cool shit, and level-grind. That has you doing more than 95% of your peers. Read papers and books, go to conferences, and do this on company time as much as you can (by your late 30s, you should be politically adept enough that you can work nearly exclusively on your career goals without getting in trouble, and that approach is more rewarding and less boring than regular-ol' slacking). You can't force yourself to find something worth working on, so just make the contacts and learn the skills that'll have you prepared when the muse comes.
Problem 4: The bad news: as a traditionally managed developer, you're well past maxed out. Most of Corporate America is manage-or-be-managed and, now that you're the eminent senior and "tech lead", there are very few places (effectively zero, because you can't get into them without contacts or a Stanford PhD) where you'll learn anything technical from the people telling you what to do. If you stay on your current path, you'll probably be stuck as an interface between non-technical management and the programmers you'll envy because they get to do "the fun work" and seem to be progressing while you stand still. Unless you can work directly for someone Peter Norvig or Jeff Dean... you're going to stagnate as a managed programmer. In truth, you're at risk of backsliding as new-ways-of-doing-old-shit keep emerging and eroding your relative status. You can still be a programmer post-45, but as a traditionally-managed programmer, you're just fucked by that age.
My advice would be to go into management, not because it's great but because it's better. It will give you credibility and status and a bird's eye view into the social and technical aspects of the organization. Try to leapfrog over the lower-middle management stage (MacLeod Clueless) where you have responsibility without power or status. Those jobs are traps and don't lead anywhere better. You may have to change companies, taking a lower-upper-management job (Sr. Director or VP) at a smaller company. But get a job where you have autonomy and some executive control, smart people under you (who you can learn from, because the people under you will know more about their domains but you can get them to teach you) and enough status and leverage that you can cut away a couple hours per day to keep current on the parts of technology that interest you. It's not like executives can't code. No one says they aren't allowed. If your eventual goal is to have your own startup, then orient your 1:1's toward learning as much as you can from your subordinates (and, if you're willing to play that way, ask them to investigate technologies you're curious about, but don't personally have time to look into).
The perception that management is "hard" comes from two sources. The first is complain-bragging, because executives don't want people to realize that they have better work lives in all dimensions (respect, autonomy, flexibility, compensation). They dog-whistle it, so their jobs sound easy to their peers (projecting status and competence) but painful and sacrificial to those below them. The second is that middle management is often a trap that leaves you cleaning up messes made below and above you, and doesn't confer much status or respect. You're best to jump over that "uncanny valley" and into a role where you get to make actual decisions. With 15 years of experience, you're more than qualified for those jobs. (You were probably more than qualified several years ago, to tell the truth.)
That's enough for one post. Good luck!