My name is Aanyu Deborah Oduman. I am 23, and I work and live in Uganda. I just recently finished studying for my bachelor’s degree in Computer Engineering from Makerere University, Kampala, and I am slated to graduate in mid-March.
For the past three months, I have been contributing to Mixxx in improving their documentation. The goal is to make the Mixxx software easier to use especially to the new user by making the manual easy to understand and follow. I have also been making video tutorials for the Mixxx YouTube channel; videos that will act as a guide for Mixxx users to follow and make great mixes.
I have always taken a keen interest in tech, but I didn’t get to fully explore it until I joined the university and enrolled in a Computer Engineering course High school provided a couple of opportunities in robotics and innovation, but with the limited resources and the vast number of students, the time was never enough to learn and master a new skill. But even with the limited resources, I am grateful to have had the chance to learn how to build lego prototypes and write simple programs for them.
I started learning C+ and Python, as part of the engineering curriculum and this foundation propelled me into wanting to learn more about programming and seeing what else I could do with code. With these basics, I enrolled in a couple of coding bootcamps and attended a few seminars in aviation and software development. I applied to the Andela bootcamps, just when the company was still new and we were just getting to know about the awesome tech startup. It is here that I learned how to use HTML, and CSS – things that were not taught in my engineering course.
After a while, I applied to the Google-ALC training programs where we were given free access to some of the best coding courses on Pluralsight. I learned more about HTML5, CSS, Bootstrap and Python and created my first website using Flask.
I worked on a few other projects alongside school, though, with the tight schedule, I didn’t get to do it consistently until the lockdown of March 2020. COVID-19 came with a lot of downsides, but I was fortunate that it came as a blessing in disguise for me. I was stuck home with nothing else to do but bury my head in the heaps of programming languages and stacks. I was finally able to put my HTML, CSS, JS and Python knowledge to use and that’s when I learned Frontend Web development with ReactJS in a 3-month remote internship that taught me everything I know about Frontend web development. The program was continued in a second 4-month (or more) internship where they taught Backend with NodeJS, and finally, full-stack web development with MongoDB, ExpressJS, ReactJS, and NodeJS.
Around the same period, I had the honour of participating in the #BuildforSDGs challenge; Cohort 2. The #BuildforSDGs program is committed to helping empower people to build real-world, locally and relevant solutions focused on the Sustainable Development Goals (SDGs) while gaining skills needed to advance in one’s career. I got to collaborate with really talented developers from all over Africa and received priceless mentorship from the experts at Andela and Facebook.
Shortly after, towards the end of the program, I started applying for the Outreachy FOSS internship, and this where I am now.
The skills that I have learned through working with Mixxx
The Outreachy internship with Mixxx introduced me to Free and Open-Source Software. I had never contributed to FOSS before the program, let alone knowing what the term meant.
Through the internship working with Mixxx, I have gained experience in technical writing on a larger scale, and with a more recognized project. I had only used markdown before while working with git, but now, I get to use markdown and reStructuredText for much greater work.
I am getting to understand more about how to use Git, especially on an active project with many (experienced) contributors. I am more comfortable with git now than I used to be. I think it is safe to say that I can extricate myself from sticky git errors and I understand git tree structures much better.
I have gained more confidence in my skills as a video and content creator, especially for technical projects such as Mixxx. I understand better how to use video editing tools to make great YouTube tutorials. I know better how to plan the videos such that they are easily understandable by the new Mixxx user, and this came with learning script writing as well.
I have learned more about usability, in the context of how easy software should be to understand and to use by people new to them. With every new addition that I make to the Mixxx manual, I understand more about how the software works and the GUI aspects of it.
The list of skills that I have learned through the Mixxx internship is quite endless. I know now how to send files to another computer using OpenSSH and rsync in a command-line – something that might be easy for Linux users to do. I have a better understanding of how Open-source software communities operate and how to get started contributing to Open-Source software. Not forgetting the confidence that I have gained through the interactions that I have had with the various contributors in the community. I have come to appreciate teamwork more, and the importance of asking for help when I need it.
What next? What are my career goals?
I love contributing to software applications that people use in their everyday lives. I have loved receiving immediate feedback on my technical writing and video editing skills in this internship. I have loved having a mentor who I can turn to for guidance about most things open source related. Open source embodies some very positive aspects of the internet – and that is collaboration, knowledge and skill-sharing towards a common goal. The results are impressive and demonstrate what can be achieved from small contributions of time and effort by a large number of people.
I would love to continue being a part of the open-source contributors’ community and adding my input to various open-source projects. I look forward to exploring different open-source internship programs such as the Major League Hacking open-source internship program, Google Season of Docs, Google Summer of Code, among other open-source opportunities. I would love to grow my experience in working with various software and learn from highly experienced and long-standing members of the Open-source community.
I look forward to strengthening my skills in Frontend web development, and eventually Backend web development. During the lockdown period, I started off learning React JS and I was able to work on a couple of personal projects. I want to take it to the next level and learn more about things like Continuous Integration and Continuous Deployment (CI/CD), test-driven development (TDD), shipping apps using Docker among other things. I want to get more comfortable with using public APIs in the applications that I create (this has always been tricky for me). I also look forward to learning how to use Django for backend development and eventually get comfortable with it. I want to strengthen my skills in UI/UX design and incorporate this with the frontend dev stack and finally, if the opportunity presents itself, I will contribute to an Open source project using some of the technologies in the MERN stack or in UI/UX or even in Django or Flask.
What interpersonal skills make me a good collaborative member?
I am open to and accepting of new ideas. When people get together to discuss a project, different ideas come from different perspectives and areas of expertise, so there’s inevitably going to be a flurry of ideas on the table about how to proceed—ideas that’ll be unfamiliar, new, exciting, and possibly difficult to understand. As a naturally curious person, I thrive in this kind of environment.
I try to make sure to communicate openly and clearly with other contributors. I am mindful of different communication styles and I adapt the way I communicate accordingly.
Fostering a collaborative environment means making room for all types of communication and communicators. I love that the collaborative process in open source usually incorporates alternative ways of communicating, otherwise the most outspoken people would steal the show.
One of the things about contributing to open-source programs remotely is that no one will be physically around to push you to do anything or get work done. The process is, for the most part, self-paced and I believe it takes a certain level of organization to make valuable contributions to a project. Throughout the Outreachy internship working with Mixxx, I have kept myself organized, assigning myself tasks daily and managing my time effectively. I try to take my organization beyond just doing what I’m assigned but taking the initiative to find out what needs to be done and then doing it.
Long term thinker
I like to envision the end result of a goal before I get started and continue to do so while I carry out my duties. Collaboration is about working towards a common goal or a shared purpose and recognizing how my contributions fit into that goal. I endeavour to have a deeper understanding of the project’s scope and everyone’s role in it because the more I understand this, the better I will be equipped to make it happen. I believe that understanding my broader purpose helps me make more meaningful contributions to the team.
Sometimes collaborative projects don’t go as planned. Priorities shift, obstacles delay progress, and problems occur, catapulting the whole project into complete disarray.
To persevere, people need to be able to adapt at a moment’s notice. I adapt easily to sudden shifts in goals or priorities and prefer to brainstorm solutions to problems that may be encountered while working on the project, as opposed to freaking out and not working towards a solution.
What am I looking towards?
I want to keep working with Mixxx, so I can get better at technical writing and make video tutorials that explain specific technical concepts. I prefer to work with communities that openly make efforts to improve diversity and Mixxx does this. So I plan to continue contributing to my current community even when the internship is officially done. If I manage to find another paid internship or a remote paid full time or part-time job, that would be great.
I am aiming to secure opportunities that will provide me with the exposure and chance for progression in the world of web development and Open-Source software.
My three-month internship with Mixxx was a full-time remote internship which has made me come to appreciate the perks of working remotely. I would love to continue doing so (working remotely), but if required, I am also able to move to a different region or country for work.
I have a non-tech background in art, content creation for social media – I managed social media for an online platform called Celebu Online and a creative arts group called Kelele @ Makerere. I also have a background in writing – a skill that has greatly helped me with the technical writing bit of the Mixxx project. I believe that this background provides me with a unique perspective on certain things, especially in the areas of usability, marketability, creativity, team-work and what consumers like.
In five years’, time, I hope to be an exceptional software developer who has imparted the skills that she has learned to other younger people aiming to get into the field. I hope to have empowered other people who wish to join this industry by teaching them what I know and exposing them to opportunities that will help them progress in their career, like I’ve had. I hope to have scored a more permanent job doing the things that I love and effecting change in other people’s lives, one way or another, and I’m grateful to Mixxx and Outreachy for launching my career in the right direction.