Exposure to one or more programming languages, such as Python, Java, Scala or Go, and the ability to represent algorithms of arbitrary complexity, while being comfortable with programming best practices, continuous integration  continuous delivery, test driven development, code repositories and dependency management