Position Purpose: The Scientific Computing Engineer applies senior-level expertise in DevOps, DevSecOps, and software engineering practices to support the development, deployment, and operation of secure, reproducible software and computational workflows across bioinformatics, data science, and research computing projects. This position will work closely with software developers, scientists, information technology staff, and DevOps personnel to lead improvements in how scientific software is built, tested, secured, deployed, and maintained. The ideal candidate will bring strong hands-on DevOps and software development experience, with an emphasis on CI/CD, containerization, application deployment, software security, and automation. The position will develop and deploy solutions within existing computing environments, including Kubernetes, Linux servers, high-performance computing resources, and cloud environments, while collaborating with infrastructure and systems teams responsible for the underlying platforms. The position will also contribute directly to bioinformatics, data science, and scientific computing projects. Prior experience with bioinformatics or data science and an interest in applying DevOps fundamentals to data-intensive scientific applications is strongly preferred. This is a full-time position based on Charlottesville, VA. On-site or hybrid work is preferred. Remote work may be considered for highly qualified candidates based on project and customer requirements. Essential Duties and Responsibilities:
- Develop, maintain, and improve Continuous Integration and Continuous Deployment/Delivery (CI/CD) pipelines supporting software applications, scientific tools, and data analysis workflows.
- Containerize scientific and analytical software using Docker, Apptainer/Singularity, or similar technologies and develop reproducible processes for building, testing, and deploying container images.
- Support developers and scientific staff in deploying applications and computational workflows within Kubernetes and other existing computing environments, including configuration of application workloads, services, jobs, resource requirements, and related deployment components.
- Collaborate with DevOps, systems administration, and information technology teams to integrate project-specific applications and workflows with shared computing infrastructure.
- Implement automation for software builds, testing, deployment, dependency management, monitoring, and other recurring development and operational activities.
- Evaluate software dependencies, container images, and application environments for known vulnerabilities and work with development teams to investigate and remediate identified security issues and CVEs.
- Contribute to the evaluation, configuration, and use of shared software development services such as container registries, package repositories, artifact repositories, vulnerability scanning tools, and other software supply chain resources.
- Contribute to preparation of standard operating procedures, technical documentation, source code/workflow documentation, and reports describing computational solutions.
Required Knowledge, Skills & Abilities:
- Advanced proficiency working in Unix/Linux environments.
- Advanced proficiency using version control software such as Git to manage source code and collaborative software development.
- Demonstrated experience developing and maintaining CI/CD pipelines using GitLab CI/CD, GitHub Actions, Jenkins, or similar technologies.
- Demonstrated experience developing, building, and maintaining containerized software using Docker, Apptainer/Singularity, or similar technologies.
- Advanced proficiency with at least one programming or runtime-interpreted programming language such as Python, R, Bash, or similar.
- Experience automating software development, testing, deployment, or computational workflows.
- Experience investigating and remediating software vulnerabilities, including vulnerabilities affecting operating system packages, application dependencies, and container images.
- Familiarity with DevSecOps practices, dependency management, vulnerability scanning, and software supply chain security.
- Ability to work collaboratively with infrastructure, systems administration, security, and software development teams to deploy solutions within shared computing environments.
- Familiarity with issue and project tracking software.
- Skilled at time and priority management.
- Excellent written and oral communication skills.
- Preferred: Experience supporting bioinformatics, computational biology, data science, or other scientific computing applications.
- Preferred: Experience with bioinformatics workflow technologies such as Nextflow, Snakemake, Workflow Description Language (WDL), or similar systems.
- Preferred: Experience working with genomic, sequencing, or other large-scale biological datasets.
- Preferred: Experience with high-performance computing or other shared research computing environments.
- Preferred: Familiarity with AWS and/or Azure cloud computing.
- Preferred: Experience with package repositories, container registries, artifact repositories, software composition analysis, or vulnerability management tools.
- Preferred: Experience deploying or supporting AI/ML applications, MLOps pipelines, and model inference platforms, including locally hosted models, inference servers, or platforms such as Ollama and Open WebUI.
- Preferred: Experience developing Kubernetes deployment configurations using technologies such as Helm, Kustomize, or similar tools.
Education/Experience:
- Required: 5+ years of previous work experience in DevOps, DevSecOps, software engineering, research computing, or a related technical role.
- Required: BS/BA in Computer Science, Software Engineering, Bioinformatics, Computational Biology, Data Science, or related field, or equivalent combination of education and relevant experience.
- Preferred: MS or PhD in Computer Science, Software Engineering, Bioinformatics, Computational Biology, Data Science, or related field.
- Preferred: Experience developing or supporting computational solutions for bioinformatics, genomics, scientific research, or other data-intensive applications.
Clearance:
- This position requires that the candidate be willing and able to complete a successful background screening for a security clearance. Candidates with a current security clearance will receive preference.
Supervisory Responsibilities:
Working Conditions / Equipment:
- Ability to work in varying conditions including traditional office environments with extended sedentary periods required.
|