Software development is both art and science. We seek elegance and simplicity in the systems that we design, but we also enjoy working with the nuts and bolts.
Writing software is like writing music. There are complex mathematical structures underneath that must be understood, but the end result should just make people happy.