Hard Things
Two things in computing are hard. Concurrency, Distributed Systems, and Off-By-One errors. You'd think reliably writing a file wouldn't be one of them, but you'd be wrong. Luckily much of the complexity is hidden from most of us by "the system", but you'd be surprised how much potentially leaks to user code.