Things I have had to work out properly — distributed systems, Node.js and the design decisions that only show up when something goes wrong.