Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That's a fair criticism. Deep down, I usually have a pretty high opinion of my abilities. I think I'm pretty good at hiding it in person, but I'm less good at hiding it in my writing. I feel happiest and most excited to write when I'm thinking about some of my happiest memories. I try to also be open about the mistakes I've made. I've generally been much more lucky than skilled.

I've definitely written more than one bug where post-mortem estimates were over $10,000 in losses.

August 20, 2013, I finished a code change (in Hong Kong) to Goldman's global algorithmic trading system and sent it out to a colleague in Europe to review. A friend of mine was a machine learning person in our Tokyo office and was in town for work, so a bunch of us had dinner and a small number of drinks. I stopped by the office on my way home to check if the change had been approved. It had, and I hesitated a bit to put it in production, because I had a couple of drinks and it was late at night. However, rationalized that I had written all of the code while awake and without a drop of alcohol, and pushed the change into production.

I woke up the next morning to read news [1] that Goldman had lost up to 100 million dollars in an automated trading problem within 1-2 hours after I pushed my change. I couldn't see how my change could possibly have caused that error, but was still a bit panicked until I reassured myself that my cell phone would have been called once a minute until I woke up if I had made a change that caused a loss of that magnitude.

I went into the office and saw that a chat window I had open with a friend in the NY office showed "presence unknown". An email sent to them bounced. So, I walked over to the derivatives (Flow) Strats desk, sat down in an empty chair next to one of my friends, and just quietly said "... so " and the name of my friend in NY. My friend on the Flow desk's eyes got wide and he said "how did you know?". I actually didn't know until the Flow Strat's reaction confirmed my guess.

My friend in New York was actually very careful, but he had been working under time pressure late at night and pushed a bug into production. He'd been more responsible than I had the night before. I got really lucky, and he got really unlucky. He's actually a really solid engineer. He caught plenty of very subtle bugs in other people's code, at least once when he hadn't been asked to review the code.

After August 20, 2013, if at all possible, I push changes into production before noon, and not on Fridays.

If memory serves the "maybe $100 million" ended up being around $28 million.

And that's the time that I could have easily caused a $28 million loss.

There was also a time I misplaced a paren and had a bad actor noticed, they could have used 60 million customer computers in a DDoS UDP traffic amplification attack. My test cases weren't matching my hand-worked-out examples, but I eventually just gave up and assumed my code was correct and put incorrect values in the message authentication code test vectors. Never roll your own crypto, especially if your test vectors aren't coming out as you expect. That was 2004.

[1] https://www.cnbc.com/id/100976404



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: