share
Stack OverflowHow do I get domain knowledge to start programming for the finance industry?
[+40] [15] ya23
[2009-04-05 21:38:03]
[ career-development finance knowledge ]
[ http://stackoverflow.com/questions/719739]

I've seen a lot of job advertisements (contracts) quoting extremely high daily rates. I don't think I will ever earn anything even close to it without some experience in banking.

Besides, banking looks like a good challenge with high-availability systems and big money floating around. As a bonus, I would probably know more about how to invest my savings.

While technical skills shouldn't be a problem in the long run (I'd like to be C/C++/C#/Java developer), the domain knowledge would be a stopper.

Now, my question is how to start career in banking? How to learn domain knowledge?

I believe economical slowdown we are in now may be an excellent moment to start training to be ready when the market is open again.

I'm aware of the fact this question may get negative feedback, but it's worth risking some rep to get a good answer.


EDIT

Question was closed, but it looks like there is a chance to reopen. IMHO question is programming related - the question is essentially about how to write code for banking, not how to become a banker...

A bit of my background: I have distinct MSc degree in applied computer science. My current knowledge about banking in general is rather low - I'm not even sure how to invest effectively. But hey, I'm still not (that) old being 25 and want to fill that gap.

(1) I think it's an interesting question! - Aaron
I've seen developer jobs in trading/banking being advertised for £70/Y + big bonuses. The same one looks to have been advertised for literally months - and it looks like no one is biting. - Alister Bulman
(5) It's a pity this question was closed. How is this worse than asking about dual monitor productivity gain or comfort level of Aeron chair? Guy wants to work for banking industry, why wouldn't you help him? - Sergej Andrejev
To those who closed this question, READ THE QUESTION. You just read the title and didn't take the time to actually understand the question. He wants to become a finance programmer but he doesn't have the domain knowledge. - Simucal
This is as relevant as any of the other career development related questions. - cletus
Search jobs and look at how many "How do I get _ job" on SO. Totally relevant. - Aaron
I also think this is a relevant programming question. How DO people get the domain knowledge to work in certian sectors? What technical skills are relevant to some posts - low latency stuff etc. - Fortyrunner
Particularly in light of this being open stackoverflow.com/questions/686216/… :) - cletus
Note that working in finance will not help you manage your own savings. You may end up losing money as you invest in stuff you don't really understand.. but think you do. - Fortyrunner
Anybody know anybody with enough points to get it opened again? I think this is a great question and the 5 answers so far have been interesting. FYI - I'm NOT looking for a job, just curious! - Aaron
(1) As someone who has worked for five investment banks, I can assure you that all the answers given so far are BS. - community_owned
(2) @Neil Butterworth: so, why don't you help some average souls by providing your answer? - ya23
(2) @Neil: well I've got over 8 years experience working in finance in 3 countries and I stand by my answer. - cletus
(1) Because I don't believe that questions like this belong here - I voted to close the question, after all. - community_owned
@Neil: Seems more relevant than a lot of 'subjective' tagged questions. Anyway, maybe you know of a good place to ask career questions such as this one? - ya23
I voted for reopening. Neil, there's enough interest here, do share your views. - Uri
@Neil - I really see very little difference between this question and stackoverflow.com/questions/717992/… And just to be clear, I think both should be open.... - Aaron
@aaron that one was about progamming stuff like linked lists, this one is about domain (i.e. banking) knowledge. But it's re-opened now, so enjoy! - community_owned
@Neil: The point of my question was really not the linked list, and I gave that as an asinine example for the whole class of questions. I thought i was having a bad weekend. - Uri
@ Neil - I'd be interested in hearing your PoV, re: why the current answers are BS, especially considering your background in the finance industry. Please do post. - Metro Smurf
@Topbit "I've seen developer jobs in trading/banking being advertised for £70/Y + big bonuses. The same one looks to have been advertised for literally months - and it looks like no one is biting." They are often fake, just recruiter baits to gather CVs. - quant_dev
(1) Please consider voting for the quantitative finance stackexchange site idea here: meta.stackexchange.com/questions/5786/…. - Shane
(1) "I'm not even sure how to invest effectively"....do you really think THEY know ? 8-/ - iDevlop
[+53] [2009-04-05 21:50:05] cletus

