design software solutions to meet a variety of challenges;