A collection of (mostly) technical things every software developer should know about