Not the best of industries to be in at the moment but it'll recover in time.

I'll give you my perspective on this as someone who has worked in finance for roughly eight years--primarily in equities--in three countries (Australia, UK, Switzerland).

Investment banking--even IT jobs--I have found to be a bit of a boys club. The easiest path of entry is to go to a decent school, get good grades and then apply for a graduate program because once you've got a few years of IB experience, it's pretty easy to work for another one later. This is what I mean by a boys club.

But if you come to the industry later it can be a lot harder. The best strategy is to get in when the economy is good. When the economy is bad you'll find a lot more candidates per job and many of those candidates will have IB experience (eg like those who worked at Lehmans), putting you at a severe disadvantage, particularly in larger cities (where such work tends to be) where recruitment is often quota-driven so you may not even get heard.

By quota-driven I mean it's common practice for certain banks to use certain recruitment agencies called PSLs ("preferred supplier lists"). A given bank may have 5 agencies on their PSL and they will take 2 CVs from each of them for 10 total. Rarely more than half will be telephone interviewed, 1-2 will be interviewed in person and from there they'll get a hire (unless noone suitable is found).

Now in London out of all the places I've worked in particular you have some extremely unscrupulous behaviour from recruitment agents that can make this a challenging (actually I've used the phrase "soul destroying" to describe this process) scenario particularly in a tight labour market. The point is that you may think you've been submitted for a particular job. The agent may tell you that straight to your face but you haven't. This can go as far as fake interviews. But anyway I digress. The main point I want to get across is that in larger cities--where these jobs are concentrated--this can be tough to break into for many reasons when the economy is bad.

All that aside, there most definitely is useful domain knowledge you can get.

The first thing to understand is that there are many areas within IB: M&A (mergers and acquisitions), information services/research, corporate finance and so on. All of these areas have IT needs. But the area with the biggest concentration of IT needs is in financial markets.

Financial markets includes but is not limited to:

  • Equities: ie the stock market. Now this gets the most press but is at best the third largest of the various markets;
  • Foreign Exchange: self-explanatory and a huge market but not the largest. The biggest FX market is the interbank market which is an oTC (over-the-counter) market meaning contract sizes, expiry dates and so on are customized for the buyer or seller. Futures contracts in comparison have standardized expiries, sizes and terms;
  • Fixed Interest: probably the largest market of all. Here we're talking about bonds and swaps (and derivatives). This is divided into government and corporate bonds and the largest segment is US Treasuries;
  • Commodity Futures: this includes grain, soy and other standardised products on, say, the CME (Chicago Mercantile Exchange) but also includes oil and metals (eg LMX, the London Metals Exchange);
  • Credit Derivatives: thanks to the sub-prime fiasco the general public probably knows a lot more about these than they ever did previously. Here we're talking about credit default swaps and the like; and
  • Derivatives: these can apply to any market and include most notably options (ETOs--exchange traded options, which are standardized--or OTC) and can get pretty surreal when you start getting into the increasingly popular "exotics".

Now within each of those market segments you tend to have:

  • Front Office: trading;
  • Back Office: settlement; and sometimes
  • Middle Office: this means different things to different people but tends to revolve around risk management, P&L (profit and loss) and the like.

My experience is almost all in Front Office where you're concerned with things like market connectivity, quote/pricing systems and so forth. Market connectivity is a big one. There are more markets out there than you've probably heard of. Apart from the obvious equities markets (NYSE, NASDAQ, LSE, etc) big ones include Bloomberg, Reuters, Tradeweb, EuroMTS and many, many others.

