Experience with application architecture, software design and design patterns Ability to work well in both a team environment and independently to design and deliver business solutions Strong written and verbal communication skills