Why I Follow CI/CD Principles When Writing Code: Building Robust and Reproducible Applications
2023-08-16 , HS 120

This talk will discuss the importance of Continuous Integration and Continuous Delivery (CI/CD) principles in the development of scientific applications, with a focus on creating robust and reproducible code that can withstand rigorous testing and scrutiny. The presentation will cover best practices for project structure and code organization, as well as strategies for ensuring reproducibility, collaboration, and managing dependencies. By implementing CI/CD principles in scientific application development processes, researchers can improve efficiency, reliability, and maintainability, ultimately accelerating research.


Scientists often face the challenge of creating robust and reproducible code that can withstand rigorous testing and scrutiny, which is essential to ensure the validity and reliability of research findings. This talk will explore how Continuous Integration and Continuous Delivery (CI/CD) principles can be applied in the context of scientific application development to help address these challenges.

The presentation will begin with the code organization for maintainability and testability. Reproducibility is a critical aspect of scientific research, and the talk will explore how version control and automated testing can help ensure that code is reproducible and that results can be validated by other researchers. Collaboration is also essential, and strategies for setting up a repository and introducing automated testing to ensure the codebase is consistent and minimise errors will be discussed.

The talk will also show the benefits of running automated tests at every stage of the development process, which can catch errors and defects early on, leading to higher quality and reduced risk of errors and inconsistencies.

Finally, during the presentation I will explore effective strategies for managing dependencies using tools like Renovate, which can automate dependency updates. By implementing CI/CD principles in scientific application development processes, scientists can improve efficiency, reliability, and maintainability, ultimately accelerating research.

In this talk, I will cover:
* The basic principles of CI/CD and how they apply to scientific application development
* Best practices for project structure and code organization to enhance maintainability and testability
* The benefits of running automated tests and ensuring reproducibility in scientific research
* How CI/CD facilitates collaboration and enables robust, error-free applications
* Effective strategies for managing dependencies with tools like Renovate


Abstract as a tweet

Learn how CI/CD principles can help scientists develop robust and reproducible code for their applications. Join me as I share best practices for project structure, automated testing, and managing dependencies to accelerate research.

Category [Scientific Applications]

Other

Expected audience expertise: Domain

none

Expected audience expertise: Python

some

As a software engineer with a degree in computational physics, Artem brings a unique perspective to the intersection of science and technology. With a passion for both computations and physics, Artem has applied his knowledge and skills to various projects, including computational fluid dynamics and fluid-structure interactions. While Artem's background is in physics, he has found a love for software development and is now a full-time software engineer. However, his passion for physics and desire to make a meaningful impact in scientific research has led him to explore how software engineering principles can best be applied in scientific projects.