Let’s say that we wanted to write our own multi-platform, distributed, subscription-based object cache. What would we need to do to write the ultimate object cache?
Let’s consider a variety of issues that we would have to consider when writing caching middleware. I am sure that vendors like Gemstone have gone through this exercise already, but why not go through it again!
Multiplatform support
Most Investment Banks have a combination of C++ (both Win32 and Unix), C#/.Net and Java (both Win32 and Unix) applications. It is common to have a .Net front-end talking to a Java server, which in turn, communicates to a C++-based pricing engine. We need to be able to represent the object data is some sort of form that can be easily accessed by applications in all of the various platforms.
The most universal representation would be to represent the object as pure text, and to send it across the wire as text. What kind of text representation would we use?
XML – quasi-universal. We would have to ensure that XML written by one system is readable by other systems. XML serialization is well-known between Java and C# apps, but what about older C++ apps. For C++, would we use Xerces? Also, there is the cost of serialization and deserialization, not to mention the amount of data that is sent over the wire.
Name/Values Pairs – easy to generate and parse. Same costs as XML. We would have to write our own serialization and deserialization schemes for each system. How about complex, hierarchical data? Can simple name/value pairs represent complex data efficiently? Or would we just end up rewriting the XML spec?
Instead of text, we can store objects as true binary objects. What kind of binary object do we store? Native or system-agnostic? If you have a variety of platforms writing into the object cache, do we store the object in the binary format of the system that created the object, or do we pick one platform and use that as master?
Master Format – We pick one format, either C++, C#, or Java binary objects. We would need a series of adapters to transform between binary formats. We would also need an indication of the platform that is doing the reading or writing. Let’s say that we were to store all objects as binary Java objects. If a Java app reads an object, then there would be no costs associated with object transformation, so we can just send a binary Java object down the wire (although we may have to worry about differences between the various versions of Java … can a Java 1.5 object with Java 1.5-specific types or classes be read by a Java 1.4 app?). If a C# app wants to read the Java object, then we must perform some translation. (Do we use something like CodeMesh to do this?) We also need to ensure that the adaptors can support all of the features of the various languages. For example, let’s say that Java came up with a new data type that C# did not support … would we try to find some representation of that type in C#, or would we just not translate that particular data type?
Native Format – We store pure binary objects, without regards to the system that is reading or writing the object. There is no translation layer. Apps are responsible for doing translation themselves. This is the fastest, most efficient way of storing objects. However, different teams might end up writing their own versions of the translation layer.
What other factors might we consider when choosing a native object format?
How about deltas in subscriptions? If we are storing large objects, then we might only want to broadcast changes to the object instead of resending the entire object. Delta transmission favors sending the changes out in text, and we can save the cost of translating the binary into text if we were just to store the objects as text. And, in this case, name/value pairs are favored.
Large sets of name/value pairs can be compressed if necessary, but we have to consider the time needed to compress and decompress.
Can our object cache store both text and binary? Sure, why not. We can tag a cache region as supporting binary or text, and have appropriate plugins for various operations on each.
As always, comments are welcome.
©2006 Marc Adler - All Rights Reserved
Sunday, November 12, 2006
Saturday, November 11, 2006
Tourist Warning : City Pride
While staying in Canary Wharf last week, a colleague from Microsoft and I went to the City Pride pub, which is one of the few pubs around the area, and close to the Hilton.
After sitting at a table for 15 minutes, and not being served, some kind soul told us that you actually has to go up to the bar to order your beers. (Warning #1). We Americans like to be coddled, and demand waitress service.
Then I ordered a Black and Tan (Guiness and Bass, standard fare at any Irish pub in New York). The bartender had no idea what I was talking about (Warning #2).
To top it off, the bartender gave me the bill, and said that we could feel free to add a tip onto it ... which I did (a 10%, 2 Pound tip) (Warning #3 ... I was told the next day never to tip the bartender).
I guess this was my Lost In Translation moment that every tourist has when visiting a foreign country .... even though Bush treats Britain as our 51st state. (Yo Blair!)
©2006 Marc Adler - All Rights Reserved
After sitting at a table for 15 minutes, and not being served, some kind soul told us that you actually has to go up to the bar to order your beers. (Warning #1). We Americans like to be coddled, and demand waitress service.
Then I ordered a Black and Tan (Guiness and Bass, standard fare at any Irish pub in New York). The bartender had no idea what I was talking about (Warning #2).
To top it off, the bartender gave me the bill, and said that we could feel free to add a tip onto it ... which I did (a 10%, 2 Pound tip) (Warning #3 ... I was told the next day never to tip the bartender).
I guess this was my Lost In Translation moment that every tourist has when visiting a foreign country .... even though Bush treats Britain as our 51st state. (Yo Blair!)
©2006 Marc Adler - All Rights Reserved
Wanted : JMX to .Net Bridge
We need a way for a .Net GUI to speak JMX to a Java server. Anyone come up with anything yet?
Doing a Google search, it looks like we are not the only ones with that need.
Has anyone checked out the WS-JMX Connector?
©2006 Marc Adler - All Rights Reserved
Doing a Google search, it looks like we are not the only ones with that need.
Has anyone checked out the WS-JMX Connector?
©2006 Marc Adler - All Rights Reserved
Office 2007 Compatibility Pack is available
If you are like me, and you keep getting these Office 2007 files sent to you by your local Microsoft reps, but you are only running Office 2003, then you need this
©2006 Marc Adler - All Rights Reserved
©2006 Marc Adler - All Rights Reserved
Wednesday, November 08, 2006
What does a Database Architect do?
Even though I was the very first developer on the Microsoft SQL Server Team, I have to admit that databases don't thrill me .... You have to have a special mindset to deal with databases all day, and to tell you the truth, my interests lie elsewhere. In fact, the sure way to get me to fail an interview is to ask me to write any moderately-complicated SQL query.
I firmly believe that, for major systems, the developers should not be allowed to design the data model, set up the databases, nor write the DDL. I have seen a number of instances in the past where systems that have had their database components designed by non-database experts have performed very poorly. Slow queries, no indexes, lock contention, etc. The best projects that I have been involved in have had a separate person just devoted to the database. If I am leading a major project, I will always have a dedicated db expert as part of the effort.
Let's say that we want to hire a database expert for our Architecture Team. What duties would they have?
1) Advise teams on best practices.
2) Come up with DDL coding standards.
3) Review existing systems and provide guidance on performance improvements.
4) Know the competitve landscape (Sybase vs SQL Server vs Oracle) and affect corporate standards.
5) Be expert at OLAP, MDX, Analysis Services, etc.
6) Know how to tune databases and hardware in order to provide optimal performance.
7) Advise all of the DBAs.
8) Monitor upcoming technologies, like Complex Event Processing, time-series databases, etc. Be familiar with KDB+, StreamBase, Vhayu, etc.
A Database Architect is a full-time job that I think that all Architecture groups should have a slot for.
Know anyone who wants to join us?
©2006 Marc Adler - All Rights Reserved
I firmly believe that, for major systems, the developers should not be allowed to design the data model, set up the databases, nor write the DDL. I have seen a number of instances in the past where systems that have had their database components designed by non-database experts have performed very poorly. Slow queries, no indexes, lock contention, etc. The best projects that I have been involved in have had a separate person just devoted to the database. If I am leading a major project, I will always have a dedicated db expert as part of the effort.
Let's say that we want to hire a database expert for our Architecture Team. What duties would they have?
1) Advise teams on best practices.
2) Come up with DDL coding standards.
3) Review existing systems and provide guidance on performance improvements.
4) Know the competitve landscape (Sybase vs SQL Server vs Oracle) and affect corporate standards.
5) Be expert at OLAP, MDX, Analysis Services, etc.
6) Know how to tune databases and hardware in order to provide optimal performance.
7) Advise all of the DBAs.
8) Monitor upcoming technologies, like Complex Event Processing, time-series databases, etc. Be familiar with KDB+, StreamBase, Vhayu, etc.
A Database Architect is a full-time job that I think that all Architecture groups should have a slot for.
Know anyone who wants to join us?
©2006 Marc Adler - All Rights Reserved
Monday, November 06, 2006
DrKW and Cross-Asset Trading
Dresdner folded its much-hyped Digital Markets division, which they liked to view as their "Bell Labs" of DrKW. All of the major players involved in the Digital Markets group have left or are in the process of leaving.
According to the DWT newsletter, there were several charters to the Digital Markets group:
1) Provide synergies across all lines-of-business at DrKW, and stop the siloing.
2) Provide a system for cross-asset class trading.
Eugene Grygo, the editor of the DWT newsletter, devoted his "Before the Spin" column to this news, and brought up some questions with regards to the future of DrKW. In particular, what will happen to the dream of cross-asset class trading? Grygo mentions that HSBC is actively exploring this space, and I know a few other IBs doing the same. Is it impossible to coalesce the silos and provide true cross-asset class trading? If it is technically feasible, then is it politically feasible?
In these times where everyone is predicting the reduction of traders due to automation, will cross-asset trading be the last field of battle as the silos struggle to maintain their autonomy?
I also wonder what becomes of DrKW's grid project. Maybe Matt or Deglan can illuminate us...
©2006 Marc Adler - All Rights Reserved
According to the DWT newsletter, there were several charters to the Digital Markets group:
1) Provide synergies across all lines-of-business at DrKW, and stop the siloing.
2) Provide a system for cross-asset class trading.
Eugene Grygo, the editor of the DWT newsletter, devoted his "Before the Spin" column to this news, and brought up some questions with regards to the future of DrKW. In particular, what will happen to the dream of cross-asset class trading? Grygo mentions that HSBC is actively exploring this space, and I know a few other IBs doing the same. Is it impossible to coalesce the silos and provide true cross-asset class trading? If it is technically feasible, then is it politically feasible?
In these times where everyone is predicting the reduction of traders due to automation, will cross-asset trading be the last field of battle as the silos struggle to maintain their autonomy?
I also wonder what becomes of DrKW's grid project. Maybe Matt or Deglan can illuminate us...
©2006 Marc Adler - All Rights Reserved
Sunday, November 05, 2006
Grid in Financial Markets
A presentation by JP Morgan on their use of Grid Computing.
Here is a page of PDF's from a February 2006 conference in Italy on Grid Computing in financial markets. There is even a paper on using grid for semantic analysis of financial news feeds. I need to get our London team to read some of this stuff.
There must be synergies between Complex Event Processing and Grids. Anyone looking at this space?
©2006 Marc Adler - All Rights Reserved
Here is a page of PDF's from a February 2006 conference in Italy on Grid Computing in financial markets. There is even a paper on using grid for semantic analysis of financial news feeds. I need to get our London team to read some of this stuff.
There must be synergies between Complex Event Processing and Grids. Anyone looking at this space?
©2006 Marc Adler - All Rights Reserved
Friday, October 27, 2006
Mini-Guide to .Net/Java Interop
Here
Terry is sure to have this stuff in our Wiki before I get to London :-)
©2006 Marc Adler - All Rights Reserved
Terry is sure to have this stuff in our Wiki before I get to London :-)
©2006 Marc Adler - All Rights Reserved
Pricing Turbo Warrants
Here
Today was the first I have ever heard about Turbo Warrants.
A Turbo Warrant call is:
- a barrier knock-out option paying a ...
- small rebate to the holder if the barrier is hit and
- with the barrier typically in-the-money.
©2006 Marc Adler - All Rights Reserved
Today was the first I have ever heard about Turbo Warrants.
A Turbo Warrant call is:
- a barrier knock-out option paying a ...
- small rebate to the holder if the barrier is hit and
- with the barrier typically in-the-money.
©2006 Marc Adler - All Rights Reserved
Thursday, October 26, 2006
The Bile Blog
The Bile Blog is even most cynical and caustic than I am.
Thanks to the ThoughtWorkers at my office for pointing this out. Especially funny are the posts that harpoon the Fowlbots. And, I think that he has even biled yours truly.
This blog is going to take me quite a while to go through ... would be great if Virgin Atlantic had internet connectivity ... I think reading this blog would occupy my entire flight.
By the way ... kudos to our own Fowlbots ... James, Chris, Dave and Alistair. Job well done, boys!
©2006 Marc Adler - All Rights Reserved
Thanks to the ThoughtWorkers at my office for pointing this out. Especially funny are the posts that harpoon the Fowlbots. And, I think that he has even biled yours truly.
This blog is going to take me quite a while to go through ... would be great if Virgin Atlantic had internet connectivity ... I think reading this blog would occupy my entire flight.
By the way ... kudos to our own Fowlbots ... James, Chris, Dave and Alistair. Job well done, boys!
©2006 Marc Adler - All Rights Reserved
C++/CLI Opposition
C++/CLI == C++ Divided By CLI
Here
Interesting reading, especially in the light that investment banks have a ton of old Visual C++/6, non-MFC code. The choice is to go to C++/CLI, or start fresh with C#.
©2006 Marc Adler - All Rights Reserved
Here
Interesting reading, especially in the light that investment banks have a ton of old Visual C++/6, non-MFC code. The choice is to go to C++/CLI, or start fresh with C#.
©2006 Marc Adler - All Rights Reserved
Wednesday, October 25, 2006
I am scared of The Wharf

