Software Development Training Workshops

May 23-27, 2022 and July 11-15, 2022

Session times for July workshop:

5am-8:30am PDT / 8am-11:30am EDT
1pm-4:30pm British Summer Time / 2pm-5:30pm CEST
3pm-6:30pm East Africa Time
5:30-9pm Indian Standard Time

July 12-16, 2022, midnight-3:30am New Zealand Standard Time

The goal of this series of workshops is to provide training in software development skills going beyond the level typically taught in astronomy. Many of the skills that will be covered during the workshop can be applied to any programming language, but the course will particularly concentrate on Python, as it has become the language of choice for much of astrophysics.

These courses are based on material developed by Software Carpentry, and are presented by the Software Sustainability Institute.


All available places on this course have now been allocated.

The workshop will be held using the online meeting platform Zoom. The same Zoom connection will be used for each of the five days of the workshop.

Please register to receive the connection details.

The format of the sessions will be a combination of tuition by the course instructors and hands-on coding on the participant's own machine. Instructors will be available throughout the daily sessions to answer questions live.

For those in timezones where in-person attendance may be difficult, the tuition sections each day will be recorded and posted on the "Course Content" tab. You are encouraged to review these recordings in order to catch up with the sessions each day.

The #tvs-software-training channel on the LSSTC Slack system is available for this course and participants are encouraged to post questions there; alternatively you can email the instructors.

Rubin Observatory enforces the AURA Harassment and Code of Conduct Policy. Harassment and unprofessional conduct (including the use of offensive language) of any kind is not permitted at any time and should be reported per the instructions in the Reporting section of this page.

Rubin Science Collaboration members are also expected to adhere to their Collaboration's Codes of Conduct.

Our Values

Rubin Observatory adheres to the following principles in order to provide a learning environment that produces rigor and excellence:

Be Kind

Acting with and encouraging kindness strengthens individuals, relationships, and communities.


An inclusive, collaborative environment is best achieved when there is mutual trust, based upon honest behavior, throughout the community.


Inclusive environments foster excellence by challenging us to consider a variety of viewpoints and approaches. We honor alternate viewpoints as opportunities for discussion and learning, and therefore treat others with respect, even if we disagree.


In a diverse community, differences between people are recognized and acknowledged as assets. Our community is stronger, more creative, and more innovative because it is fueled by a broad range of ideas and perspectives.


Rubin recognizes the importance of actively including and encouraging involvement from all corners; diversity is only a benefit if all members feel empowered to participate. Quoting from the AAS guidelines: "Scientists should work to provide an environment that encourages the free expression and exchange of scientific ideas. They should promote equality of opportunity and fair treatment for all their colleagues, regardless of gender, race, ethnic and national origin (including Indigenous Peoples), religion, age, marital status, sexual orientation, gender identity and expression, disability, veteran status, etc. Scientific ability must be respected wherever it is found."

Inclusive environment

Guidelines are given to presenters encourage them to use color palettes and fonts that are suitable for color-blind and dyslexic participants. Dedicated Slack channels and social platforms with a dedicated hashtag will help people to follow essential parts of the discussions; this meeting's hashtag is #hst-lsst-sci-prep on the LSST Slack Team.

Participants are advised to be mindful and respectful of cultural differences between the participants. Many countries with very different cultural backgrounds, languages, and timezones are represented at this virtual meeting, and it is every participant’s duty to make sure everybody feels welcome in our community. The organizers have made an attempt to schedule the meeting at times that maximize participation across the globe but recognize that the schedule will not be suitable for everyone. Session recordings will be made available.

The program organizers firmly reject all kinds of abusive behavior. The organizers have worked towards providing a welcoming, safe environment that encourages the free expression and exchange of ideas of all the participants. Every attendee is expected to make their individual contribution towards a respectful and inclusive meeting climate. Any discriminatory behavior against colleagues on any basis, such as gender, gender identity, race, ethnic background, national origin, religion, political affiliation, age, marital status, sexual orientation, disabilities or any other reason will not be tolerated during any Rubin Observatory event.

All sessions may be recorded. As a presenter or participant of the meeting, your image and/or your voice may appear in recordings that may be publicly accessible. If you prefer your image not to appear, presenters and participants are welcome to keep the video muted. As a participant, to avoid your voice being recorded you may consider asking questions in the chat or on slack.

Presenters or attendees acting inappropriately or using inappropriate language may be muted (video, voice, chat) or removed from the meeting by the moderator.

Reporting bullying, harassment or aggression at the Workshop

