The Institute for Disease Modeling (IDM), part of Intellectual Ventures’ Global Good program, is a collaborative effort to simulate the eradication of infectious diseases using computer software. The IDM team is a highly dynamic organization with a work environment defined by innovation and collaboration. Our team is composed of research scientists and software professionals who focus on creating powerful and innovative disease modeling and data analysis tools to help researchers and policy makers understand diseases, their causes, the way they spread, and the best types of interventions to employ in each of a variety of situations. The IDM team architects advanced models of disease transmission, develops computational tools to inform global disease eradication policy, conducts analysis of epidemiologically- and policy-relevant data, and identifies critical knowledge gaps. As part of our work, we routinely collaborate with groups at the World Health Organization, the Centers for Disease Control, PATH, the Bill and Melinda Gates Foundation, ministries of health in the developing world, as well as universities and research institutes. IDM is committed to improving and saving lives in developing countries through the use of quantitative analysis.
The IDM Senior Software Engineer in Modeling will work on a team of software developers at the Institute for Disease Modeling, along with testers and researchers, tasked with developing software tools for all phases of disease modeling and all stages of the modeling pipeline. Central to this pipeline are IDM’s models of infectious disease transmission which simulate disease dynamics over a wide range of detail in different dimensions: from a generic, influenza-like disease to a detailed, mechanistic model of malaria within each host, from a single individual to millions, and from a single household to global scale scenarios. Smaller models may run on an individual researcher’s workstation while larger scenarios and large ensembles of simulations execute across multiple cores and nodes on a high performance computing cluster.
This position focuses on extending and optimizing the capabilities of IDM’s current models as well as designing and implementing new tools capitalizing on efficient strategies for modeling in specific regimes of disease prevalence, population statistics, and transmission dynamics. The modeling development team works primarily in C++, C#, and Python on Microsoft Windows and occasionally with other languages and operating systems. Since disease modeling is at the core of IDM’s work and involves many sources of data, including population information, disease prevalence and incidence, weather, etc., members of the modeling development team interact with a number of additional tools and technologies, e.g. MATLAB, R, relational databases, JSON formatted data, web APIs, et al.
- Work collaboratively with research to understand model requirements, features, and improvements to IDM software.
- Work with research, development, and testing to generate specifications capturing the research need, guide implementation, and enable comprehensive testing. Review and provide feedback on specifications written by other members of the software development team.
- Work independently, with the support of the software development team, to design and implement new models, model features, and improvements. Review and provide feedback on designs and implementations from other members of the software development team.
- Work iteratively with research to refine specifications and validate implementations.
- Promptly verify and address issues identified by users or the testing team.
- Participate with other development and testing team members to complete work iterations.
- Participate in reviewing test plans and test automation for components under development.
- Set personal goals and report status regularly to the team and management.
- Work with external IDM collaborators (universities, NGOs, etc.) to understand their modeling needs and enhance their experience with IDM software.
Qualifications and Skills:
- Must have a bachelor’s degree in Computer Science (preferred) or in a scientific field of study.
- Must have at least 6 years of software development experience
- Must have experience with technical software: scientific, engineering, statistical, or modeling
- Must be proficient with C++ and Python
- Must be comfortable and productive in an iterative/agile team environment.
- Must have experience developing unit/component tests.
- Must work well with team members.
- Experience with Windows and Visual Studio is a plus
- Experience with Linux is a plus
- Experience with data analysis tools such as MATLAB, Octave, or R is a plus
We are an equal opportunity employer