Earlier this year, my former consulting company closed its London office without warning. In a mailing to the staff, the partners said that there was just no business to be had for very smart .Net and Java consultants in Canary Wharf.
I am imaging what kind of place this Wharf could be. When I get there, will I see a lone seaman, in a yellow raincoat, yelling "Ahoy Matey" to me from a distant pier? Are there thugs and holligans behind every dark corner, waiting to roll me for my wallet? Will I see row of cars, inhabited by hormonal teenagers, "watching the submarine races" (a popular saying in the 1950's)?
I am very afraid of this Wharf place. Perhaps JohnOS, Matt, Deglan and Pin can organize a bile-night to keep me off the streets? Perhaps Rut the Nut is reading this blog and will get some of our old Citicorp/EBS gang together for a slosh-up?
©2006 Marc Adler - All Rights Reserved
Tuesday, October 24, 2006
Funny Code
What is the funniest line of code you ever saw? One of the developers at Barcap wrote the following: line in a C# function
if (this == null)
{
}
It absolutely cracked me up (well... I guess you had to be there).
©2006 Marc Adler - All Rights Reserved
if (this == null)
{
}
It absolutely cracked me up (well... I guess you had to be there).
©2006 Marc Adler - All Rights Reserved
London Bound
I will be in London all next week, checking out the happenings in Canary Wharf. I have not been to London for a long time, so it will be interesting to see how built up the Wharf is. More interesting will be to see if they built any quality pubs. Last time I was in London, all of the pubs closed at 11 at night.
One nice thing will be to test our Virgin Atlantic's Business Class. I have been hearing tales of free massages .... hmmm ...
©2006 Marc Adler - All Rights Reserved
One nice thing will be to test our Virgin Atlantic's Business Class. I have been hearing tales of free massages .... hmmm ...
©2006 Marc Adler - All Rights Reserved
Sunday, October 22, 2006
Separated at Birth
Chris and I came from the same company, and we were both equally dissatisfied with the kind of body shop work that we were doing at our last client. We both struck out simultaneously to find a place where we could do meaningful work. We landed in very similar positions at two of the largest investment banks in the world.
Funnier still is that we share almost the same technology stack, from front to back. I am sure that right after the conference call that we have with our market data infrastructure vendor, Chris is on the same call an hour later.
Craig mentions that there are only about 200 market data specialists in the whole world. Everyone probably knows what eachother is doing. The same thing goes on in Wall Street, and by extension, the City. The after-bonus-shuffle will take place in another 4 months, and it's an opportunity for every company to find out what every other company is doing.
When you come down to it, we all have very similar technology stacks. We all know which vendors are out there, and we all have done the same kind of performance and stressing comparisons between similar vendors. The goal is to squeeze that one extra millisecond of performance so that your order is hit before your competitor's order. It could be the difference of one extra 'lock' in a piece of code. It will be a race to recruit the Joe Duffy's and Rico Mariani's of the world. All of the IBs will need to recognize the need for these kind of people, and adapt themselves so that these people will not feel stiffled within a Wall Street environment.
©2006 Marc Adler - All Rights Reserved
Funnier still is that we share almost the same technology stack, from front to back. I am sure that right after the conference call that we have with our market data infrastructure vendor, Chris is on the same call an hour later.
Craig mentions that there are only about 200 market data specialists in the whole world. Everyone probably knows what eachother is doing. The same thing goes on in Wall Street, and by extension, the City. The after-bonus-shuffle will take place in another 4 months, and it's an opportunity for every company to find out what every other company is doing.
When you come down to it, we all have very similar technology stacks. We all know which vendors are out there, and we all have done the same kind of performance and stressing comparisons between similar vendors. The goal is to squeeze that one extra millisecond of performance so that your order is hit before your competitor's order. It could be the difference of one extra 'lock' in a piece of code. It will be a race to recruit the Joe Duffy's and Rico Mariani's of the world. All of the IBs will need to recognize the need for these kind of people, and adapt themselves so that these people will not feel stiffled within a Wall Street environment.
©2006 Marc Adler - All Rights Reserved
NCache and db4o
Matt is looking at NCache and Chris recommends db4o. Plus Geva is telling us to look at Gigaspaces.
Has anyone does an in-depoth comparison between NCache, db4o, Giga, Gemfire, Tangasol, and any others? Roll-your-owns are also welcome in the comparison.
Hey, hey Microsoft ... what 'ya got cookin'? How 'bout cooking something up for me? Here is the JCP-107 spec. Don't deviate too far from it.
©2006 Marc Adler - All Rights Reserved
Has anyone does an in-depoth comparison between NCache, db4o, Giga, Gemfire, Tangasol, and any others? Roll-your-owns are also welcome in the comparison.
Hey, hey Microsoft ... what 'ya got cookin'? How 'bout cooking something up for me? Here is the JCP-107 spec. Don't deviate too far from it.
©2006 Marc Adler - All Rights Reserved
Saturday, October 21, 2006
.Net - Java Integration
http://www.infoq.com/articles/java-dotnet-integration-intro
Especially interesting are the comments from Roger Voss, formerely of the Aldus Pagemaker portability team. He has chosen .Net for the front end and Tibco EMS as the messaging layer between his Java and .Net tiers.
©2006 Marc Adler - All Rights Reserved
Especially interesting are the comments from Roger Voss, formerely of the Aldus Pagemaker portability team. He has chosen .Net for the front end and Tibco EMS as the messaging layer between his Java and .Net tiers.
©2006 Marc Adler - All Rights Reserved
Free .NET Object Cache
Free .NET object cache at CodeProject.
Wonder if the code has been touch for a while, or whether anyone is using this cache...
©2006 Marc Adler - All Rights Reserved
Wonder if the code has been touch for a while, or whether anyone is using this cache...
©2006 Marc Adler - All Rights Reserved
Concurrency, Joe Duffy and Wall Street
Joe Duffy is soliciting ideas for a new book on concurrency.
Joe's name comes up a lot my talks with Microsoft team that supports me. He and Rico Mariani are two resources from Redmond that I would love to get on an advisory basis. My vision is that they would help us out with optimal .Net architectures for low-latency, high-performance systems.
The elephant in the room that everyone is worried about is the projected Opra feeds of 456,000 messages per second. As I am the Global Architect for Equity Derivatives for one of the largest investment banks in the world, this is something that I am responsible for. As such,the things I need for our stack include high-speed market data feeds with caching and conflation, complex event processing, hardware acceleration, object caches, threading models, efficient GUIs and client-side frameworks, hardware acceleration, super-tight code generation, efficient messaging between components, (and did I mention hardware acceleration?).
From a concurrency point of view, I would like to know what Microsoft considers to be best practices to implement quasi-real-time data processing. Also, what anti-patterns exist and what to avoid in the .Net framework. How to use PerfMon and other third-party performance tools to get the most out of my systems. Coding rules that maximize performance. Things that Microsoft will be releasing (or thinking about) five years down the road.
And, for my own selfish reasons, I would love to see Joe implement a trading system to test out his ideas!
©2006 Marc Adler - All Rights Reserved
Joe's name comes up a lot my talks with Microsoft team that supports me. He and Rico Mariani are two resources from Redmond that I would love to get on an advisory basis. My vision is that they would help us out with optimal .Net architectures for low-latency, high-performance systems.
The elephant in the room that everyone is worried about is the projected Opra feeds of 456,000 messages per second. As I am the Global Architect for Equity Derivatives for one of the largest investment banks in the world, this is something that I am responsible for. As such,the things I need for our stack include high-speed market data feeds with caching and conflation, complex event processing, hardware acceleration, object caches, threading models, efficient GUIs and client-side frameworks, hardware acceleration, super-tight code generation, efficient messaging between components, (and did I mention hardware acceleration?).
From a concurrency point of view, I would like to know what Microsoft considers to be best practices to implement quasi-real-time data processing. Also, what anti-patterns exist and what to avoid in the .Net framework. How to use PerfMon and other third-party performance tools to get the most out of my systems. Coding rules that maximize performance. Things that Microsoft will be releasing (or thinking about) five years down the road.
And, for my own selfish reasons, I would love to see Joe implement a trading system to test out his ideas!
©2006 Marc Adler - All Rights Reserved
Friday, October 20, 2006
Financial Systems Books
I just got the new Third Edition of the classic After the Trade is Made. At a first glance, it looks like they have fattened up the book a bunch, and added a chapter on trading systems. I will report later on the quality of this chapter if I can get a block of free time to read it.
A decent companion to this book is Practical .Net for Financial Markets. I ordered this book after reading my colleague Ted's glowing review of the book on Amazon. I have to admit that, for me, the book was a bit on the disappointing side. The book has a little bit of everything ... a simple crossing engine, some messaging (designed to illustrate how STP works), some encryption, some good example of networking, etc.
However, what seems to be missing from the marketplace is a great book that deals with the entire spectrum of financial instruments from a developer's point of view. Something that will not only discuss the business domain and underlying technology, but will also point to real products that implement the various systems. A deep dive for the developer to become completly immersed in Wall Street systems.
For example, let's take Equities. From a systems standpoint, I want to know what goes on from the time that a trade is entered until someone receives confirmation through snailmail. I want to know what an order entry system does, how trades are routed to the exchanges, how FIX messaging is used, how crossing engines and auto-execution engines work, how stat arb and algorithmic trading factors in, how market-making functions, how settlment is done, how positions are maintained and how P&L are calculated, how market data gets into a system, how risk is calculated, etc. I want to know how systems and vendors like Bloomberg, Fidessa, Reuters, Wombat, Vhayu, etc fit into this space.
In addition, I would like to see topics that are tangental in nature, but geared towards the financial systems developer. How to develop low-latency systems. How to write UI's with fast-updating grids of market data. How to use complex event processing to implement stat arb trading. How to do order routing efficiently using rules engines.
I want a complete end-to-end picture. I want FinancialSystemsPedia.
My former colleague Matt was thinking about writing this kind of book several years ago. I think that there is a real need for this kind of knowledge to be put on paper.
©2006 Marc Adler - All Rights Reserved
A decent companion to this book is Practical .Net for Financial Markets. I ordered this book after reading my colleague Ted's glowing review of the book on Amazon. I have to admit that, for me, the book was a bit on the disappointing side. The book has a little bit of everything ... a simple crossing engine, some messaging (designed to illustrate how STP works), some encryption, some good example of networking, etc.
However, what seems to be missing from the marketplace is a great book that deals with the entire spectrum of financial instruments from a developer's point of view. Something that will not only discuss the business domain and underlying technology, but will also point to real products that implement the various systems. A deep dive for the developer to become completly immersed in Wall Street systems.
For example, let's take Equities. From a systems standpoint, I want to know what goes on from the time that a trade is entered until someone receives confirmation through snailmail. I want to know what an order entry system does, how trades are routed to the exchanges, how FIX messaging is used, how crossing engines and auto-execution engines work, how stat arb and algorithmic trading factors in, how market-making functions, how settlment is done, how positions are maintained and how P&L are calculated, how market data gets into a system, how risk is calculated, etc. I want to know how systems and vendors like Bloomberg, Fidessa, Reuters, Wombat, Vhayu, etc fit into this space.
In addition, I would like to see topics that are tangental in nature, but geared towards the financial systems developer. How to develop low-latency systems. How to write UI's with fast-updating grids of market data. How to use complex event processing to implement stat arb trading. How to do order routing efficiently using rules engines.
I want a complete end-to-end picture. I want FinancialSystemsPedia.
My former colleague Matt was thinking about writing this kind of book several years ago. I think that there is a real need for this kind of knowledge to be put on paper.
©2006 Marc Adler - All Rights Reserved
Thursday, October 19, 2006
Good Luck to Matt Devlin
One of our favorite poachers, Matt Devlin, has just left Finetix to strike out on his own.
Good luck Matt (but stay away from my team!). Poaching is one of the toughest jobs on The Street, especially when it is so close to bonus season.
©2006 Marc Adler - All Rights Reserved
Good luck Matt (but stay away from my team!). Poaching is one of the toughest jobs on The Street, especially when it is so close to bonus season.
©2006 Marc Adler - All Rights Reserved
Tuesday, October 17, 2006
Shortage of Indian Engineers
From today's New York Times:
As its technology companies soar to the outsourcing skies, India is bumping up against an improbable challenge. In a country once regarded as a bottomless well of low-cost, ready-to-work, English-speaking engineers, a shortage looms.
India still produces plenty of engineers, nearly 400,000 a year at last count. But their competence has become the issue.
...found only one in four engineering graduates to be employable. The rest were deficient in the required technical skills, fluency in English or ability to work in a team or deliver basic oral presentations.
©2006 Marc Adler - All Rights Reserved
As its technology companies soar to the outsourcing skies, India is bumping up against an improbable challenge. In a country once regarded as a bottomless well of low-cost, ready-to-work, English-speaking engineers, a shortage looms.
India still produces plenty of engineers, nearly 400,000 a year at last count. But their competence has become the issue.
...found only one in four engineering graduates to be employable. The rest were deficient in the required technical skills, fluency in English or ability to work in a team or deliver basic oral presentations.
©2006 Marc Adler - All Rights Reserved
Monday, October 16, 2006
.NET/C# Trading System
Amazing Aeronautical Charts Site
http://skyvector.com/
If you are a real pilot or a virtual one, then this is the site you want to go to in order to see charts.
©2006 Marc Adler - All Rights Reserved
If you are a real pilot or a virtual one, then this is the site you want to go to in order to see charts.
©2006 Marc Adler - All Rights Reserved
Sunday, October 15, 2006
Wall Street meets Hollywood
From the New York Times article here.
Hedge funds and Wall Street investment banks are plowing money into Hollywood films, paying producers like Joel Silver and Ivan Reitman to produce hits.
I guess that we have to write a market data source that monitors the turnstiles of each of the movies that we invest in. Craig, can you come up with a feed handler in a week?
(I wonder how we will hedge this .... Long Ivan Reitman and short Delta House?)
©2006 Marc Adler - All Rights Reserved
Hedge funds and Wall Street investment banks are plowing money into Hollywood films, paying producers like Joel Silver and Ivan Reitman to produce hits.
I guess that we have to write a market data source that monitors the turnstiles of each of the movies that we invest in. Craig, can you come up with a feed handler in a week?
(I wonder how we will hedge this .... Long Ivan Reitman and short Delta House?)
©2006 Marc Adler - All Rights Reserved
Wanted: Easy way to set multiple breakpoints in VS 2005
I am tracing through some legacy code where a certain class has about 20 different constructors. I would like some way where I can tell VS.NET 2005 to set a breakpoint on each of the constructors.
Likewise, given the name of a method, I would like a way to set a breakpoint at the entry to all of the variants of the method. For instance, if I have a method called GetValue(), and we have a large number of polymophic methods such as
void GetValue(ref bool b)
void GetValue(ref int i)
void GetValue(ref double d)
void GetValue(ref string s)
there should be a way to set a breakpoint at the entry point to each one the GetValue() methods with one one right-click of the mouse.
Sounds like a possible enhancement for Resharper? Or maybe, someone has written a VS macro to do this?
©2006 Marc Adler - All Rights Reserved
Likewise, given the name of a method, I would like a way to set a breakpoint at the entry to all of the variants of the method. For instance, if I have a method called GetValue(), and we have a large number of polymophic methods such as
void GetValue(ref bool b)
void GetValue(ref int i)
void GetValue(ref double d)
void GetValue(ref string s)
there should be a way to set a breakpoint at the entry point to each one the GetValue() methods with one one right-click of the mouse.
Sounds like a possible enhancement for Resharper? Or maybe, someone has written a VS macro to do this?
©2006 Marc Adler - All Rights Reserved
Sunday, October 08, 2006
Fall Foliage

I flew up to Bennington, Vermont yesterday. The fall foliage is absolutely magnificent. There is no place in the United States like Vermont.
It's about a 1-1/4 hour flight from Morristown (MMU) Airport to Stephen Morse Airport in Bennington. Fly over the Catskills to Albany, then make a right turn at the 083 radial of the Albany VOR. It's about another 10 minutes.
©2006 Marc Adler - All Rights Reserved
Saturday, October 07, 2006
What are you doing with your MFC Apps?
An awful lot of IBs still have a lot of front ends written in Microsoft Foundation Classes (MFC).
1) Are you considering MFC to be an end-of-life product?
2) What are your plans for migrating the front ends to other frameworks? Are you going to .NET/C#, .NET/C++, or Java?
3) How will you be doing the migration? Are you devoting a year's worth of time to rewritting the app from scratch? And, while you are doing that, will you be refactoring all of the business logic that you wished that you ha not embedded in the GUI into a new middle tier?
4) Are you going straight for Vista/WPF for your rewrite?
5) Do you wish that Microsoft had a strategy for upgrading your massive MFC codebase to .NET?
Update: John responds here
©2006 Marc Adler - All Rights Reserved
1) Are you considering MFC to be an end-of-life product?
2) What are your plans for migrating the front ends to other frameworks? Are you going to .NET/C#, .NET/C++, or Java?
3) How will you be doing the migration? Are you devoting a year's worth of time to rewritting the app from scratch? And, while you are doing that, will you be refactoring all of the business logic that you wished that you ha not embedded in the GUI into a new middle tier?
4) Are you going straight for Vista/WPF for your rewrite?
5) Do you wish that Microsoft had a strategy for upgrading your massive MFC codebase to .NET?
Update: John responds here
©2006 Marc Adler - All Rights Reserved
Microsoft ESB News
http://www.intelligententerprise.com/showArticle.jhtml?articleID=193104592
©2006 Marc Adler - All Rights Reserved
©2006 Marc Adler - All Rights Reserved
Thursday, October 05, 2006
Sungard's Grid for Analytics
It was brought to my attention today that Sungard has Adaptiv Analytics, a calculation framework that is grid enabled. The marketing literature says that it has pricing and risk simulations right out of the box.
What might be attractive about this is :
1) Sungard has a long history of dealing with financial companies
2) The product seems to be tuned for a specific vertical industry and a specific purpose .... to speed up pricing and risk.
3) They claim to be based totally on .NET !!!!!!!!!!
Anybody using this thing yet? Wonder what the other grid vendors have to say about this?
©2006 Marc Adler - All Rights Reserved
What might be attractive about this is :
1) Sungard has a long history of dealing with financial companies
2) The product seems to be tuned for a specific vertical industry and a specific purpose .... to speed up pricing and risk.
3) They claim to be based totally on .NET !!!!!!!!!!
Anybody using this thing yet? Wonder what the other grid vendors have to say about this?
©2006 Marc Adler - All Rights Reserved
Thanks, Mark Pollack
The co-head of the Spring.Net consortium gave very generously of his time and gave a 2-hour lecture on Spring to my company. There are interesting things coming down the pike for Spring.Net, especially along the areas of messaging.
An ex-colleague of mine was developing a GUI framework for Spring.Net, but now that he is gainfully employed by a major IB, I wonder what will become of that effort. I thought that it could give CAB some real competition. Matt is also delving deep into the CAB world. Wonder if he will take over the framework.
©2006 Marc Adler - All Rights Reserved
An ex-colleague of mine was developing a GUI framework for Spring.Net, but now that he is gainfully employed by a major IB, I wonder what will become of that effort. I thought that it could give CAB some real competition. Matt is also delving deep into the CAB world. Wonder if he will take over the framework.
©2006 Marc Adler - All Rights Reserved
Monday, October 02, 2006
Newest Joshi Paper
Thanks to Mark Joshi for pointing out that he has an updated version of his paper on "A Day in the Life of a Quant".
http://www.markjoshi.com/downloads/advice.pdf
Now maybe I'll be able to talk to Ryan! (Inside joke)
©2006 Marc Adler - All Rights Reserved
http://www.markjoshi.com/downloads/advice.pdf
Now maybe I'll be able to talk to Ryan! (Inside joke)
©2006 Marc Adler - All Rights Reserved
Thursday, September 28, 2006
IBM WebSphere Front Office for Financial Markets
Discussed here on IBM's website.
and from the press release on IBM's Haifa Research Lab (bold text is my highlighting) :
...IBM announced the availability of WebSphere Front Office for Financial Markets, a flexible, high-throughput, low-latency platform. The WebSphere Front Office platform is built on an award-winning portfolio of IBM middleware products that provide an integrated environment optimized for high-volume trading.
Several innovative technologies from the IBM Research Lab in Haifa enabled the platform's performance characteristics and the high availability support including detection, notification and recovery.
"This is IBM's first appearance in the financial front office space for stock exchanges and large institutional customers, which is characterized by extreme data rates measured in hundreds thousands messages per second, and by sub-millisecond delivery latency requirements."
The Reliable Multicast Messaging (RMM) technology and TurboFlow technologies have enabled IBM to address these performance goals and to build an infrastructure that supports the extremely challenging demands of front office financial customers. In addition to high throughput and low latency, RMM is characterized by significant scalability that allows the delivery of financial information to multiple traders at the same time.
Combined with the ITRA (Inter-Tier. Relationship architecture) technology it allows for subsecond data stream failover.
Considering that OPRA (options) data is forcasted to be coming in at 456,000 messages per second, it would be interesting to see if this new product could handle it.
An article in the Inside Market Data newsletter make specific mention of competition against Reuters and Wombat.
©2006 Marc Adler - All Rights Reserved
and from the press release on IBM's Haifa Research Lab (bold text is my highlighting) :
...IBM announced the availability of WebSphere Front Office for Financial Markets, a flexible, high-throughput, low-latency platform. The WebSphere Front Office platform is built on an award-winning portfolio of IBM middleware products that provide an integrated environment optimized for high-volume trading.
Several innovative technologies from the IBM Research Lab in Haifa enabled the platform's performance characteristics and the high availability support including detection, notification and recovery.
"This is IBM's first appearance in the financial front office space for stock exchanges and large institutional customers, which is characterized by extreme data rates measured in hundreds thousands messages per second, and by sub-millisecond delivery latency requirements."
The Reliable Multicast Messaging (RMM) technology and TurboFlow technologies have enabled IBM to address these performance goals and to build an infrastructure that supports the extremely challenging demands of front office financial customers. In addition to high throughput and low latency, RMM is characterized by significant scalability that allows the delivery of financial information to multiple traders at the same time.
Combined with the ITRA (Inter-Tier. Relationship architecture) technology it allows for subsecond data stream failover.
Considering that OPRA (options) data is forcasted to be coming in at 456,000 messages per second, it would be interesting to see if this new product could handle it.
An article in the Inside Market Data newsletter make specific mention of competition against Reuters and Wombat.
©2006 Marc Adler - All Rights Reserved
Sunday, September 24, 2006
Wanted: A Data Pumping Tool
In the companies that I have been involved with in my Wall Street consulting career, it is remarkable how many systems do not have Unit Testing set up.
Concepts like Unit Testing, TDD, code metrics, etc are just starting to make their ways into development groups in IB's. However, one of the areas that has been ignored is stress and soak testing.
One of the tools that we need is what I refer to as a generic Data Pumper. This is a service that can be run to generate data of a certain shape, and pump the data into waiting applications. Some types of data that we may need to pump include quotes, executions, risk, etc.
Here are the features that I would like to see from a Data Pumper:
Playback Modes
We need to have the data replayed in certain temporal formats. We can also apply a distribution curve to the replay interval.
- Burst Mode: Play back data all at once, as fast as we can.
- Interval Mode: Play the data back at certain intervals. For example, playback 500 messages per second. We can also put some sort of distribution on the interval, so that the intervals would be the lowest at the beginning and at the end of the playback period (simulating market open and close).
- Timed Mode: This would cause playback at the exact timings that actual data was generated. In this mode, we would have to first capture real data and record the exact time that the real data was received. Then we would play back the simulated data using the timings of the real data.
Transports
We need to configure the transport mechanism which the data is delivered to the waiting application.
- Tibco RV or EMS (Right now, most IB's use Tibco for the distribution of high-frequency data)
- LBM (a Tibco competitor)
- Sockets (or SmartSockets)
- MQ or MSMQ
- CPS (Morgan Stanley)
Data Generation
- Capture actual data for several days in order to provide some reference data
- We can tag certain fields for random data generation. For example, we can vary the prices of the various instruments.
- We can generate completely random data.
Formats
XML seems to be used in many places, but you have the latency involved in deserialization. Binary Objects is fast, but necessitates a homogeneous environment.
- XML
- Tibco binary message map
- delimited strings
- binary object
- Fixed-length ASCII
- Reuters (Craig will tell me about the legality of simulating data in Reuters format)
Other Considerations
- Instead of sending data directly to the end application, we can send it to an object cache, and let the object cache handle distribution.
- We need a GUI for monitoring the transmission of data, and controls to let the user dynamically modify the timing intervals.
- We need to have probes in the target application so we can monitor its performance in real time under various loads.
Concepts like Unit Testing, TDD, code metrics, etc are just starting to make their ways into development groups in IB's. However, one of the areas that has been ignored is stress and soak testing.
One of the tools that we need is what I refer to as a generic Data Pumper. This is a service that can be run to generate data of a certain shape, and pump the data into waiting applications. Some types of data that we may need to pump include quotes, executions, risk, etc.
Here are the features that I would like to see from a Data Pumper:
Playback Modes
We need to have the data replayed in certain temporal formats. We can also apply a distribution curve to the replay interval.
- Burst Mode: Play back data all at once, as fast as we can.
- Interval Mode: Play the data back at certain intervals. For example, playback 500 messages per second. We can also put some sort of distribution on the interval, so that the intervals would be the lowest at the beginning and at the end of the playback period (simulating market open and close).
- Timed Mode: This would cause playback at the exact timings that actual data was generated. In this mode, we would have to first capture real data and record the exact time that the real data was received. Then we would play back the simulated data using the timings of the real data.
Transports
We need to configure the transport mechanism which the data is delivered to the waiting application.
- Tibco RV or EMS (Right now, most IB's use Tibco for the distribution of high-frequency data)
- LBM (a Tibco competitor)
- Sockets (or SmartSockets)
- MQ or MSMQ
- CPS (Morgan Stanley)
Data Generation
- Capture actual data for several days in order to provide some reference data
- We can tag certain fields for random data generation. For example, we can vary the prices of the various instruments.
- We can generate completely random data.
Formats
XML seems to be used in many places, but you have the latency involved in deserialization. Binary Objects is fast, but necessitates a homogeneous environment.
- XML
- Tibco binary message map
- delimited strings
- binary object
- Fixed-length ASCII
- Reuters (Craig will tell me about the legality of simulating data in Reuters format)
Other Considerations
- Instead of sending data directly to the end application, we can send it to an object cache, and let the object cache handle distribution.
- We need a GUI for monitoring the transmission of data, and controls to let the user dynamically modify the timing intervals.
- We need to have probes in the target application so we can monitor its performance in real time under various loads.
Thursday, September 21, 2006
Decode the Marketing Blurb
Here is a fun game for all of you. A certain vendor sells decision systems over a bunch of vertical industries. Here is a blurb from one of their webpages that outlines their offerings for the financial industry:
Modeling: Price and Risk Models
We model the equity market as an open, irreversible, far from equilibrium thermodynamic model subject to dynamic constraints. This approach results in a bi-linear model composed of two dynamical sub-models: price evolution and risk evolution. The price evolution sub-model represents the behavior of pricing of commodities and a market aggregate as a function of exogenous demand and control actions. The risk sub-model represents the behavior of risk as a function of exogenous uncertainty and actions. Further, the risk sub-model represents the uncertainty range of the values computed by the price evolution model.
The game here is to decode the blurb and tell me what this system does.
©2006 Marc Adler - All Rights Reserved
Modeling: Price and Risk Models
We model the equity market as an open, irreversible, far from equilibrium thermodynamic model subject to dynamic constraints. This approach results in a bi-linear model composed of two dynamical sub-models: price evolution and risk evolution. The price evolution sub-model represents the behavior of pricing of commodities and a market aggregate as a function of exogenous demand and control actions. The risk sub-model represents the behavior of risk as a function of exogenous uncertainty and actions. Further, the risk sub-model represents the uncertainty range of the values computed by the price evolution model.
The game here is to decode the blurb and tell me what this system does.
©2006 Marc Adler - All Rights Reserved
Sunday, September 17, 2006
Microsoft ESB
Microsoft in the Enterprise Service Bus (ESB) space? Ot should be an interesting development to watch, especially for shops who are heavily tied to Tibco RV and EMS. Microsoft will have to really exceed Tibco EMS's performance in order for people to take notice. Also, Microsoft will have to throw the EMS people a bone and support JMS. I might suggest that Microsoft come out with patterns to support synchronous calls over JMS easily.
I can imagine some interesting tie-ins with SQL Server and Excel. You could have database events published on the message bus. You can also have Excel subscribing to the message bus in order to receive real-time stock quotes and position updates, and you can also have Excel publishing risk calculations back out to the bus. If Microsoft were to have this trio (DB, Excel, bus) tied in seamlessly, then this would show Wall Street a real committment.
Are you an RV, EMS, or Sonic shop? What would it take for you to transition to a Microsoft ESB?
By the way .... A few weeks ago, I asked a Microsoft rep about what they are looking at for messaging, and they said that they will be supporting WS-Events. Is this an alternative to JMS for async messaging? What we don't need is to divide the messaging community at this point.
©2006 Marc Adler - All Rights Reserved
I can imagine some interesting tie-ins with SQL Server and Excel. You could have database events published on the message bus. You can also have Excel subscribing to the message bus in order to receive real-time stock quotes and position updates, and you can also have Excel publishing risk calculations back out to the bus. If Microsoft were to have this trio (DB, Excel, bus) tied in seamlessly, then this would show Wall Street a real committment.
Are you an RV, EMS, or Sonic shop? What would it take for you to transition to a Microsoft ESB?
By the way .... A few weeks ago, I asked a Microsoft rep about what they are looking at for messaging, and they said that they will be supporting WS-Events. Is this an alternative to JMS for async messaging? What we don't need is to divide the messaging community at this point.
©2006 Marc Adler - All Rights Reserved
Saturday, September 16, 2006
GemFire
I am starting an evaluation of object cache technology, starting with GemFire. The target app is a legacy C++ app, so the fact that Gemstone has a C++ version of GemFire is a big plus. They also have .NET bindings, and I will be checking those out too.
One gotcha .... GemFire does not work on Windows 2000 because of the underlying dependencies on 29West's LBM message broker. This is a real nasty if you want to do an evaluation on your desktop at work, but your company is still in Windows 2000-land. So, I had to load up GemFire on my home laptop, which runs XP Pro, and will do the evaluation on my laptop.
The plans are to use the object cache as a "data fabric" in order to speed up some of our calc engines. Object Caches like GigaSpaces are used already in a lot of Wall Street IBs just for that purpose. I have heard a little rumbling about GigaSpace implementations from some former colleagues, so we are hoping that GemFire will be worry-free. Already, I am impressed with their support staff (thanks to Mike and Santiago for timely responses).
I would be interested in comments from any of you people who have evaluated or used object caches in your financial apps, especially C++ or C# apps. Feel free to comment here or email me privately.
©2006 Marc Adler - All Rights Reserved
One gotcha .... GemFire does not work on Windows 2000 because of the underlying dependencies on 29West's LBM message broker. This is a real nasty if you want to do an evaluation on your desktop at work, but your company is still in Windows 2000-land. So, I had to load up GemFire on my home laptop, which runs XP Pro, and will do the evaluation on my laptop.
The plans are to use the object cache as a "data fabric" in order to speed up some of our calc engines. Object Caches like GigaSpaces are used already in a lot of Wall Street IBs just for that purpose. I have heard a little rumbling about GigaSpace implementations from some former colleagues, so we are hoping that GemFire will be worry-free. Already, I am impressed with their support staff (thanks to Mike and Santiago for timely responses).
I would be interested in comments from any of you people who have evaluated or used object caches in your financial apps, especially C++ or C# apps. Feel free to comment here or email me privately.
©2006 Marc Adler - All Rights Reserved
Friday, September 08, 2006
Roy Buchanan
If you are a fan of guitar, blues or just plain old great music, check this out.
I am not a guitarist nor do I really like the blues, but like everyone else who saw this on YouTube, it hit me in the right place. I actually saw Roy years ago when a school chum got tickets to a taping of ABC's In Concert TV Series. The bill was Uriah Heep, Roy, The Persuasions, and Savoy Brown. Roy blew everyone away.
I continue to be astounded by the things I find on YouTube. My YouTube id is VanderTop2, so you can browse my Favorites list and see what kind of things I am unearthing.
©2006 Marc Adler - All Rights Reserved
I am not a guitarist nor do I really like the blues, but like everyone else who saw this on YouTube, it hit me in the right place. I actually saw Roy years ago when a school chum got tickets to a taping of ABC's In Concert TV Series. The bill was Uriah Heep, Roy, The Persuasions, and Savoy Brown. Roy blew everyone away.
I continue to be astounded by the things I find on YouTube. My YouTube id is VanderTop2, so you can browse my Favorites list and see what kind of things I am unearthing.
©2006 Marc Adler - All Rights Reserved
Thursday, September 07, 2006
Celllllllllebration, Yeah, Come On!
We have been given the go-ahead for the .NET Client Framework!
Thanks to all who contributed ideas, both publicly and privately. And thanks to various open-minded individuals at my IB.
My ex-colleague, Chris, will be embarking on an effort to do the same at another IB. Will it be Service Locator vs Spring.Net? Stay tuned!
Beers are on me.....
©2006 Marc Adler - All Rights Reserved
Thanks to all who contributed ideas, both publicly and privately. And thanks to various open-minded individuals at my IB.
My ex-colleague, Chris, will be embarking on an effort to do the same at another IB. Will it be Service Locator vs Spring.Net? Stay tuned!
Beers are on me.....
©2006 Marc Adler - All Rights Reserved
Sunday, September 03, 2006
Thoughts on Performance in Trading Systems and .NET
Rico has done it again with a post that provides much thought.
With the advent of object oriented languages (C++), and higher-level languages (C#, Java), most developers try to craft elegant, object-oriented frameworks, complete with reflection, heavyweight classes, lots of properties. I am one of these.
However, I remember the days where I had to cram all of the functionality of New York Word (my very first commercial product) into 512K of ram. Pouring over code, trying to see if I can save a few bytes here and a few bytes there. Looking at the output of the Microsoft Linker to see if I can save space. Looking over the disassembly of a crucial module, such as the one that performed wordwrapping.
In the next few years, we are going to start seeing a predicted rate of 456,000 messages per second from some of the market data feeds. The goal is to get these messages, transformed into viable data, into another, trader-facing system, with as little delay as possible. There are additional needs to get this data into algorithmic trading systems and black-box trading systems with the lowest possible latency. The time taken to serialize and deserialize data, construct objects, and perform garbage collection can mean a precious few milliseconds added onto the path that your data takes. If you are writing array-handling code in a managed environment, then the time it takes to perform array checking might add further delay. Even the slightest delay can mean millions of dollars in lost opportunities.
An incredible amount of effort has been spent in writing high-performance, low latency graphics toolkits for rendering objects in video games. Has similar efforts been made to "render" the flow of market data, where every market tick counts?
I would love to hear about any experiences that you have had in getting market data into a client as fast as possible. Things like compressing data, conflating data, choice of transport, choice of GUI grids, high-performance threading, etc.
Microsoft has oodles of articles that deal with performance in .NET. I am anxious to see any performance improvements throughout the entire .NET stack. I am also interested to see how .NET/C#/C++ stacks up against a similar Java/Linux stack, given the same hardware. The PetShop demo might work well for a typical developer, but for trading systems developers, we need to see something a bit more substantial.
©2006 Marc Adler - All Rights Reserved
With the advent of object oriented languages (C++), and higher-level languages (C#, Java), most developers try to craft elegant, object-oriented frameworks, complete with reflection, heavyweight classes, lots of properties. I am one of these.
However, I remember the days where I had to cram all of the functionality of New York Word (my very first commercial product) into 512K of ram. Pouring over code, trying to see if I can save a few bytes here and a few bytes there. Looking at the output of the Microsoft Linker to see if I can save space. Looking over the disassembly of a crucial module, such as the one that performed wordwrapping.
In the next few years, we are going to start seeing a predicted rate of 456,000 messages per second from some of the market data feeds. The goal is to get these messages, transformed into viable data, into another, trader-facing system, with as little delay as possible. There are additional needs to get this data into algorithmic trading systems and black-box trading systems with the lowest possible latency. The time taken to serialize and deserialize data, construct objects, and perform garbage collection can mean a precious few milliseconds added onto the path that your data takes. If you are writing array-handling code in a managed environment, then the time it takes to perform array checking might add further delay. Even the slightest delay can mean millions of dollars in lost opportunities.
An incredible amount of effort has been spent in writing high-performance, low latency graphics toolkits for rendering objects in video games. Has similar efforts been made to "render" the flow of market data, where every market tick counts?
I would love to hear about any experiences that you have had in getting market data into a client as fast as possible. Things like compressing data, conflating data, choice of transport, choice of GUI grids, high-performance threading, etc.
Microsoft has oodles of articles that deal with performance in .NET. I am anxious to see any performance improvements throughout the entire .NET stack. I am also interested to see how .NET/C#/C++ stacks up against a similar Java/Linux stack, given the same hardware. The PetShop demo might work well for a typical developer, but for trading systems developers, we need to see something a bit more substantial.
©2006 Marc Adler - All Rights Reserved
On the Beach
I have been trying to fly out to a beach for the past few weeks, but every time I reserve a plane, the weather craps out. Had a plane reserved for today, but we have the remnants of Hurricane Ernesto. It is supposed to be an amazing day tomorrow, so I will try to make Ocean City, NJ.
There are a few beaches on the East Coast that you can fly to. Our favorite is Block Island, Rhode Island, right off the eastern tip of Long Island and about 1h15m from MMU. Block Island is only reachable by ferry, and hence, the beaches are relatively less crowded than your typical East Coast beach.
Other beaches that have airports within walking distance include Provincetown (Mass), Ocean City (NJ), Katana (Martha's Vineyard).
©2006 Marc Adler - All Rights Reserved
There are a few beaches on the East Coast that you can fly to. Our favorite is Block Island, Rhode Island, right off the eastern tip of Long Island and about 1h15m from MMU. Block Island is only reachable by ferry, and hence, the beaches are relatively less crowded than your typical East Coast beach.
Other beaches that have airports within walking distance include Provincetown (Mass), Ocean City (NJ), Katana (Martha's Vineyard).
©2006 Marc Adler - All Rights Reserved
Market Data Tech Conf - NYC - Sept 28,29 2006
Hope Craig sees this one.
We should have more fans of Market Data where I work, seeing how Craig kept everyone until after 5PM on the Friday before Labor Day with an amazing lecture on Market Data.
In the past, I have just built trader workstations that merely hooked up to a market data feed through some sort of communication mechanism (sockets, Tibco RV, EMS) without having to be concerned about the ins-and-outs of the data. However, Craig has been doing market data for 15 years, and it's a pleasure to work along someone who is so passionate about the area.
©2006 Marc Adler - All Rights Reserved
We should have more fans of Market Data where I work, seeing how Craig kept everyone until after 5PM on the Friday before Labor Day with an amazing lecture on Market Data.
In the past, I have just built trader workstations that merely hooked up to a market data feed through some sort of communication mechanism (sockets, Tibco RV, EMS) without having to be concerned about the ins-and-outs of the data. However, Craig has been doing market data for 15 years, and it's a pleasure to work along someone who is so passionate about the area.
©2006 Marc Adler - All Rights Reserved
Investment and Trading System Documentation Project
While browsing through the FIX forums, I saw mention of an effort called the Investment and Trading System Documentation Project. Interesting idea, but it looks as if it really never got off the ground. Still, they have a repository of some articles on Electronic Trading.
©2006 Marc Adler - All Rights Reserved
©2006 Marc Adler - All Rights Reserved
Wednesday, August 30, 2006
The Bronx Cheers
Random Seinfeld-ish Thought...
Why are Americans suddenly using the signatory line of "Cheers"? People I know who were born and raised in Brooklyn are suddenly signing email message with "Cheers".
The next time you say "Cheers" to me, you had better have a scotch in your hand!
©2006 Marc Adler - All Rights Reserved
Why are Americans suddenly using the signatory line of "Cheers"? People I know who were born and raised in Brooklyn are suddenly signing email message with "Cheers".
The next time you say "Cheers" to me, you had better have a scotch in your hand!
©2006 Marc Adler - All Rights Reserved
Monday, August 28, 2006
Pair Programming and Market Data?
I was talking about Agile/Scrum with our head of market data systems. He advised me that, with regards to Pair Programming, if you have two sets of eyes looking at a computer at the same time, then the exchanges would consider this grounds for charging double for the market data!
OK, Messrs Fowler, Beck, and Schwaber! What do you have to say about that!
©2006 Marc Adler - All Rights Reserved
OK, Messrs Fowler, Beck, and Schwaber! What do you have to say about that!
©2006 Marc Adler - All Rights Reserved
Sunday, August 27, 2006
Java vs C#/.NET in Investment Banks
Although there are definite pockets of .NET development in most investment banks on Wall Street, the majority of the development efforts are still in Java, especially on the server side. This is nowhere more apparent than in the investment bank that I am currently working for.
I am becoming more and more impressed with the Open Software that has been developed for the Java community, and the I have been similarly impressed with the sense of comradery that the Java community has. Most of the interesting .NET tools have origins in the Java world (NUnit, Spring, Hibernate, etc).
One of my tasks in my current position is to look at what our company has in terms of client-side frameworks and to come up with a proposal for a company-wide framework. This means looking at the toolkits that various groups are using or currently developing, looking at what I have done in the past, and making some recommendations by taking the best-of-breed of the various efforts. In addition to looking at .NET frameworks, I have been asked to look at some of the Java frameworks. And, I have been impressed by some of the Java efforts.
Some people have even asked me to look at things like Eclipse RCP and the NetBeans RCP. Several of my colleagues have blogged in the past about the viability of Eclpise RCP as a client-side framework. I feel that I need to take a serious look at it.
You all know that I have been a staunch advocate of .NET in the past. However, I am finding it more difficult to beat back the Java supporters. Some of the arguments that I have used against Java in the past (slowness, not as nice a UI, etc) have been colored by my past experiences with AWT, Swing, and JFC. But, Java GUI development has definitely evolved.
I would love to hear from my blog readers as to why I should continue to push .NET over Java.
Some reasons that I can think of for preferring .NET over Java:
1) I feel C# is a stronger language, and will continue to evolve into an even more powerful entity.
2) Closeness of .NET to the O/S, especially when Vista comes out.
3) Support for .NET inside of SQL Server 2005.
4) Possible business reasons are Microsoft non-support of a JVM and the precarious nature of Sun's balance sheet.
5) Better integrations with the standards in desktop tools (Excel, Word, etc)
©2006 Marc Adler - All Rights Reserved
I am becoming more and more impressed with the Open Software that has been developed for the Java community, and the I have been similarly impressed with the sense of comradery that the Java community has. Most of the interesting .NET tools have origins in the Java world (NUnit, Spring, Hibernate, etc).
One of my tasks in my current position is to look at what our company has in terms of client-side frameworks and to come up with a proposal for a company-wide framework. This means looking at the toolkits that various groups are using or currently developing, looking at what I have done in the past, and making some recommendations by taking the best-of-breed of the various efforts. In addition to looking at .NET frameworks, I have been asked to look at some of the Java frameworks. And, I have been impressed by some of the Java efforts.
Some people have even asked me to look at things like Eclipse RCP and the NetBeans RCP. Several of my colleagues have blogged in the past about the viability of Eclpise RCP as a client-side framework. I feel that I need to take a serious look at it.
You all know that I have been a staunch advocate of .NET in the past. However, I am finding it more difficult to beat back the Java supporters. Some of the arguments that I have used against Java in the past (slowness, not as nice a UI, etc) have been colored by my past experiences with AWT, Swing, and JFC. But, Java GUI development has definitely evolved.
I would love to hear from my blog readers as to why I should continue to push .NET over Java.
Some reasons that I can think of for preferring .NET over Java:
1) I feel C# is a stronger language, and will continue to evolve into an even more powerful entity.
2) Closeness of .NET to the O/S, especially when Vista comes out.
3) Support for .NET inside of SQL Server 2005.
4) Possible business reasons are Microsoft non-support of a JVM and the precarious nature of Sun's balance sheet.
5) Better integrations with the standards in desktop tools (Excel, Word, etc)
©2006 Marc Adler - All Rights Reserved
Saturday, August 26, 2006
Before you start subscribing to market data...
... read this.
Several Wall Street companies have gotten big fines when the exchanges have found out that people or "interrogation devices" that were not entitled to use market data were actually using it. Try looking at this document and see if you can figure out what you need to license if you have a single PC with several different WinForms apps, each app capable of letting one user see the NASDAQ data feed. And, what happens if there are multiple users on that PC?
My colleague Craig tells me that the fee structure imposed by the various exchanges is one of the main driving points for my "Common Wall Street Client Stack", with various applets running inside of one desktop shell.
Wonder if NASDAQ will start charging per AppDomain?
©2006 Marc Adler - All Rights Reserved
Several Wall Street companies have gotten big fines when the exchanges have found out that people or "interrogation devices" that were not entitled to use market data were actually using it. Try looking at this document and see if you can figure out what you need to license if you have a single PC with several different WinForms apps, each app capable of letting one user see the NASDAQ data feed. And, what happens if there are multiple users on that PC?
My colleague Craig tells me that the fee structure imposed by the various exchanges is one of the main driving points for my "Common Wall Street Client Stack", with various applets running inside of one desktop shell.
Wonder if NASDAQ will start charging per AppDomain?
©2006 Marc Adler - All Rights Reserved
Friday, August 25, 2006
We have 4 Open Positions
Want to work with me at a large Investment Bank in NY and NJ?
Here are 4 positions that we have open right now:
- CI and Agile Champion who ideally can also act as a test architect
- Java master with focus on messaging
- Middle Office architect
- Algo architect, which we may re-position as a generalist Java pro
The Middle Office architect can probably be .NET or Java based.
These positons are all for full-timers.
If you are interested, or know anyone who is, then email me at
magmasystems AT yahoo dot com.
©2006 Marc Adler - All Rights Reserved
Here are 4 positions that we have open right now:
- CI and Agile Champion who ideally can also act as a test architect
- Java master with focus on messaging
- Middle Office architect
- Algo architect, which we may re-position as a generalist Java pro
The Middle Office architect can probably be .NET or Java based.
These positons are all for full-timers.
If you are interested, or know anyone who is, then email me at
magmasystems AT yahoo dot com.
©2006 Marc Adler - All Rights Reserved
Sunday, August 20, 2006
An Article on Trading
A bit dated (1995), but here is an article on the trading process. Useful for understanding a bit on order matching and execution algorithms.
©2006 Marc Adler - All Rights Reserved
©2006 Marc Adler - All Rights Reserved
Thursday, August 17, 2006
Comments Added and WMI Blues
I spaced out on approving and publishing the moderated comments (thanks Craig). So now, there are about 30 commnents, dating back from late May.
I was wondering why nobody congratulated me on my new job :-)
Starting to play around with Microsoft's WMI for instrumenting applications. I need to beat up on Microsoft for not letting you author .NET-based WMI providers that allow method invocation and property setters. All you can do with .NET WMI providers are receive events and do property gets. You cannot change a value through a property setting, nor can you manage an application by calling a method on a provider.
Seems that if you want to write a fully-functional WMI provider, then you have to drop down to COM (even using ATL) and C++.
This limitation is severe. This means that I cannot write a .NET app that can be managed by a .NET provider. This means that, if I want to write a monitoring and management dashboard (for monitoring, let's say, a .NET-based trading system), I have to drag out my old COM/ATL books and write unmanaged code. Ugh!
It seems as if plenty of people on the newsgroups share my pain.
©2006 Marc Adler - All Rights Reserved
I was wondering why nobody congratulated me on my new job :-)
Starting to play around with Microsoft's WMI for instrumenting applications. I need to beat up on Microsoft for not letting you author .NET-based WMI providers that allow method invocation and property setters. All you can do with .NET WMI providers are receive events and do property gets. You cannot change a value through a property setting, nor can you manage an application by calling a method on a provider.
Seems that if you want to write a fully-functional WMI provider, then you have to drop down to COM (even using ATL) and C++.
This limitation is severe. This means that I cannot write a .NET app that can be managed by a .NET provider. This means that, if I want to write a monitoring and management dashboard (for monitoring, let's say, a .NET-based trading system), I have to drag out my old COM/ATL books and write unmanaged code. Ugh!
It seems as if plenty of people on the newsgroups share my pain.
©2006 Marc Adler - All Rights Reserved
Friday, August 11, 2006
Silicon on Wall Street (followup)
As a response to my previous posting, my man John weighs in with some words on FPGA's on Wall Street.
As an aside, I notice that there are some good blogs on issues that Wall Street technologists come across every day... John, Chris, DLG, JO'S, and the daddy of them all, Matt. Know of any others?
©2006 Marc Adler - All Rights Reserved
As an aside, I notice that there are some good blogs on issues that Wall Street technologists come across every day... John, Chris, DLG, JO'S, and the daddy of them all, Matt. Know of any others?
©2006 Marc Adler - All Rights Reserved
Thursday, August 10, 2006
Exotics Computations on Silicon?
Someone floated an idea that sounded interesting ...
Has anyone heard of writing their calc functions in C, and burning them onto field programmable gate arrays? The calc models would have to be fairly static, but it might be able to give you magnitudes of speed improvements.
I confess that I know very little about this technology, but it bears some investigation.
Hopefully J.O'S can weigh in with something on his blog....
Here is an interesting article.
©2006 Marc Adler - All Rights Reserved
Has anyone heard of writing their calc functions in C, and burning them onto field programmable gate arrays? The calc models would have to be fairly static, but it might be able to give you magnitudes of speed improvements.
I confess that I know very little about this technology, but it bears some investigation.
Hopefully J.O'S can weigh in with something on his blog....
Here is an interesting article.
©2006 Marc Adler - All Rights Reserved
Wednesday, August 09, 2006
Barrier Options
Barrier Options are considered to be exotic derivatives. Exotics usually take a long time to price, and if you are architecting a trading system, you usually want to put a lot of computing power behind the calculations of exotics. Many trading firms look to Compute Grids and data caches to help speed up some of these calculations.
This explanation of Barrier Options has been taken from the Bank of New York website:
This explanation of Barrier Options has been taken from the Bank of New York website:
SRDF
SRDF is an EMC product family that provides synchronous or async data replication between LUs (logical disk units) of two SAN (Storage Area Networks).
Here is a story about how data replication saved the day in a trading environment at a Tier-1 bank.
Here is a description of a high-performance trading system that uses SRDF. The brochure contains some good points to consider when designing the infrastructure of a trading system. These kinds of infrastructure components were things that I never had to consider previously when I was concentrating solely on writing good software and managing development teams, but in the architecture group, I have to pay attention to this stuff now.
©2006 Marc Adler - All Rights Reserved
Here is a story about how data replication saved the day in a trading environment at a Tier-1 bank.
Here is a description of a high-performance trading system that uses SRDF. The brochure contains some good points to consider when designing the infrastructure of a trading system. These kinds of infrastructure components were things that I never had to consider previously when I was concentrating solely on writing good software and managing development teams, but in the architecture group, I have to pay attention to this stuff now.
©2006 Marc Adler - All Rights Reserved
The First Week and Many New Terms
Sitting here relaxing on the couch after the 2nd day of a grueling offsite. Switching the TV between the Yankee game and the MSG network showing old WWWF highlights from Madison Square Garden (yes, I used to be a major WWWF fan when I was a kid). Perfect TV for unwinding.
It's strange being on the other side of the full-time/employee equation. Being part of the Equities Architecture team, you have various vendors trying to get a piece of your ear. There is no better PR than having your product as piece of a major equities trading system. As such, I am wondering why Microsoft never devoted major effort to attacking the trading system space. Microsoft would be a major force if they came out with the infrastructure to do low-latency, high-volume market data distribution, pub/sub messaging, ultra-fast UI grids, the ability to take an Excel model and compile it into a DLL, etc. Microsoft always seems to be on the cusp on doing something in the trading system space, but has never come through with a compelling, end-to-end story. However, new technologies like Windows Compute Cluster and Excel Services seem to be moving the company in the right direction from a technological standpoint. Plus, their recent announcement to invade the healthcare space has shown a new willingness to attack certain verticals. It still is an uphill battle to sell Microsoft within Capital Markets for anything but UI work ... but people are starting to listen!
I always have a page in the back of my notebook where I write down terms that I need to explore more. Being a .NET specialist and an architecture generalist, I am bound to come up against unfamiliararities. Here are terms from the 2-day offsite that I attended:
1) Barrier Knockout
2) Bishop Algorithm
3) Monte Carlo Trials
4) SSH
5) Alpha Partition
6) MPI (a grid network API)
7) SRDF
8) SANs and Spindle Optimization with regards to Databases
9) Multicast Storms
10) Java NIO, especially with regards to memory-mapped files
By the way, anyone know of a .NET/C# port of NIO?
©2006 Marc Adler - All Rights Reserved
It's strange being on the other side of the full-time/employee equation. Being part of the Equities Architecture team, you have various vendors trying to get a piece of your ear. There is no better PR than having your product as piece of a major equities trading system. As such, I am wondering why Microsoft never devoted major effort to attacking the trading system space. Microsoft would be a major force if they came out with the infrastructure to do low-latency, high-volume market data distribution, pub/sub messaging, ultra-fast UI grids, the ability to take an Excel model and compile it into a DLL, etc. Microsoft always seems to be on the cusp on doing something in the trading system space, but has never come through with a compelling, end-to-end story. However, new technologies like Windows Compute Cluster and Excel Services seem to be moving the company in the right direction from a technological standpoint. Plus, their recent announcement to invade the healthcare space has shown a new willingness to attack certain verticals. It still is an uphill battle to sell Microsoft within Capital Markets for anything but UI work ... but people are starting to listen!
I always have a page in the back of my notebook where I write down terms that I need to explore more. Being a .NET specialist and an architecture generalist, I am bound to come up against unfamiliararities. Here are terms from the 2-day offsite that I attended:
1) Barrier Knockout
2) Bishop Algorithm
3) Monte Carlo Trials
4) SSH
5) Alpha Partition
6) MPI (a grid network API)
7) SRDF
8) SANs and Spindle Optimization with regards to Databases
9) Multicast Storms
10) Java NIO, especially with regards to memory-mapped files
By the way, anyone know of a .NET/C# port of NIO?
©2006 Marc Adler - All Rights Reserved
Wednesday, August 02, 2006
Event Stream Processing
Marco blogs about Event Stream Processing (ESP) at http://rulecore.com/espblog/. There is also a Wikipedia article about it.
ESP is especially interesting in the financial markets, where you want to perform real-time decision making on a stream of quotes coming from your market data distribution infrastructure. ESP gives you opportunities for things like algorithmic trading and real-time risk management.
Companies in this space include Gemstone (Gemfire), KX (KDB+), Vhayu, Streambase, Aleri. I would like to see Microsoft get into this space with a future version of SQL Server. (Since I have some meetings coming up with some people from Microsoft, I will be sure to ask this question.)
I will definitely be exploring this space in the near future.
©2006 Marc Adler - All Rights Reserved
ESP is especially interesting in the financial markets, where you want to perform real-time decision making on a stream of quotes coming from your market data distribution infrastructure. ESP gives you opportunities for things like algorithmic trading and real-time risk management.
Companies in this space include Gemstone (Gemfire), KX (KDB+), Vhayu, Streambase, Aleri. I would like to see Microsoft get into this space with a future version of SQL Server. (Since I have some meetings coming up with some people from Microsoft, I will be sure to ask this question.)
I will definitely be exploring this space in the near future.
©2006 Marc Adler - All Rights Reserved
Tuesday, August 01, 2006
Conflation
The word conflation sounds like a condition that requires you to take a few spoonfuls of Pepto Bizmol. But, it is a term that is used when discussion efficient market data distribution.
The technique has been around for a while. I have always referred to it as aggregation. The term conflation means the combining of data in messages to form one message. You use conflation of messages to overcome slow consumers, limited message queues, and any situation where a message publisher has to throttle the outgoing stream of messages.
Let's say that you are a consumer of stock quotes. The market data distributor receives 1000 quotes for MSFT in one second, but you are only interested in the latest price every second. So, the market data distributor will conflate all of the MSFT quote messages into a single message that gets broadcast to you every second. This means that the server will only send you the last bid/ask price.
You can choose various parameters for the conflation. For instance, as mentioned above, you might want time-based conflation (every 2 seconds, every 30 seconds, etc), you may want conflation based on the size of your message queue, or you might choose your own custom way of doing conflation.
©2006 Marc Adler - All Rights Reserved
The technique has been around for a while. I have always referred to it as aggregation. The term conflation means the combining of data in messages to form one message. You use conflation of messages to overcome slow consumers, limited message queues, and any situation where a message publisher has to throttle the outgoing stream of messages.
Let's say that you are a consumer of stock quotes. The market data distributor receives 1000 quotes for MSFT in one second, but you are only interested in the latest price every second. So, the market data distributor will conflate all of the MSFT quote messages into a single message that gets broadcast to you every second. This means that the server will only send you the last bid/ask price.
You can choose various parameters for the conflation. For instance, as mentioned above, you might want time-based conflation (every 2 seconds, every 30 seconds, etc), you may want conflation based on the size of your message queue, or you might choose your own custom way of doing conflation.
©2006 Marc Adler - All Rights Reserved
Monday, July 31, 2006
Consulting Firms - What Should We Charge?
(This was a post on my blog from a few months ago that I took down. The numbers in this post were arrived at during the course of one train ride from New Jersey to NYC, and in no way are derived from any real consulting firm. These are numbers that should be considered if you are going to start your own IT consulting firm. I also included some of the comments that the original post garnered.)
Consulting Firms - What Should We Charge?
On another blog, a person who is in charge of some consulting dollars (or pounds) at his company questioned why they should pay $X to one consulting company when some temp contractors could do it for $0.5X.
That got me thinking (yet again) about how much high-end consultancies should charge a client per hour or per professional day. I came up with some numbers that I would like to share.
Before I start, some things I want to mention:1) Please feel free to comment in case my numbers are way off base.2) The numbers have no connection whatsoever with Finetix, my former employer. These numbers were arrived at by opening up a random number of fortune cookies and summing up the lottery numbers. 3) These figures are for the US marketplace. I have no idea what the British equivalents to Social Security Tax and 401K plans are.
Fixed Costs Per Employee
------------------------
1) Salary
We want to have a consultancy that has top technical people who have some amount of financial background. We are looking for .NET and Java experts who have done some work on Wall Street in the past, and who can at least tell me what a bond is. In a previous blog posting, I mentioned that the current base salary on Wall Street for this level is about $150,000.
2) 401K/retirement Plan
Let's say that you have a 3% 401K. That adds another $5000.
3) Bonus
Always a tricky thing. Let's take $10,000 for a job well done.
4) Insurance
We pay 2/3 of an employees medical and dental insurance. This amount to about $7000 per year. We also have to pay some other taxes, such an unemployment insurance, etc.
5) Social Security tax
We pay about 7.15 of the person's first $90,000 in income. This is about $6000.
Subtotal - We are paying about $178,000 in salary and benefits per employee.
Costs of Running the Business
-----------------------------
1) Back office staff to support 40 delivery people. We need about 10 people. There are 3 partners, director of Human Resources, director of Benefits, director of Recruiting, two salespeople, director of marketing, plus administrative assistant. If we wanted to chop some dollars, we could probably combine the HR and Benefits. Some of the people are paid totally on commission, some partly, and some are strictly salaried. The partners pay themselves a fixed base salary. So, I am going to put this roughly at $1M.
2) Rent
Nice offices in New York, satellite offices in various locations. Also, cost of utilities, cleaning services, a nice tip for the elevator operators and cleaning people, etc. Let's estimate $400,000.
3) Office Supplies, Furniture, Postage, ISP, etc.
Let's say $100,000.
4) Other items:
- Interest on the Float. The "float' is the number of days between the time you pay your employees and the time you finally collect money from the client.
- Client "incentives" - that nasty, unspoken cost of doing business.
- Marketing Budget
- Conferences and professional organizations
5) Corporate Taxes!!!!
Subtotal - Let's guess about $2M. If we have 40 consultants generating revenue, this is about $50,000 per consultant.
So, now we have the cost per consultant at around $230,000 per year. There are about 230 possible consulting days per year (365 days - 104 weekends - 15 vacation - 10 holidays plus some sick days). This means, if the consultant was billing for all 230 days, we would have to charge the client $1000 per day just to break even. Now, let's say that each consultant is allowed about 10 days of bench time per year. This brings our daily rate up to about $1100.How much profit margin should the partners have? From dealing with various headhunters, I would assume a good profit margin to be about 25-30%. This means that we should be charging a client about $1400 for a consultant.
Our consulting company has a mixture of various skill levels. Some people are more junior than others. So, we create a rate card that goes from $1200 per day for a junior person, to $1600 per day for a senior person. This comes out to $150 to $200 per hour.
Now, at that rate, we are relatively cheap compared to other consulting companies. Microsoft Consulting charges at least $2000 per day. IBM and BearingPoint charge at least $250 per hour for a junior consultant, up to about $450 an hour for a director.
Who are our customers? Certainly, the tier 1 and tier 2 financial institutions. Pharma companies are not going to pay these rates. We are looking to deal with clients who can appreciate our talent pool and who can afford to pay.
Wanna start your own consultancy? These are the numbers that you will have to deal with.
8 Comments:
· I think you're a little on the low side. My former employer charged $250 to $320 per hour, and we had pharmas and other corporates in our clientelle.In yours costs, perhaps factor in some free consulting time to fix screw-ups, late deliveries, etc.What about training? If you want to justify your rate you need highly trained, up to date employees. This is why I left, my employer made no investment in me. I had to train myself on my time, which left me often working around the clock.10 days on the bench per year! Man, I do NOT miss consulting!
By Burnt Out, at 5:38 PM
· Wouldn't the partners take a % of the profits rather than a salary?What about training, free days to clients, sick days?Why isn't the employees bonus based on a % of the profits the company makes?Based on your calculations the is a backoffice person for every 4 consultants? I hate to see the size of the backoffice for 1000 consultantsWhy don't I offshore some of my the work?Can't your consultancy do fixed price?
By Anonymous, at 6:30 PM
· Wouldn't the partners take a % of the profits rather than a salary?Possibly. Depends on how risk-averse the partners were. If I was a partner, I would pay myself a low salary ($100K) and then at the end of the year, divvy up the profits.What about training, free days to clients, sick days?I mentioned 5 sick days in my original post. Training is nice, and I would like to give at least a week of training, so that can be done during the 10 days of bench time. OK, let's add in about $100K for training. Free days to clients? Never heard of this!Why isn't the employees bonus based on a % of the profits the company makes?Because many smart people will negotiate a guaranteed fixed bonus when they join, especially since the debacles of 2002 and 2003. But I might give an added "incentive" bonus to some of my best performers at the end of the year. OK, let's add another 100K.Based on your calculations the is a backoffice person for every 4 consultants? I hate to see the size of the backoffice for 1000 consultants10 people should be a constant. Even when your company grows to 100 people. In fact, at the start, I might consider consolidating the benefits and HR functions, and make the partners do more marketing. So, we can cut our staff back to 8.Why don't I offshore some of my the work?Never, never! This is what distinguishes my shop from other larger ones. Strictly all client-facing work.Can't your consultancy do fixed price?I abhor fixed-price contracts. We could do it, but perhaps under duress!One thing that I forgot to mention was finder’s fees. If I hire a person through an employment agency, then I have to pay then 15-30% of the employee's first year salary. That's a significant chunk. Let's assume $30,000 for 10 people, and that's another $300,000.So, we have added another $500,000 in costs to our model. That's about $10K per employee. Gotta bump up the rate card by $50 per day. So, our rate card is now $1250 through $1650. And, coincidentally, $1650 per day is what a lot of the top-tier banks pay for senior technical people.
©2006 Marc Adler - All Rights Reserved
Consulting Firms - What Should We Charge?
On another blog, a person who is in charge of some consulting dollars (or pounds) at his company questioned why they should pay $X to one consulting company when some temp contractors could do it for $0.5X.
That got me thinking (yet again) about how much high-end consultancies should charge a client per hour or per professional day. I came up with some numbers that I would like to share.
Before I start, some things I want to mention:1) Please feel free to comment in case my numbers are way off base.2) The numbers have no connection whatsoever with Finetix, my former employer. These numbers were arrived at by opening up a random number of fortune cookies and summing up the lottery numbers. 3) These figures are for the US marketplace. I have no idea what the British equivalents to Social Security Tax and 401K plans are.
Fixed Costs Per Employee
------------------------
1) Salary
We want to have a consultancy that has top technical people who have some amount of financial background. We are looking for .NET and Java experts who have done some work on Wall Street in the past, and who can at least tell me what a bond is. In a previous blog posting, I mentioned that the current base salary on Wall Street for this level is about $150,000.
2) 401K/retirement Plan
Let's say that you have a 3% 401K. That adds another $5000.
3) Bonus
Always a tricky thing. Let's take $10,000 for a job well done.
4) Insurance
We pay 2/3 of an employees medical and dental insurance. This amount to about $7000 per year. We also have to pay some other taxes, such an unemployment insurance, etc.
5) Social Security tax
We pay about 7.15 of the person's first $90,000 in income. This is about $6000.
Subtotal - We are paying about $178,000 in salary and benefits per employee.
Costs of Running the Business
-----------------------------
1) Back office staff to support 40 delivery people. We need about 10 people. There are 3 partners, director of Human Resources, director of Benefits, director of Recruiting, two salespeople, director of marketing, plus administrative assistant. If we wanted to chop some dollars, we could probably combine the HR and Benefits. Some of the people are paid totally on commission, some partly, and some are strictly salaried. The partners pay themselves a fixed base salary. So, I am going to put this roughly at $1M.
2) Rent
Nice offices in New York, satellite offices in various locations. Also, cost of utilities, cleaning services, a nice tip for the elevator operators and cleaning people, etc. Let's estimate $400,000.
3) Office Supplies, Furniture, Postage, ISP, etc.
Let's say $100,000.
4) Other items:
- Interest on the Float. The "float' is the number of days between the time you pay your employees and the time you finally collect money from the client.
- Client "incentives" - that nasty, unspoken cost of doing business.
- Marketing Budget
- Conferences and professional organizations
5) Corporate Taxes!!!!
Subtotal - Let's guess about $2M. If we have 40 consultants generating revenue, this is about $50,000 per consultant.
So, now we have the cost per consultant at around $230,000 per year. There are about 230 possible consulting days per year (365 days - 104 weekends - 15 vacation - 10 holidays plus some sick days). This means, if the consultant was billing for all 230 days, we would have to charge the client $1000 per day just to break even. Now, let's say that each consultant is allowed about 10 days of bench time per year. This brings our daily rate up to about $1100.How much profit margin should the partners have? From dealing with various headhunters, I would assume a good profit margin to be about 25-30%. This means that we should be charging a client about $1400 for a consultant.
Our consulting company has a mixture of various skill levels. Some people are more junior than others. So, we create a rate card that goes from $1200 per day for a junior person, to $1600 per day for a senior person. This comes out to $150 to $200 per hour.
Now, at that rate, we are relatively cheap compared to other consulting companies. Microsoft Consulting charges at least $2000 per day. IBM and BearingPoint charge at least $250 per hour for a junior consultant, up to about $450 an hour for a director.
Who are our customers? Certainly, the tier 1 and tier 2 financial institutions. Pharma companies are not going to pay these rates. We are looking to deal with clients who can appreciate our talent pool and who can afford to pay.
Wanna start your own consultancy? These are the numbers that you will have to deal with.
8 Comments:
· I think you're a little on the low side. My former employer charged $250 to $320 per hour, and we had pharmas and other corporates in our clientelle.In yours costs, perhaps factor in some free consulting time to fix screw-ups, late deliveries, etc.What about training? If you want to justify your rate you need highly trained, up to date employees. This is why I left, my employer made no investment in me. I had to train myself on my time, which left me often working around the clock.10 days on the bench per year! Man, I do NOT miss consulting!
By Burnt Out, at 5:38 PM
· Wouldn't the partners take a % of the profits rather than a salary?What about training, free days to clients, sick days?Why isn't the employees bonus based on a % of the profits the company makes?Based on your calculations the is a backoffice person for every 4 consultants? I hate to see the size of the backoffice for 1000 consultantsWhy don't I offshore some of my the work?Can't your consultancy do fixed price?
By Anonymous, at 6:30 PM
· Wouldn't the partners take a % of the profits rather than a salary?Possibly. Depends on how risk-averse the partners were. If I was a partner, I would pay myself a low salary ($100K) and then at the end of the year, divvy up the profits.What about training, free days to clients, sick days?I mentioned 5 sick days in my original post. Training is nice, and I would like to give at least a week of training, so that can be done during the 10 days of bench time. OK, let's add in about $100K for training. Free days to clients? Never heard of this!Why isn't the employees bonus based on a % of the profits the company makes?Because many smart people will negotiate a guaranteed fixed bonus when they join, especially since the debacles of 2002 and 2003. But I might give an added "incentive" bonus to some of my best performers at the end of the year. OK, let's add another 100K.Based on your calculations the is a backoffice person for every 4 consultants? I hate to see the size of the backoffice for 1000 consultants10 people should be a constant. Even when your company grows to 100 people. In fact, at the start, I might consider consolidating the benefits and HR functions, and make the partners do more marketing. So, we can cut our staff back to 8.Why don't I offshore some of my the work?Never, never! This is what distinguishes my shop from other larger ones. Strictly all client-facing work.Can't your consultancy do fixed price?I abhor fixed-price contracts. We could do it, but perhaps under duress!One thing that I forgot to mention was finder’s fees. If I hire a person through an employment agency, then I have to pay then 15-30% of the employee's first year salary. That's a significant chunk. Let's assume $30,000 for 10 people, and that's another $300,000.So, we have added another $500,000 in costs to our model. That's about $10K per employee. Gotta bump up the rate card by $50 per day. So, our rate card is now $1250 through $1650. And, coincidentally, $1650 per day is what a lot of the top-tier banks pay for senior technical people.
©2006 Marc Adler - All Rights Reserved
Wednesday, July 26, 2006
The Start of a New Adventure
On the eve of starting a great, new, exciting position, I would like to recap my experiences over the past 4 weeks in searching for a new job. One of the motivating factors in looking for a new job was that I wanted to have an important role in shaping the development and architecture of a major financial system, and do so at a senior level. Being a hands-on coder was OK for me on a part-time basis, but I wanted to manage and mentor developers who would be doing most of the coding while devoting more of my time to learning about new technologies in the financial arena, meeting with vendors, sitting on enterprise architecture committees, etc.
It’s always good to have some throwaway interviews, especially if you have not interviewed in quite a while. As soon as I announced my intentions of moving on to something different, I received a number of calls for interviews. I knew that some of the positions were not right for me, but I needed to get some spit and polish on my interviewing style before going out to the big boys.
The first interview was for a consulting company that claimed to do some financial work, but whose main focus was content management. Nevertheless, I needed to meet with people, so I went down for the interviews. The company had a “boiler room” full of cold-callers, something that makes my blood curdle. I met with the “HR lady” and then (believe it or not), the Head of Business Development. What kind of company would have you meet with their head salesperson? After my ideas about how a consulting company should be run went right over the salesguy’s head, I met with one of the partners. He was more perceptive, in that when I told him that I did not want to work for a consulting company that had the singleton, bodyshopping model, I could detect the dark cloud passing over his face and his immediate desire to end the interview as soon as possible.
The next day was another throwaway. A hedge fund had been after me for a few months. The headhunter told me that, as part of the job spec, the hedge fund requested that candidates live in New York City so that they could be on constant call. 14 hour days were the minimum. Joking with the headhunter, I told him that if I were to work 14 hour days, that I would want my current salary * 1.75 as a base. He called me back a week later and said that the hedge fund still wanted to talk to me. After an initial phone interview, I went down to see the people from the hedge fund. The fund is technically astute; they were developing totally in .NET 2.0, although they were doing all ASP.NET apps. The only thing that the first two interviewers, both developers, did was to repeatedly thumb through my resume, and exclaim that I had done a lot of stuff. Finally, I interviewed with the CTO. We talked about a lot of conceptual things, and he asked me one SQL question, which I got about half right. (I happen to have a mental block when it comes to writing SQL during an interview – give me SQL Query Analyzer, and I can work up the answer in 5 minutes). When the CTO asked me about my compensation requirements, I told him that I thought that the recruiter communicated that to him already. The recruiter never did, and when I mentioned the figure to him, he rolled onto the floor laughing. We ended the interview about 8PM, and he told me that his day was just beginning.
Two interviews without a good tech question.
The next interview was with another, very small hedge fund. The CTO was a really nice guy, except that I wanted his job! The pay was terrible. About 60% of my current base, although a 30-40% bonus was typical. To his credit, the CTO knew that he could not support my compensation level, and we both knew that it would have been a mismatch if I had joined.
Still no tech questions.
Later that day, I went down for a face-to-face with a very small company that specialized in financial tools. I had actually spoken briefly to this company a few months ago, but they really wanted a GUI developer who specialized in C++. Seeking a good throwaway interview with some good, hard tech questions, I contacted this company again to see if the position was open. It was! I had an initial one-hour phone conversation with their senior developer, and then was invited down to their offices for a second round. The questions I was asked included:
- Design the architecture and the API for a logging mechanism
- Implement a breadth-first and depth-first search for a tree.
- Design a hash table.
- Implement a workflow manager.
When the CEO of the company walked in to interview me, I almost fainted. The CEO looked like he was 12 years old. (He is actually a MIT grad.) I felt like I was interviewing my son. OK, I think that we both realized at that point that there was a slight cultural difference!
A phone interview with one of the big IBs followed. The job spec was for a C# developer for an Order Management System, but the recruiter kept insisting that it was a Managing Director’s position. I told the recruiter specifically that I did not want an Associate Director or Director position at this company, but she kept changing her story with regards to the title. The phone interview was a non-event. No tech questions; just a manager going over my past projects and asking me where I wanted to be five years from now. A very, very dry interview.
Then came two wonderful interviews with two different groups at an IB, one for consulting and one for full-time. I got offers from both these interviews. More on this later. I was asked to design a crossing engine. I was asked about the .NET garbage collector. I was asked to draw an architecture for a trading system. I was asked about bottlenecks in the system.
I got verbal offers from both of these groups the next day.
I knew that I was going to take one of these two positions, but I went on two other interviews as backups. One was with a big ad agency who needed rearchitecture of some big websites. Nice company located in the hinterlands of New Jersey, and they came through with a very nice consulting offer at a pretty good rate. It would have been a good change of pace, and I would have taken it if the other offers did not come through. Another interview was a phone talk with the head dev and the manager of a group at another IB. Their systems were in a mess, and they needed rearchitecture and new development on their big Private Banking systems. Not really a position that I wanted. Both of these interviews contained no tech questions.
One other background conversation was with a small company that specialized in software and consulting services for hedge funds. Really nice guys, and would have been great if I had wanted to bill by the hour and customize software for individual funds, but they were looking at me to take over the CTO role. Unfortunately, they did not have a sufficient revenue stream to support non-client-billable activities, and sadly, it would have been more of singleton consulting.
In the course of interviewing, I met some very good recruiters who I will be sure to use in my new position when I need staff. I also met some very, very bad recruiters who a) did not communicate salary requirements to their clients, b) did not give me feedback, c) lied about the titles of the positions. Among the goodies I met were Matt of SH and Drew of CMA. Cheers guys!
I was disappointed in the level of tech questions that I received, and was surprised that most of the interviewers would just spend time gawking at my resume. They were actually embarrassed to ask me the generic tech questions (ie: what is a virtual function, what is a delegate, etc). However, the design-a-system questions were good, and I have to remember to use some of them, especially the one about designing a workflow engine.
My new position is a senior-level position at one of the IBs. I will be in charge of architecting some new trading systems and rearchitecting some older ones. I will have a small staff of good people. My manager is a very dynamic personality, and I am hoping that we can move this organization forward in terms of trading technology. I will be involved in new technologies (to me, at least), and will be investigating low-latency market data distribution, algorithmic trading, universal GUIs (my Wall Street Stack), and more.
©2006 Marc Adler - All Rights Reserved
It’s always good to have some throwaway interviews, especially if you have not interviewed in quite a while. As soon as I announced my intentions of moving on to something different, I received a number of calls for interviews. I knew that some of the positions were not right for me, but I needed to get some spit and polish on my interviewing style before going out to the big boys.
The first interview was for a consulting company that claimed to do some financial work, but whose main focus was content management. Nevertheless, I needed to meet with people, so I went down for the interviews. The company had a “boiler room” full of cold-callers, something that makes my blood curdle. I met with the “HR lady” and then (believe it or not), the Head of Business Development. What kind of company would have you meet with their head salesperson? After my ideas about how a consulting company should be run went right over the salesguy’s head, I met with one of the partners. He was more perceptive, in that when I told him that I did not want to work for a consulting company that had the singleton, bodyshopping model, I could detect the dark cloud passing over his face and his immediate desire to end the interview as soon as possible.
The next day was another throwaway. A hedge fund had been after me for a few months. The headhunter told me that, as part of the job spec, the hedge fund requested that candidates live in New York City so that they could be on constant call. 14 hour days were the minimum. Joking with the headhunter, I told him that if I were to work 14 hour days, that I would want my current salary * 1.75 as a base. He called me back a week later and said that the hedge fund still wanted to talk to me. After an initial phone interview, I went down to see the people from the hedge fund. The fund is technically astute; they were developing totally in .NET 2.0, although they were doing all ASP.NET apps. The only thing that the first two interviewers, both developers, did was to repeatedly thumb through my resume, and exclaim that I had done a lot of stuff. Finally, I interviewed with the CTO. We talked about a lot of conceptual things, and he asked me one SQL question, which I got about half right. (I happen to have a mental block when it comes to writing SQL during an interview – give me SQL Query Analyzer, and I can work up the answer in 5 minutes). When the CTO asked me about my compensation requirements, I told him that I thought that the recruiter communicated that to him already. The recruiter never did, and when I mentioned the figure to him, he rolled onto the floor laughing. We ended the interview about 8PM, and he told me that his day was just beginning.
Two interviews without a good tech question.
The next interview was with another, very small hedge fund. The CTO was a really nice guy, except that I wanted his job! The pay was terrible. About 60% of my current base, although a 30-40% bonus was typical. To his credit, the CTO knew that he could not support my compensation level, and we both knew that it would have been a mismatch if I had joined.
Still no tech questions.
Later that day, I went down for a face-to-face with a very small company that specialized in financial tools. I had actually spoken briefly to this company a few months ago, but they really wanted a GUI developer who specialized in C++. Seeking a good throwaway interview with some good, hard tech questions, I contacted this company again to see if the position was open. It was! I had an initial one-hour phone conversation with their senior developer, and then was invited down to their offices for a second round. The questions I was asked included:
- Design the architecture and the API for a logging mechanism
- Implement a breadth-first and depth-first search for a tree.
- Design a hash table.
- Implement a workflow manager.
When the CEO of the company walked in to interview me, I almost fainted. The CEO looked like he was 12 years old. (He is actually a MIT grad.) I felt like I was interviewing my son. OK, I think that we both realized at that point that there was a slight cultural difference!
A phone interview with one of the big IBs followed. The job spec was for a C# developer for an Order Management System, but the recruiter kept insisting that it was a Managing Director’s position. I told the recruiter specifically that I did not want an Associate Director or Director position at this company, but she kept changing her story with regards to the title. The phone interview was a non-event. No tech questions; just a manager going over my past projects and asking me where I wanted to be five years from now. A very, very dry interview.
Then came two wonderful interviews with two different groups at an IB, one for consulting and one for full-time. I got offers from both these interviews. More on this later. I was asked to design a crossing engine. I was asked about the .NET garbage collector. I was asked to draw an architecture for a trading system. I was asked about bottlenecks in the system.
I got verbal offers from both of these groups the next day.
I knew that I was going to take one of these two positions, but I went on two other interviews as backups. One was with a big ad agency who needed rearchitecture of some big websites. Nice company located in the hinterlands of New Jersey, and they came through with a very nice consulting offer at a pretty good rate. It would have been a good change of pace, and I would have taken it if the other offers did not come through. Another interview was a phone talk with the head dev and the manager of a group at another IB. Their systems were in a mess, and they needed rearchitecture and new development on their big Private Banking systems. Not really a position that I wanted. Both of these interviews contained no tech questions.
One other background conversation was with a small company that specialized in software and consulting services for hedge funds. Really nice guys, and would have been great if I had wanted to bill by the hour and customize software for individual funds, but they were looking at me to take over the CTO role. Unfortunately, they did not have a sufficient revenue stream to support non-client-billable activities, and sadly, it would have been more of singleton consulting.
In the course of interviewing, I met some very good recruiters who I will be sure to use in my new position when I need staff. I also met some very, very bad recruiters who a) did not communicate salary requirements to their clients, b) did not give me feedback, c) lied about the titles of the positions. Among the goodies I met were Matt of SH and Drew of CMA. Cheers guys!
I was disappointed in the level of tech questions that I received, and was surprised that most of the interviewers would just spend time gawking at my resume. They were actually embarrassed to ask me the generic tech questions (ie: what is a virtual function, what is a delegate, etc). However, the design-a-system questions were good, and I have to remember to use some of them, especially the one about designing a workflow engine.
My new position is a senior-level position at one of the IBs. I will be in charge of architecting some new trading systems and rearchitecting some older ones. I will have a small staff of good people. My manager is a very dynamic personality, and I am hoping that we can move this organization forward in terms of trading technology. I will be involved in new technologies (to me, at least), and will be investigating low-latency market data distribution, algorithmic trading, universal GUIs (my Wall Street Stack), and more.
©2006 Marc Adler - All Rights Reserved
Tuesday, July 25, 2006
Testing, Testing
Anyone out there still?
Important announcement coming soon....
©2006 Marc Adler - All Rights Reserved
Important announcement coming soon....
©2006 Marc Adler - All Rights Reserved
Monday, June 26, 2006
Next Move
I am in the market for new opportunities. My interests are hedge funds, trading technology, .NET.
If you have something interesting going on, please email me at magmasystems@yahoo.com
I am going to take a few weeks off, investigate technologies that I have been too busy to investigate, and watch the rest of the World Cup.
©2006 Marc Adler - All Rights Reserved
If you have something interesting going on, please email me at magmasystems@yahoo.com
I am going to take a few weeks off, investigate technologies that I have been too busy to investigate, and watch the rest of the World Cup.
©2006 Marc Adler - All Rights Reserved
Sunday, June 25, 2006
Things to Learn
Going through some of the reading from SIA. Tons and tons of stuff out there. On my "to-learn" list are:
MDDL - market data definition language, yet another XML-based way of transmitting financial info
Gigaspaces - grid-based infrastructure
Vhayu - real-time and historical data storage with real-time calculations and event broadcasting
Wombat - another high-speed market data and messaging platform
©2006 Marc Adler - All Rights Reserved
MDDL - market data definition language, yet another XML-based way of transmitting financial info
Gigaspaces - grid-based infrastructure
Vhayu - real-time and historical data storage with real-time calculations and event broadcasting
Wombat - another high-speed market data and messaging platform
©2006 Marc Adler - All Rights Reserved
Another Interesting Job Posting
http://newyork.craigslist.org/mnh/sof/173118487.html
They are located on the 4th floor of a building on Franklin Street, which is in the area of New York City called TriBeCa. In the old days, Franklin Street had many spacious lofts ... which got me thinking back to the days where a lot of young software companies worked out of lofts or apartments. In fact, in 1986, I worked for a young startup called Multex. There were 3 or 4 of us sitting in an apartment on West 53rd Street, coding apps for Goldman Sachs. Multex went on to expand, go public, and get bought out by Reuters.
Former Multex employee Brett Schlussman left just after me, and formed NetLogic with another former Multex guy (Michael St. Hippolyte) and a developer from Bankers Trust. They worked out of Brett's apartment in the 20's, taking Brett's Windows-based 3270 emulator that he developed for First Boston and selling it to Eicon.
We have interviewed a number of ex-Multex employees recently at Finetix. These were people who joined Multex after the Reuters merger. They had no idea that they were being interviewed by Multex employee number 5.
©2006 Marc Adler - All Rights Reserved
They are located on the 4th floor of a building on Franklin Street, which is in the area of New York City called TriBeCa. In the old days, Franklin Street had many spacious lofts ... which got me thinking back to the days where a lot of young software companies worked out of lofts or apartments. In fact, in 1986, I worked for a young startup called Multex. There were 3 or 4 of us sitting in an apartment on West 53rd Street, coding apps for Goldman Sachs. Multex went on to expand, go public, and get bought out by Reuters.
Former Multex employee Brett Schlussman left just after me, and formed NetLogic with another former Multex guy (Michael St. Hippolyte) and a developer from Bankers Trust. They worked out of Brett's apartment in the 20's, taking Brett's Windows-based 3270 emulator that he developed for First Boston and selling it to Eicon.
We have interviewed a number of ex-Multex employees recently at Finetix. These were people who joined Multex after the Reuters merger. They had no idea that they were being interviewed by Multex employee number 5.
©2006 Marc Adler - All Rights Reserved
Wednesday, June 21, 2006
SIA Technology Show 2006
I stopped by the Securities Industry Association show at lunchtime today. Walked around the exhibit hall and saw 1000 different instances of "the Wall Street Stack". Ow .... my head hurt from thinking about how many times the same stack has been rewritten in different ways for the sole purpose of displaying real-time charts and blotters. If you were a financial software company, how much would you pay for a completely operational version of The Stack?
Picked up a least 50 magazines, newsletters, and newspapers on trading technologies (hardly anyone was giving out T-Shirts this year -- I am a real T-Shirt collector). Waters Magazine still seems to be the best one out there for hard-core Wall Street developers.
There was a nice article on pages 21 and 22 of the Summer 2006 issue of Windows in Financial Services on a framework that I helped architect at Wachovia last year. The framework is what they now call OneSource. Several apps in Wachovia are based on OneSource, and I am happy to report that the ClientNet application that I worked on last year is being rolled out worldwide at Wachovia. One of the mags had a nice bit on the adoption of grid technololgies within Wachovia --- my man R.O. rolled that stuff out.
Larry from Finetix gave a nice talk on Quality Assurance in Capital Markets. Hopefully, some past and current clients attended that one! Larry is one of the best in the business.
Fourth of July coming up .... we have to get ourselves out to Block Island

©2006 Marc Adler - All Rights Reserved
Picked up a least 50 magazines, newsletters, and newspapers on trading technologies (hardly anyone was giving out T-Shirts this year -- I am a real T-Shirt collector). Waters Magazine still seems to be the best one out there for hard-core Wall Street developers.
There was a nice article on pages 21 and 22 of the Summer 2006 issue of Windows in Financial Services on a framework that I helped architect at Wachovia last year. The framework is what they now call OneSource. Several apps in Wachovia are based on OneSource, and I am happy to report that the ClientNet application that I worked on last year is being rolled out worldwide at Wachovia. One of the mags had a nice bit on the adoption of grid technololgies within Wachovia --- my man R.O. rolled that stuff out.
Larry from Finetix gave a nice talk on Quality Assurance in Capital Markets. Hopefully, some past and current clients attended that one! Larry is one of the best in the business.
Fourth of July coming up .... we have to get ourselves out to Block Island

©2006 Marc Adler - All Rights Reserved
Tuesday, June 20, 2006
Derman is in the House
Famed quant Emanuel Derman is blogging.
http://www.wilmott.com/blogs/eman/index.cfm
I just started reading his book My Life as a Quant. Interesting to read his experiences at Bell Labs at the start of the whole Unix/C movement in the late 1970's.
I will definitely have some more comments as I read through the book.
©2006 Marc Adler - All Rights Reserved
http://www.wilmott.com/blogs/eman/index.cfm
I just started reading his book My Life as a Quant. Interesting to read his experiences at Bell Labs at the start of the whole Unix/C movement in the late 1970's.
I will definitely have some more comments as I read through the book.
©2006 Marc Adler - All Rights Reserved
Sunday, June 18, 2006
Friday, June 16, 2006
YABGT (Yet Another Bill Gates Tribute)
I will join all of the other bloggers out there and put in my two cents about Bill Gates.
I had my first and only brush with Gates back in 1991 or 1992. I was a contributing editor for Microsoft Systems Journal back in the old days. One day, I get a call from my editor. He tells me that Bill Gates is stopping in New York for a night, on his way back to Seattle from a European trip. He wanted to have dinner with the MSJ contributing editors to tell them about some exciting stuff in the industry. Would I be interested?
We all met at a Japanese hotel on Park Ave at 32nd St. This hotel had a beautiful restaurant, and Gates, being a sushi fanatic, reserved a tatani room for us.
We all get there at 8PM, and then in walks Gates, followed by his flack, Jon Lazarus (who used to be the publisher of MSJ). In attendance was myself, Ross Greenburg (author of RamNet, and later, some virus-checking program), Greg Comeau (author of Comeau C++), Charles Petzold (author of a book), and Tony Rizzo (my editor).
Gates turned out to be a great guy, despite the constant leg movements under the table. Very personable. He spent most of the night talking about getting Dave Cutler from DEC, and the new operating system he was working on (Windows NT). Every word was preceeded by a stern warning from Lazarus never to repeat what was said.
Of course, the very next week, PC Week featured a big story on Cutler and NT!!!
©2006 Marc Adler - All Rights Reserved
I had my first and only brush with Gates back in 1991 or 1992. I was a contributing editor for Microsoft Systems Journal back in the old days. One day, I get a call from my editor. He tells me that Bill Gates is stopping in New York for a night, on his way back to Seattle from a European trip. He wanted to have dinner with the MSJ contributing editors to tell them about some exciting stuff in the industry. Would I be interested?
We all met at a Japanese hotel on Park Ave at 32nd St. This hotel had a beautiful restaurant, and Gates, being a sushi fanatic, reserved a tatani room for us.
We all get there at 8PM, and then in walks Gates, followed by his flack, Jon Lazarus (who used to be the publisher of MSJ). In attendance was myself, Ross Greenburg (author of RamNet, and later, some virus-checking program), Greg Comeau (author of Comeau C++), Charles Petzold (author of a book), and Tony Rizzo (my editor).
Gates turned out to be a great guy, despite the constant leg movements under the table. Very personable. He spent most of the night talking about getting Dave Cutler from DEC, and the new operating system he was working on (Windows NT). Every word was preceeded by a stern warning from Lazarus never to repeat what was said.
Of course, the very next week, PC Week featured a big story on Cutler and NT!!!
©2006 Marc Adler - All Rights Reserved
Sunday, June 11, 2006
Thursday, June 01, 2006
Housing Price Futures
I heard about this on NPR radio the other day ... A great way of hedging a housing market. If you are buying now, and are afraid that the housing market might fall through the floor in your town, then you can short the housing future. If you think that your area might see an uptick in housing, then long the future.
(from a CBS Marketwatch article)
The Chicago Merc introduced cash-settled futures and options based on housing markets in Boston, Chicago, Denver, Las Vegas, Los Angeles, Miami, New York, San Diego, San Francisco and Washington, as well as a weighted composite index.
The contracts are priced by multiplying the index value by $250; the average contract size for the various cities is roughly $55,000, although they vary by region, according to Sayee Srinivasan, associate director of research and product development at the CME. He said the exchange is considering adding contracts for other booming real-estate markets such as Phoenix and Orlando.
"The futures markets like volatility, so the contracts based on the most volatile housing markets might see the most volume," Srinivasan said.
For each region, there are four contracts, which expire on a quarterly basis, so there are currently contracts for August 2006, November 2006, February 2007 and May 2007.
Although the contracts have only been trading for a very short period, most of the interest is looking further out on the curve with the May 2007 contracts getting the most action initially, said Fritz Siebel, senior broker at Traditional Financial Services Inc.
There could be demand for longer-dated contracts, something the CME is considering if the existing contracts prove popular enough.
Siebel noted the early interest has been in derivatives based on hot West Coast markets in San Diego, Los Angeles and Las Vegas, and also Miami on the East Coast.
©2006 Marc Adler - All Rights Reserved
(from a CBS Marketwatch article)
The Chicago Merc introduced cash-settled futures and options based on housing markets in Boston, Chicago, Denver, Las Vegas, Los Angeles, Miami, New York, San Diego, San Francisco and Washington, as well as a weighted composite index.
The contracts are priced by multiplying the index value by $250; the average contract size for the various cities is roughly $55,000, although they vary by region, according to Sayee Srinivasan, associate director of research and product development at the CME. He said the exchange is considering adding contracts for other booming real-estate markets such as Phoenix and Orlando.
"The futures markets like volatility, so the contracts based on the most volatile housing markets might see the most volume," Srinivasan said.
For each region, there are four contracts, which expire on a quarterly basis, so there are currently contracts for August 2006, November 2006, February 2007 and May 2007.
Although the contracts have only been trading for a very short period, most of the interest is looking further out on the curve with the May 2007 contracts getting the most action initially, said Fritz Siebel, senior broker at Traditional Financial Services Inc.
There could be demand for longer-dated contracts, something the CME is considering if the existing contracts prove popular enough.
Siebel noted the early interest has been in derivatives based on hot West Coast markets in San Diego, Los Angeles and Las Vegas, and also Miami on the East Coast.
©2006 Marc Adler - All Rights Reserved
Wednesday, May 24, 2006
FX Settlements
The CLS website has a great picture on how settlements work for FX trades. Here it is:

CLS is a bank set up by a consortium of different financial firms. It what my client uses for settling their FX trades.
©2006 Marc Adler - All Rights Reserved

CLS is a bank set up by a consortium of different financial firms. It what my client uses for settling their FX trades.
©2006 Marc Adler - All Rights Reserved
Services for the Wall Street Stack
I have blogged before about the need for a standardized Wall Street Stack. At my current client, there are several different frameworks that have been built over the years, but no framework has gained enterprise-wide acceptance.
These are the services that are generally needed for a complete application framework. If you can think of any other, let me know.
Authentication - logging in to various databases, web servers, internal systems, etc. Best implemented through an enterprise-wide authentication service (using the user's Kerberos token, etc)
Authorization (Entitlements) - what actions can a user perform within an application and what data is a user entitled to see. Best accomplished through an enterprise-wide system.
Logging - log interesting things that happen in an application. Log4Net is a good framework.
User Preferences - load and save the state of the UI
User Data - each application may want to persist the last state of the application when the user logged off
Configuration - Each application should be configurable through a series of XMl files.
General Services Manager - drives the entire service locator framework
Applet Management - load applets from .NET assemblies
Internal Event Broker - lightweight communication between applets
Data and Persistence layer - ways to load, query, update and cache data. Should be configurable so that we can go through different transport layers
Service Agents - processed async notifications that come to us through subscriptions.
Shell - handles initialization of the application, calls all of the various services, provides presentation services for the applets
UI - menu manager, status bar manager, navbar manager, toolbar manager
Security/Cryptography - does the data need to be encrypted and decrypted? (passwords, sensitive data)
Exception Handling - provides a unified way of handling errors that occur in shell and the various applets
Threading - model for async processing
©2006 Marc Adler - All Rights Reserved
These are the services that are generally needed for a complete application framework. If you can think of any other, let me know.
Authentication - logging in to various databases, web servers, internal systems, etc. Best implemented through an enterprise-wide authentication service (using the user's Kerberos token, etc)
Authorization (Entitlements) - what actions can a user perform within an application and what data is a user entitled to see. Best accomplished through an enterprise-wide system.
Logging - log interesting things that happen in an application. Log4Net is a good framework.
User Preferences - load and save the state of the UI
User Data - each application may want to persist the last state of the application when the user logged off
Configuration - Each application should be configurable through a series of XMl files.
General Services Manager - drives the entire service locator framework
Applet Management - load applets from .NET assemblies
Internal Event Broker - lightweight communication between applets
Data and Persistence layer - ways to load, query, update and cache data. Should be configurable so that we can go through different transport layers
Service Agents - processed async notifications that come to us through subscriptions.
Shell - handles initialization of the application, calls all of the various services, provides presentation services for the applets
UI - menu manager, status bar manager, navbar manager, toolbar manager
Security/Cryptography - does the data need to be encrypted and decrypted? (passwords, sensitive data)
Exception Handling - provides a unified way of handling errors that occur in shell and the various applets
Threading - model for async processing
©2006 Marc Adler - All Rights Reserved
Universal DBs
Lately, I have been talking with IT directors at various financial firms. There seems to be one consistent message --- The holy grail that all of the financial firms are seeking is the universal database, where all trades across all asset classes can be held.
This is especially problematic at financial firms who keep buying other firms (Wachovia, Bank of America).
OLAP is a hot skill right now, and companies what to perform sophisticated queries over huge amounts of data. Finetix currently is working in the OLAP space int he commodities area of a major financial firm. This firm has asked Finetix to invent a cloning machine so we duplicate our 3 OLAP stars and sprinkle them throughout the firm. Maybe I should start attending Andrew Brust's presentations at the various .NET user groups.
©2006 Marc Adler - All Rights Reserved
This is especially problematic at financial firms who keep buying other firms (Wachovia, Bank of America).
OLAP is a hot skill right now, and companies what to perform sophisticated queries over huge amounts of data. Finetix currently is working in the OLAP space int he commodities area of a major financial firm. This firm has asked Finetix to invent a cloning machine so we duplicate our 3 OLAP stars and sprinkle them throughout the firm. Maybe I should start attending Andrew Brust's presentations at the various .NET user groups.
©2006 Marc Adler - All Rights Reserved
Sunday, May 14, 2006
How Do They Find Me?
I have been getting a bunch of calls from recruiters at my desk at my current client. I think that they know the telephone prefixes of the IT departments at the various Wall Street companies. The recruiters call every single number with that prefix in the middle of the night, and wait for the voice mail to kick in. So, they can get a name of a person at a desk at a Wall Street company.
The calls then come....
Recruiter : Hi Marc. I know someone who worked with you at your last company and they thought you were great.
Me (seeing the bullshit form a mile away) : That's fantastic! What company was that?
Recruiter : (sound of frantic typing in the background). Did you say that this was Marc Adler? Hmmm... it was ... XYZ.
Me : Who was the person that referred you?
Recruiter : Let me tell you about this position.
Me : (hangs up)
A recruiter's opening line says everything about his veracity and ethics. If a recruiter comes across like a telemarketer, I will not deal with him. A better line might be :
Recruiter : Hi Marc. I have been retained by Bank of America to hire a team that needs to build a credit derivatives system. Their platform will be a .NET front end, Java backend, wired together by Tibco EMS. Since you are working now for XYZ, and since I know that their credit derivatives systems use that precise technology, I was wondering if you or any of your teammates would be interesting in implementing a system like this over at BofA. Of course, the compensation would be above and beyond your current salary, which given your level, I could probably take a guess at.
Why is this good? I find out the name of the company who is hiring, and I already know that it's not with the company that I am currently with. (The worst thing is to find out that the job is for your position at your current company!). I see that the recruiter has taken the time to find out that I am with the credit derivs area, and has taken the time to know that my current client uses a particular technology. I see that the recruiter is aware of current salaries and could divine what it would take for an established player to move to another company.
I don't want to have to play games with a recruiter to find out about a position. Be straight, be honest. If I am truly interested in something, then I will not do an end-run around you.
Also, do you guys realize that, if you call me in the middle of the day, then the 5 people who sit around me usually hang on every word that I say on the phone?
©2006 Marc Adler - All Rights Reserved
The calls then come....
Recruiter : Hi Marc. I know someone who worked with you at your last company and they thought you were great.
Me (seeing the bullshit form a mile away) : That's fantastic! What company was that?
Recruiter : (sound of frantic typing in the background). Did you say that this was Marc Adler? Hmmm... it was ... XYZ.
Me : Who was the person that referred you?
Recruiter : Let me tell you about this position.
Me : (hangs up)
A recruiter's opening line says everything about his veracity and ethics. If a recruiter comes across like a telemarketer, I will not deal with him. A better line might be :
Recruiter : Hi Marc. I have been retained by Bank of America to hire a team that needs to build a credit derivatives system. Their platform will be a .NET front end, Java backend, wired together by Tibco EMS. Since you are working now for XYZ, and since I know that their credit derivatives systems use that precise technology, I was wondering if you or any of your teammates would be interesting in implementing a system like this over at BofA. Of course, the compensation would be above and beyond your current salary, which given your level, I could probably take a guess at.
Why is this good? I find out the name of the company who is hiring, and I already know that it's not with the company that I am currently with. (The worst thing is to find out that the job is for your position at your current company!). I see that the recruiter has taken the time to find out that I am with the credit derivs area, and has taken the time to know that my current client uses a particular technology. I see that the recruiter is aware of current salaries and could divine what it would take for an established player to move to another company.
I don't want to have to play games with a recruiter to find out about a position. Be straight, be honest. If I am truly interested in something, then I will not do an end-run around you.
Also, do you guys realize that, if you call me in the middle of the day, then the 5 people who sit around me usually hang on every word that I say on the phone?
©2006 Marc Adler - All Rights Reserved
Interesting Call From Microsoft Recruiting
It used to be where millions of applicants would send their resumes to Microsoft in hopes of a job. Howver, this is not your father's Microsoft anymore. The stock has been in the shitter for the past few years (I sold mine for a split-adjusted price of $30 in 2001, and the stock has never gotten higher), and the options program has been dessimated.
Somehow, a Microsoft recruiter got a hold of my name from some past colleague. There is a developer evangalist position open in the New York/New Jersey area. I happen to know the person who just left that position; he had been a familiar face at the various New Jersey .NET User Group meetings. This is not a bad position .... you get to go to companies and user groups around the NYC/NJ area and talk about the latest MS technologies from a developer perspective.
So, this recruiter kept calling and calling. I was not interested in the position at all, but I wanted to get another data point and hear what MS was offering senior-level architects and devs now. She would call me in the middle of the day, at my desk at my client, and I would patiently explain to her that I could not talk about a new job with 5 people sitting around me. She would make plans to call me in the evening, but then had to go pick up her kids somewhere, watch her neighbor's kids, etc. Always some excuse.
We finally managed to connect this week. She started to explain the job to me, but I told her that I was already very familiar with the responsibilities of the position. I told her to get down to brass tacks. What were they paying? I told her what my current base salary was so that we could start negotiating. My hopes would be that she could come close to the base,
She looked in her little black book, muttered to herself "hmmm... since this IS in the New York area, we have to give you a boost in the base", and came up with a number that is about 40% less than what I am making in base salary now.
To top it off, she then asked me why I would leave my current position for one that paid 40% less. This got me a bit steamed. I told her that:
a) It was YOU who have been persuing me, not the other way around. I never said anything about wanting to leave my current position.
b) I would NEVER leave for 40% less, unless it was topped off by outright stock grants that would raise my total comp to a figure that was way over the base (something that they will not guarantee for this position).
c) I told her that I was an avid reader of the Mini-Microsoft blog (she said something like "Oh No!"), and that under the current conditions at Microsoft, I don't think that I would be interested in subjecting myself to that type of lifestyle. In addition, I was not interested in interviewing with some 25-year old pisher who would be asking me logic questions like "How Do You Move Mount Fuji?".
She asked me if I had any colleagues who would be interested, whereby I replied that all of my colleagues who might be interested were making a lot more money than you just offered. I told her that I would never consider at MS until there was evidence of a complete culture change and/or there was sustained upwards movement in the stock price. I told her that she should study Mini-Microsoft very carefully, and note the exodus from her her company.
What an amazing turnaround for the prestige of Microsoft, a company that I used to admire. I consulted for MS for 3 years back from 198901992, writing the first front end for SQL Server. My former MS manager is a group VP, and is a millionaire many times over. But, I am afraid that most of the bright lights there have now been dimmed.
©2006 Marc Adler - All Rights Reserved
Somehow, a Microsoft recruiter got a hold of my name from some past colleague. There is a developer evangalist position open in the New York/New Jersey area. I happen to know the person who just left that position; he had been a familiar face at the various New Jersey .NET User Group meetings. This is not a bad position .... you get to go to companies and user groups around the NYC/NJ area and talk about the latest MS technologies from a developer perspective.
So, this recruiter kept calling and calling. I was not interested in the position at all, but I wanted to get another data point and hear what MS was offering senior-level architects and devs now. She would call me in the middle of the day, at my desk at my client, and I would patiently explain to her that I could not talk about a new job with 5 people sitting around me. She would make plans to call me in the evening, but then had to go pick up her kids somewhere, watch her neighbor's kids, etc. Always some excuse.
We finally managed to connect this week. She started to explain the job to me, but I told her that I was already very familiar with the responsibilities of the position. I told her to get down to brass tacks. What were they paying? I told her what my current base salary was so that we could start negotiating. My hopes would be that she could come close to the base,
She looked in her little black book, muttered to herself "hmmm... since this IS in the New York area, we have to give you a boost in the base", and came up with a number that is about 40% less than what I am making in base salary now.
To top it off, she then asked me why I would leave my current position for one that paid 40% less. This got me a bit steamed. I told her that:
a) It was YOU who have been persuing me, not the other way around. I never said anything about wanting to leave my current position.
b) I would NEVER leave for 40% less, unless it was topped off by outright stock grants that would raise my total comp to a figure that was way over the base (something that they will not guarantee for this position).
c) I told her that I was an avid reader of the Mini-Microsoft blog (she said something like "Oh No!"), and that under the current conditions at Microsoft, I don't think that I would be interested in subjecting myself to that type of lifestyle. In addition, I was not interested in interviewing with some 25-year old pisher who would be asking me logic questions like "How Do You Move Mount Fuji?".
She asked me if I had any colleagues who would be interested, whereby I replied that all of my colleagues who might be interested were making a lot more money than you just offered. I told her that I would never consider at MS until there was evidence of a complete culture change and/or there was sustained upwards movement in the stock price. I told her that she should study Mini-Microsoft very carefully, and note the exodus from her her company.
What an amazing turnaround for the prestige of Microsoft, a company that I used to admire. I consulted for MS for 3 years back from 198901992, writing the first front end for SQL Server. My former MS manager is a group VP, and is a millionaire many times over. But, I am afraid that most of the bright lights there have now been dimmed.
©2006 Marc Adler - All Rights Reserved
Monday, May 01, 2006
What I am doing now
At my new client, one of the Tier-1 IBs on Wall Street, I am now in charge of a FX Exception Processing System. What this system does is allow FX Operations to examine and fix any FX trades which did not go through for one reason or another.
The front end is all C#/.NET, communicating with a Java trade engine using both Web Services and a home-grown XML message broker. Sybase is the database, and from the backend, connectivity is to both CLS and to SWIFTNet.
The GUI uses the Infragistics toolset, and is very grid-intensive. The real-time element is not crucial, and the trade volume is light enough so that we do not have to consider switching to the SyncFusion grid right now.
Any FX Trade Events (in this system, notification of a broken trade is called an 'event') that occur are sent from the backend to our GUI using the message broker. All FX Trades are also sent to our GUI. If the trade that comes in matches a filter criteria that is set up in one of the grids, then the trade is updated (or, in some events, the trade is deleted from the grid).
As more and more groups come on line and use our system, we will be runing into scalability issues. For example, let's say that you have a grid open that is monitoring all trades that occur today. Let's also say that no filtering criteria is set up, other than the fact that you want to look at today's trades. This means that every new trade will be inserted into the top of the grid. This is OK for now, as the trade volume is relatively light. But, more groups have expressed using our GUI. We anticipate that, by the end of the year, we might experience 10x the volume we have now.
I am going to be writing some stress-testing tools that will help us analyze the possible impact of other groups using our system. More on this later.
©2006 Marc Adler - All Rights Reserved
The front end is all C#/.NET, communicating with a Java trade engine using both Web Services and a home-grown XML message broker. Sybase is the database, and from the backend, connectivity is to both CLS and to SWIFTNet.
The GUI uses the Infragistics toolset, and is very grid-intensive. The real-time element is not crucial, and the trade volume is light enough so that we do not have to consider switching to the SyncFusion grid right now.
Any FX Trade Events (in this system, notification of a broken trade is called an 'event') that occur are sent from the backend to our GUI using the message broker. All FX Trades are also sent to our GUI. If the trade that comes in matches a filter criteria that is set up in one of the grids, then the trade is updated (or, in some events, the trade is deleted from the grid).
As more and more groups come on line and use our system, we will be runing into scalability issues. For example, let's say that you have a grid open that is monitoring all trades that occur today. Let's also say that no filtering criteria is set up, other than the fact that you want to look at today's trades. This means that every new trade will be inserted into the top of the grid. This is OK for now, as the trade volume is relatively light. But, more groups have expressed using our GUI. We anticipate that, by the end of the year, we might experience 10x the volume we have now.
I am going to be writing some stress-testing tools that will help us analyze the possible impact of other groups using our system. More on this later.
©2006 Marc Adler - All Rights Reserved
Comings and Goings
In the United States, men are glued to their TV sets, watching the National Football League's annual college draft. This is the time when 26 football teams throw a ridiculous amount of money at elite college atheletes.
On Wall Street, the annual post-bonus dance is almost complete. As people received their bonus checks in February or March, news comes almost every day that this person or that person has departed for company X or Y. This has dessimated several's company's IT departments, as the one person who knows a certain application inside and out is suddenly no more .... and the mad scramble for talent starts anew as companies try to backfill these positions.
(Wall Street is very small ... never burn your bridges.)
Just like the NFL draft, those of us in Wall Street IT sit back and await news to see where our colleagues end up. Such is the situation with me. I sit back and monitor the blogs, anxiously waiting to see where Matt, Pin, and Deglan end up. Matt announced his resignation on his blog, and invited all comers to bid on his services. In his last blog post, he said that he had many offers from his blog readers. Whoever the lucky company is who ends up with Matt, it will be money well spent.
The bar has been raised slightly in terms of compensation packages for senior developers. On Wall Street, a total compensation package of slightly over $200K is becoming more common. The calls from headhunters are becoming more frantic, as Wall Street scrambles to fill positions of their dearly departed developers. The base salary seems to still be $150K, but on Wall Street, bonus is everything. Managing Directors typically make 200-300% in bonus. Developers are still in the 30-40% range in most companies,except for the premier companies, where your 18-hour days might get you upwards of 80%. But, as a colleague of mine told me recently, many a marriage has been sacrificed in exchange for that bonus.
©2006 Marc Adler - All Rights Reserved
On Wall Street, the annual post-bonus dance is almost complete. As people received their bonus checks in February or March, news comes almost every day that this person or that person has departed for company X or Y. This has dessimated several's company's IT departments, as the one person who knows a certain application inside and out is suddenly no more .... and the mad scramble for talent starts anew as companies try to backfill these positions.
(Wall Street is very small ... never burn your bridges.)
Just like the NFL draft, those of us in Wall Street IT sit back and await news to see where our colleagues end up. Such is the situation with me. I sit back and monitor the blogs, anxiously waiting to see where Matt, Pin, and Deglan end up. Matt announced his resignation on his blog, and invited all comers to bid on his services. In his last blog post, he said that he had many offers from his blog readers. Whoever the lucky company is who ends up with Matt, it will be money well spent.
The bar has been raised slightly in terms of compensation packages for senior developers. On Wall Street, a total compensation package of slightly over $200K is becoming more common. The calls from headhunters are becoming more frantic, as Wall Street scrambles to fill positions of their dearly departed developers. The base salary seems to still be $150K, but on Wall Street, bonus is everything. Managing Directors typically make 200-300% in bonus. Developers are still in the 30-40% range in most companies,except for the premier companies, where your 18-hour days might get you upwards of 80%. But, as a colleague of mine told me recently, many a marriage has been sacrificed in exchange for that bonus.
©2006 Marc Adler - All Rights Reserved
Subscribe to:
Posts (Atom)