Software Developer

The Scalable Computing Software Laboratory (SCS) at Illinois Tech is seeking talented Software Developers to be part of a team developing distributed storage technologies. The Software Developers will focus on the NSF-funded project titled ChronoLog: a new distributed shared log store for activity and log data in collaboration with partners at the University of Chicago. The ChronoLog team consists of faculty members, software developers, PostDoc researchers, and several Ph.D. students. These positions are intended to be a medium to long term opportunity as the project is long-term and expected to continue. Software Developers will work in the design and development of the core ChronoLog library as well as a collection of plugins such as a query engine, a streaming processor, and a TensorFlow module. Applicants should have interest in HPC, deep memory and storage hierarchies, data streaming technologies, log workloads, data workflows, API design and implementation, performance optimization, and code instrumentation. The applicants must be comfortable working with other team members and collaborating with scientists and application developers that use HPC systems. Experience with C++ and parallel and distributed storage systems is not required but is highly preferred. Experience with all aspects of the software life cycle and the agile methodology is preferred. Selected applicants may optionally have the opportunity to publish research papers and travel to collaborator sites, workshops, and conferences. These positions will follow a flexible hybrid work model between on-campus and remote telework.

About Illinois Tech and the Scalable Computing Software Lab
Illinois Tech - home of the country’s first private-funded research nuclear reactor and the nation’s first functional microgrid - is known for advanced research that is moving the needle toward significant innovation. Founded in 1890, Illinois Institute of Technology has a 130-year legacy of excellence in academics, research, and innovation. University-wide research initiatives unite faculty, engineers, and students across the disciplines to explore and discover innovation-driven solutions. The Scalable Computing Software Lab of the Computer Science Department has a long history of academic and research excellence in the areas of Distributed Computing, HPC technologies with a focus on I/O systems, memory architecture, and storage optimizations. The SCS Lab consists of several faculty members and dozens of researchers including visiting faculty, PostDoc researchers, PhD and M.Sc. students. The SCS Lab is well funded, well equipped with in-house research computing clusters, and has produced hundreds of high-quality publications in top venues of distributed and parallel computing. Learn more at

About the Chronolog project
Today, data is being generated at a rate that even the largest computing systems cannot handle. Further, significant developments in hardware innovation have lowered the monetary cost of data storage (less than $0.02 per GB), leading to a "store everything" mindset. One common trend is the need to store activity data, also known as log data, which describes things that happen rather than things that are. Several domains such as Internet companies and their web services, financial applications, scientific computing, and the Internet-of-Things (IoT) rely heavily on processing log data efficiently. This trend is further supported by modern non-monolithic architectures such as microservices, containers, and task-based computing. Today, the activity data volume, velocity, and variety are staggering, reaching up to 7 TB/s, demanding a rethinking of the storage stack we have today. ChronoLog, a new distributed shared log store is designed to use physical time to provide total ordering on a log and multiple storage tiers, such as storage-class memories and new flash storage, to scale the log capacity. ChronoLog is designed to offer high performance via I/O isolation (tail and historical operations are handled separately), elastic storage capabilities, tunable parallel access model with highly concurrent I/O, log access via ranged queries, and a novel 3D log distribution.

Essential job functions and key responsibilities

  • Participate in design and development of ChronoLog and its plugins.
  • Evaluate performance and explore optimizations for ChronoLog.
  • Fix software bugs in ChronoLog.
  • Write technical documentation.
  • Experiment with new technologies relevant to the area of development; recommend improvements to techniques, procedures, or other aspects of technical development.
  • Provide input for preventing future problems as well as incorporating solutions to current concerns.
  • Work on assigned tasks under supervision of senior staff and the principal investigators.

Minimum requirements

  • A Bachelor’s degree is required, preferably in computer science or software engineering (Masters or Doctoral degree will be appreciated); experience and/or training may be considered depending on the nature and depth of the experience as it relates to current technologies.
  • Excellent knowledge of C and C++ 11 (or subsequent releases).
  • Experience with developing production quality software.
  • Good understanding of distributed storage concepts.
  • Experience with running applications on HPC systems.

Knowledge, Skills, and Abilities required

  • Knowledgeable in data structures, computer architectures, compilers and algorithms.
  • Ability to learn new concepts and techniques quickly.
  • Ability to communicate clearly to all types of audiences - from the inexperienced to highly technical users.
  • Strong organizational skills.
  • Strong oral and written communication skills.
  • Self-motivation and creativity.
  • Problem solving and analytical skills necessary to carry out essential job functions and key responsibilities.

Knowledge, Skills, and Abilities preferred

  • Software development and maintenance.
  • Agile software development.
  • File and storage system design.
  • Data streaming frameworks.
  • MPI and MPI I/O.
  • Software performance evaluation and enhancement.
  • Working with HPC applications and workflows.
  • Using GNU autotools and CMake build systems.

Position Benefits and Perks

  • Full time position with standard Illinois Tech benefits package.
  • Competitive salary.
  • Hybrid on-site and remote telework model.

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. All qualified applicants will receive equal consideration for employment.