NASDAQ pre-IPO algorithm.

Irrespective of the FB part, the article made me hypothesize about the actual algorithmic changes that caused this problem.

 

My first hypothesis was to think, Ok, the old algorithm had a hard limit on (no of re-calculations/executions of the calculating function) and with the new algorithm that was removed..

Almost immediately,  i realized that’s the brute force first idea, but not likely to be true. An organization as big as NASDAQ, grew up that big with having some  set of processes. There ought to have been atleast 2 stages(code review and/or pre-prod testing(i don’t really buy that it’s hard to simulate these conditions excuse in this case. The algorithm was designed to calculate pre-IPO prices based on bids by traders. I might buy there was a Fermi estimate on the max. load (while simulation) which was exceeded by facebook IPO)) which noticed that simple a blunder.

The more likely change would have been than that the developer wrote a different termination condition and managed to convince everyone involved and the process that the new termination condition is better and does ensure termination. Now this is where my lack of knowledge of the actual algorithm/code hinders any progress. The article doesn’t say but implies it was written in java and run on a jvm. But that doesn’t help much, given i really haven’t worked on java for a long time.

I would love to know, what/how it went, but have no way of finding out. So am just calling out to people who have better knowledge of the jvm to expand on the more likely change.

Please comment your ideas/suggestions.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s