should have a good working knowledge of basic programming languages, the ability to learn new technologies requests Gathering information from clients about program functionality Writing reports Conducting development Software Developer – essential Intermediate programming experience (university level) Knowledge of databases