Logo
The University of Chicago

System Programmer

The University of Chicago, Schiller Park, Illinois, United States, 60176


This job was posted by https://illinoisjoblink.illinois.gov : For more information, please see: https://illinoisjoblink.illinois.gov/jobs/12285451 Department Provost Research Computing Center About the Department The University of Chicago Research Computing Center (RCC), a unit in the Office of Research, provides high-end research computing resources to researchers at the University of Chicago. It is dedicated to enabling research by providing access to centrally managed High-Performance Computing (HPC), storage, and visualization resources. These resources include hardware, software, high-level scientific and technical user support, and the education and training required to help researchers make full use of modern HPC technology and local and national supercomputing resources. The Office of Research oversees the conduct of sponsored research, research program development, and contract management functions. Job Summary The job participates in the design of automated, scalable, and rapidly deployable solutions to systems infrastructure and server configuration. Installs, configures, and maintains operating systems, monitoring and alerting systems, utility software, and firewalls. Plans and executes hands-on maintenance for production servers as well as Windows and Linux servers. The University of Chicago Research Computing Center (RCC) is seeking a highly qualified System Programmer to join its system and operation team that manages and supports an ecosystem of HPC systems and services. The individual in this position will contribute to the ongoing efforts to streamline RCC processes, develop automation tools and improve the ways in which RCC enables transformational computational research at the University of Chicago. The Job duties will primarily include development and maintenance of software and deployment on systems in the RCC environment. The System Programmer will also work with the application development team in integrating continuous integration and continuous deployment approaches (CI/CD) and supporting faculty projects. The ideal candidate will possess a strong technical background, an analytical mind, and be comfortable working as part of a team. This is a hybrid position requiring 3 days per week onsite. Responsibilities Install, design, configure and maintain scripts that are used for systems provisioning and configuration management. Develop and maintain system software to automate operations of user accounts and resources allocations (i.e., computing cycles and storage quotas). Develop a database and software for monitoring hardware inventories (specifications, locations, warranty status and renewals, health status, etc.). Design and develop software to automate tasks. Monitoring of hardware inventories (including servers, storages and network devices). Monitoring of the HPC job scheduler and queuing system (SLURM). Monitoring and daily backup of research data and critical files from RCC servers. Monitoring and detection of improper user behaviors and security risks. Running the suite of applications benchmarks to monitor the performance of RCC HPC systems. Design and develop tools to assist RCC leadership with analyzing and reporting RCC usages information and other system statistics. Ensures integrity by implementing appropriate routine software and hardware solutions. Customize and maintain system software tools, such as XDmoD, Open OnDemand, Coldfront, etc. Proactively troubleshoot issues. Document system administration procedures for routine and complex tasks. Contribute to developing software, tools and/or platform for the reproducibility of scientific research. Maintains complex system and network administration functions. Works with moderate guidance to administer simple systems and a sists in the administration of larger systems. Installs, configures, and maintains operating system workstations and servers. Performs software installations and upgrades to operating systems and layered software packages. Monitors and tunes the system to achieve optimum performance levels, acquiring high-level skills in the process. Performs other related work as needed. Minimum Qualifications Education: Minimum requirements include a college or university degree in related field. Work Experience: Minimum requirements include knowledge and skills developed through 2-5 years of work experience in a related job discipline. Certifications: Preferred Qualifications Experience: A minimum of two years using Linux systems, including basic system configurations, use of command line interface, software installation, packages and network managements, etc. Experience with Python programming, including various packages for data processing (i.e., Numpy, Scipy, Pandas, Matplotlib). Experience with bash shell scripting. Experience w