View on GitHub


Repository for participants of the "Python software engineering" training

Quality of software matters, whether you share it with others or not. Software should be easy to install, easy to use, and well documented. This training will cover those aspects from the perspective of the Python ecosystem. However, it is also important that software is easy to maintain, so coding style matters, API-level documentation should be available, as well as a battery of tests to ensure the software’s integrity. Of course, good design is at least as important.

Learning outcomes

When you complete this training you will


Total duration: 4 hours.

Subject Duration
introduction and motivation 5 min.
coding best practices 15 min.
exception handling 10 min.
type hints 10 min.
documenting code 10 min.
unit testing 50 min.
coffee break 10 min.
object-oriented programming 80 min.
functional programming 20 min.
design patterns discussion 20 min.
wrap up 10 min.

Training materials

Slides are available in the GitHub repository, as well as example code and hands-on material.

Target audience

This training is for you if you want robust software that is easy to understand and maintain.


You will need experience programming in Python. This is not a training that starts from scratch.

If you plan to do Python programming in a Linux or HPC environment you should be familiar with these as well.