The Opinionated Software Developer