Phoenixgyaan icon

#4

My experience at Fedora via Outreachy

Fedora Experience

Firstly, what's Outreachy?

Outreachy is a program that provides internships to work in Free and Open Source Software (FOSS). Outreachy internships are open to applicants around the world. Interns work remotely, and are not required to move. Interns are paid a stipend of $5,500 USD for the three month internship. Interns have a $500 USD travel stipend to attend conferences or events.

How did I get into it?

I was looking for a remote job (more on this in another blog) and have been applying to many positions that I thought I would fit in. If you have applied to jobs, you would know that this process is not very forgiving. Most of the applications had no response, and some others already had the positions filled (I don't know why was the job listing not taken down 😕).

During this process I was actively learning new things, mostly JS based since my basic stack is HTML-CSS-JS. So I was learning NodeJs, MongoDB, React to build up my skill-set and get better at what I want to do.

And then, one fine day, a newsletter announcing the opening of their application process arrived in my inbox. It could have not arrived at a better time than this. I would say that I subscribed to their newsletter and then forgot that I did it (It's because they do not spam your inbox 😇). But I feel so happy that I did subscribe.

This was a perfect opportunity for me. After weeks of feeling down, this was the perfect thing that got me back up on my toes.

I saw the past projects and saw that they did have projects for my stack, and I could not be more relieved.

So, I applied for the Initial application and waited for it to get accepted; which did in a few days itself. This application is basically to get some basic information about you and your availability during the internship period. Yes, you have to be available full-time for the period of internship.

Applying to Fedora

While I was waiting for my application to get accepted, I went through their project listings to look for which one would be a perfect fit for me. As soon as I got accepted, I jumped in right away.

Fedora happiness packets was the project that felt like a perfect fit for my skills.

The skill requirement were:

  1. Python and Django
  2. HTML / CSS / JS
  3. UI / UX Design

While I had no experience in the world of Python (or Django), the other two requirements were right up my alley. So I decided to give it a go and started with the setup.

The setup process

If you have worked on a project before, you might be aware that this is basically the first thing to do. Since to work on the codebase, you need to have the code on your system, which is not a mere copy-paste process.

And I did run into problems while setting up the codebase.

I had to download a few applications to get things to work. Then while setting up, I had to make an account on Pagure which was where the codebase resided, add an ssh for the git command to work as intended, install Python 2.x on the system (I had 3.x, but that was not supported yet), pull the repository to local system.

Right off the bat, I got my first issue; a '.' is not recognized as an internal or external command, operable program or batch file. error.

This had a simple solution, just removing the ./ before the filenames in the commands did the trick.

Then, there was the next issue; a file not found issue, which I was not very sure why it occured since the file was right in front of me. I thought of asking the mentors, but then decided to first look for a possible solution myself.

After digging through various links and Stack Overflow (obviously) I got the solution. It was an error due to the line endings being CRLF instead of LF, which was because me being on a Windows system.

The rest of the process went smoothly, and I was able to get the project up and running 🎉.

The next issue occured when building the code after making changes to files. This was resolved by changing the DNS setting in the Docker application.

Now that everything was up and running as intended, it was time to solve those bugs.

Bugs/Issues solved

I won't go into much detail for the bugs, but would link them here if you want to have a look 😄.

  1. Center-aligning the sidebar elements Link
  2. Logo scaling for mobile devices Link
  3. Made separators of uniform width Link
  4. Setup document added for Windows environment Link
  5. Updating instructions for Windows development environment setup Link
  6. Updated the setup docs to suggest user to use ssh during cloning the repo Link
  7. Updated Windows setup document Link
  8. Updated documents by removed skippable steps from setup document Link
  9. CSS variables added for repeating color values Link
  10. Button styles changed Link
  11. Removing box-shadow from the footer Link
  12. Added styles for current page indication on sidebar Link
  13. User sub-menu added to sidebar + focus issue fixed Link

Learnings from this experience

The things I learned in this small contribution window has been immense. There were more value learnings than technical ones.

If I were to list them down, they would be :

  1. Open-source does not discriminate.

    This was my first full-fledged Open-source experience and it was way better than what I expected it to be. It has been really helpful to know that Open-source projects do not discriminate on any basis, and take contribution from whoever is willing to contribute and help make the project better.

  2. The Fedora community is amazing.

    When I started contributing, I was unsure about how to proceed with things. The mentors have been very patience with new-comers and helped along the way to make thing easier for us.

    Justin W. Flory has been of immense help from the very start of the process and throughout it as well. Giving feedback, suggesting improvements, helping with links to details for a particular task, even for something like the basics of git ; he has been helping all of us at every step.

    (It's because of him that i am now comfortable with git commands like squash, merge and rebase.)

    One of the best qualities I learned from him, which I (hopefully ) have taken forward with me is the way to communicate (PR/comments/issues) in a manner that the actual meaning of the conversation is conveyed without the other person feeling bad or beating the person down for being a beginner and asking beginner questions.

    If I made any suggestions, he would happily welcome them. At times, if the need was not clear would ask me for more details. I would explain him my perspective on what can be accomplished by making the suggested changes and if were reasonable, he would accept them and ask me to move forward with it. If not, he would just tell me the reasons for it, and I never felt disheartened when some suggestions would not go forward, infact I always had a good enough explanation for those.

    It's mostly thanks to him that I've had such a wonderfully welcoming experience during this whole process.

  3. Helping others felt really good.

    One of the other things that I was able to help with was helping other contributors who arrived after me getting started.

    I was not able to help much on the Python front of issues, but when someone needed help with front-end related tasks, I made it a point to help them in all ways possible.

    Also, since The mentors and contributors were in different timezones, I would at times help other contributors where possible by looking at the changes (if related to front-end) and suggesting improvements if needed; or looking at the PR and if there are multiple commits, suggesting to squash commits by linking them to helpful articles (which again, was shared by Justin when I needed them); or helping them any way possible that would add value to the conversation. This (I hope) helped in the contributors not feeling leftout when mentors were not readily available and on weekends.

Conclusion

My experience in this whole process has been very much beyond what I expected it to be. It would be an understatement to say that it was a good experience.

It was an amazing experience with an even more amazing community.

Now I just have my fingers crossed for the final announcement of selected candidates. Those selected will surely have a great time at the internship. I just hope to be one of those lucky ones.