(How To) Hire A Programmer?What Precautions?

Discussion in 'Automated Trading' started by jonnyy40, Nov 23, 2006.

  1. If you're going to hire/invite someone to code an ATS and strategies for you,what are the basic precautions?They'd have to have my IB paper account details?With the paper account knowledge they could do the work from their own PC.I'd consider buying another PC(s) that I'd use to autotrade the strategies as the ongoing input from the techie would be ideal and as s/he would know the strategies it would be good to keep them onboard.I'm having a legal agreement drawn up but that probably isn't going to do much in the real world?(Obviously the 'clean' PC(s) wouldn't be networked to the 'old' one).I suppose I could open and fund an account in their name (giving them a paper account) which they'd refund at end of the project or keep as fees if an ongoing relationship wasn't possible?
     
  2. WarEagle

    WarEagle Moderator

    If you are using IB, then all the programmer needs is the demo login to make sure the interface works. There shouldn't be any need to give them access to your actual account. If it were me, I would do all of the testing myself rather than depend on the programmer to run anything in realtime.

    If you are concerned about secrecy of the strategy, then my first recommendation is to learn to program and do it yourself, as that is the only failsafe way to protect it. But assuming that is not something you want to do, then you could consider breaking the ATS up into modules and hiring more than one programmer to handle each part. There would have to be some coordination between them to get it all working, but it probably wouldn't be too hard to do that part yourself. Its going to depend on how complex your system is.

    As for who to hire, approach it the same way you would find a mechanic for your car or a plumber...try to use people you already know or get a reference from someone you trust. Before I decided to learn some programming myself, I had a friend that was a good programmer but didn't know the first thing about trading. Since I already trusted him, I wasn't worried, but add to that the fact that he didn't know anything about trading (or cared for that matter) I wasn't concerned that he was going to steal anything.

    Of course, you just never know what someone else is willing to do if there is a lot of money involved, so I still think its best to take the time to learn to program everything yourself. Not only will you protect your hard work, but you will have the added skill set of being able to diagnose (and fix) the ATS going forward.
     
  3. I agree - it is best to have someone you know and trust to program or assist in programming your idea(s).

    If he/she has an interest in what you are doing and they don't mind doing it, it works. But if they don't care about the subject matter, you'll have to compensate them financially for their time at some point. Even though charting packages are trying to make the programming easier, it still requires effort to learn the syntax and environment, let alone the programming time and debugging. Also, there are times when a rule or condition is not clearly expressed, and a programmer spends time/frustration getting the details or scrapping some finished work. Express your ideas clearly and in detail. Time is money and a good programmer can cost a pretty penny.

    Open the programming help and see if you can tackle it yourself. If you can, so much the better. If not, you will have an idea of what someone would be worth to do it for you.
     
  4. You get what you pay for. I've managed dozens of programmers ranging from fresh-out-of-college to expert level. The former will cost $30/hr, the latter $130/hr.

    Junior programmers will get stuck (taking much longer than you expect), take shortcuts (causing the program to work on the sample data set, but nothing other than that, or, worse, 'hacking' together a solution which is totally impossible for another programmer to understand), practice poor code management skills (releasing upgrades without testing), etc.

    It's not that a junior programmer is "bad", it's just they haven't been exposed to consistently developing projects with other people looking at and updating their code and being responsible for maintaining code for the long term.

    Believe me, saving a few thousand dollars and getting code that doesn't work, or that the next programmer can't understand if you need fixes or updates, won't save you anything at all.

    Getting a programmer who doesn't care about the subject matter is probably not much of a failsafe either. If the system works well, it's going to be painfully obvious to the developer that he can make money (and potentially more money than you're paying him to deliver the software!)

    If it were me, I'd find someone who is both a programmer and a trader. They can help me refine the system by intelligently developing code mods that may improve the overall system. In addition, if they're an active trader, they already have a system, timeframe, and contract they use and like and will be much less interested in yours no matter how well it performs.

    As a disclaimer, I've done a couple of contract jobs developing trading systems for others (and dozens developing commercial products outside of the financial space). So, consider everything I've said as self-serving for why you should pay more and trust people like me. :)
     
  5. Bsulli

    Bsulli

    If your going to hire a programmer specifically for doing ATS programming then reviewing the questions asked by this interviewer might just give you the insight your looking for.
    :D
     
  6. Hi jonnyy40...

    The real risk in software development is <b>project failure</b> not in the code being stolen...

    To one and all...

    Most software projects either never get done or fail in the middle of the process or worse get done and yet still fail the initial design specs...

    there have been large software projects that have failed to the tune of over a billion dollars... as well as millions of little projects too...

    actually coding / programming is fun for most software developers but the really hard part is testing the application ... very few programmers, project managers, developers do that with any proper procedures or persistence or in depth so software fails or works very poorly from the git go...

    Software projects (ATS, etc) fail for a number of reasons - two major reasons...

    1. Poor upfront planning creating an impossible to finish software project or worse a software project that finishes but does not have any flexibility to change its parameters or how it functions without a lot of code re write...

    2. Underestimation of the cost and time involved in the project...

    so if you are going to move ahead on this make sure you have the planning, the specifications and the requirements down cold and you are very certain you will change as little as possible during the process...

    The risk is to watch and plan for is project failure and / or project abandonment...

    http://www.codinghorror.com/blog/archives/000588.html

    http://www.cioupdate.com/reports/article.php/1563701

    http://www.outsource2india.com/software/SoftwareProjectFailure.asp

    http://www.standishgroup.com/sample_research/chaos_1994_1.php

    Millions have been lost by big trading firms do bad trades...

    Billions have been lost by big trading firms for software development gone bad, or abandoned or done poorly...

    go ahead with you project just get a good book on software project survival

    :eek:

    good luck...

    cj...


    HAVE STOP <img src="http://www.enflow.com/p.gif"> WILL TRADE
     
  7. This is a good answer.

    As a 13 year pro trader and 23 year software engineer...
    And about 1000 hours into... and halfway through building a sophisticated IB API ATS platform...

    (1) On the difficulty scale ATS is 8 to 9.
    (2) I would never even consider hiring anyone with less than "genius level" skills at $50-$100/hour.
    (3) Design is crucial... a poorly designed/implemented ATS is worthless.
    (4) Maintenance is HUGE issue. You will not get by without permanent staff or consultants.
    (5) You MUST have a long-term profitable trading strategy to automate...
    ATS is will only ** boost productivity ** of an existing manual strategy...
    Assuming you are not stoopid enough to try and compete on the millisecond playing field with Big Players.
    (6) The security issue is OVERRATED. It's not a likely problem.
    Very, very, very few people have the skills + initiative to build a trading business using your "secrets"
    In 13 years and a lot of exposure... no one has cloned what I do....
    But any sophisticated prop shop would try to do it... and underestimate the difficulty.

    Here is a good analogy.

    Can you or your programmer clone the TWS platform minus the exotic features?
    Because a well-designed ATS is equally challenging.

    I would say good luck... but luck has nothing to do with it.
     
  8. andread

    andread

    Senior programmers do the same, and worse.
    Paying more doesn't always help
     
  9. This is nonsense.

    Talented people are in ultra-high demand... and do not work cheap.
     
    #10     Nov 23, 2006