Tuesday, September 17, 2013

was going to replace the previous post with this,

But as you will see it started getting bitter and rambly.

"My dream job would be a research position proving that P!=NP using some reduction of recent set theory developments and translating them to complexity theory, but I don't really want a PhD, to be a student, or to go into teaching, and that problem may be a bit difficult to just try and crack on my own. So I'm looking for a developer role.

I finished a concurrent undergrad/masters program at Johns Hopkins in 4 years with one class dangling into a 5th year. I focused mostly on conceptual classes, my favorite of which was randomized algorithms, but I coded in a wide array of languages. I worked for a web development company in Baltimore formerly known as Vision Multimedia Technologies, but currently known as Social Toaster. While there I crafted a number of sites primarily with Drupal on a LAMP stack using HTML/CSS/JS. I was also exposed to some Windows environments using .NET, ASP and MSSQL.

After I finished my final class I moved to Chicago to work for a family friend at a trading company. I started off with a simple task of speeding up an existing project feeding pricing data from the bloomberg API to a tablet for a pit trader. After a couple months, I was told we were no longer trading in the pits. Digging holes and filling them in is not fulfilling labor, but I stuck with it.

I was then tasked with developing risk management software incorporating all the firm's holdings as well as pricing data. Initially I was told the only source for all the data I needed was in trader's excel sheets, which were intentionally obfuscated to prevent an outsider from understanding the purpose of the sheets, this ended up being a huge waste of my time. I developed a GUI for each trader to link their data with excel style references on a by workbook basis (Sheet1!A5) to get the required data using our internal COM/OLE interface. I then learned that traders are not the most diligent at keeping things updated. After a while working at this, I was told the methodology I was using because I was told it was the only way to get the data was insufficient because the traders could manually change things, if they wanted to cover up their problems. Hooray filling that ditch back in.

So I was told to use the platform specific APIs to capture all our trades as they happened. I reached out to tech contacts as Orc, GS, Tradehelm, Rithmic, and TT to get API info, testing accounts, platform specific product tables, along with other. After working to change the design I was using to integrate these disparate data sources a number of things happened. One set of API fees was too expensive, one platform stopped supporting their API, we transitioned from one platform to another platform for a certain product group and nobody told me. Hooray holes being filled in for me.

Another problem I encountered on this project was that for certain trades a manually set number was required from the trader, but it needed to be approved by the risk manager, who was too busy trading to actually monitor the risk despite designing the GUI as he requested. So, I was tasked with making sure things looked right on a day to day / hour to hour basis and going to him whenever anything looked wrong. So even once I had completed the project as requested to the best of my ability based on all the demands I still needed to spend time monitoring it. Hooray scope creep.

From there I did a couple minor projects using the APIs I had experience with that were not abandoned previously, until they too were eventually abandoned.

From there I was given an opportunity to help determine trading opportunities. I was given an example of a methodology used to determine whether trading two products against each other could be profitable and asked to extend the methodology. I ran the sample against numerous other products as suggested and performed some convolutions and ran some gaussian filters over massive matrices of data, but when I asked for more guidance involving a time frame to search or a confidence to look for I was given nothing. So nothing came of that project. 

Finally I was tasked with helping our compliance officer automate some checks of our data. The task was presented as 'Here is what I do on one sample. Automate this so we can check all our data.' That task was finished in a day, but after some time had passed more and more things came up with why the initial 'here is what I do' was wrong. The initial task that involved one spreadsheet of all the incoming positions and one spreadsheet of all the trades gradually morphed from 2 flat files to data that we couldn't obtain. Which then morphed to only one way to get this data. Which then morphed to 'Why did you get the data that way? Didnt you see that they released a new way to get the data this week?'  Not to mention the process for analysis of the data I was given was incorrect and then I was held accountable for it. Then the method I was given for how to interpret data in a file was incorrect and then upon stating that fact I was cursed at. After this incident I spent a lot of time trying to read the actual compliance standards we were trying to follow as opposed to asking our compliance officer, I was then told by our business manager that I shouldn't waste time investigating that.

Finally, once I had completed the compliance task I learned that an outside consultant was being brought in to redo the task I had just completed for a different business entity, because I had trouble meeting deadlines that were never set. So I quit."


No comments: