Some things sadly come to an end: Outreachy’s Internship Achievements

Three months have gone so fast! Yesterday I had my last meeting with Sage Ross and Jonathan Morgan to talk about the end of this wonderful stage at WikiEducation thanks to Outreachy. I can’t be anything but thankful after this opportunity. I have seen my coding skills improve during this time and I’ve got a better idea of what it is to collaborate in an open source project.

The final goal of the project I worked in was to improve the Program + Education Dashboard from Wikieducation for this years Art+Feminism campaign. Tomorrow is International Women’s Day and I hope all the contributors that will join this incredible initiative to improve the visibility of women in Wikipedia will enjoy and get the most of all the new features that we made and launch during this period.

During these three months we first got the feedback of the campaign organizers to get an idea of what could be the priority of the different improvements that we wanted to develop during this time. We focused in this user case in order to be focused and get immediate feedback of the end-users that will have to deal  with the application. We can divide the different improvements in the following ones:

  • Statistics: We improved the interaction with statistics by providing better information about the timeframes they refer to, but we also enabled faster updates for the campaigns that need fresher information when they are hosting an event. We also enabled the possibility to force manually an update of the statistics so they can get the last contributors their users made to Wikimedia. We also enabled the possibility to set different timeframes for event and statistics so the event organizers can also count the contributions made after the event takes place.
  • Account requests: One problem some organizers encounters was the creation of new wikipedia accounts during the time the event was hosted. When they tried to create more than 6 accounts, their IP was blocked, making it very difficult to create all the accounts that were needed. We enabled an account request feature that will create those accounts through the dashboard IP without getting any restrictions.

  • Campaigns organization: In order to have more consistent campaigns, we also enabled the possibility to set some default values for all the courses belonging to that campaign such as a passcode or type.

Besides the actual features that we developed, I also got to learn a lot about best coding practices, I refactored code and converted some react stores to redux. I touched both Backend and Frontend and had interesting discussions in some user interviews. I learned how to write tests (both Spec and Javascript tests). By the time I write this post, I submitted 43 Pull Requests, committed 236 times, added 4505 lines of code and deleted 2422 lines of this project.

But this is not a goodbye! I will keep contributing to this great project as it is an open source one, and I hope be able to help to the next people that are jumping in. I will try to keep up to date in the available time that I will have.

In the next months I will also contribute to Diversity Tickets, a wonderful application developed in Ruby Monsters that helps the Travis Foundation to improve the diversity in Tech Conferences. My friend and colleague Jessica and me got some funding from Prototype Fund and are extremely happy and look forward the next months! I will keep you updated.

I believe that initiatives like Outreachy are wonderful and a total game changer of nowadays open source communities. But the role of the mentors inside the different projects are definitive. I am extremely glad of everything that Sage and Jonathan did for me, the meetings, help, explanations and the laughs. Sage even got to tell me which programming language he doesn’t like (hates) but my lips are sealed. They were simply great and a strong support during this period.

How to apply to Outreachy: My tips to become an intern

I am still working in my Outreachy Internship and only been part of this last round, but as it has been a wonderful experience so far, full of great work, learnings and fun, I decided to focus this blogpost in giving some tips so other people can give their best in their application (next one starts on 12nd of February!). I don’t have all the answers and I don’t belong to Outreachy or to the Free Software Conservancy Inc., but this is a list of things that worked for me.

  1. Take the time to read more about the different projects available. You can check the list of projects at Outreachy’s website and closer to the application start date, they will post more information about them. Taking your time to read about them will help you later to write a great application and, more important, find a project that you really like or believe in.
  2. Contact your mentor as soon as possible. Not all of them use the same means of communication, so find out what they prefer (email, slack, irc, github…) and let them know that you are interested in applying for the next outreachy round.
  3. Ask questions: As you know, this program aims to fight the imposter’s syndrome, but it doesn’t go away from one day to another. You may feel you are asking stupid questions, but let me tell you: there are not stupid questions! Ask any time you feel lost or something is not clear to you. I would say that this mindset should be kept in our whole life, and as well during the internship period. Asking something doesn’t make you less capable of doing it.
  4. Start contributing to the project as soon as possible, as well. You have plenty of time to do those contributions, and write an application, but the sooner you start and the more you achieve, the better. I think it’s not a matter of quantity of problems solved in the application you may be working on, but a matter of motivation.
  5. Blog about it: I don’t believe blogging about it will be considered for the final selection, but it will help you to structure your thoughts and write a better application.
  6. Think about the project as a whole. When I was writing my application, of course I was focused in the technical improvements I could achieve during the time of my internship, but afterwards I had to work in a specific project, so I had to do some research and talk to the final users. Don’t focus solely in the code, also in what you want to achieve with this changes.
  7. Be kind to yourself and to others. We want to change the open source community and make it more beginner friendly, so don’t forget that we all want to learn and everybody was a newbie sometime. And please, keep this in mind until you become a senior so you can help new coders to join your community.

