Leonardo Javier Russo: Helping the visually impaired and designing video games

Introduction

My name is Leonardo Javier Russo, I’m a software developer from Argentina. I got involved with Open Source 10 years ago when I designed a free and open source App for the visually impaired that was compatible with smartphones and tablets. It was an interesting experience where users and developers helped me with translations of the App to different languages.

The meaning of Open Source

I believe that when software is developed to contribute to society, it’s selfish not to share the source code. In my opinion, the true value of a project isn’t determined solely by the number of people it has reached, but also by how willing the developer is to share their work with other developers, so that they can improve it or offer alternative versions. Free and open-source software is the greatest expression of that line of thought.

Current projects

Today I’m working on LlamaWebServer, a web server that allows you to run an AI model locally and has a UI similar to WhatsApp. Also I’m working on Emulatrix, a Web that allows you to play retro games on a Web browser and where you can upload and download your saved games. The website doesn’t have any ads and the user must provide the ROM file of the game that he wants to play, so that prevents to receive any copyright claims. Usually, when one of my projects reaches a MVP (Minimum Viable Product) stage, I write a press release and send it to different tech portals and journalists. By doing this, most of my projects were published in newspapers in America and Europe and also on television, like CNN and BBC. Also, recently the GitHub team got interested in my profile and after an interview, they published an article about my career on their website (The Readme Project).

Challenges

Most of the time, I think the main challenge is not technical, but related to the resources that are available for you. Sometimes it is the budget that you can spend or where you can find the right person that can help you with a new design (UI/UX related). You can have a good idea for a project, but if you cannot present your thoughts and intentions in a way that everyone will understand what you are offering and why it’s useful, you won’t get far. The budget for a project is always important, but contributors can support maintainers in a lot of different ways, like: providing translations to different languages, reporting bugs, suggesting features or to connect a maintainer with a journalist.

Regarding new features, I always try to double check all the possibilities. For example, recently I designed a free and open source scraping bot and I wanted to use this bot and to receive an email from it with results, but I didn’t want to pay for a server (node.js/smtp) for sending just one email (along with the effort, money and security practices that it requires). So eventually I created a Google Apps Scripts that provides an API for sending me an email. The API key is stored as a Secret in my repository and the scraping bot runs on GitHub Actions, so the cost is literally $0 and it’s running in a secure environment where the API key is not compromised.

However, security is always something that you need to be focused on. I noticed when working for some companies that, sometimes, credentials were hardcoded in the backend. Usually a module that was assigned to some specific team a few years ago, no one really checked how it was designed but it worked, so years passed, the team members were gone and then you have a module in the company with hardcoded credentials and no one is aware of that until you get there to fix or update something. Services like CodeQL are useful tools that could help prevent that kind of issue.

AI

Lastly, I should mention that an AI could provide you the code that you may need, but usually a Senior developer will have to adjust or improve the quality of that code to have a technical solution that meets a standard and that can be used in a project. For example, when using Three.js, there are too many variables involved and the AI result can be erratic because of that. Eventually it could provide a new approach that could be useful, but in the end, a human developer needs to be there to adjust the code and make it work.

Contact information

https://www.lrusso.com

Read stories shared by other maintainers.
This story was published under CC BY-SA by the author.