The Program Leads, Rachel Street and Federica Bianco, (rstreet at, fbianco at will act as the designated contact people for reporting instances of bullying, harassment, or aggression.

In the case that an event is reported, and with the approval of the reporting person, the designated contact person will approach the offending person(s) to discuss how their behavior is causing distress to other participants and remind them of the code of conduct applicable to all participants. If more serious measures are needed, the designated contact person should inform the reporting person(s) of the procedure to follow in these cases.

Should a participant witness events of bullying, harassment or aggression, the recommendation is to contact the person who suffered the abuse to show support, ask how they are doing, and possibly suggest for them to talk to one of the designated contact people. The decision to approach the contact person should, however, ultimately be left to the the person who suffered the abuse.

Principles of Engagement

The following are a few basic social rules, adapted from those of the Recurse Center. These rules make explicit certain norms of social behavior that help uphold our values stated in the Code of Conduct above, as well as the ethical guidelines we endorse. If you mess up on any of the below, don’t panic: we all make mistakes sometimes. Apologize, reflect, move forward. If someone points out that you have engaged in this behavior, it can be tempting to become defensive—but instead, apologize, reflect a moment, and move on.

No -isms

We explicitly ban racism, sexism, homophobia, transphobia, and other kinds of bias— whether these behaviors are overt or subtle. Subtle -isms can be particularly tricky, as they are often unconscious behaviors we engage in by mistake, and are sometimes caused by conflicting norms between cultures. To use an example from Recurse, saying "It's so easy my grandmother could do it" is a subtle -ism. Refrain from equating any category of people to a specific behavior.

Raise All Voices

During sessions and discussions, pay attention to who is contributing. Chairs are encouraged to be conscious of their biases and avoid preferentially selecting some people and/or paying attention to only some parts of the room. Discreetly invite contributions from quieter members of the group, making sure you are not embarassing them or drawing undesirable attention (ask "what do junior people think" or "people from smaller colleges" for example) and be conscientious of not dominating the conversation. We understand that it can be exciting to discuss a new idea, but always strive to listen (rather than just wait your turn to speak).

Take time to explain and do not belittle others

In an environment where participants have different backgrounds and knowledge, it is very important that people feel comfortable saying “I don’t know” or “I don’t understand.” Therefore, please do not act surprised when someone says they don’t know something, whether it is regarding a technical or non-technical subject (e.g. “What?! I can’t believe you don’t know what X is!”). Quoting from Recurse: "Feigning surprise has absolutely no social or educational benefit—instead, take time to explain so that all can follow and participate in the conversation.

Choose constructive, rather than demeaning reactions

If you experience these behaviors during the course of the meeting, you should feel free to bring it up directly with the person, or if it’s more comfortable, point out the behavior to the meeting organizers or one of the designated contacts mentioned in the reporting section above.

Thank you to Lucianne Walkowicz and Federica Bianco for contributing resource documents and language to this policy.

In addition to online meeting sessions, we will communicate with workshop participants primarily through email and Slack.

Workshop attendees are encouraged to subscribe to the LSST Slack Team channel #tvs-software-training. Those who are new to Rubin are encouraged to contact Federica Bianco (fbianco at for access.

Course Materials and Session Recordings

This course will follow the material in the Intermediate Research Software Development in Python course developed by Software Carpentry, and are presented by the Software Sustainability Institute.

All of the course materials are available for reference online through this link.

All participants should ensure that they meet the course prerequistes (listed at the link above) before attending.

Set-up instructions - complete these before the course

Course Syllabus

Link to folder of shared documents

Team sign-up sheet

July 11 Section 1 Recording of introductory session
Slides from intro session
Q&A document for Day 1
Training materials for Day 1: Setting Up Environment For Collaborative Code Development
July 12 Section 2 Recording of introductory session
Recording of review/Q&A session
Q&A document for Day 2
Training materials for Day 2: Ensuring Correctness of Software at Scale
July 13 Section 3 Recording of introductory session
Recording of review/Q&A session
Q&A document for Day 3
Training materials for Day 3: Software Architecture and Design
Team sign-up sheet
July 14 Sections 1-3 Recording of introductory session
Recording of review/Q&A session
Q&A document for Day 4
Catch up day: continue with materials from Days 1-3. Optional material under "Extras" tabs is available for those who want to go further
July 15 Section 4 Recording of introductory session
Recording of review/Q&A session
Q&A document for Day 5
Training materials for Day 5: Improving and Managing Software Over its Lifetime