What Civil Engineering Taught Me About Being a Good Software Developer