Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am planning to get a job in the financial software domain. I have plenty programming experience(10 years) but none in financial software. I have some basic knowledge of financial concepts but I wonder what financial software companies look for when selecting employees.

Thanks

share|improve this question
    
Just get your foot in the door. Understand random walk and the relationship between interest rate and bond prices - those are asked a lot. After that prepare to bend over and make good money. –  Job Aug 2 '11 at 14:51
add comment

3 Answers

Financial projects are much like the regular projects. They just rely more heavily on transactions and basic learning of ACID properties. Make sure you know them and you will do fine.

At last and foremost ;-) , you need to fit in their language parameter.

share|improve this answer
add comment

"Financial" is pretty broad but generally they are looking for the same types of things any other sector would be looking for. I cannot speak universally, but here are the things that I have noticed:

  • .Net tends to dominate the stack, but legacy systems using RPG, COBOL, or VB6 still provide some demand for a few specialists here and there (although I would really not reccomend going this route, even though the pay can be pretty good, since a lot of those systems will be gone in the next decade). Automated trading seems to also favor candidates with Python or Ruby experience (not really sure why, but it is probably related to their dynamic nature allowing for rapid algorithm changes(or it is a sign of subtle age discrimination, since Python is taught at the schools in my area)).

  • To be successful, you must be able to do a certain amount of interaction with aggressive business poeple. The culture is very different from the tech community, in some good ways and some bad ways. Regardless, if you are one of the stereotypical programmers who stresses easy, is not assertive, and must have a long greasy ponytail to be happy, then this is probably not the sector for you. Stress is a part of the culture, because many non-tech specialists in the sector tend to thrive on it. It has a tendancy to be pretty dog-eat-dog, so you must be able to stand up for yourself to get what you want and be respected. Lastly, most financial companies require dress to be fairly formal, so being hygenic and dressing/looking like everyone else is an important part of being successful. Obviously, these are not set in stone and there will be exceptions, but to really be successful, these 3 components will almost always be there.

  • For finance-specific knowledge, I would not worry too much. A basic knowledge of accounting would certainly help (credits, debits, ledgers, retained income, etc.), but really the math tends to not go much farther than basic algebra. Anything more complicated would be explained to you in detail by a BA or some other expert. The general rule of thumb as a programmer in the financial sector is that you should focus on writing solid software, not on understanding every business requirement. There are BAs and testers that get paid well to define the requirements and verify that you met them. More or less code until you get past the compiler, and the business rules look "about right", then send it on to testing. I have seen many programmers fail, because they get caught up testing the insanely complex business requirements, then deliver late, only for the testers to tell them that the initial requirements were wrong. Getting as many iterations in as possible and getting along with testers is extremely important. You will learn a lot about financials, but always keep up with your coding skills, because that is the real reason you are there.

  • Although a very small percentage of programs need to by hyper-optimized (auto-trading), being a super speed hacker means almost nothing in practice and a large percentage of financial programs do not even execute in real time, but instead as end of day batches that can pretty much be as slow they need to be. In fact, if your thing is making super fast programs through all sorts of programming wizardry, then please go else where, so there will be no chance I will ever have to see your code. The reason is that the code must be (I think even moreso than in any other sector) absolutely as clear and maintainable as possible. The reasons are that: changes happen frequently over the course of the 10 to 25 years the average financial program is around, the business logic is insanely complicated and even the people giving you the requirements barely (or flat out don't) understand them, and there are vast amounts of data entirely outside of your control that is consistently inconsistent in reliability and format (which adds additional layer of complexity). In other words, simplicity is a rare thing in the financial world, so take it where you can get it and do not make overengineered programs or it will absolutely ruin your project.

In summary, it can be a pretty stressful industry to be in, but if you like pressure (You don't have a tendancy towards nightmares that end with your boss saying "Your rounding error cost us 20 million dollars last week!"), can fake being normal a little better than the average programmer, and think of KISS as a divine dogma in world full of evil complexity, then you will probably love it and do really well in it.

share|improve this answer
add comment

Let me answer 'programming in general' as you did not specifically mention any language.

I happened to have majority of my experience in Financial Domain. In general, I dont think you need to have any specific technological skills required unless you want to be in a very specialized area. Some Queuing /Optimization concepts, Quantitative Analysis skills etc are desirable in some but not all cases.

One thing I have seen is Financial domain is where poor DDD (Anemic) is widely popular. There will be use of wide range of design patterns in most of their applications.

Desktop based trading systems (Winforms like) are a bit more common in place here along with Web Apps. Remoting/WCF skills will be an added advantage. Database and SQl skills will required.

When it comes to functional knowledge, I never have difficuilty grasping Financial concepts. Only thing is it is vast, changing and can be easy to forget too. There will be Business Analysts to help developers, so not much of an issue. But it would be good to have some idea on basic Financial Instruments, Derivatives etc. (Use Investopedia).Generally, I find it much much easier than understanding Physics theories (where my background lies), where I want to move on with my programming.

And if you are highly skilled you can be a Quant, which is a tougher position and I don't have much ideas of it.

share|improve this answer
    
Thanks Kiran...How is the salary comparing to other domains ? I hear it's quite good. –  Iuliu Atudosiei Aug 2 '11 at 7:33
    
Compensation tend to be excellent comparitively.financial institutions have bigger budget for technology projects. –  Kiran Ravindranathan Aug 2 '11 at 9:27
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.