For most of us, software development isn't a difficult industry to enter. Many of us are able people that live in places with affordable internet access or have access to education streams that can be accessed. We can easily get a hold of resources like textbooks and complete lessons on websites like Codecademy without much difficulty.
But that's most of us— not all of us. These things are out of reach to the majority of people around the world, and they are even farther out of reach for those of us who have impairments and disabilities. One of these people is Ali Abdul Ghani, a visually impaired software developer and self-described FOSS (Free and Open Source Software) activist from Baghdad, Iraq. Ali, who goes by the moniker Ali Miracle, taught himself to code despite his extenuating circumstances.
I caught up with Ali to understand what got him interested, what drives him, what motivates him, and to learn how he got to where he is and where he sees the industry as time goes on.
Q: Tell me about yourself: Who are you? Where are you from? What's your background?
My name is Ali Abdul Ghani. People call me 'alimiracle' and I am known by this name on the internet. This name came to me when I was a Solaris user.
I live in Iraq. I graduated from college at the end of 2015 from the Department of English Literature, and not Computer Science (if you were thinking that). I was not allowed to get a degree in Computer Science in Iraq. The law here does not allow blind people to obtain a degree in Computer Science or any scientific stream such as Mathematics or Physics.
I'm a programmer, Sysadmin, Free Software activist and poet.
Q: Did you ever use proprietary operating systems like Windows or OS X? If so, what were your thoughts on them?
Yes, I started my life using Solaris which is a proprietary operating system. I tried Windows for a short time and it was so strange to me— almost like a different world. I was feeling a bit like Alice in Wonderland, tumbling down the rabbit hole.
Proprietary operating systems are all the same. All of them are like a big black box which you cant copy, distribute, study, change or improve the underlying proprietary operating system code. And if you share the software or the operating system, they call you a pirate.
When software companies make a fuss about the danger of "piracy", they're not talking about violent attacks on ships. What they complain about is the sharing of copies of software— an activity in which millions of people participate in a spirit of cooperation. The term "piracy" is used by software companies to demonize sharing and cooperation by equating them to kidnapping, murder and theft.
Q: How old were you when you started using GNU/Linux? How did you discover it?
I was approximately 16 when I started using Free and Open Source Software— in 2009. The story started when I was a Solaris user— one day, I used GCC and discovered that I can modify it according to my needs.
I was happy with that— this was the first time I was able to read and modify code for a large program.
Then I started thinking about why I can’t read and modify Solaris code. I asked this question in an online conference and a person responded to my query— she was a Free Software enthusiast, and she told me about Free Software and GNU. She invited me to join her team as a developer and suggested that I read a book titled: “Free Software Free Society: Selected Essays of Richard M. Stallman”. This book changed my thinking and, gradually, I became interested in freedom for programs and moved to GNU/Linux.
Richard Stallman remains my hero until this day for giving us the concept of Free Software.
Q: What's your GNU/Linux distro of choice?
Q: What is it like to use GNU/Linux as someone who's vision is impaired? Is the experience similar to or better than what you'd find on proprietary operating systems?
Where can the experience be improved? I have no information about Windows. Solaris and GNU/Linux have the same problems. Right now, a lot of programs do not work with screen readers and, now, the problem has become much larger in the web after the appearance of HTML5.
Now, many web applications do not work with screen readers. The problem is not from the screen reading software, but from the developers of the web applications.
Most programmers do not care for the screen reader when they write programs, there are things you must do and things to avoid when you develop something with a GUI— there are guidelines. But programmers do not care about it when developing GUI-based applications.
Q: Which languages do you code in?
I use more than 20 programming languages in my projects, including:
- Obj C
- Obj c++
Q: How old were you when you started developing and writing code? What got you interested?
I believe that I started when I was approximately 12 years old— I fell in love with programming and Computer Science. I was writing programs for fun and learning.
Q: Is it difficult to find work in Iraq in writing code?
Yes, it's very difficult. Companies [in Iraq] don't hire local programmers for developing. They just buy software made outside of Iraq, and the companies just ask for Microsoft Office (Excel, etc) Professionals.
Q: Have you faced any other types of discrimination by the industry for being visually impaired?
There is no encouragement in my country, I still remember the beginning of my life with computers. A lot of people said to me that "the computer industry is not for blind people. You can't use [computers]— don't even try." And, now, a lot of [those people] have no idea what I've already been able to do.
I still have memories from when I was child: no one wanted to play with me, they would tell me things like "you're blind— we can't play with you. Go and look for [another] blind person to play with you. You're different from me, go away."
Q: Was losing your vision something that happened early on in your life?
My father told me “you became blind a year after your birth.” I don’t know what caused the blindness. I don’t even remember if I had ever seen anything with my eyes.
Q: Do you contribute to any FOSS (Free and Open Source) Projects?
I have designed several projects of my own. Some of them include:
- Rose Crypt
- Rose Passwords Generator
- Rose Algorithms
- Rose Proxy
- Rose Text To Speech
- Rose Issue Tracker
- Uruk Ocr Server
- IRC Log Recorder
- UPMS (Uruk Package Managers Simulator)
In addition to that, I have also contributed to many projects, such as:
- Trisquel GNU/Linux
- Uruk GNU/Linux
- Uruk Project
I also try to promote and convince people to use Free and Open Source Software and GNU/Linux. Many people refuse to do so but some do give it a try. So far, I have been able to convert around 80 people to the world of Open Source.
In fact, most of [the] words that I use to bring people to Free Software are adopted from RMS (Richard M Stallman) articles. I show them live examples. I modify some Free Software to fit certain needs, making them think of modifying the programs that they use. The programs that they use are typically closed-source programs and they are not able to modify them, and they immediately then understand the basis behind "freedom of software."
Many of those people are now using Trisquel GNU/Linux based on my recommendation. I do face problems in helping people to transitioning completely to FOSS, though, for example in using Libreboot— a lot of devices don't support it. People here don't have good computers and they don't have enough money to buy newer, more advanced devices. But we survive through the odds.
Q: What do you consider is the way forward for FOSS?
There are many programs that need to be improved and we need real free hardware.
Q: Do you have any advice for people who are visually impaired that are interested in using a FOSS operating system or learning to code?
My advice for blind people use Trisquel or Uruk GNU/linux— they are easier to use for blind users because they work really well with screen readers.
My advice for anyone who wants to learn programming is that if you don't know any computer languages, I recommend starting with Python. It's cleanly designed, well documented, and relatively kind to beginners. Despite being a good first language, it's not just a toy: it is very powerful and flexible, and it's well-suited for large projects.
If you want to get into serious programming, you will have to learn C— the core language of Unix. C++ is very closely related to C and if you know one, learning the other will not be difficult. Neither language is a good one to try learning as your first, however. C is very efficient, and very sparing of your machine's resources.
Ali (left), pictured above with fellow developer Haidar Majid (right), continues to hack away on his laptop in Baghdad, Iraq, learning more about the world of software development and continuing his fight to promote Free and Open Source Software.