Software Engineer's Guide to Deep Learning System Design