As a student who's done an internship at a Silicon Valley company(non-financial), I'm curious to know what it's like working for a financial company doing software development. I'd expect the hours to be longer, and the pay to be higher. Specifically, I have the following questions:
What's the work/life balance really like? Are you expected to work 80 hours a week most weeks? For those who have worked in non-financial software engineering jobs, how does being a financial software engineer compare in terms of work/life balance?
How much does it pay? I'm curious as to starting(i.e. just got a BS) pay, as well as "top out" pay. (I'd prefer concrete numbers - ballpark is fine). Also, bonuses would be useful information.
What jobs do financial programmers typically have? Are most just general software engineers, or do people typically have very specialized(i.e. AI or systems) backgrounds? Also, do most programmers have PhDs?
Are programmers typically required to be at work, or are financial companies generally flexible about letting programmers work from home? When at work, do programmers have to dress formally?
What are the technology environments like? Are finance companies using state-of-the-art hardware and software, or are they generally more conservative in upgrading their equipment?
What programming languages are typically used? If VBA(shudder) is used, is it a large part of a finance company's workflow?
If you could turn back the clock, would you still be a financial programmer?
I'm going to keep this post open a little bit longer to get some more responses.
I'm going to assume by "financial programmer" that you mean in the realm of investment banking, normal banking, financial markets, trading, etc.
What's the work/life balance really like?
It varies hugely. Salaried staff at some banks are expected to work long hours. Those in Asia put in a lot of face time (not necessarily doing anything but just being there).
Others can be very good. If you're a contractor (very common) then you are generally fine.
How much does it pay?
Generally higher salaries and contract rates than in other industries but that is by no means absolute. Salaried staff can also get access to very good bonuses (I've known of places that typically give 100% of base salary as bonuses but you work like a dog for it).
Also it depends on what you do. In a purely technical position, the highest you can probably get is being a quant [1] who will typically get paid a commission on profits like normal traders are. That percentage can be as high as 10%. In 2004 some Wall Street traders were walking away with bonuses in excess of $50m. I've known good quants in a good year getting $20m but that's truly exceptional.
Also, that kind of job takes a certain kind of psyche and skillset and tends to be competitive so it isn't something you can simply decide to do.
What jobs do financial programmers typically have?
Generally writing or maintaining in-house applications (or, in some cases, applications that are sold but that is the exception rather than the norm). Often this will revolve around financial markets, trading systems, settlement systems and so on. This tends to require a pretty heavy domain knowledge in that particular area.
Also, do most programmers have PhDs?
In my experience, no. Most programmers in such environments typically just have a undergrad degree in computer science from a relatively good school. There are of course exceptions but that is the typical profile. The "good school" part will ease entry hugely.
If you could turn back the clock, would you still be a financial programmer?
Disclaimer: I've only dabbled in investment banking. My experience has been more in stockbroking (the "buy" side rather than the "sell" side).
That kind of work is highly transactional, meaning don't expect much loyalty from your employer. You are paid to do a job and paid quite well because the expectation is often that you will be treated like crap but you'll have money and expensive toys thrown at you to make up for it.
[1] http://www.google.com.au/search?hl=en&rlz=1C1GGLS%5FenAU359&defl=en&q=define%3AQuant+&ei=CBQzS-TFK4vW7APU2Yn9BQ&sa=X&oi=glossary%5Fdefinition&ct=title&ved=0CAcQkAEWhat's the work/life balance really like? Are you expected to work 80 hours a week most weeks? For those who have worked in non-financial software engineering jobs, how does being a financial software engineer compare in terms of work/life balance?
I've worked extensively in both sectors and find the work-life balance a little friendlier in non-financial jobs. In both you sometimes put in your 40 hours and others you are expected to do 80 or more. I found that non-financial work places generally are much more relaxed during the "slow" times, often letting you work short days or weeks to make up for the "busy" times, while financial positions don't allow this. Also, in my experience, deadlines are much more stringent in financial institutions since they are set by management who don't care about what technical problems you are facing, only that they meet their dates at all costs.
How much does it pay? I'm curious as to starting(i.e. just got a BS) pay, as well as "top out" pay. (I'd prefer concrete numbers - ballpark is fine). Also, bonuses would be useful information.
In my experience financial positions generally pay a little more, but they expect a great deal of domain knowledge to achieve any difference. Most financial shops I've worked in have had a few highly paid domain experts and a bunch of "grunts" who do the tedious implementation. Every market will be different, but in the mid-western United States you can expect 40-50k starting for "grunt" work and toping out around 150k if you are a domain expert. In my experience, financial institutions are more likely to give a bonus, maybe 10-15% of your salary, while non-financial jobs are more likely to reward you with other perks.
What jobs do financial programmers typically have? Are most just general software engineers, or do people typically have very specialized(i.e. AI or systems) backgrounds? Also, do most programmers have PhDs?
It's mostly building and maintaining in-house software. It's often boring, tedious work using proven technology, as financial institutions don't want cutting edge, they want immediate working software. I found that if you move jobs in the financial sector you will find yourself building the exact same application for each position, as financial institutions are generally not trusting of third party applications. They are also very reluctant to allow usage of open source libraries. Many of the places I've worked don't even allow things like the apache.commons libraries for Java development. Most developers I've encountered only have a Bachelors, if that. If they do have a higher degree it usually an MBA or some other business or finance related degree.
Are programmers typically required to be at work, or are financial companies generally flexible about letting programmers work from home? When at work, do programmers have to dress formally?
I found that allowances for working from home is about the same between the financial and non-financial sector, it depends on the job and your manager more than anything else. Most financial jobs I've worked at have a relaxed dress code, but not as relaxed as non-financial positions. Usually, it's jeans, a "shirt with a collar", and no "sports" footwear. It is often typical in financial positions to have certain days when you have to dress business casual, usually when clients are visiting the site. All of the non-financial positions I have been at have are much more relaxed concerning dress, including one where one of the team leads wore pajamas and slippers most of the time.
If you could turn back the clock, would you still be a financial programmer?
Probably not, but only because I would prefer the slightly lower pay for the more relaxed environment and the ability to use the latest technologies. It can be frustrating recreating something that you know the next version of the language contains or that exists in an reputable open source library.
I've been an application developer in finance for quite some time. Working on Wall Street, San Francisco and Silicon Valley. Although there are times where projects require you to work insane hours, its never demanded or expected. However, if you are looking for a 9-5 job finance definitely isnt the place to do that.
My first job in NY working for Kidder Peabody in 1991 paid 50K with a 15K bonus. Since then I have gotten the pay up to 200K with over 100% bonuses. Generally if you make an effort to understand the business you are supporting, and pair up with a manager that values strong developers the upside is there.
The downside is you are always viewed as support to the business (unless you are doing complex risk mgmt for trading desk) and will rarely get your ego stroked like the guys at google. You also have to suit up everyday if you are in the office. My current job lets me work from home, but it took a long time to convince them of this, and I dont think its a common thing.
I've never met a developer in Finance with a PHD. Very rare they even have their masters. Usually anyone that gets the extra education changes their career path.
If you arent interested in the capital markets then you are probably better off in a different industry. I have no regrets about entering this industry. It has its pros and cons, but once you get in the door, its pretty easy get employment in the industry.
Best of luck to you.
There's a difference in languages actually used and what you learn in shcool. Getting things done fast even in a simple language is not to be underestimated. You are not there for coding the most beautiful code but actually to assist in the business.
Recently I was reviewing the Software Dev pay analysis and seek australia [1]. Apparently the current top pay is AUD 130K or so and levels off after 12 years of experience. In a sector by sector analysis, financial developers are the highest paid, earning about 25% more than other developers with similar skills and experience working in other fields. I guess banks just have more money to lash around, and more stringent requirements on the uptime, security and quality of their systems.
[1] http://seek.com.auI'm sure that experiences depend heavily by region and company. I have a few years of experience in financial programming for a couple of Midwestern firms and can share some about my experiences.
Banks or bank-like companies have been stricter about work hours. I am usually expected to get prior permission formally to leave during the day or leave early for appointments and make up the time. However, deadlines and overtime have been very reasonable. Projects have been well-planned and managed at these companies. Project failures have been very rare. This has been good for developer morale.
I'm sure pay here in the Midwest is relatively lower than the West Coast (cost of living is also lower in many ways), but financial companies offer very competitive compensation here locally.
I've done a lot of batch transactions (bankers lot batch overnight processing for financial transactions), customer data entry forms (a lot of input validation and sanitation), and a lot of legacy integration. Banks have a lot of mainframe and mini-mainframe COBOL that is being wrapped to provide web front ends. Most of my peers have bachelor's and master's. A select few have no degrees but a wealth of technical knowledge a experience, but they are the exception. Again, this is the Midwest.
Financial companies (especially those that are publicly traded) are very concerned with ensuring Sarbanes-Oxley [1] compliance. It can affect how code is written, how data is gathered from users, how data is stored. SOX even governs the development and change control processes. It also means preparing for and helping with audits (both internal and contracted). The companies I've worked for have not allowed working from home. I think partly they want us available in person for meetings. I also think there is some management fear to opening up VPN for RDP for financial data and software. The dress codes for the financial companies I've worked for have been a notch higher than the other industries I've observed (plastics and advertising). Both were business casual with tie and coats for important presentations (no jeans or casual Fridays).
I worked at a small firm that was pretty lenient. I had to adhere to the language and coding standards, but I was a local administrator account on my PC and development box. I was free to use any IDE I wanted. The large company I worked for was very strict. I had no local admin, no local install rights. All developers were forced to use the same IDE.
I've done a lot of C# and Java for rending the UI front ends. I work with a lot of legacy financial systems written in COBOL, Ideal, DB2, and interface a lot with MQ Series.
I think like any industry, there are trade offs. Banks handle very sensitive information, and can be very territorial about security processes. They seem to be less flexible about time and business attire. However, as a plus side, I've always been treated fairly by them. Deadlines and overtime have always been reasonable.
If you are considering financial programming and are willing to work in a slightly more rigid environment, it might be a great fit. If you have accounting experience, it will help a lot.
[1] http://en.wikipedia.org/wiki/Sarbanes_oxleyHow do I get domain knowledge for Financial Industry [1] is a very good SO question which is must read for Financial Domain Software Engineers/Developers
[1] http://stackoverflow.com/questions/719739/how-do-i-get-domain-knowledge-to-start-programming-for-the-finance-industryOkey, I dig this 1 year later, but...
What's the work/life balance really like? Are you expected to work 80 hours a week most weeks? For those who have worked in non-financial software engineering jobs, how does being a financial software engineer compare in terms of work/life balance?
It depends on the country you live in. I work approx. 45 hours a week in France, and have 2 months vacations a year. Sometimes, you need to deliver something for asia or US, and you need to work at night/very early in the morning, but usually, you have a good life. In UK, typically it's 8:30AM / 5h30PM for what I saw, but you don't have much vacation. I don't know about US banks, or german banks.
How much does it pay? I'm curious as to starting(i.e. just got a BS) pay, as well as "top out" pay. (I'd prefer concrete numbers - ballpark is fine). Also, bonuses would be useful information.
It depends. It pays well, but it is very dependent on your skills, not only technical but also political. There are discrepancies between UK, US and France/Germany, but you'll get well paid anyways. In france starting wages for engineers are very low (average 30k€/Y), in banks you usually start 20% higher. Bonuses are great, but much lower than 3 years ago. Top quants may earn up to 1M€/Y.
What jobs do financial programmers typically have? Are most just general software engineers, or do people typically have very specialized(i.e. AI or systems) backgrounds? Also, do most programmers have PhDs?
French quants (very common in UK for instance) usually don't have PHDs. Others have. Also, it depends on the bank. You're expected to have a broad knowledge of a lot of areas, mathematically speaking (graduate level analysis, geometry and algebra, ability to read a math article/book quickly) and computer scientifically speaking (at ease with C++, and willing to adapt yourself with crappy programming conditions and crappy code). We are expected also to come up with astute numerical methods.
Also, usually quants are responsible for the developments of pricing systems. But it depends on the bank. In some places however, quants only do math and some mockup code, and there is a team which is responsible for implementing what quants do. But usually bosses try hard to use people for what they're good at (hardcore math, clever programming or making coffee).
Are programmers typically required to be at work, or are financial companies generally flexible about letting programmers work from home? When at work, do programmers have to dress formally?
It depends on what your job is exactly. At my job quants work on the trading floor, you can work at home if you really want but it is not advised. We dress semi-formally, but you're not requested to wear a tie since you don't see clients.
What are the technology environments like? Are finance companies using state-of-the-art hardware and software, or are they generally more conservative in upgrading their equipment?
Very conservative. We use XP Sp3, IE6, Lotus Notes 5, visual studio 2005, Excel 2003. But I couldn't generalize. I know that in quite a few banks, they write crappy software with crappy tools, and there is a lot of inertia in changing whatever works, even if it only works 90% of the time and you come up with the ultimate thing that will save your company a lot of money.
What programming languages are typically used? If VBA(shudder) is used, is it a large part of a finance company's workflow?
We deliver excel sheets for traders, with a lot of VBA inside. Pricing systems are usually better written (you need speed), but yeah, VBA is common to tie everything together.
If you could turn back the clock, would you still be a financial programmer?
Yes.