Research Software Engineer - iBioFoundry, Carl R. Woese Institute for Genomic Biology
Software Engineering
Urbana, IL, USA
Posted on Sep 17, 2026
Duties & Responsibilities Implement, operate, and continuously improve a multi-agent AI system that plans biological research and translates high-level research objectives into executable experimental workflows. Integrate AI-generated workflows with robotic systems and a central scheduler controlling laboratory instruments, including liquid handlers, thermocyclers, incubators, plate readers, and mass spectrometers. Maintain and implement critical components of the software backbone supporting autonomous laboratory operations. Write, test, document, and maintain failure-sensitive software with a strong emphasis on reliability, observability, fault tolerance, and safe operation. Develop deep system-level expertise and take ownership of the technical integrity of core infrastructure. Develop and maintain an open-source scheduler for experiment planning, instrument coordination, and laboratory automation in close collaboration with researchers and engineers. Design scheduling infrastructure that can reliably coordinate complex, concurrent workflows across heterogeneous laboratory equipment. Design software architecture and operational practices that enable rapid troubleshooting, clear failure diagnosis, and long-term system evolution. Establish and promote engineering best practices for testing, monitoring, deployment, documentation, version control, and incident response in a complex research environment. Build robust data pipelines, services, and APIs connecting AI agents, laboratory instruments, experiment-management systems, and scientific databases. Ensure that experimental data and system state are reliably captured, accessible, traceable, and usable by both humans and AI systems. As the program grows, you will have increasing responsibility for coordinating a team of graduate students and postdoctoral researchers. Assign and prioritize technical work, review code and architectural decisions, establish software engineering best practices, and mentor team members through successful project delivery.
