Lead Software Engineer
About The Department
The Center for Translational Data Science at the University of Chicago is a research center pioneering the discipline of translational data science to advance biology, medicine, and environmental research. We architect ecosystems of large-scale commons of research data, computing resources, applications, tools, and services for the broader research community to use data at scale to pursue scientific inquiry and accelerate discovery. These growing data commons offer petabytes of rich research data to scientists across the world.
Job Summary
The job leads and provides expertise to the development of programs for activities relating to software support and/or development. Analyzes, designs, develops, debugs, and modifies computer code for end user applications, beta general releases, and production support. Manages development and implementation of applications, web pages, and user-interfaces using a variety of software applications, techniques, and tools. Solves complex problems in administration, maintenance, integration, and troubleshooting of code and application ecosystem currently in production. The Lead Software Engineer is responsible for a scope of significant size or functional area critical to the team’s success, using in-depth knowledge in all technical areas of major projects and core product and responsible for design and implementation of top priority technical tasks, timely and quality delivery, leading and mentoring other engineers, and helping the organization drive toward its strategic goals, negotiating complex solutions along the way.
Responsibilities
- Responsible for design and implementation of top priority technical tasks and timely delivery of such tasks, meeting and defining the required level of quality.
- Responsible for managing activities of a complex and challenging nature, including design and implementation of large systems and/or core components, with decisions having a large impact on the team or cross multiple teams.
- Negotiate complex decisions, present options and persuasively advocate for optimal technical solutions, internally and externally.
- Help translate high level requirements into well-architected and well-tested design and implementation.
- Lead team(s) of software engineers and provide technical guidance and leadership for the team to follow best practices and deliver quality software, middleware, and processes timely.
- Collaborate with, support, and help the team members to grow and realize their full potential, and make the right decisions collectively.
- Proactively and effectively addresses management challenges.
- Actively participate in and define the hiring process and provide fair and productive interview feedback.
- Leads in the development of new systems, features, and tools. Solves complex problems and identifies opportunities for technical improvement and performance optimization.
- Reviews and tests code to ensure appropriate standards are met.
- Utilizes in-depth technical knowledge of existing and emerging technologies, including public cloud offerings from Amazon Web Services, Microsoft Azure, and Google Cloud.
- Acts as a technical consultant and resource for faculty research, teaching, and/or administrative projects.
- Leads or coordinates teams or projects for activities relating to software support and/or development.
- Performs other related work as needed.
Education
- Minimum Qualifications: College or university degree in related field.
- Work Experience: 7+ years of relevant software development experience, full cycle strongly preferred, including design, coding, testing, and support. With advanced experience building full stack web applications and a proficiency in two or more modern programming languages, preferably Python and JavaScript. Full stack design and development with proficiency in modern web UI technology stacks. Advanced programming skills using Python, Golang/Javascript, and other languages like C/C++, Java, or C#. Knowledge and/or experience with: web applications, REST API, microservices, and containers; Unix/Linux programming, open source, and version control experience; configuration management utilities (Chef, Salt, Ansible) and container-based deployment solutions (Docker, Kubernetes); modern database and data analytics technologies (Postgres, MySQL, NoSQL, Elasticsearch, Spark, Hadoop, etc.); and High performance/cloud computing experience (AWS, GCP, Openstack).
Preferred Qualifications
- Advanced degree in computer science, mathematics, statistics, engineering, or a relevant quantitative field strongly preferred.