## **Installing and using an open source OS (Kali Linux)**
Up until last summer, I've strictly used Windows as my operating system but I finally reached my breaking point and changed to a Linux distribution. Windows just wasn't doing it for me anymore because my OS had become extremely slow. Not only that, but as a CS student, I have many university projects that would benefit a lot from a Linux setup whereas with WIndows, I always had to work around the OS to try and make what I wanted to work on my OS. Other than that, most CS ressources online use Linux as their main OS when explaining things.
However, the main reason why I decided to permenantly switch to Linux is because I had a very big interest in networking and ethical hacking thanks to a TV show called Mr Robot and I wanted to fully dip my toes into that world and master Linux. I went for Kali Linux as my distribution since it is considered as the best when it comes to ethical hacking due to all the in-built tools it contains out of the box.
This was my very first contribution to an open source project so I really wanted to do it right. My main goal was to contribute to a visual change in the UI of an app or website because I want to be able to use the app in a few months time, see my change in production and be proud of the accomplishement. However, I didn't want to pick a massively complicated change and bite off more than I could choose. WIth that in mind, I used a very handy website that scours Gitlab and finds issues tagged with "good-first-issue" and that's when I found the [Zulip repo](https://github.com/zulip/zulip-mobile). To make it short, Zulip is team chat app that is basically a more "serious" version of Slack and Discord. They claim to be more organized and effective than other apps.
I chose to work on this repo because the contribution was required in the mobile app and I am very interested in mobile app developpement. On top of that, I have been focusing on improving my React and React-Native skills.
### ***My Contribution***
The [issue](https://github.com/zulip/zulip-mobile/issues/5534) was pretty straight forward. Zulip has a web app and a mobile app. On the web app, users are able to see their role in the organization by checking out their user's profile where they would find their role right under their email address. I had to consistently replicate this on the mobile app and display their role in the user's profile screen.
I found this issue on November the 7th. At first, the person who opened the issue asked me to describe my approach to the issue with a rough plan as that was the agreed upon way by the community to start contributing to Zulip. So to do so, I had to run the application locally and inspect the code.
This took more or less 3 days because I kept on having dependency related problems and my React Native installation was somehow wrong for many reasons. After hours of research, I was finally able to run the project locally.
After having given the my rough idea, the issue was assigned to me on my birthday (November 15th). Not only that but a developer, who seemingly works full time on the project, even gave me his envisioned approach which I took a lot of inspiration from.
While working on this project, all questions had to be asked on in the Zulip development community in Zulip. [Here](https://chat.zulip.org/#narrow/stream/48-mobile/topic/translation/near/1467977) is a question that I asked in the community regarding my issue. After having forked the project and implemented the changes, I opened my [pull request](https://github.com/zulip/zulip-mobile/pull/5567) on November the 22nd. At the beginning, the back and forth was relatively fast but then it slowed down and at the time of writing, my PR has not been approved (but it looks like it will be, just with some minor changes). From what I could get from the reviews, it seems like my code worked perfectly well but that I had to work on refactoring both the code and the commit to fit the "Zulip way", which is a very valid critique! I had to go to the Zulip documentation to learn how to write correct commits. Details of my changes and reviews can be found in the PR.
## **Conclusion**
I'm really glad that I was able to contribute to an open-source project. It was a very interresting experience and it has made me even more grateful to all the other contributors on open source software that I use. As the saying goes, not all heroes wear capes.
### **Lessons learned**
Even though I don't see myself contributing too much to open-source problems, I still learned many valuable lessons.
* The community genuinely wants to help you. Don't hesitate to ask as many questions as possible.
* Being able to run a foreign project locally is a skill in and of itself. It will take TIME.
* Make sure to read the documentation to save a lot of time trying to fix something that was avoidable if the documentation was respected from the get go.
* Don't underestimate your contribution, no matter how small it is. It might have a huge impact.
* Always tell the community what you are working on before working on it.
# **The book I read**
For this course, I decided to pick up a book that I bought a few years ago but never actually finished. It's called "*Rise of the Robots: Technology and the Threat of a Jobless Future*" by Martin Ford and it talks about whether or not the acceleration of technological advances will negatively impact the job market. I picked this book because with the COVID pandemic, we have seen a pretty significant shift when it comes to how depend we have become on technology, for example with the increase of remote work and its technological implications etc. Martin Ford argues that advances in automation, AI and technology as a whole could lead to significant job displacement in the near future, and that this could have major social and economic consequences. Some positive and some negative.
I really liked this book because it gave me a very thought-provoking look at the potential impact of accelerating technology on the job market and it made me think and raise questions on how we, as a society, should address these upcoming challenges like inequality and social unrest in a way that will benefit us all. One interesting way that I learned from the book to combat this is having a UBI (universal basic income) to provide some sort of safety net for those who lose their jobs due to automation.