"Developers live for tricky puzzles to solve and startups are one place that you can get them. Startups aren't the only place where you can find challenges (as you've noted)."
Ehhh. I jumped from research to the startup world, so maybe I have a high bar, but most startups are doing pretty boring, predictable variations on bog-standard systems work. You see this in the way that these "exciting" companies keep re-inventing the same wheels in different languages. How many javascript frameworks are there, again? How many different ways have people found to "replace" relational databases?
If you're right out of school, everything is challenging. Give it a few years. Eventually, it becomes downright boring to watch people needlessly re-solve problems that were solved in the late 1960s because they don't know history, and/or don't want to learn some boring old technology that their older brother used last week.
If you want interesting problems, go into research. If you want to do interesting problems and get paid, go to companies that are large enough to have the resources to fund things that aren't directly on the critical path to profit. Startups are a really bad place to go if you want tricky puzzles.
I realized a) that I was unlikely to get a tenure-track position, and b) that even if I were to get one, I didn't really enjoy the work of a tenure-track professor, which tends to be more about fundraising and having meetings, and less about doing research.
(More flippantly, I realized that the life of a modern, tenured academic looks a lot like the life of a small business owner. So why not just go into startups, where there's a chance of making real money for the lifetime of effort?)
Ehhh. I jumped from research to the startup world, so maybe I have a high bar, but most startups are doing pretty boring, predictable variations on bog-standard systems work. You see this in the way that these "exciting" companies keep re-inventing the same wheels in different languages. How many javascript frameworks are there, again? How many different ways have people found to "replace" relational databases?
If you're right out of school, everything is challenging. Give it a few years. Eventually, it becomes downright boring to watch people needlessly re-solve problems that were solved in the late 1960s because they don't know history, and/or don't want to learn some boring old technology that their older brother used last week.
If you want interesting problems, go into research. If you want to do interesting problems and get paid, go to companies that are large enough to have the resources to fund things that aren't directly on the critical path to profit. Startups are a really bad place to go if you want tricky puzzles.