Keyskills: software development programming languages data structures algorithms testing software design software architecture deep learning natural language processing technical leadership information retrieval distributed computing networking security artificial intelligence UI design mobile