For more than 15 years, I have earned a living working exclusively with open source products. How did I get here?
In many ways, my journey started before Linux existed. In college, I had friends who were admins in the engineering computer lab. Although I did not do too well in my CS programming classes, as a hobby and to spend time with my friends I learned about newgroups, ftp sites, and Unix systems. As a data aide student intern, I realized I made a good translator between the astronomers and the C programmer computer support staff. I could read just enough code to identify the problem, but not enough to actually fix it.
Fast-forward to the adult life of entry-level jobs. My experience as a user landed me the opportunity to learn system and network administration for a PC help center. This is where I learned about network operating system installation, configuration, and interoperability. When Linux hit the enterprise, I jumped on the opportunity to learn, support, and teach Red Hat Linux, SuSE, Caldera, and Turbolinux (not all of which exist today).
Initially, nearly all the students in any Linux administration class were already sysadmins using operating systems such as AIX, Solaris, HP-UX, and NT. Now I have students who are new to system administration, learning directly on Red Hat Enterprise Linux. A number of colleges teach distributed computing using Linux, including some that use books I have contributed to as a reviewer. You no longer need to learn other systems first. Coursera, Udacity, EdX, and other online MOOC providers all offer entry-level courses in Linux and a variety of open source applications.
By the year 2000, I was working exclusively with Linux products. I earned a living teaching, as an independent contractor with a variety of distribution delivery partners. I expanded my skills by finding ways to contribute to the upstream projects, and I always encouraged students new to Linux to do the same. I became a contributor to Fedora through the Docs Project and as an Ambassador. I followed the infrastructure team, but never found the consistent time to be a true contributor. I participated in test days, did some bug squashing, and helped document packaging guidelines. I even completed an MSIS degree, including a thesis paper with just the programs on my Linux laptop.
I still do not consider myself a coder. I am not a C programmer, nor a Java developer. I can read just about anything, and I have not survived the work of a sysadmin without learning a fair amount of scripting. Free and open source software (FOSS) ideals have made it possible for me to excel, even with my mental block against learning to code. I understand the logic and can architect the pseudo-code, but I am not good at writing from scratch to correct completion. With FOSS, I can find scripts that are close to what I am looking for and play around until I get what I need.
Generally, I do not need to write a full section of code without a solid example on hand. Configuration management products such as Puppet and Ansible, and deployment products such as Cobbler, Foreman, and Pulp, also help with automation without the need to do sometimes-complex structural programming and error handling. Platforms with dashboards for users and admins, such as Ambari, oVirt, and OpenShift, help centralize and simplify interactions with large complex clusters of machines using software-defined networks and storage.
I love teaching. I love seeing the lightbulb come on when a person figures out how something is supposed to work. I love figuring out how new products work, and where they fit in the market. I love learning, and I always learn something new when teaching. These days, I do less daily administration and support tasks and more architect design. I also spend more time testing products and writing instructions—for myself, for book reviews, for curriculum, and for conferences.
With new and emerging technologies such as Docker and Kubernetes, there is always more to learn. I am still a Fedora Ambassador, but over the years I have not had time to contribute to other subgroups and am now looking for new, smaller projects to get involved in, preferably something related to security (although security should be included in all types of products). I am sure I can contribute through testing, bug triage, and documentation. A few Ansible-related projects, including the Lightbulb training project, have also caught my interest, and I'm always interested in projects with tools and materials for teaching youth.