Open Source systems and the community running behind these have always been something interesting to dive in. As part of paving my path in those communities, I decided to have a word with one of the Open Source Developers in my Home Country namely Loganden Velvindron, Logan; a friend of mine – even if we met in person only once during a workshop on the MariaDB Database Management System. Views expressed in this ‘mini-interview’ represent the views of Logan only. Other mini-interviews similar to this one will follow.
Who is Loganaden Velvindron?
I was born and raised in Mauritius. I went to College du St Esprit which had the best facilities for sports and computers, and later studied Computer Science at University of Mauritius. I’ve been involved heavily in Open Source projects since high school. I’ve contributed to a lot of Open Source projects: OpenBSD, Linux, FreeBSD, NetBSD, DragonflyBSD, CentOS, RedHat, Ubuntu, OpenSSH, NTP, BIND (DNS), LibreSSL and a few others. I have other hobbies: football, mountain climbing, and hanging out with my friends.
How did you dive in that field while other youths are generally interested in football, heavy gaming (only gaming geekiness), and ladies?
I was always interested into how things worked underneath, since a young age. The black magic behind software running on my PC was always fascinating to me. I took apart my electronic toys, much to the dismay of my parents when I was in primary school. During secondary school, I would hang out the with the Computer Club members who were older than me, and later joined the Linux User Group of Mauritius, where I learned about Linux, BSD and programming in general. I started writing simple programs, but very quickly, I wanted to know how Operating Systems worked, and that’s when I started looking at the source code of various components such as the Linux kernel, BSD kernels, and others. The first time I looked at it, It seemed very complicated, as the code tends to be very compact, and not follow the coding style advocated in educational books. It was a challenge to figure out how the code worked. Since then, life hasn’t been the same again 😉
Which type of programming do you do? I mean which level? And why do you prefer that level over the others?
I do a lot of systems programming at the kernel level, and application coding, mostly in C. C is great, as it’s fast, small and very portable.
BSD, Unix, Linux, GNU, Debian… Can you briefly explain the difference between those for those new in the field?
At first there was Unix, an Operating System of which 2 major versions existed: AT&T’s Unix, and Berkeley Unix, which was developed by students at Berkeley. The Berkeley students called it BSD (Berkeley Software Distribution). It was available by tape to interested parties: It was picked up by Universities, and other institutions. In 1995, the Berkeley students decided to stop developing BSD, and various groups formed up to keep BSD running. A group decided to develop their version of BSD that can run on different machines, and call it NetBSD. Another group started their version of BSD and it was focused on PC architecture with Intel processors, and christened it FreeBSD. The Free Software Foundation also wanted their own version of a Unix-like Operating System, and were developing GNU. They had almost all the major pieces in place. In 1992, Linus Torvalds worked on a Unix-like kernel known as Linux, and adapted the GNU utilities to his kernel. He called it the whole system “Linux“, and published it. OpenBSD came along in 1995, and its focus is Security.
That brings us to 2014 where all of these projects have their own market. Linux is by far the most popular, with a large share of servers & embedded appliances such as routers. You can find Linux in the big datacenters of Google, Facebook and Twitter, and in your smartphones in the form of Android. FreeBSD is used by a large websites like Yahoo!, Messaging services such as Whatsapp, and Storage appliances such as NetApp. NetBSD has been used as the foundation for products like Network switches, Printers, Video recorders, etc. It is also used with systems like Android, which ships a large number of BSD components around the Linux kernel. DragonflyBSD is used for storage due to its unique filesystem design. OpenBSD tends to be used for firewall products, thanks to its ultra-secure design.
The past months saw your unveiling and patching of several critical bugs. How does that occur that you find such bugs and finally patch them?
I have been involved in a few critical bugs only. There are people out there who are much more involved than I am. Security has always been a huge interest for me. I always try to think of ways to make code more secure, and look at code to spot mistakes; a process known as Code auditing. Code auditing is about looking at a piece of code, and looking to make it behave in a manner that was not intended to by the original author. It’s about : “How about trying to send this as input, instead of what the programmer expects?” Once you get into this mindset, you start spotting security issues. Code auditing is a never ending process! Chasing security issues is fun, and fixing them is rewarding ! There’s also a lot of discussion taking place with other like-minded people on the internet, concerning those security problems. I don’t work in isolation: I exchange ideas with my collegues at work, and also reach out to global Open Source community to solve security issues.
Fixing the security bug is interesting, as it often involves architectural changes. Sometimes, you realise that the same mistake happened in another part of the code.
You are sometimes seen in the core of the Internet Infrastructure with issues related to DNS and related. Can you briefly explain to our readers the concept of DNS and the new DNSSEC system?
DNS is a fundamental component of today’s internet. It translates www.google.mu into a numeric value, that can be used by your computer to connect to www.google.mu as computer talk to each using a a number set known as IP Addresses. Remembering all the IP addresses of websites is not an easy task. That is when DNS come in play. DNS is like a ‘phone-book’ with the web address of the website on one side and the IP address on the other side.
The problem with DNS is that it wasn’t designed for a hostile environment that we have today. There are ways to trick casual Internet users into connecting to rogue websites, and grab their bank detail accounts, or their personal information. DNSSEC is an attempt to solve those problems by making the DNS protocol more secure, and prevent the attacks mentioned above.
Logan, Student X is a casual coder, the usual CS or IS student at University. How can he/she dive to the level you do? I mean, getting out of the usual Mathematics Problems Solving with C++ codes, development of websites in PHP with a MySQL db running behind and move to coding real world problems and contribute to the community?
The problem with a lot of local University students is that they tend to stick only to what they have learned in their courses, and not venture on their own. I tinkered a lot while I was student in University, and my university friends had similar interests. For us, tinkering with codes was fun.
So students should first ask themselves this question: What do I like doing with Computers ? If your answer is developing websites, then just follow your passion: Write your own CMS, put it online, and let others contribute. If you like a particular CMS such as Drupal, then start getting involved. It’s much easier to get involved while you’re a student, as you have a lot of free time.
I agree that systems programming on Linux and BSD is hard, and the barrier of entry is very high. However, it’s very rewarding, as you have total control of your computer.
C programming on UNIX/Linux involves a lot of reading, and coding. I would advise students to have a printed copy of OpenBSD manual pages which are very good, and a good book on C. A good understanding of Mathematics help a lot: Boolean algebra and arithmetic will be invaluable.
Also, it would help to read about the design of Unix systems: There are many books out there, just pick one.
You often refer to people you’ve met in the IT industry? How do those ‘rencontres’ occur? And how a casual meet-discuss-think-code meeting is? Maybe refering to your trip to Morocco.
As I mentioned earlier, I communicate a lot with various Open Source projects through all kinds of channels. Many of those Open Source developers are passionate and eager to help. If you’re willing to put the necessary effort to analyse the bug and follow through with a solution, they will happily take it, and acknowledge your efforts. Thanks to those interactions, I have been able to meet various Open Source developers who come to Mauritius for holidays, or sometimes for conferences. I would describe those experiences as priceless !
In 2014, I was invited to attend an OpenBSD hackathon in Morocco. I was involved in organising the Hackathon, and my employer (AFRINIC) sponsored my trip while the OpenBSD Foundation sponsored the hotel. I was finally able to meet the OpenBSD developers who have earned a reputation in the whole IT industry for their legendary security coding skills. It was one of my greatest experiences, as I was able to work on improving on IPv6 and OpenSSH. Around that time, LibreSSL was brewing, and I started getting involved as well.
What are your views on the way ICT as a whole is being taught relative to the industry itself?
The local Universities work in isolation. Very few of them tend to be active in the global ICT scene. In order to answer the demands of the industry, and the expectations of students, one of the first things they should do is interconnect themselves using the Internet. In other countries, Universities are well interconnected, and this helps to promote strong academic research and collaboration.
Secondly, the universities should demand better bandwidth at a discounted price, with the assistance of the government. In UoM, there are around 11,000 students. We calculated that if 10,000 students were to use internet at the same time, It would become extremely slow. This is very bad for our future, as we have a huge infrastructure problem already. The government could, in my opinion, convince the Internet Service Providers to offer discounted rates for Educational institutions. This is already being done in other countries.
Thirdly, The university lecturers could encourage their students to follow their passion in their area of study. A lot of students are interested in web programming. I think that the lecturers could send them additional books, and point them to Open Source projects that are looking for motivated students to work on interesting mini-projects. Those projects don’t have to be ‘big'; they can be small tasks that the student can fit in his time-schedule, without neglecting other modules.
Forth, I think that many local employers do not invest enough in their employees. I’m not talking about salaries, but the training budget. A lot of companies could improve the quality of their projects, and increase their profits if they improve the skills of their employees. In the Open Source field, the companies that do well, are those that invest in their employees: large web companies send their employees to conferences like DrupalCon so that they can learn about the latest trends in Drupal and enhance their skills. It also helps for marketing a company as they can proudly claim to be active Drupal community participants. A lot of potential customers are present during those conferences, and I think that local companies are missing those opportunities.
I have other ideas that I would like to share, but that would turn this interview into a political meeting agenda
A little word on the gov.mu issue and any proposal?
I think that it’s high time for the government to start engaging the different local communities who can do something about it. There are competent people here in Mauritius who can do something about it ! I hope that once the new government is elected, they will make it their priority and organise a round-table with the various stakeholders.
(Please note that this is my personal opinion, and this does not represent the views of my employers either past or present).
A final word?
Looking back at my involvement in Free/Open Source software, I’m very proud of our achievement. I use “we”, because I believe in the collaborative nature of Open Source. In my opinion, this is what makes Open Source so powerful & a strong force in today’s IT market. I’m very happy to see the positive impact of our work in so many different areas: Space & underwater exploration, Smartphone & tablet revolution, powering critical infrastructure of our planet and advanced research in biology to improve treatment against diseases, to name a few. Open Source developers are almost like a an extended family to me, and I cherish the bonds that we share ! We wrote great code, revolutionized the IT industry, and made the world a better place
Have an Open Mind.. Be Open Source