There is a perhaps apocryphal story about the time when Mizuho Securities lost ~$225 million by attempting to sell 610k shares at 1 yen instead of 1 share at 610k yen. When asked whether he intended to fire the person who physically keyed in the order, the relevant department head stated that he did not intend to waste the firm's substantial investment in teaching them to act with due deliberation.
This is a good point--I remember even the online game "Runescape" had a warning that would pop up if you tried to sell an item worth X for a very low price.
It would seem to me (somebody who knows squat about stock trading) that a warning screen would be much more beneficial for stock trading software than it is for an online video game.
You'd think that, but then what happens is users get used to the warnings coming up and consciously/unconsciously adjust to click by it without reading.
I'd imagine in the case of the stock trader, where quick reaction is valued, he'd have quickly entered whatever key combo is necessary to dismiss it the warning and made the same mistake.
Only if the warnings come up too often. I imagine it should be quite possible to define criteria that discriminate selling shares at a price of 0.0000016 yen from normal prices, by comparing with the market price, or the range of prices ever seen by the software, for example.
Alarm fatigue is an important design consideration, but not a reason to not put warnings at all (given that this isn't amenable to an "Undo" button, which is preferable when possible).
It ended up with order sanity checks being implemented for all manual trading systems at Mizuho. Things like blocking an order if it's more than 10% away from the market mid, etc.
You shouldn't fix an issue like this with UI validation alone - it needs to go between the component that creates orders and the stock exchange, so that it also protects against software bugs. For instance, a possible bug is a developer multiplying the order size by the lot size in the backend, when it has already been multiplied in the frontend, causing huge orders to be sent. Sanity checks can catch this.
Automated trading systems have traditionally been under a lot of scrutiny, and nobody in their right mind would run one without sanity checks and a kill switch. That incident taught Mizuho that manual trading can, in fact, also be quite dangerous :)
I've seen several versions of that story, often with the quote "Why would we fire you? We just spent $X million educating you." Probably some combination of truth and exaggeration, but it makes for a memorable story regardless.
Feel free to email me (HN username at stripe.com). I work on Atlas. There exists the possibility that we can help there, through our partnership with Silicon Valley Bank.
Being able to successfully ship things is a useful muscle to develop. People who can program radically overestimate where the bar is for being able to charge money for things. (And underestimate how much money businesses pay for just about everything.)
People who can program radically overestimate where the bar is for being able to charge
Very late response here just to second what Patrick said, but...
My latest anecdote to reinforce this is the person who wanted to pay me for the Arduino software I wrote for him in about 5 minutes, but I declined (that's on the order of the amount of help I give out on the internets for free). Not kidding: being generous, it took a grand total of 5 minutes including firing up the editor, while grumbling about how much overkill an Arduino was for the task...
It really is about providing value. He has a $250,000 machine sitting idle a lot of the time and that 10 minutes of code reduced the idle time so he could get more utilization out of it.
Phase 2 is figuring out how many other people have a similar problem and finding them...
If you haven't heard, patio11 is the original creator of Bingo Card Creator [1], which is both an excellent example for your purposes, and as a bonus he's helpfully shared many useful lessons from it on his blog [2].
The Japan team was very, very busy for the last several months preparing for launch specifically and the last year getting the groundwork in place for servicing Japanese businesses. I literally arrived back in Japan the day before launch, got my business cards, and just had to do some minor translation and utility salarymanning.
I'd probably agree with that assessment, but I'd also agree that Japanese consumers will charge over $50 billion in online CC payments this year. "Third largest economy in the world" is all sorts of interesting.
This does mean that Stripe users in Japan can charge in USD, or our other supported currencies. You put the currency in the API call based on whatever logic you want; we charge the user's CC in the specified currency; we credit your bank account JPY at the appropriate rate. (I work at Stripe, in Japan.)
As is typical for Stripe, this involved an ungodly amount of offline work to enable an extra query parameter that most of our customers will never have to think deeply about the implementation of.
A friend of mine who lives in Tokyo told me that in Japan it's near impossible to transfer money from one bank to another
Go to any of your bank's ATMs with your ATM card and/or passbook. Select 振込. Input amount. You will be asked the bank, bank branch, and 7 digit account number of the person you are sending it to. You will then be (typically) shown a screen which shows you the fee (100 to about 500 yen depending on bank and size of transaction) and lets you adjust your telephone number or name if required for the convenience of the firm receiving your payment. Hit OK. If done within banking hours, the payment is effectively instantaneous. If you cannot follow these instructions, you can ask a teller to assist.
If you're doing the transfers between your own accounts and they're at different institutions then one will occasionally see people withdraw to cash and then immediately redeposit in a second account, to save the ~300 yen or whatever.
In related news, Japan is a major Western country and banks do not communicate via couriers and smoke signals, contrary to impressions your friend may have.
Myself personally: Tough to say? A few hundred dollars in video games; no significant SaaS spend.
Business (includes only the ones which I personally own): SaaS, by a stupefyingly high ratio. Depending on where you draw the line between "that's just a hosting bill really" and SaaS, we've spent $12k to $25k on it year to date... and that doesn't include Twilio (add another ~$10k). In terms of packaged software, we're probably under $400, mostly for IDEs, text editors, and development tools. (Paw, Postico, etc)
I'm probably near the higher end of the distribution to this among my Internet buddies: about 4 years. Partly this was due to it truly being a hobby, partly because bingo cards are not the most renumerative thing in the world, and partly because my skill level at the time was rather low.
A more typical number among my SaaS buddies is about 18 months of sustained effort until you hit $10k in MRR, which typically is enough (after expenses) to keep a solo founder in the field indefinitely.
The fastest I've ever seen it done is about ~6 weeks for SaaS. Even shorter for infoproducts, although depending on the dynamics of the business that might be "launch one, get relatively flush with money, buy yourself enough time to launch a second one" until you figure out some not-too-obvious things about how to sell them repeatedly.
A consultant, naturally, can hit day job equivalent levels of revenue virtually immediately after hanging out their shingle (if they've got a client lined up). A fairly common pattern is "Inform day job of intention to quit; immediately go back to working for day job as 1099 during transitionary period; start building pipeline while delivering for Client #1."
I'm going to keep writing/speaking, but probably not launch any new for-money style projects. Partly this is out of respect for the day job's wishes, partly this is out of desire to maintain free hours for spending with my young family.
reply