Senior Machine Learning Engineer

IQVIA ,
London, Greater London

Overview

Job Description

IQVIA is the leading human data science company focused on helping healthcare clients find unparalleled insights and better solutions for patients. Formed through the merger of IMS Health and Quintiles, IQVIA offers a broad range of solutions that harness the power of healthcare data, domain expertise, transformative technology, and advanced analytics to drive healthcare forward. Senior Machine Learning Engineer AI & Machine Learning Solutions, Real World Solutions (RWS) This high-profile team work on ground-breaking problems in health outcomes across disease areas including Ophthalmology, Oncology, Neurology, Chronic diseases (such as diabetes), and a variety of very rare conditions. The team works hand-on-hand with Statisticians, Epidemiologists and disease area experts across the wider global Real World Solutions group, leveraging a vast variety of anonymous patient-level information. The data encompasses IQVIA's access to over 530 million anonymised patients as well as bespoke, custom partnerships with healthcare providers and payers. We are looking for an experienced and highly productive software engineer to join our London-based team. This is an exciting opportunity to work in one of the world's leading human data science teams working with Real World Insights to help our clients answer specific questions globally, make more informed decisions and deliver results. A typical day might include: The primary focus of the role is to develop high-performance machine learning software for use by a data science team on large scale, high complexity medical data to predict answers to healthcare challenges. The ability to learn extremely fast and rapidly build skills in cutting-edge technologies is essential. You will be operating outside of your comfort zone - creativity and an innovative spirit will serve you well. At IQVIA we appreciate and nurture individual talent. Therefore, the exact blend of responsibilities and individual career development will in part depend on the skill set and aspirations of the successful candidate. Ideally you will have: A strong background in commercial software development, with at least 8 years of experience or a relevant combination of education, training and work experience. You may have worked on applications in different domains, with modern languages and frameworks. You will need to know your way around low-level languages, parallel and distributed programming, or specialised high-performance computing. Work with GPU technology is a bonus. This role will be working full time with the Julia programming language. Experience in this language is desirable but not necessary. If you've never used it before you must be able and willing to learn fast. BSc, MSc or PhD in Computer Science (or similar field involving lots of computation) is preferred but not essential. You have experience working with Agile methodology such as Scrum or Kanban and familiarity with software development practices such as Continuous Integration, Behaviour- Driven Development and DevOps. You will have strong opinions on how to design high-quality, maintainable code for the long-term. You will have some familiarity with data science technology and the nature of analytical projects. This is not a data scientist role, but they will be your stakeholders, so you'll need to know what they are talking about. Knowledge of the latest developments in machine learning and some experience of engineering with the relevant technologies on commercial or large academic projects is welcome. A proactive, innovative and pragmatic approach to problem solving and an ability to think critically and independently, able to work as part of a cross-functional team. Our ideal candidate: Tech Skills Both: *Significant experience (ideally complex commercial projects) developing in a compiled language such as: Julia, C++, C, Rust, Scala, Java, Go. *Significant experience developing packages in at least one scripting language such as: Python, Lua, Ruby, R. Comfortable with developing on Linux and shell scripting. Some experience with HPC technology such as OpenMP, or writing other highly parallel applications. Some knowledge of supervised machine learning methods, particularly tree classifiers (e.g. XGBoost, LightGBM), etc. from Python libraries. Experience with software development lifecycles. Good programming skills in Python. Understanding of what it takes to write clean code, work well with other developers and how to deal with complexity as a project matures. Bonus points for: Experience working with GPU technology for either machine learning or video games. CUDA, OpenCL, Vulkan, etc. Experience of mathematical optimisation techniques, such as Bayesian hyperparameter optimisation or genetic algorithms, and Python packages such as GPyOpt, Spearmint or hyperopt. Knowledge of deep learning methods, such as convolutional neural networks, recurrent neural networks, reinforcement learning on structured datasets such as medical records.