Don't work in a job where your function is to maintain some legacy system and if it breaks its as if you lost the firm millions but if its running smoothly no one cares.
Good advice. But at the end of the day, a lot of these ad exchanges, dating apps, half-baked recommender systems etc that most startup engineers get to work on just aren't all that different, in spirit, than the sprawling back-office order processing systems that most financial programmers get to work on (save for the comparatively minor fact that that they might be in badly-written PHP or JS as opposed to badly-written Perl or C).
There are plenty of pour souls in both camps, toiling away in the bowels of other people's messes -- while those responsible for creating those messes have long since made their millions, and moved on to greener pastures.
Solve real problems.
Don't be a second class citizen (e.g. if the firm is financial, software engineers aren't going to be CEO and that says something).
Make sure you have upside. Don't work in a job where your function is to maintain some legacy system and if it breaks its as if you lost the firm millions but if its running smoothly no one cares.