In this role you will work closely with a team of computer scientists, software engineers, and clinical research staff to develop and implement CI/CD workflows/pipelines. Success at this position requires a strong background in DevOps, ability to work collaboratively in teams, and quick delivery to ensure timely deployment of software. You will also gain experience and skills in managing and automating software deployment and build expertise in data-centric workflow development and management.
Skills requirements:
- Proficiency in CI/CD tools: The contractor should have experience with tools such as Jenkins, Travis CI, CircleCI, or GitLab CI/CD. They should be able to create and manage pipelines for building, testing, and deploying applications.
- Familiarity with version control systems: The contractor should be familiar with version control systems such as Git and understand how to use them to manage code changes and track revisions.
- Experience with testing frameworks: The contractor should be proficient in testing frameworks such as JUnit, Selenium, or Cucumber. They should be able to create automated tests and integrate them into the CI/CD pipeline.
- Knowledge of scripting languages: The contractor should have experience with scripting languages such as Bash, Python, or Ruby. They should be able to write scripts to automate testing and deployment tasks.
- Understanding of cloud infrastructure: The contractor should have a good understanding of cloud infrastructure and be familiar with cloud platforms such as AWS, Azure, or Google Cloud Platform. They should understand how to use cloud services such as EC2, S3, and RDS to build and deploy applications.
- Advanced degree in computer science, or a related field, or equivalent experience. 2-3 years of experience.
Responsibilities:
- Develop a testing strategy: You should be able to create a testing strategy that ensures that the code is properly tested and meets the requirements. This should include unit testing, integration testing, and end-to-end testing.
- Implement automated testing: You should be able to set up an automated testing framework that can run tests automatically whenever new code is pushed to the repository. This should include both functional and non-functional testing.
- Ensure code quality: You should be able to implement tools and processes that ensure code quality, such as linting, code reviews, and continuous integration.
- Develop a deployment strategy: You should be able to create a deployment strategy that allows for quick and reliable deployment of new code. This should include a deployment pipeline that is automated and includes various stages (such as development, staging, and production).
- Implement continuous deployment: You should be able to set up a continuous deployment pipeline that automatically deploys code to the production environment when all tests pass.
- Ensure monitoring and logging: You should be able to implement monitoring and logging tools to track the performance and health of the application. This should include setting up alerts to notify the team in case of issues.
- Document the process: You should document the automated testing and deployment process, including the tools used and the steps taken, so that the team can understand and maintain the system in the future.