Assistant Software Engineer - Autonomous Discovery Platforms (MADSCi)
About this role
Argonne National Laboratory's Rapid Prototyping Lab (RPL), part of the Data Science and Learning division, is seeking a Software Engineer to serve as a technical lead for the Modular Autonomous Discovery for Science (MADSci) framework — an open-source, Python-based platform that orchestrates self-driving laboratories across materials science, chemistry, and the biosciences.
MADSci is the software backbone of Argonne's Autonomous Discovery initiative. It integrates instruments, robots, AI/ML decision agents, and data pipelines into reproducible, closed-loop scientific experiments at scales and speeds that exceed traditional human-led methods.
The framework is currently deployed in projects ranging from energy-storage materials and antimicrobial discovery to isotope production for medical applications, and is used by collaborators across DOE laboratories, universities, and industry partners.
The successful candidate will take primary technical responsibility for the continued development, release, and operational support of MADSci. This includes shaping the architecture, mentoring contributors, supporting downstream lab deployments, and partnering with scientists, instrument engineers, and AI researchers to translate experimental requirements into production-quality software.
Key responsibilities include:
• Lead day-to-day development of the MADSci framework: design and implement new features, triage and resolve bugs, review pull requests, and shepherd releases through the project's CI/CD pipeline.
• Own the architecture of a Python microservices system spanning workflow orchestration, resource and inventory tracking, distributed event logging, experiment management, and device integration.
• Collaborate with experimental scientists and robotics engineers to onboard new instruments, design experiment workflows, and translate scientific goals into robust software abstractions.
• Maintain and grow the contributor community, including external collaborators at other DOE laboratories, universities, and industrial partners. Triage issues, review external contributions, and represent the project at workshops, conferences, and working groups.
• Operate and improve production deployments of MADSci in active autonomous laboratories at Argonne, including monitoring, observability (OpenTelemetry), backups, migrations, and on-call support during experimental campaigns.
• Mentor early-career staff, students, and interns contributing to MADSci and to autonomous-laboratory projects more broadly.
• Contribute to proposals, publications, and outreach describing MADSci and its scientific impact (e.g., journal articles, conference talks, the JOSS publication, documentation).
Position Requirements
Required Qualifications
• RD2: Bachelor’s degree and 5+ years of experience or Master's and 3+ years in computer science, or a PhD and 0+ years in software engineering, a related computational discipline
• Demonstrated proficiency in modern Python (3.10+), including type-annotated code, packaging, and testing
• Practical experience designing and maintaining production-quality software: version control (Git/GitHub), code review, automated testing, CI/CD, semantic versioning, and structured release management
• Familiarity with at least one web service framework (e.g., FastAPI, Flask, Django) and with HTTP/REST API design
• Working knowledge of relational and/or document databases (e.g., PostgreSQL, MongoDB-compatible stores) and of containerized deployment (Docker, docker compose)
• Strong written and verbal communication skills, including the ability to write clear technical documentation for both developer and end-user audiences
• Demonstrated ability to work effectively as part of a small, cross-disciplinary team and to collaborate with non-software domain experts (scientists, instrument operators, hardware engineers)
• Ability to model Argonne's core values of impact, safety, respect, integrity and teamwork
Preferred Qualifications
• Software engineering depth
• Experience designing microservice or service-oriented systems, including service discovery, schema management, and inter-service communication patterns
• Hands-on experience with Pydantic v2, SQLModel/SQLAlchemy, or comparable typed-data and ORM frameworks
• Experience maintaining a multi-package monorepo (e.g., PDM, uv, Poetry workspaces) with shared types and coordinated releases
• Experience with observability tooling: OpenTelemetry, distributed tracing, structured logging, metrics dashboards
• Experience as a maintainer of an open-source project, including triaging external issues, reviewing community contributions, and managing a public roadmap
• Familiarity with frontend development (Vue 3, TypeScript) sufficient to coordinate with frontend collaborators on dashboard and TUI features
• Robotics, lab automation, and self-driving labs
• Experience integrating scientific instruments or laboratory robots with software control systems (e.g., liquid handlers, plate readers, robotic arms, mobile platforms, characterization instruments)
• Familiarity with laboratory automation standards or protocols such as SiLA2, OPC-UA, ROS/ROS 2, AnIML, or vendor-specific instrument SDKs
• Experience building or operating a self-driving laboratory, autonomous experimentation platform, or closed-loop active-learning workflow, in academia, a national lab, or industry
• Familiarity with scientific workflow systems (e.g., Globus Compute, Parsl, Snakemake, Nextflow) and with managing experimental data lifecycles
• Background or coursework in a physical or life science sufficient to communicate fluently with experimental collaborators (e.g., chemistry, materials science, biology, physics)
• Experience deploying software in shared scientific computing environments (HPC clusters, ALCF, lab-edge compute)
• Contributions to DOE, NSF, or other federally funded scientific software projects
• Experience with AI/ML for experimental design (Bayesian optimization, active learning, surrogate models)
• Experience writing or contributing to technical proposals or scientific publications
Job Family
Research Development (RD)
Job Profile
Software Engineering 2
Worker Type
Regular
Time Type
Full time
The expected hiring range for this position is $94,486.00 - $147,398.94.
Please note that the pay range information is a general guideline only. The pay offered to a selected candidate will be determined based on factors such as, but not limited to, the scope and responsibilities of the position, the qualifications of the selected candidate, business considerations, internal equity, and external market pay for comparable jobs. Additionally, comprehensive benefits are part of the total rewards package.
Click here to view Argonne employee benefits!
As an equal employment opportunity employer, and in accordance with our core values of impact, safety, respect, integrity and teamwork, Argonne National Laboratory is committed to a safe and welcoming workplace that fosters collaborative scientific discovery and innovation. Argonne encourages everyone to apply for employment. Argonne is committed to nondiscrimination and considers all qualified applicants for employment without regard to any characteristic protected by law.
Argonne employees, and certain guest researchers and contractors, are subject to particular restrictions related to participation in Foreign Government Sponsored or Affiliated Activities, as defined and detailed in United States Department of Energy Order 486.1A. You will be asked to disclose any such participation in the application phase for review by Argonne's Legal Department.
All Argonne offers of employment are contingent upon a background check that includes an assessment of criminal conviction history conducted on an individualized and case-by-case basis. Please be advised that Argonne positions require upon hire (or may require in the future) for the individual be to obtain a government access authorization that involves additional background check requirements. Failure to obtain or maintain such government access authorization could result in the withdrawal of a job offer or future termination of employment.