A key point to understand with banks is that typically they are price makers (also called "market makers") not price takers. If you trade stocks online you are a price taker. Typically when you buy or sell you do so from or to a market maker who might, say, have a quote on stock ABC for 32.03/32.11 (bid/ask) with a spread of 9 cents. There tends to be an inverse relationship between volume and spread (low volume markets have a larger spread).

Market makers tend to be unfairly maligned sometimes but they provide an extremely valuable function by providing liquidity (which is the ability to buy or sell quickly).

Now I mention the above to give you a broad base of understanding to see where iT systems are required and what sort of knowledge is required.

I'd say useful criteria are:

  • Any technical work that is high-volume, low-latency, involves a lot of concurrency and/or is high availability is useful;
  • Interestingly languages don't tend to matter nearly as much as domain knowledge. In fact it's fairly common practice for developers to use whatever the heck they want. Sometimes a particular stack will be mandated (eg Java/Oracle or .Net/SqlServer) but often that isn't the case;
  • Web/scripting languages (eg Ruby, PHP, Perl, Python) are almost nonexistent. Perl is a possible exception in that you might find it used for support tasks. Not much beyond that though (in my experience). Java, C#, C++, Oracle, SQL Server and even Sybase rule the roost here technology-wise;
  • A reasonable level of mathematical competency. You may not need to ever code a bond pricing formula but you may need to understand concepts such as discounting and the like. There are also fields that are highly mathematically focused and may even require post-graduate qualifications in mathematics, typically in the realm of game theory, Monte Carlo simulations and the like. Maths will only help you
  • Basic knowledge of the trading/settlement process helps. I don't mean you need to know the Australian equities settle in T+3 but Australian equity options settle in T+1 but just what the order and settlement life-cycles are; and
  • Basic knowledge of relevant financial instruments (including derivatives) within at least one of the above market segments.

You might consider it worth your while doing, say, a graduate diploma/degree in applied finance. Your country may have a professional body that offers such a thing or you can do it at a normal college. In Australia and the UK these tend to be one year full-time, typically done as two years part time. That's for a Graduate Diploma. Double that for a Master's. I don't really know the American equivalent.

You don't need formal education for this but formal education can be put on a CV. It's perfectly acceptable to read about this on your own (but harder to substantiate).

It's worth noting that following the financial press is also useful. You don't need to spend an hour a day going through the Wall Street Journal or Financial Times from cover to cover. I just mean some basic knowledge of whats going on int he world of finance. If you can explain what a CDO or a negative amortization loan is (both relevant to sub-prime) then it demonstrates a certain amount of interest and/or initiative.

Now I won't lie to you and ay you'll automatically get a job by doing such a thing but the knowledge can definitely be useful and it might help you stand out in a large field of candidates enough to get an interview where you otherwise might not. It will certainly hold you in good stead if you end up working in that industry.


Do you think it would be possible to work & study at the same time? Graduate sounds like 2/3 full-time studies, which doesn't look fun. MBA came into my mind, but it costs a little fortune and I'm not sure if being more businessman than programmer is what I'd like to do. Any experience with MBA? - ya23
+1, but please please please run your next post through gmail's spell checker (if nothing else) before submitting - Silver Dragon
1
[+12] [2009-04-24 15:26:26] Brad_Z

I work as a developer in the financial industry. When I started I had 0 domain knowledge. Having that knowledge while certainly an asset is not going to be at the top of the list.

Let me explain. Banks and other financial firms are usually large organizations with well developed IT processes. As such they have project management teams, business analysts and subject matter experts a plenty. They don't need the guy writing the code to know the ins and outs of the business.

What then is important to getting your foot in the door? The number one thing you want is proven experience developing accurate high availabilty reporting systems. Reports, reports, reports and more reports. At the end of the day all the decision makers want are good reports. The important skills and concepts here are SQL (you should know it inside and out) and data warehousing.

The number two thing you want is experience doing system integrations. Banks don't write their own accounting system, trade order management system, loan system, etc. Most enterprise systems are going to come from third party vendors. What you need to know is how to get these systems talking to each other and playing nice. What for? If you guessed reporting you are right!

If you get an interview on the phone or in person at a financial firm stress reporting. It's what it's all about. Hope that helps.


2
[+9] [2009-04-06 19:47:01] Helen Toomik

I spent 7 years with an investment bank in London, both on the business side and in IT. I wasn't in charge of hiring but had enough insight and input into our team's hiring process to know something about it. (Caveat: I've only seen that one bank from the inside, so some of what I saw will not apply to the entire industry.)

The most common hiring route for developers was through graduate recruitment programmes. Experienced/lateral hires got hired because they had proven that they had very strong technical skills and/or because they a specific need - be that low-latency transaction processing or large-scale J2EE applications. Banks are large enough for specialization to make sense. As far as I recall, most experienced people were specialists in some sense (not necessarily language specialists).

Keep your eyes open, look at recruiting sites and banks' own career pages. Get an understanding of what skills banks are looking for.

Technical skills are important but banks pay equally much attention to thinking skills and people skills. Where I worked, developers were expected to be articulate problem-solvers, good at analytical thinking, with strong numerical skills, be able to take initiative, work effectively in a team, etc etc, all the usual stuff.

As for domain knowledge, unless you're aiming for a quant position, you don't need intimate knowledge of finance or financial products. Given a choice between an excellent developer with no finance skills, and an average developer who knows finance, the bank will hire the excellent developer.

But it does help to have some domain knowledge, because it makes you more productive, plus it makes it a lot easier for your colleagues to talk to you about their needs. It would be helpful to have some basic knowledge of the following:

  • the basic concepts of finance (discounting, time value of money, risk).
  • the main products and markets (equities, bonds, options of any kind, commodities, currencies), what their purpose is, and roughly how they work.
  • the basics of accounting and financial statements (profit and loss, balance sheet, cash flow statement).

3
[+5] [2009-08-19 21:07:50] iDevlop

Money is not all.
If you're looking for job satisfaction, stay away from banks.
I have been working with my own company, and as a contractor in industry and in Finance.
My wife has also worked in industry and is now in banking.
We're both financially ok, but somehow frustrated by our jobs.
I think the best way to start (your profile does not show your age) is in a company providing service to clients. You will maybe be exploited, but you will learn, and have the satisfaction of projects having an end, and -maybe- a "thank you" for the delivery.
Look at jle's post: "auditing" "compliance" "versioning";. what excitment and satisfaction can a brain with a decent IQ find there ?

To specifically address your question: banks work with 40 yers old mainframes and Excel spreadsheets full of colors. So that's what you'll have to learn. 8-/


(3) The voice of warning - that is very interesting point of view. +1 - ya23
4
[+4] [2009-04-06 15:08:28] Ankur

You should start with the following:

  • read "A Random Walk Down WallStreet" = this will help you "get" finance, particularly equities investment
  • read "Options, Future and Other Derivatives" by John Hull - this is a must, everyone knows this book
  • Read Wilmott.com and signup for the forums

If appropriate mention that you have down all these things in interviews.


5
[+3] [2009-10-31 21:44:02] Scott Weinstein

To get your foot in the door, you may need less domain knowledge than you think.

I liked this book - The Complete Guide to Capital Markets for Quantitative Professionals [1] as I thought it gave a nice overview of the markets and types of computer systems each market needed.

[1] http://rads.stackoverflow.com/amzn/click/0071468293

6
[+3] [2009-04-05 21:43:17] dommer

Gaining experience in high volume, low latency systems would be worthwhile. Also learning how to optimize database queries.

A lot of development positions in investment banking require investment banking experience. You might be able to get some of this by working for a company that supplies systems to the industry.

Also, telecoms experience is increasingly attractive to the investment banking industry.

You may also find this book to be of interest:

Mastering Financial Calculations cover

Mastering Financial Calculations [1]

[1] http://rads.stackoverflow.com/amzn/click/0273704443

Sounds reasonable. Can you offer any hints how can I find the companies offering those positions? - ya23
7
[+2] [2009-04-05 21:44:02] DNS

Investment banking and writing code for investment banks are very different things. I assume you're talking about the latter. From what I've read, they don't much care which programming languages you know. They're looking more at your analytical abilities and experience with math.

The hard part is coming up with the mathematical models; if you can do that, they just assume you can write the code (or it's outsourced to someone earning a lot less).

I think a degree in economics, mathematics or computer science is more or less required to get into the business. I'm sure there are exceptions, but it's going to be tough without that kind of knowledge.


8
[+2] [2009-04-05 21:46:10] Sergej Andrejev
  • Try applying for tester position.
  • Try similar niches (like insurance).
  • Make friends in bank IT department.
  • Get lot of certificates. They like it.
  • Keep applying for positions even though it is recession in the industry. But to me it looks like IT is on the rise because everybody try to optimize their systems to cut human expenses
  • Look for companies that write software for banks. Many banks are outsourcing other companies (I did this)

9
[+2] [2009-04-05 21:47:23] Uri

What is your background? What is your degree in? Did you graduate?

Most programmers in investment bank don't have to know much about finance, it's more about high speed transactions.

Those who want the money side usually work as Quants and often have Ph.Ds. in related topics.


I've edited the question providing more details. I feel I don't need to know too much about finanse, as there should be domain experts around. Still, need to have some basis to understand them and to get a job at the first place. - ya23
I had a few interviews and was never asked a finance related question. - Uri
10
[+2] [2009-04-05 23:14:16] duffymo

Here are two books that I'd recommend: one [1] about financial modeling and another [2] that's a cautionary tale about modeling. Everyone quant should know who Taleb [3] is.

[1] http://rads.stackoverflow.com/amzn/click/0136015867
[2] http://rads.stackoverflow.com/amzn/click/1400063515
[3] http://lawandmore.typepad.com/law%5Fand%5Fmore/2008/11/those-black-swans---talebs-hedge-fund-up-65-to-115-oct.html

11
[+2] [2009-04-06 01:46:53] Andy

I would suggest try entering a support position in a bank to as high a level as you can in terms of support as you will notice that most of new coding comes up in banks from Support Teams. Whether it works or not but the support position will teach you a lot of fundamentals very nicely and quickly. Then you can look at becoming a contractor. Make sure you have an exposure to accounting and finance (even very very basic if fine). Regards, Andy


12
[+2] [2009-05-05 08:43:07] steve

Spent some time in the area. If you are serious about getting in I'd look at completing CFA level 1 or some form of quantitative finance course.

The people who earn the big bucks are usually the people who understand the financial products themselves. The technical stuff is seen as an after thought in most cases.


I thought that you need to work with finance to get CFA... - ya23
Not that I've seen. Maybe it states it on the charter. It's a very tough course for people from non finance backgrounds who also work. - steve
13
[+1] [2009-09-16 16:12:23] navigator

"An Introduction to Capital Markets: Products, Strategies, Participants" is an excellent introductory book.


14
[0] [2009-04-06 01:50:03] jle

It couldn't hurt to know EVERYTHING about the Sarbanes-Oxley Act [1]. Compliance is now a HUGE industry and 'SARBOX' requires incredible amounts of transaction auditing, versioning, etc. Programming concepts abound...

[1] http://en.wikipedia.org/wiki/Sarbanes-Oxley%5FAct

Well, that depends on where in the bank you sit. I currently sit as a general Front Office IT person and I rarely deal with SOX. Now when I think about it could have something to do with me working for a japanese bank... :) - Mats Fredriksson
SARBOX? Really - perhaps if you're in the audit and internal finance area of the bank, but for customer facing portions of the buisness I've not heard a peep about it. - Scott Weinstein
15