diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000000000000000000000000000000000000..ff4aaf7ba3ea3a8fb702e32c5dc36dd23f2e0144
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,27 @@
+# Contributing
+
+Install Python version matching one specified in `binder/runtime.txt`.
+
+Setup development environment:
+
+    $ python -m venv .venv
+    $ source .venv/bin/activate
+    $ pip install -U pip setuptools
+    $ pip install -r binder/requirements.txt
+    $ ./binder/postBuild
+
+Register Git hooks (auto-remove output cells on commit):
+
+    $ git config core.hooksPath .hooks
+
+Launch JupyterLab:
+
+    $ jupyter lab
+
+Edit (improve) notebooks.
+
+## Upload course material gitlab.ethz.ch
+
+Use `update_course_repo.sh` to prepare official repository to be used during
+the workshop.  This script updates the official repository from the currently
+active branch.