Hacker News new | ask | show | jobs
by kingcub 5803 days ago
I'm Jeff's business partner / fellow programmer. We do both algorithms and infrastructure. The markets continuously adapt. It's a constant balance between writing the code you need right now, managing the code you wrote a bit ago, tweaking your existing strategies / finding new ones. We have to know how to trade, come up with new strategies, and write fast solid software that can adapt to get a new strategy to market in very little time. After that we have to analyze our trades constantly to stay in the competition.

We are market-makers (MM), so we don't care all that much about forecasting / direction. We want to fill order flow at the cheapest price that we can make a profit on. All the competition in our little MM niche of High Frequency (HF) trading revolves around a fight amongst market makers to give the best price possible to customer orders. This leads to very tight markets. That works out very well for customers.

I don't fault previous employers for paying us what they did as the article mentioned. It's a lot more than I ever expected to make coming out of college. The article seemed to have a programmers versus industry slant that I don't quite agree with. In my opinion industry is being taken over by programmers. Companies have a natural upper bound they can pay any employee.

After that, and I have been on both sides of this, either you can accept the comfort of a regular paycheck or you can throw that all away to take a risk and grow in a different way. If you take the risk you're throwing away a sure thing for upside. I don't have a family yet so to me it was the right time to do this.

The `programmers revolt` has been over for years. Programmer's won. Markets are all electronic or will be soon. It is inevitable and good that this happens, in the same sense it is good that we put robots into factories, use statistics to optimize business processes, etc etc.

It's been a longer road to getting to this point than the article mentions, my first bit advice for someone who in the trading industry and wants to branch out on their own, is it's going to be hard, just like any startup. The money you see the company you are working for making is the result of a lot of work, that you just can't appreciate until you have to do it all yourself from scratch. Which we have, twice. The article was a bit off on this, we already had our first `failure` and are trying again. This time we learned to keep our IP.

With a startup, we've had to wear all the hats that as employee we didn't have to think about at all ourselves. It's a combination of awesome, daunting, miserable and satisfying, like any challenging endeavor. Personally I find creating something from the bottom up a lot more rewarding than grinding out a paycheck.

2 comments

If you're a good C++ programmer with a mathematics degree, what else do you need to know to get into work like this?

Is it worth taking "MFE" style classes, like the ones offered at Baruch and NYU? Are the systems Windows or Unix? How much "advanced" math do you need to know? How much high performance infrastructure do you need to know? (networking, specialized storage & I/O, etc.) Is there a way to go directly to a startup firm, rather than first working at a bank or larger hedge fund? Are languages other than C++ used? Is it easier to do this in New York or Chicago? What bars should I hang out at in order to bullshit my way into an interview or partnership?

Personally, I started in 03 programming C++ for an, at the time, small Chicago Prop trading firm. Prop firms tend to be in smaller than larger banks / hedge funds and that is the route I would try to take. There are several of them around the Chicago area.

I never took an "MFE" class in college. I graduated with a CompE degree, taking most of my electives in CS. Math is important, primarily statistics. Being a good coder and loving to program more so. Having a natural analytical bent, and being able to wade through data / formulate then test conjectures, and appreciating how markets will never stop surprising you, even more.

A lot of companies use C++. I don't like it myself, & we use Scala, as functional programming + oo works really well for trading specific coding. Also our last place was Java based, so we have a lot of experience with that. However there are plenty of opportunities no matter what language you use. I know of firms using Python, C++, Java, C#, OCaml. So it's pretty wide open.

Speed is important, but usually not machine level instruction important as people often think. Usually it's more about understand big O and not overwhelming your critical paths / pushing things off to other threads.

As for finding a job doing this stuff, google "Chicago Prop Trading firms". The first result lists a ton. Goto their websites and apply. Or you can use a head-hunter.

I have no experience with the New York part of things, but it's probably similar. Chicago does seem to be a good incubator for starting up a trading company though as the CME is located here and it's a great place for big and small companies to trade (IMHO/YMMV).

As for going directly to a startup, it's tricky, we don't have the budget to pay for more employees at the moment, and I know a lot of start ups are in similar situations. If we do hire someone it is usually below what a prop firm would pay them and they have to be extremely experienced in the area we hire them for.

So, I would suggest prop firm first route, it worked for me and I wouldn't be where I am now had I not gone that route.

Thanks for the insight.

I have an interview at one of the NYC prop shops, but it's for something more back office-y. Would it be a mistake to take this job, thinking I could move into something closer to the trading later? I've got mixed advice. Some people say it isn't too hard to shift, others say it's impossible.

At my firm, back office and trading are very, very different. I would advise you to stay away from back-office if you're not interested in that. YMMV
It's really hard to say without knowing the position. I've seen it go both ways. Some places it's the entry level get in the door while we evaluate you position and if you're good we'll move you over to trading. Some places it's all they ever want you to do with no opportunity to move to the trading side.
Interesting thread, thanks.

As a Direct Market Access developer myself, I wonder what is your environment (target exchange(s), api/transport/codec stack, market data provider) and how time-costly it is for you to 'just connect' to the market (aka, having a platform ready to trade, without the algo stuff).

Could you elaborate a little please?

Currently just the CME, all of it was written in house, with the exception of Quickfix for Java for sending orders and OpenFast for CME marketdata. We'd like to replace Quickfix in the near future as it has too much static singleton state for our liking. It takes a few months to a year to write the exchange connectivity pieces depending on how many times you've done it before. We've done it several times so we are pretty comfortable in that area. Subsequent exchanges are a lot easier once you have the basic infrastructure in place.
kingcub, would like to speak to you briefly over email. Do you have a preferred address for me to contact you? You could also email me at prog123hn@gmail.com
same here. If you have some time, I have a few specific questions and my contact is in my profile. Thanks.