1- high-level programming and related technical skills. 2- ingenuity and creativity. 3- a logical approach to problem solving. 4- analytical capabilities. 5- the ability to work well under pressure. 6- experience of development methodologies, such as the Waterfall model and Agile. 7- attention to detail. 8- tenacity and patience.