Senior Software Engineer

Location
Chicago
Posted
Apr 05, 2017
Institution Type
Four-Year Institution
About The Unit: The Center for Data Intensive Science at the University of Chicago is a research center pioneering translational data science to advance biology, medicine, and environmental research. Data driven research approaches require interdisciplinary innovation in computing technology, algorithms, and statistical models. The growing volume of data available necessitates advances in the sophistication of these methods. Our work centers around developing instruments to integrate commons of complex data with cloud computing technology. We architect large scale commons of research data, computing resources, applications, tools, services. Our guiding principles center around open data, open-source software, and open infrastructure. Through this approach, we can more effectively use data at scale to study and pursue scientific inquiry in the areas of biology, medicine, healthcare, and the environment. We are leaders in data sharing, democratizing access for the broader research community and accelerating discovery. Our leadership emerged with the launch of the first open-source cloud-based computational research platform recognized as an NIH Trusted Partner, achieving rigorous data quality and data management service requirements. Today we offer over seven petabytes of rich research data through the following data commons platforms: - NCI Genomic Data Commons - Bionimbus Protected Data Cloud - Blood Profiling Atlas for Cancer - OCC Environmental Data Commons - Open Science Data Cloud We are based in Chicago, but our work engages collaborators from across the world.

Unit Job Summary: A senior Software Engineer in the Center for Data Intensive Science manages all aspects of programming projects, including requirements, design, implementation, deployment/delivery, and support. Leads team efforts and oversees the work of other technical team members. Provides technical oversight and develops standards, guidelines, and processes for applications. Reviews the design and code development of key architectural components. Contributes to decisions on project and infrastructure needs, including the evaluation of server technologies, languages, platforms, and frameworks. Developes timelines, technical diagrams, project plans, and resources allocation in an agile methodology. Works with cloud computing infrastructure primarily based on OpenStack to design, develop, maintain, and evaluate software applications to meet business and technical requirements. Works in Linux-based systems in Python and C/C++, with some Java, Ruby and various web programming. Oversees code testing and ensures appropriate standards are met. Works with users, collaborators, and technical staff to resolve problems and respond to feedback regarding potential improvements and enhancements. Ensures appropriate documentation Serves as a liaison with internal and external collaborators on multiple research projects. Research includes the full stack from systems to algorithms to user interfaces. Research projects span management, sharing, and provenance of large data sets; resource allocation and scheduling for cloud computing, large scale pipelining of next-generation sequence analysis, transfer programs/protocols for high-speed networks and resource visualization. Perform other duties as assigned. Please provide a code sample in the "Other Documents" section of this application. This position is grant supported and longevity of the position is dependent upon future funding.

Unit Education: Master's degree in computer science, mathematics, statistics, engineering, or a related field required. PhD in mathematics, computer science, engineering, or a related field preferred.

Unit Experience: Minimum five (5) years of relevant programming experience required. Experience using applications such as Python, C/C++, Java, or Ruby required. Unix/Linux experience required. Version control experience required Experience with full design life cycle required. High performance/ cloud computing experience preferred. Unix/Linux programming or system administration experience preferred. UX/UI experience preferred. Git version control experience preferred. Experience with genomics preferred. Experience creating development specifications, use cases, and other development related documentation Project management experience preferred. Experience with genomics preferred.

Unit Job Function Competencies: Ability to prioritize and manage workload to meet critical project milestones and deadlines required. Ability and willingness to acquire new programming languages, statistical and computational methods, and background in research area required. Ability to lead a collaborative team environment required. Ability to communicate technical concepts to non-technical staff required. Knowledge of software development best practices required. Confidentiality related to sensitive matters such as strategic initiatives, trade secrets, quiet periods, and scientific discoveries yet to be put in the public domain required.