Skip to main content

Research Software Engineer

Currently closed. Systems engineering for the ChronoLog distributed shared log store

This role focused on ChronoLog, a distributed shared log store developed with partners at the University of Chicago. Its scope included the core library and plugin work for querying, streaming, and TensorFlow integration.

The work combined API design, instrumentation, performance engineering, and distributed storage implementation. The role required collaboration with researchers and application developers who use high-performance computing systems. C++ and parallel storage experience were preferred. The position followed a hybrid work model.

Research Environment

Illinois Tech is a private research university in Chicago. GRC develops I/O systems, memory architectures, and storage optimizations for distributed and high-performance computing. Explore the center’s publications to see the research record.

The ChronoLog System

ChronoLog

ChronoLog uses physical time to order activity data across a distributed shared log. It separates tail and historical I/O, spans storage-class memory and flash, and supports ranged queries over a three-dimensional log distribution. Read the ChronoLog project page for the system design and results.

Responsibilities

  • Design and implement ChronoLog and its plugins.
  • Measure system performance and implement optimizations.
  • Diagnose and fix software defects.
  • Write and maintain technical documentation.
  • Evaluate relevant technologies and recommend engineering improvements.
  • Plan and deliver assigned work with senior staff and principal investigators.

Minimum Requirements

  • A bachelor's degree, preferably in computer science or software engineering. Relevant experience or training may be considered, and an advanced degree is valued.
  • Strong knowledge of C and C++11 or later.
  • Experience developing production-quality software.
  • Understanding of distributed storage concepts.
  • Experience running applications on high-performance computing systems.

Required Skills

  • Knowledge of data structures, computer architecture, compilers, and algorithms.
  • Ability to learn new systems concepts and techniques quickly.
  • Clear written and spoken communication with both technical and nontechnical audiences.
  • Strong organization and independent work habits.
  • Analytical problem-solving and creative engineering judgment.

Preferred Experience

  • Software development, maintenance, and agile methods.
  • File and storage systems.
  • Data streaming frameworks.
  • MPI and MPI I/O.
  • Software performance evaluation and optimization.
  • High-performance computing applications and workflows.
  • GNU Autotools and CMake.

Previous role terms

Benefits
The previous role included the standard Illinois Tech benefits package
Salary
The previous role based salary on experience
Work model
The previous role combined on-campus and remote work
Express future interestThis role is closed. Contact the center to share your interests for future opportunities.

Illinois Institute of Technology is an EEO/AA/Title VI/Title IX/Section 504/ADA/ADEA employer committed to enhancing equity, inclusion and diversity within its community. It actively seeks applications from all individuals regardless of race, color, sex, marital status, religion, creed, national origin, disability, age, military or veteran status, sexual orientation, and/or gender identity and expression. Any future hiring will follow the university’s equal opportunity policies. This role is currently closed.