Implement, test and validate new algorithms for its use by other teams with good software engineering practices Formulate learning algorithms with diverse data sets and to deploy in various settings (de-centralized, distributed) Stay up-to-date with the latest machine learning techniques by reviewing literature, attending conferences, etc