The unending release of new tools for Linux performance management, paired with the demand for increased automation keeps Linux Foundation instructor Frank Edwards on his toes. He’s always updating his Linux Performance Tuning course with new material that ranges from scripting — whether shell or Python or Perl — to deployment automation and JIT (just-in-time) virtualization, he says.
“I try to be forward-looking in my courses (and my course materials),” said Edwards, a contract instructor with Computer Generated Solutions, Inc. “For example, it’s not enough to say, ‘here are the performance monitoring tools that exist today’ — it’s also important to keep a finger on the pulse of other projects so it’s possible to give the students pointers on where to be looking next.”
Here Edwards tells us more about how he learned Linux and software development, his career path, how he stays current on technology, what to expect from his courses, and his roleplaying hobby.
Linux.com: What courses do you teach at the LF?
Frank Edwards: I’ve taught shell scripting and performance management, but my skill set runs the gamut of Linux topics so I expect I’ll be branching out in the future.
How long have you been teaching?
I taught my first class at the age of 25 in 1988. Since then I’ve been involved in training in various ways, occasionally working on code development.
How did you get started with Linux?
I was friends with the instructor/lab manager at a local junior college and he arranged a UUCP connection for me to Usenet. I grabbed the code when it was posted to comp.sources.unix in 1991, but didn’t do much with it until the Yggdrasil floppy releases became available. I had been working on AT&T SVR2 a lot (and some other smaller but similar environments, like OS/9 and UniFLEX) and relished the idea of running a Unix-like OS on my systems at home!
How did you learn?
Hands-on, all the way! I took courses at that junior college, but I absorbed the info faster than they could create programming classes (!) so a lot of it was self-taught.
What is your area of expertise now?
Anything related to system or kernel-level programming on Linux (and some other Unix versions, primarily AIX and Solaris). It’s extremely difficult to keep up with the rapid changes though, and I find myself being forced into smaller niches because I just can’t keep up with everything that’s happening everywhere!
How did you develop that? What has your career path been?
I started out writing code. Lots of it. (After writing code for an airline maintenance system, I moved on to teaching. But a friend later told me that my code was used as examples when they sold their software because of how well it was documented and structured. Big ego boost there. :))
I’m still a programmer at heart. For some it’s a job. For others it’s a career. For me it’s an obsession.
I worked as an instructor for a Dallas-based company for 3.5 years until I got burnt out by all the travel. I quit that job on good terms (my supervisor’s reaction was, “Yeah, we thought that would happen.” Sigh) so after writing code for a year or so, I went back to teaching as a contractor. Better pay, more flexibility, and a built-in customer base (my previous employer). After that it was easy to pick up other clients as well.
What projects are you involved in currently? What are you working on?
Mostly I work on keeping my course material up to date! I’m currently building a third intermediate C++ programming course to go with my Intro to C++ and Advanced C++ courses. With the release of compilers that can handle C++11, there are a lot of changes. And C++14 will be adding more. It’s never done.
I was lead developer for an open source Java project called RPTools (we’re at rptools.net and on GitHub) but Real Life has seriously gotten in the way of my ability to contribute code so I mostly act as advisor and general “herder of cats” as it relates to the contributors.
What are the hot button issues or latest trends in your area?
Hm. Well, there’s the C++ updates, those are pretty big. I’m seeing a lot of interest in Linux performance management so I’m constantly working to beef up that course — there are new tools coming out all the time so there’s another unending task! I’m dropping VMware support in the virtual images I use for my training materials until such time as they get fully onboard with the FOSS community, so that means learning the idiosyncrasies of VirtualBox.
What technologies and skills do you see coming down the pike that Linux professionals should be prepared for?
Automation is always big, so anything that plays into that: scripting, whether shell or Python or Perl; deployment automation; JIT virtualization. Anything related to performance since every environment is always interested in squeezing the last few ounces of blood from the rock.
How do you address these in the courses you teach?
I try to be forward-looking in my courses (and my course materials). For example, it’s not enough to say “here are the performance monitoring tools” that exist today — it’s also important to keep a finger on the pulse of other projects so it’s possible to give the students pointers on where to be looking next. There are plenty of analogies for that: “keep your eye on the ball, not on the bat” when playing baseball, or “look where you want to go” in car racing, and so on. This is tough because it means keeping up with a lot of different information sources: lwn.net, phoronix.com, and of course, linux.com.
Anything else you’d like us to know about you?
Hobbies? I guess I’m a geek in that regard. I play D&D and Pathfinder, I like to autocross my car (but haven’t done that in awhile), I play poker and chess and backgammon, the comics are the first section of the newspaper that I read, and Babylon5 and Game of Thrones are my favorite shows of all time.
Learn more about Linux Foundation Training courses and certification at http://training.linuxfoundation.org/.
Meet more Linux Foundation instructors: