Confessions of a Wall Street Programmer

practical ideas (and perhaps some uncommon knowledge) on software architecture, design, construction and testing

About ...

… this blog

So, what is this blog all about?

Well, I’ve been building software for customers on Wall Street for a while now. (How long a while, you ask? Do you remember “Quotron”?)

I’ve learned a few things along the way, and this blog is an attempt to organize some of that learning, to make it available to others, to refine it (with your help, I hope), and to continue learning (also with your help).

My goal is to create something useful (hence the “practical” in the header), as well as from time to time to surface ideas that may be less well-known than they could be (the “uncommon knowledge” part).

I’d also like to take an “engineering” approach here: so if I state something as fact, I’m going to try to back it up – preferably with code that you can run yourself. At a minimum, I want to provide enough background in terms of references that you will be able to do your own research (and with any luck, feed it back).

Some of the general topic areas that I hope to cover include:

  • messaging middleware;

  • in-memory databases;

  • multi-threading;

  • high-availabilty;

  • high-volume, low-latency OLTP.

I also don’t want to focus only on “big” ideas – sometimes the small ideas can be just as useful. (For examples, look for posts with the “tidbits” tag).

… the author

My specialty is building high-volume, high-availability, low-latency systems. I currently work for a venerable Wall Street institution, supporting a customer-facing service with a large number of clients.

I mostly work in C++ on Linux, with a smattering of other technlogies (Windows, .Net, Java, etc.) thrown in from time to time. These days, I mainly focus on two areas: performance measurement/improvement and software correctness. Perhaps surprisingly, there tends to be a lot of overlap in the methods and techniques that enable both.

Please feel free to contact me with any comments, suggestions, etc.