Designs, codes, and tests software applications, working to solve problems and enhance user experiences