Archive for the ‘ Updates ’ Category

How to Negotiate a Raise, The Follow up

I couldn’t believe the response that came from my raise post last Thursday. I got a number of emails and comments and I’d like to address a number of them. Depending on my resolve, this may or may not turn into a regular series where I walk you through how to interview, crafting the perfect resume, and how to build a career. In the meantime, I want to address some of the points that were brought up, and provide some clarity.

A close friend of mine, Jeff Young is a Talent Acquisition Consultant for the Chamberlain College of Nursing. When it comes to recruiting, the guy knows his stuff. He’s been recruiting talent for almost as long as I’ve been making trading software.

Jeff writes, “Honestly, I have to say I disagree with most of the article. All it encourages people to do is become cockier, less dedicated to the business they work in, and overall they will change jobs so frequently that they will in essence be unmarketable. Maybe you could pull something like this in a sales oriented position, but for any other “corporate” position this really doesn’t work. There’s budgets and thousands of other restraints that keep someone from just getting a raise because they think they deserve one. I know if someone on my team asked for a raise because they deserved it, they’d be told to go pound sand. Now if that same person was making significant contributions toward the company’s vision/goals, then we promote. But that’s the management’s call, not the employee’s. Summary: Loyalty > threats.”

First I’d like to say that from a disclosure standpoint I’ve spent the majority of my career in sales so my approach might be a bit too aggressive for other parts of an organization. With that said, I don’t think that raises are exclusive to those in profit-center roles and I’m sure that there are other cases where you might be able to get a raise. If your skills suddenly come in demand (as I pointed out for compliance people in the financial industry) and your current employer doesn’t see fit to pay for rising costs, it’s in your best interests to find another job that will pay you. If you’ve significantly improved your skillset from the time at which you were hired, you’re probably significantly more marketable and again, would be eligible for a raise.

Many employers (such as my firm, Scaled Dynamics) have annual reviews during which time it’s expected that compensation will be discussed. If your employer does not have a process for reviewing employees from time to time, then being proactive and asking for the raise is, in my opinion, far superior to waiting and hoping.

People tend to put an implicit valuation on themselves and say things like “Oh this company couldn’t survive without me,” and “I could get way more elsewhere.” My first step is to encourage people to go find that out for a fact rather than just state it. If you can actually PROVE that you’re worth a significant raise, and the market supports it, there’s no reason on god’s green earth why you SHOULDN’T have that raise!

To Jeff’s point about loyalty, I agree wholeheartedly! Whenever I look at a resume full of 6 month and 1 year positions, I think to myself “this guy is a mercenary and isn’t going to stick around. I’ll pass!” Timing is everything. You should spend at least 2 years with each employer and you should be getting a raise at least once a year. Always remember that it’s also ok to turn employers down when you’re interviewing. You want to make sure that wherever you end up, it’s good enough of a fit that you’ll stick around for awhile.

Walk for HD – May 19, 2013

While most of this blog has been about self-improvement and making more money, today I want to talk a bit about Huntington’s disease. According to Wikipedia,

Huntington’s disease (HD) is a neurodegenerative genetic disorder that affects muscle coordination and leads to cognitive decline and psychiatric problems. It typically becomes noticeable in mid-adult life. HD is the most common genetic cause of abnormal involuntary writhing movements called chorea, which is why the disease used to be called Huntington’s chorea.

The disease is hereditary. It is not contagious and doesn’t spread due to infection, but rather it is passed down from one generation to the next. The Huntington’s gene is dominant, meaning that if one of your parents has it, you will have a 50/50 chance of being born with it as well.

The following is a MASSIVELY oversimplified explanation of how Huntington’s works: DNA has four kinds of nucleotides that comprise its “code.” They are guanineadeninethymine, and cytosine, represented as letters G,A,C,T. My understanding is that people with Huntington’s disease have too many expressions of GAC in a certain part of their 4th chromosome. That repetition of GAC is more or less an instruction for the body to make a protein that prevents nerve cells from doing their job. These proteins build up in the body over time and people begin to show symptoms as they age.

There is a ton of great research and even the possibility of a new treatment that can “reset the clock” on Huntington’s; but actually getting to the point where it becomes a viable treatment is a ways away. This is worrisome to me because the disease only really affects 30k people in the US. Compared to heart disease, cancer, and other number one health related killers in the US, my worry is that new treatments could get lost in the political red tape required to get drugs approved in this country.

As a result, my firm, Scaled Dynamics, is participating in a fundraiser to promote Huntington’s Disease treatment and research. Scaled Dynamics will match any money that my employees wish to donate from their paychecks. All of the proceeds will go to the Skewes, Vasquez, and Young HD Fundraising Page where they will ultimately go to the HSDA. You can read about the HSDA and their work here.

If you would like to donate, or would like to walk with us, please find this information below:

The Illinois Chapter of the Huntingtons Disease Society of America presents the 9th Annual TEAM HOPE WALK!  Help us to continue funding the mission of the Huntingtons Disease Society of America!  The past 8 Walks have helped raise over $375,000!  NEW THIS YEAR!!!! The Walk has been moved to the Naperville Riverwalk in downtown Naperville, Illinois.  The Riverwalk offers a walker, wheel chair, wagon, and stroller friendly path.  Dogs are very welcome as long as they remain on a leash.  The Riverwalk is WELL shaded.  Please remember to bring enough non-alcoholic drinks for yourself as well as any dogs you bring along.  After the Walk, stick around for our family style hotdog lunch (be sure to bring your lawnchair), games for the kids, and great conversation with friends. The Riverwalk also offers a playground for the young ones that attend as long as their parents are with them.  We will start at the Grand Pavillion at the far west end of the “Beach” parking lot.  We hope to see you there!!  More information can be found on our chapter website at

