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.
- Responds, triages, and resolves production system issues in a timely fashion, across multiple projects when required.
- Help translates 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.
- Collaborates with, supports, and helps the team members to grow and realize their full potential, and make the right decisions collectively.
- Proactively and effectively addresses management challenges.
- Actively participates in and defines 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.
- Performs other related work as needed.
Education
- Minimum requirements include a college or university degree in related field.
Work Experience
- Minimum requirements include knowledge and skills developed through 7+ years of work experience in a related job discipline.
Preferred Qualifications
- Advanced degree in computer science, mathematics, statistics, engineering, or a relevant quantitative field strongly preferred.
- 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).
- Experience with CI/CD and version control tools (e.g. Jenkins, Travis, git).
- Experience with or contribution to open-source projects.
- Experience with Agile methodologies.
- Domain experience in biomedical informatics.
Ability and Willingness
- Ability and willingness to acquire new programming languages, statistical and computational methods, and background in research area.
- In-depth knowledge in all technical areas of all major projects and the core product’s scope, or having demonstrated the ability to achieve that level of proficiency in a short period of time.
- Ability to manage a large size team and define and drive higher level organizational goals with guidance from senior management and lead the team to plan, execute and deliver to meet critical project milestones and deadlines.
- Ability to effectively communicate organizational goals to the team and mentor the members by providing constructive and helpful input and feedback.
- Ability to prioritize and manage team workload to meet critical project milestones and deadlines.
- Ability to persuade/manage others to adopt new structures or systems in order to meet objectives.
- Advanced understanding of computer science principles.
- Project management skills, including an ability to manage multiple teams and projects simultaneously, and own time well, and achieve objectives.
- Ability to take or create a plan and break it into incremental tasks and ensure the completion of each task, meeting the required level of quality.
- In-depth knowledge with microservice architecture, design patterns, cloud platforms (AWS/GCP), RESTful API, and web services.
- Ability to work in a collaborative team and provide technical management to ensure accountability for deliverables and outcomes.
- Understands and can maintain confidentiality related to sensitive matters such as strategic initiatives, trade secrets, quiet periods, and scientific discoveries yet to be put in the public domain.