Research Software Engineer I
Salk Institute for Biological Studies
About the Role
The Pereira Lab at the Salk Institute for Biological Studies is seeking a Research Software Engineer I to build and maintain software that translates computer vision models into biological discovery. The lab develops SLEAP, an open-source deep learning framework for markerless pose estimation. This role is ideal for early-career individuals with research experience who enjoy coding and system building, and it can serve as a foundation for a long-term career in research software engineering.
The Research Software Engineer I will own the research software for the Institute’s plant root phenotyping program, including:
- Containerized, GPU-accelerated pipelines for processing automated scanner images.
- Deep learning pose-estimation models for extracting quantitative traits.
- Analysis-ready results delivery to collaborating laboratories.
The role spans the entire data lifecycle, from desktop acquisition software and the Bloom web application/database to open-source Python packages and deep learning models.
Key Responsibilities
- Develop, maintain, and release open-source scientific Python packages for pose-estimation-based phenotyping, utilizing professional software engineering practices like version control (Git), code review, testing, type checking, and CI/CD.
- Maintain and extend Bloom, the lab's web application and scientific database for plant phenotyping data, encompassing backend services, API, web frontend, schema design, and deployment on self-hosted infrastructure.
- Maintain and release Bloom Desktop, an Electron/React application for image acquisition on scanners and upload to Bloom, including integration with camera and data-acquisition hardware.
- Deploy and maintain self-hosted systems and services on lab servers and cloud infrastructure, including database backup/restore, object storage, and TLS certificate management.
- Build, operate, and improve containerized, GPU-accelerated analysis pipelines for processing raw imaging data through deep learning inference to quantitative trait outputs.
- Train, evaluate, and deploy deep learning pose-estimation models, and maintain the datasets, configurations, and model registries for reproducible training runs.
- Connect analysis pipelines to Bloom through data contracts, provenance tracking, and writing results back to the database.
- Run analyses on experimental datasets for collaborating laboratories and deliver documented, reproducible reports and figures.
- Support and utilize shared high-performance computing resources, including GPU cluster scheduling and containerized job workflows (e.g., Kubernetes-based schedulers, SLURM).
- Rapidly prototype, build, and iterate on internal applications, command-line tools, and utilities in response to evolving scientific needs.
- Integrate systems and services through APIs, authentication, and automation to create seamless workflows.
- Collaborate directly with biologists and scientists to understand experimental goals and translate them into technical solutions.
- Prepare and maintain documentation, runbooks, and training materials for independent researcher use.
- Contribute to the lab's open-source software community, including reviewing external contributions and responding to user issues.
- Participate in project planning and status discussions, coordinating with other Salk labs, Core facilities, and programs.
- May assist with onboarding or supervision of student trainees and interns.
Requirements & Tech Stack
- Full-stack software engineering ability.
- Proficiency in Python and at least one other language (TypeScript preferred).
- Experience building complete applications spanning back-end logic, front-end interfaces, and data storage.
- Proficiency with the scientific Python stack (e.g., NumPy, pandas, scikit-learn).
- Experience designing and querying relational databases (e.g., PostgreSQL), including schema changes and migrations.
- Working familiarity with at least one deep learning framework (e.g., PyTorch).
- Conceptual understanding of how models are trained, evaluated, and deployed.
- Demonstrated interest in computer vision and open-source software development.
- Fluency with modern, AI-assisted software development tools (e.g., Claude Code).
- Demonstrated ability to quickly learn unfamiliar systems and technologies.
- Comfort working in Linux/Unix environments with version control (Git), testing, and code review.
- A public code portfolio (e.g., GitHub) demonstrating initiative beyond coursework is strongly recommended.
Preferred Qualifications
- BS degree in computer science, engineering, quantitative science, or a related discipline.
- Master’s degree or post-baccalaureate certification in a computational or scientific field.
- Prior internship, research, or work experience in a scientific, laboratory, or academic environment.
- Full-stack web development experience with modern frameworks (e.g., React, Svelte, Vue, FastAPI, Django).
- Desktop application development, particularly with Electron or a comparable framework.
- Experience integrating software with scientific instruments or hardware.
- Experience with computer vision or image analysis, particularly on large scientific image datasets.
- Experience with containerization (e.g., Docker) and scheduling work on GPU resources (e.g., Kubernetes, SLURM).
- Experience deploying and maintaining self-hosted applications and services, including on cloud platforms (e.g., AWS, GCP).
- Experience maintaining an open-source software project.
- Academic coursework, research experience, or demonstrated interest in plant science, biology, neuroscience, or another life-science domain.
- A track record of shipping small tools or projects quickly and independently.
- Strong communication skills.
Compensation
- The expected pay range for this position is $33.00 to $38.00 an hour.
Benefits
- Salk Institute offers competitive benefits, including medical, dental, vision, retirement, paid time off, tuition reimbursement, patient advocacy services, and transit/parking program.