Software developer researches designs and develops computer and network software or specialised utility programmes. He/she analyses user needs and develops intuitive and responsive software solutions applying principles and techniques of computer science engineering and mathematical analysis. He/she also updates software enhances existing software capabilities and develops and directs software testing and validation procedures and evaluates and addresses security vulnerabilities through security tools. He/she may work with computer hardware engineers to integrate hardware and software systems and develop specifications and performance requirements. He/she may also gather user feedback to propose improvements to the products interface support usability testing or execute specifications and features for the next iteration of the product based on user feedback.