All the api's are unreliable, it's hard to tell if your order went through, if it did you have no idea how long it will actually take.
Then, once you've run out of money on one of the sites you have to go through the expensive and lengthy process to get more on, and you have to go through the same again to actually withdraw. It ends up just not being worth the time
Automatic trader:
https://github.com/abrkn/margin
Common interface to several exchanges: https://github.com/abrkn/hail
Margin would be very nice with more tests and state.
To do arbitrage, you need need the ability to move both BTC and USD between MtGox and BTC-E quickly. BTC is moved easily, at 6 confirmations (~1 hour) However, people are waiting up to 7 weeks to have their USD withdrawn (see Bitcointalk). Combined with lawsuits aimed at MtGox and lack of transparency, this leads to a situation where USD on MtGox is worth less than USD on BTC-E (or Bitstamp)