I worked for a time in finance and investment banking. Problem-wise it can be pretty interesting but it's important to distinguish between two classes of developers.

1. Traders; and

2. Non-traders.

Engineers who are traders are typically called "quants" (quantitative traders) as they write software that employs trading strategies to make money, as one or more of spread trading (trading between the bid-ask spread), prop trading (taking a position in the market) and arbitrage (of which HFT is merely the latest incarnation; some may dispute this definition).

Traders of all kinds have their bonus defined as a percentage of the profit they make. That percentage can be as high at 10%. In 2007 there were some Wall Street traders who walked home with $50m+ for the year. I remember seeing an AmA on reddit from a quant who took home $20m.

While maths is obviously important, it is not (IMHO) as important as psychology. It takes a special kind of individual who can hold a position worth billions of dollars and make rational decisions. Human psychology is typically completely wrong for trading: people hold on to losers too long ("I'll sell when I get my money back") and sell winners too soon.

I know enough about myself to know I could never do that. Some can and they get rewarded for it.

The second class of engineer, the non-trader, earns a respectable salary with benefits as compared to other software engineers. They are however the second worst paid employees at an investment bank (the worst are support people). All those business types who join IB, assuming they survive, will typically have a salary and career trajectory that will dwarf that of any engineer within a few years.

The only way for an engineer to make real money is to be a quant, found a startup or join an early stage startup. In the last few years the competition for engineers has heated up to the point where engineers are (or can be) more adequately compensated for their contribution.

The other thing that happened is the cost of seeding a startup went from $5m to $50,000 in the last decade, almost all of which is engineer time. This makes engineers just that much more valuable.

As far as not having some kind of positive impact, working in investment banking can be exactly that. People like to demonize the finance industry with some justification but it does a lot of good too.

You want to buy a house? Well the only reason you can get a loan is that investor (and/or depositor) funds are matched to you. In the last few decades securitization (MBS ie mortgage-backed securities) have revolutionized this market. On the other hand, the subprime collapse should, in my mind, lead to criminal prosecutions across the entire finance and insurance sectors.

Spread trading (or "market making") is also misunderstood. People see market makers as scalpers when in fact they're providing a valuable service: they're creating liquidity. The reason you can buy or sell shares at any time (rather than waiting for a seller or buyer to show up) is because of market makers.

IPOs are a complicated business. They're possible because of the finance industry as well. Although, curiosity, VC as it exists in the Internet startup world is almost completely unrelated to the finance sector. It's basically a byproduct of university endowments.

Still, I think I'm done with that industry (I now work for Google) typically because IB types aren't, in my experience, very nice people to work with plus you're near the bottom of the totem pole.