To follow up my previous question, I’ve delve a bit more into the “financial derivative trading” world in trying to understand what is means for programmers and how it is like working as a programmer in that environment. I’ve seen positions like “Front Office” programmer positions and “Back Office” programmer positions, I wonder what they mean. One job description even mentioned that the position is to “implement complex modelling algorithm that came up by the trader you work with”. Would someone working in such an environment describing what they all mean and give some insider stories of what it is like working there? Thank.
The last part of your question is pretty self explanatory, and sheds light on the former part.
Front office probably means that you work directly with traders who are not programmers, to implement their ideas of algorithms and interfaces to assist them in their trading. So if one says "I want an alert when my stock passes this velocity, but only if this other stock is falling", you implement that.
Back office is the other part of the job, implementing systems that support the company, without working directly with the traders to accomplish their job.
Quoting from wikipedia:
In investment firms, the back office includes the administrative functions that support the trading of securities, including record keeping, trade confirmation, trade settlement, and regulatory compliance.
In my experience these terms are not just used in trading companies. More generally:
Back office programmers:
Develop "enterprise applications" and other software that is used by the company internally to perform day to day company business (eg. ERP systems: Accounting, HR, Inventory etc).
Front office programmers:
Develop applications and software actually used by the customers of the company or other external organisations.
Front office: implement trading strategies, i.e. develop software that takes market information (prices) and outputs orders. Heavy on maths, specifically statistics, low on actual tricky software development.
Back office: develop and maintain software that keeps track of positions, reconciles internal data with external input (reports from brokers, banks and other counterparties) interfaces with price data providers (i.e. reuters, bloomberg) and makes sure the data is available in a timely manner for the fron office guys. Heavy on IT and more interesting software development issues (huge volumes of data, making reliable connections over shaky interfaces, etc.)
But the exact borders between front and back (and middle even) vary from company to company, so you should always ask.