Design, develop, test, implement, maintain, and improve software. Management of the English language, since most of the software solutions are in that language. Management of various programming languages. Being able to identify failures and errors in systems