Software Development with Linux

Meet the Linux Family Kyle Mestery

THU, 01 APR 2010

Meet the Linux Family is a series of interviews with various software developers, managers, and users, who all have a point in common : they use Linux.  They will bring different point of views on various Linux related topics and share their Linux experience with you.

For this fourth interview in the series, I got the chance to talk with Kyle Mestery.  In addition to his technical leader job at Cisco Systems, he maintains the mesterycom blog.

Laurent : For how long have you been using Linux?

Kyle : I have been using Linux since the early 90s.  In college I started out using FreeBSD and NetBSD, but I gradually made my way over to Linux.  By the late 90s, I was fully using Linux.  I've been running Linux on a variety of platforms (x86, Dec Alpha, Arm, PowerPC, MIPS) since then.

Laurent : For how long have you been doing software development using Linux?

Kyle : I've been using Linux for software development for my entire career.  I use Linux daily to develop the software for my job and I have been doing that for the past 13 years.  The target platform of my work has been embedded Linux for a good portion of my career, but not always.  Regardless of what I'm developing for, Linux is always the platform I develop on.

Laurent : What are your day-to-day use of Linux?

Kyle : Besides using Linux at work, it is in my life in in many ways. My Nokia N900 mobile phone runs Maemo, which is a mobile version of Linux from Nokia.  With any luck, it will transition seamlessly to MeeGo too.  My home entertainment system runs Linux, with MythTV for the backend DVR and a Sony PS3 as the frontend with high definition playback.  I also use a couple of OpenWRT wireless routers in my home, wich is an embedded version of Linux. Our home server and my Asus EEE netbook also run Linux.  Finally, my kids use Linux on our home computers to access websites like starfall.com and pbskids.org.

Laurent : Do you think that your kids will continue to use Linux when they grow up?

Kyle : I hope so!  I'm doing my best to make sure they are exposed to a wide breadth of operating systems, including Windows, OS X, and Linux.  To them, the computer is a tool and they are already comfortable with all of the above.

Laurent : Why do you prefer using Linux?

Kyle : I love the fact that Linux has gotten polished enough that my family can use it.  Yet, I still have the power to tinker under the hood when needed.  The fact that both myself, a power user, and my 3 year old son can use it says a lot about the usability of Linux.

Laurent : What do you think are the advantages of developing for/with Linux?

Kyle : One of the main advantages to developing for Linux is the fact it's POSIX compliant.  It makes it easy to port code from or to Linux.  Another great advantage is that you have access to a variety of libc libraries depending on your needs.  Like for embedded Linux, having access to smaller footprint libraries is a must.  With regards to developing with Linux, the wide variety of tools to develop with is a great advantage.  Whether you are using vim, emacs, Eclipse, or whatever your favorite editor is, the depth of tools available allows developers of all sorts to find a comfort zone.

Laurent : What do you think are the disadvantages of developing for/with Linux?

Kyle : The only disadvantage of developing for Linux is that you have to make sure the needs of the GPL are compatible with the needs of your company.  Taking into consideration GPL issues early in your project is a must.

Laurent : Did you already had problem with upper management regarding compliance with GPL?

Kyle : No, management at all my companies has always been cognizant of the GPL and we've always made sure that complying with it is part of our process.

Laurent : What's your "pet peeve" about Linux software development?

Kyle : Don't really have one.

Laurent : Which software development tools do you used the most?

Kyle : I use gcc and vim almost exclusively.  I've been known to also use gdb quite a bit and the various tools in binutils as well.  I should note I'm an old school C programmer though.

Laurent : Which software development tools you'd like to have for Linux (which currently doesn't exist, or no good solution exist)?

Kyle : Nothing I can think of here.

Laurent : Any recommendations/hints/wisdom for people new to Linux software development?

Kyle : The best hint would be to just try things out.  Whether it's learning a new editor (vim, emacs, etc.) or a new programming language, Linux will have many options.  Find an editor with which you can be productive and start writing great code!

Laurent : Any tips for specifically for people wanting to learn how to develop for embedded Linux, or build embedded Linux platform themselves?

Kyle : Start playing around.  The best way to learn embedded Linux is to get a nice platform like a Linux NSLU2 or a router supported by something like OpenWRT and work with that.  The experience will be great and getting your hands dirty is the best way to go!

Laurent : Anything to add?

Kyle : Not really.  Thanks for this interview!