Scientific Programmer III
About the Opportunity
The Scientific Programmer III develops and modernizes cloud-based software solutions that support large-scale scientific data systems and archive workflows in a remote work environment. This role focuses on migrating applications to AWS, developing Python applications, and implementing CI/CD automation to improve the reliability, scalability, and performance of scientific data processing.
Success in this role means delivering robust, well-documented solutions that efficiently manage complex scientific datasets while collaborating with scientists, engineers, and cloud architects to develop innovative, high-performing software.
What You Will Do in This Role
The Scientific Programmer III will design, develop, and optimize cloud-based software and automation solutions that support scientific data processing, modernize applications, and ensure reliable, scalable systems through collaboration, CI/CD, and AWS technologies.
Responsibilities include
- Design, develop, test, and maintain software that supports scientific data processing and archive workflows.
- Develop and maintain Python-based applications and automation tools.
- Build and enhance CI/CD pipelines to support automated software development, testing, and deployment.
- Support the migration of scientific applications and workflows from on-premises environments to AWS.
- Collaborate with scientists, software engineers, cloud architects, and system administrators to implement scalable cloud solutions.
- Develop solutions for processing, storing, and managing large scientific datasets using modern cloud technologies.
- Troubleshoot and resolve application, workflow, and deployment issues to ensure reliable system performance.
- Research, evaluate, and implement new technologies that improve system performance, scalability, and maintainability.
- Create and maintain technical documentation, software designs, and operational procedures.
- Participate in Agile development activities including sprint planning, code reviews, and team collaboration.
- Perform other duties and responsibilities as assigned.
What You Will Bring
Required qualifications
- Bachelor's degree in Computer Science, Software Engineering, Data Science, a related technical discipline, or equivalent work experience.
- Eight (8) or more years of experience developing scientific or data-intensive software applications.
- Experience developing applications using Python.
- Experience supporting CI/CD pipelines and software automation.
- Experience working in Amazon Web Services (AWS) cloud environments.
- Experience with cloud-native application development and infrastructure automation.
- Familiarity with scientific data processing and large-scale data management.
- Experience working in Agile/Scrum software development environments.
- Strong analytical, troubleshooting, written, and verbal communication skills.
Preferred qualifications
- Experience migrating applications or workflows from on-premises infrastructure to AWS.
- Experience with data lake architectures, data mesh concepts, or other modern data management approaches.
- Experience working with large-scale archive systems or scientific data repositories.
- Experience with Infrastructure as Code (e.g., Terraform, AWS CloudFormation, or AWS CDK).
- Familiarity with Git-based source control and DevOps best practices.
- Experience supporting high-performance computing (HPC) or distributed computing environments.
Work authorization/security clearance requirements
- Ability to obtain a security clearance.
Work Environment
- This work is normally completed in a remote environment.
Physical Demands
- Prolonged periods of sitting at a desk and working on a computer.
- Must be able to access and navigate each department at the organization's and client facilities.
Travel Required
- No
Proficiency Requirement
- The employee is expected to demonstrate proficiency in all essential job functions, tools, and processes related to this position within the first 90 days of employment. This includes acquiring a thorough understanding of job-specific responsibilities, systems, and workflows as outlined during onboarding and training. Failure to meet this requirement may result in additional training, reassessment, or other actions as deemed necessary by management.