Slide 1

Slide 1 text

Isabel Costa, Software Developer, Impresa March 7th, 2019 Journey as a Google Summer of Code student

Slide 2

Slide 2 text

2 ©2017 AnitaB.org I am ... ● Software Developer from Portugal ● GSoC2018 student with Systers ● Open Source enthusiast ● Maintainer at Systers Open Source

Slide 3

Slide 3 text

3 ©2017 AnitaB.org What is Google Summer of Code? “Google Summer of Code is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3 month programming project during their break from school.” from https://summerofcode.withgoogle.com/

Slide 4

Slide 4 text

Researching Organizations & Projects

Slide 5

Slide 5 text

5 ©2017 AnitaB.org Looking up organizations

Slide 6

Slide 6 text

6 ©2017 AnitaB.org Choosing Systers Community

Slide 7

Slide 7 text

7 ©2017 AnitaB.org What about the project?

Slide 8

Slide 8 text

8 ©2017 AnitaB.org Came up with an idea

Slide 9

Slide 9 text

9 ©2017 AnitaB.org Came up with an idea Help women in tech mentor each other during a certain period of time about career development topics.

Slide 10

Slide 10 text

10 ©2017 AnitaB.org Came up with an idea Mission: Help women in tech mentor each other during a certain period of time about career development topics. Project: Build a Mobile application to find mentors and mentees interested in the same topics, to later be paired and learn together.

Slide 11

Slide 11 text

11 ©2017 AnitaB.org Started crafting the Proposal Answered questions about … ● my background ● experience with open source ● experience with remote work Started describing my project … ● motivation ● application features ● project timeline with deliverables

Slide 12

Slide 12 text

12 ©2017 AnitaB.org

Slide 13

Slide 13 text

13 ©2017 AnitaB.org

Slide 14

Slide 14 text

14 ©2017 AnitaB.org

Slide 15

Slide 15 text

15 ©2017 AnitaB.org Engaging with community Contributing however I could … ● helped other students ● tested projects ● reported an issue and submitted a PR for that ● participated on Slack discussions and open sessions

Slide 16

Slide 16 text

Application Phase

Slide 17

Slide 17 text

17 ©2017 AnitaB.org Pitched the idea to the community

Slide 18

Slide 18 text

18 ©2017 AnitaB.org Group interview

Slide 19

Slide 19 text

19 ©2017 AnitaB.org Getting proposal review ... Mentors and Admins started reviewing and leaving notes on my proposal!

Slide 20

Slide 20 text

20 ©2017 AnitaB.org Improving Proposal According to feedback ... ● Improving Proposal according to review ● Make it stronger and stronger ● Improving Timeline ● Defining backend API (high level) ● Data modeling ● Defining Required, Nice to have and Future features ● Improved Motivation, Benefits for the community, … ● Ended up with 19 pages proposal

Slide 21

Slide 21 text

21 ©2017 AnitaB.org Improving Proposal

Slide 22

Slide 22 text

22 ©2017 AnitaB.org Improving Proposal

Slide 23

Slide 23 text

23 ©2017 AnitaB.org Continue contributing ... After proposal submission I continued engaging … ● created a Google Docs to document Community Open Sessions ● participated in Slack discussions ● started conversations about the GitHub Wiki sidebar ● thought of ways to improve documentation

Slide 24

Slide 24 text

24 ©2017 AnitaB.org April 23rd I was accepted into Google Summer of Code!

Slide 25

Slide 25 text

Community Bonding

Slide 26

Slide 26 text

26 ©2017 AnitaB.org Community Bonding Time to ... ● Understand Student & Mentor Expectations ● Refine the first coding phase tasks ● Created an interactive app wireframe ● Have first meetings with mentors ● Get to know mentors, admins and students ● Refining Database model ● Get familiar with workflow and tools

Slide 27

Slide 27 text

27 ©2017 AnitaB.org Student Expectations Summary of expectations ... ● Discuss project in public ● Share 3 scrums check-ins per week on Slack ● Write blog post per week ● Write weekly report ● Attend weekly meetings (thursday) ● Follow code of conduct

Slide 28

Slide 28 text

28 ©2017 AnitaB.org Scrum Check-in

Slide 29

Slide 29 text

29 ©2017 AnitaB.org Tools Communication Work Organization

Slide 30

Slide 30 text

Coding Phase

Slide 31

Slide 31 text

31 ©2017 AnitaB.org Coding Phase I Early beginnings … ● Learned how to build a flask app w/ python ● Learned how to work on Backend ● Learned more about Open Source workflow ● Learned how to do tests for flask apps ● Build first public API methods ● Getting used to writing blog, weekly reports, scrum check-ins

Slide 32

Slide 32 text

32 ©2017 AnitaB.org Coding Phase II Becoming more familiar with flask … ● Continued building backend API ● Refined Data Model ● Presented a Demo as preparation for final demo

Slide 33

Slide 33 text

33 ©2017 AnitaB.org Coding Phase III Began developing Android app … ● Created QA test cases for the community ● Fixed bugs I found and reported by others ● Studied Android App architectures ● Defined Minimum Functional Product ○ to prioritize tasks ● Started building initial screens

Slide 34

Slide 34 text

34 ©2017 AnitaB.org Quality Assurance

Slide 35

Slide 35 text

35 ©2017 AnitaB.org UI / UX Design

Slide 36

Slide 36 text

36 ©2017 AnitaB.org I was doing many things Documentation Quality Assurance Research / Outreach Design Code Management

Slide 37

Slide 37 text

37 ©2017 AnitaB.org Documentation GitHub Wiki ● Meeting Minutes docs ● Quality Assurance docs ● Backend & Android docs ● Blog Posts ● Weekly Reports ● Scrum Check-ins

Slide 38

Slide 38 text

Final Week(s)

Slide 39

Slide 39 text

39 ©2017 AnitaB.org Final Week(s) Wrapping up work ... ● Submit final code ● Complete final Evaluation ● Present Final Demo on YouTube ● Write Final Blog Post ● Create Final Product GitHub Gist ● Document future work

Slide 40

Slide 40 text

After Google Summer of Code

Slide 41

Slide 41 text

41 ©2017 AnitaB.org End of GSoC journey ● Was nominated as Most Outstanding Student ● Passed 3rd Evaluation Phase ● Finally took some time to rest ● Became Mentorship System Maintainer

Slide 42

Slide 42 text

Final Thoughts ...

Slide 43

Slide 43 text

43 ©2017 AnitaB.org What did I learn? So many things ... ● Open Source is not just about code ● Contributing to Open Source takes effort ● Not all communities and project work the same way ● My “passion” for Documentation ● Working remote work is a powerful thing

Slide 44

Slide 44 text

44 ©2017 AnitaB.org Impact on my career and my life ... ● Went represent Systers Open Source organization at GHC 2019 ● Learn how to develop a Backend REST API ● Became an Open Source maintainer ● Did 2 public talks about Open Source (at a meetup and conference) ● Met some incredible people

Slide 45

Slide 45 text

45 ©2017 AnitaB.org More information ... systers/mentorship-android About my journey: ● Isabel Costa GSoC Medium Blog ● GitHub Wiki weekly reports ● Scrum Report check-ins About Systers Open Source: ● systers.io ● github.com/systers ● Systers Open Source Medium systers/mentorship-backend

Slide 46

Slide 46 text

Thank you @isabelcmdcosta @isabelcosta isabelcosta.github.io