As I said, I am not part of Outreachy, I am just an intern, so this are only my recommendations. Something that worked for me. If you have any questions, don’t hesitate to leave them in any comment.

As well, I have to say that the Outreachy people are extremely friendly and you can always contact them if you have any doubts about your application.

I wish you all a great contribution time!

Source: Wikimedia Commons

How reducers and actions work together

In the past weeks I have been working in several features for my internship at Outreachy that involved the creation of a Redux Reducer. As I mentioned previously, I have special interest in understanding a bit better react and redux, a chance that I have while working in this project. I would like to share some notes about it, as I think sharing documentation and knowledge is crucial to enable other people learn how to code. I have always been very impressed by the documentation and help that I am able to find on the internet and have always dreamt of doing something similar to give it back to the community.

 What’s a redux reducer? According to the official documentation, reducers specify how the application’s state changes in response to actions sent to the store. On the other hand, the actions only define that something happened but not how the application state changes.

Continue reading

Outreach dashboard optimization for EVENTS organizers

As I explained in the last post, we have spent some time to improve the User Experience of the Dashboard users, specially for event organizers. The reason why we concentrate in this kind of users is because our main focus (Art+Feminism Campaign for this year starting in March), as the these campaign basically creates different events in different parts of the world to improve the visibility of female artists in Wikipedia.

Continue reading

New Year, New Post: Improving the UX for the Dashboard Users

Due to the Season Holidays, it’s been very calm in the past weeks. My internship is going great till date: I keep learning, enthusiastic and curious about all the tasks that I work on.

More specifically, in the past weeks I’ve been working in an specific feature, that consist of adding a default course type to the dashboard campaigns. There’s the possibility of adding campaigns to the dashboard that allow the users to organize their programs better. In this case we wanted to add the option to add a default course type to them, so it would be easier for the campaign organizers to enjoy the specific features of each kind of program.

This need was acknowledged inside the framework of the A+F Program. More specifically, the A+F Program organizes different editathons (edit marathons), that take place in a determined timeframe and different users write or edit articles on different topics.

Continue reading

How to solve: Rails db:migration files accidentally deleted

Last week I was working on different topics in different branches. I have to admit that one of my main problem while coding is that I forget to create new branches constantly. What happened last week was that I wanted to work in an issue that required a rails migration to create a new field to a database. I did it and then realized I was in the wrong branch. So I deleted the db file in charge of that migration.

Once I cleant my git mess and I continue working on the topic, I realized that in order to commit those changes to master, I needed the file I had deleted.

This is the typical problem that would have taken me ages to fix if I didn’t have a mentor. And I think it’s one of the main problems of underrepresented people in Tech. Due to our Imposter Syndrome (and my juniority) sometimes I am afraid of asking things so the people realize I don’t deserve the place where I am. It took me ages (in fact, the same time it required me to start seriously coding) to realize that I questions are not dumb, neither is not knowing some basics. Having some holes in the overview picture it’s totally legit, and something that I think it will happen my whole professional life (and also personal, but that’s another story).

Continue reading

My first contribution to FOSS (Free Open Source Software)

It’s been a while since the first time I got in contact with Free software. I don’t remember the first time I heard about what it was, but I remember feeling extremely interested about it. However, I never dared to work in any Open Source Project: I am a quiet/shy person and it felt somehow intimidating, but I have to admit that also have doubts about my technical skills.

During the last month I have been doing my first contributions to an Open Source project: Wikimedia, more specifically the Program & Events Dashboard. I am so glad I did! Now I feel more empowered and capable of working in new projects and software development.

Continue reading