I ended up on this website via google and noticed that a number of questions posted about tech roles (i.e software development) in IBs went without answers, so I thought I'd post a general summary answer about IB tech roles.
My Background: I work in a front-office technology role for a mid-tier IB. I've also done graduate recruitment in the past. I've made a accept/reject decisions on around 1000 candidates so I've seen a lot of applicants.
Which universities do IBs recruit from ?
First of all the general IB rules apply, if you're from a brand-name uni you've got a much better chance of getting an interview. However on top of this it does actually matter which uni you go to if you're studying computer science as there are significant differences between courses.
From my experience at interviewing I'd rate the quality of CS courses at UK unis (for the purpose of IBs) as:
1) Cambridge
[gap]
2) Imperial College
3) Bristol
4) Oxford
5) Warwick
[gap]
6) York
7) UCL
8) Loughborough
I believe this list matches roughly what many of my fellow interviewers at other firms would come up with (possibly with a rearrangement of those in groups 2-5 and 6-8).
If you don't come from one of these universities you can still get into an IB, but you'll need to show stronger ECs. A candidate from 1-5 can get an interview with no/minimal ECs, but outside of the top five you'll need ECs. An good internship mostly makes up for not having a brand name uni, the internship doesn't have to be IB, but it needs to be somewhere technical and well respected (Google, Amazon, ARM, etc). Non-technical internships won't cut it.
It's worth noting that the top Polish universities would come in at number 6 on the list, so after that point international competition can become a lot tougher.
If you're smart and technically solid then you shouldn't have a problem get a job in IB technology. IBs hire so many developers that they could hire every single "excellent" computer science graduate in the country and still have vacancies (the ratio of developers to traders at the average bank is 5:1).
How much does it pay ?
Typical graduate starting salary is between 30k to 40k. An average front office developer can get an increase of +5k/year, a good developer +10k/year. Salaries max out at the 80-120k range, and from that point on bonuses increase. It's fairly typical for senior developers to become contractors with payment generally in the 500-1000/day range (higher for specialisms).
A good front office developer in their first few years can make 30% - 50% bonus, but this varies a lot between banks. In some banks developer bonuses are paid from the business pool (i.e. sharing the desk's bonus pool) but in others they're paid from an IT pool.
There are superstar developers who make vast amounts (250k+) but they're few and far between. The best paying developer jobs are those where the developers are making money for the bank (automated trading systems, implementing quant strategies, etc.).
If you're working as a developer on the front desk it's possible to transfer to the business side if you want to do so (few do though).
Promotion is fairly flexible (at least through the early stages), if you've got both strong technical and soft skills you can make it to VP within 4 years. Going beyond that is harder.
What are good books to prepare for interviews ?
Programing Interviews Exposed by John Mongan, Noah Suojanen
So You Want To Be A Wall Street Programmer? by Andrey Butov
The Complete Guide to Capital Markets for Quantitative Professionals by Alex Kuznetsov
Which IBs are good to work at?
This is obviously very subjective, but here is my personal opinion on the banks:
Banks you don't want to work for:
Morgan Stanley
- Seem to be on a downward spiral of hiring terrible developers and trying to fix it by making all the developers work longer hours. They seem to hire developers who all other banks reject
Credit Suisse
- Everyone I've known who's worked in technology at CS has hated it. Full of office politics. Graduates have been known to come home crying after bad days (I kid you not).
Banks which are ok:
Barc Cap
- I've heard dodgy things about the technology at BC but nothing horrendous, they seem to occasionally fire developers randomly though.
Goldman Sachs
- Upside: It's Goldman Sachs. Downside: It's Goldman Sachs. They pay less well than other banks but use their reputation to sell the job instead, bonus over pay is also strongly emphasized. Their developers are generally competent but arrogant. A lot of financial programming is done in a propriety home-built language called Slang. General development is in a mix of C#/C++/Java. If you turn down an offer they'll get pissed at you.
UBS
- Mainly a C++ house, generally regarded as an OK place to work.
Merril Lynch
- Mainly a C++ house although Java is growing, generally regarded as an OK place to work. There is a lot of variance in quality between teams though.
JP Morgan
- Generally held in high-respect, codebase in Java and Smalltalk. Very Eclipse-centric.
Dresdner Klienwort
- Generally held in high-respect, Mixture of Java / C++, tend to like applicants with open source experience. On the downside lacks the prestige of the big banks.
KBC
- Generally held in high-respect, Mainly Java. Reputed to have the most technically challenging interviews of all the IBs. On the downside lacks the prestige of the big banks.
RBS
- One of the most relaxed IBs, less well paid than the other banks but with far less stress and the benefits tend to be good. Technology is a bit behind the other banks, largely stuck on Java 1.4.
Abn amro
- A lot of their technology is being ripped out and replaced with RBS stuff, which given the state of RBS's stuff doesn't inspire me with confidence.