Date Sunday, May 19, 2013
Location Naperville ,  Illinois
Contact Dave Hodgson


About the HSDA:

The Huntington’s Disease Society of America is the largest 501(c)(3) non-profit volunteer organization dedicated to improving the lives of everyone affected by Huntington’s Disease. The Society works tirelessly to provide the family services, education, advocacy and research to provide help for today, hope for tomorrow to the more than 30,000 people diagnosed with HD and the 250,000 at-risk in the United States. The Society is comprised of 45 local chapters and affiliates across the country.

Update: Apr 27, 2013: I’ve just been made aware that t-shirts are also available here

Post-Trade Analysis of Yesterday’s AP Hack!

And How Gatekeeper Fared…
One concern that I’ve noticed amongst options traders is their reluctance to auto-quote. Auto-quoting is the usage of an options model to send buy and sell orders in terms of volatility rather than outright market prices. Doing this is useful for traders who want to buy and sell at specified volatility points across an entire option chain, and they often times delta hedge directly into the underlying whenever their auto-quoting orders are filled.

The fear from auto-quoting comes from slow or latent systems getting hit on multiple strikes whenever a “book sweep,” or rapid repricing of the underlying, occurs. Auto-quoting computer systems need to do up to four Black-Scholes (or insert your favorite model) calculations for every single strike that they’re auto-quoting in, and then get change orders back out on the wire to the matching engine. If you’re quoting in 10 different underlyings, each with 40 live strikes under fast market conditions, you could be having to do up to 1600 partial differential equations per repricing. This in combination with messaging overhead, automated order logic, and user-interfaces can bring even the most powerful trading computers to their knees in fast market conditions! In other words, auto-quoting systems have historically tended to fail right when they’re needed the most!

Market conditions like yesterday’s False Tweet coming from Associated Press can be incredibly expensive in the first place, and a failure or freeze of an auto-quoting system could be catastrophic. The following is a recount of my experiences using SD Gatekeeper during the crash.

First a bit of background: I’ve been at a client site for the past week testing the next generation of tools we’re building. I sit in a small office right next to the traders that are using it and I spend most of my time babysitting algorithms and communicating with the developers about any bugs or performance issues with the software. In the meantime, the traders are using Gatekeeper to make 2 sided markets. Due to the proprietary nature of my customers’ trade and my duty to protect their trade secrets, I will not be disclosing what markets they were participating in however I can share the following pieces of data:

  • At the time of the crash, they were making 2 sided markets in 6 different markets, 5 of which were severely impacted by the crash.
  • All of the auto-quoting was taking place on a client machine several milliseconds away from the CME.

Around 10:00 AM PST, we observed a massive sell off in the E-Mini S&P. Though the exact events that took place from there are both a bit hazy to me due to the activity and strictly confidential, the important piece of information is that several minutes had passed between when the crash began to take place and when we finally pulled our orders. This sounds like all of the makings of disaster, but not so.

Blue Horseshoe Loves Gatekeeper

During the entire period of heightened market activity, Gatekeeper was successful in moving its orders out of the way and NOT ONE SINGLE ORDER was filled at a bad price. While there was a brief lockup of the User Interface, the auto-quoting functionality performed flawlessly even during the lockup.

For the tech geeks who want to understand how this is possible, I’m going to go into my analysis of the log files and subsequent stress testing and code profiling that my developers did. Casual readers my want to stop at this point, and I don’t blame you.

For the tech people:

Gatekeeper is an adapter-centric front end that uses a handful of assemblies. Namely, Gatekeeper, GKAPI, Strategies, and its adapters. All of the adapters inherit from our adapter base class to make it easy for us (and third-party developers) to add exchange connectivity and additional execution venues. All prices, orders, and business logic are then normalized into our concept of instruments, orders, prices and such in the GKAPI. Gatekeeper is simply a dumb UI implementation of the GKAPI. The strategies; Formula (autoquoting), Bookstackers, and Spread Bandit are all separate assemblies that use the GKAPI.

From a threading standpoint, we have a thread for each adapter, one for strategies, one for logging, and one for the UI. There other background workers doing various other tasks but for the purpose of this article, these are the relevant ones. The only one that became overwhelmed was the UI, and as we later found out, some of that wasn’t our fault.

In the form used yesterday, there were three supported adapters active; XTAPI, CTS, and Risk Server, however only the CTS Adapter was in use for auto-quoting purposes at the time of the crash.

For load-balancing purposes, CTS places limits on how often you can add or change orders to 50 orders per second but places no limitations on how many orders you can cancel. To prevent us from having our orders rejected, our adapter keeps track of how many changes and adds we’ve sent in a given second and cancels any order that “wants to change” after we’ve begun to approach our limit. We then add new orders at the requested change prices at a metered rate, as the adapter allows so that the user basically sees a changed order when in reality they were canceling, waiting, and replacing.

Under market conditions like yesterday, this essentially means that we were only slightly participating in the market (no more than 50 of our thousands of orders were active in the market at any given time).

Had we been using a DMA solution with co-location, we would have been fast enough to keep up anyways because our formula engine, FAST decoders and FIX engine have all been designed to accommodate for rapid repricing and mass-quoting. We take advantage of things like kernel bypass, scheduler optimizations, and iLink session spinning to bypass the limitations of 3rd party API’s.