George Neville-Neil, engineer and author talks coding, trends, and tips Stephen Ibaraki 9 years ago There are tremendous benefits to enterprises in following the work of coding industry leaders to understand the best resources, lessons, tips, developments and trends in the industry that can profoundly impact the enterprise. George Neville-Neil provides this global leadership through his deep expertise in computing and through this revealing chat. George V. Neville-Neil works on networking and operating system code for fun and profit. He also teaches courses on various subjects related to programming. His areas of interest are code spelunking, operating systems, networking and time protocols. He is the co-author with Marshall Kirk McKusick and Robert N. M. Watson of “The Design and Implementation of the FreeBSD Operating System”. For over ten years he has been the columnist better known as Kode Vicious. He earned his Bachelor’s degree in Computer Science at Northeastern University in Boston, Massachusetts and is a member of the ACM, the Usenix Association and IEEE. He is an avid bicyclist and traveler who currently lives in New York City. To listen to the interview, click on this MP3 file link Partial extracts and quotes from the discussion: From your early years up to the present, can you share a few notable events leading to your current roles? I’d say a lot of experiences in my educational background are mixed academic and hands-on. I went to Northeastern University which is well-known for having a co-op program, so I spent a good deal of time working in industry as well as taking classes. That set the tone for my career, because I spent half my time working at the academic side of things (in particular my work at ACM), but also in developing courseware and teaching both in industry and working with universities, as well as working in corporate environments and developing software as a practitioner. You are the chair of the Practitioner Board of the ACM. Can you tell us a little bit about the ACM and then about the Board’s key projects and wins, including for 2015 and 2016? What is the value to computing professionals? The Association for Computing Machinery is the largest professional society for people working in computer science. The Practitioner Board is a group of people both from academia and industry who try to figure out what are the best things we can do to help to educate practitioners about interesting research they might use to build products and build and improve systems. In 2015 we had our first Applicative conference. We had 300 attendees at our conference in New York City where we had the 2 track 2 day conference that delved into the systems side and software, as well as the applications side of software.We have a couple of other efforts going on. We’re going to have Queue magazine coming out as an app on iOS and Android in the fall of 2015. We produced a series of video portraits of up-and-coming practitioners in the art in computer science (that was done in 2014). This year we are starting a new video series that will probably debut at the same time that the app does in the fall. We are also looking at creating a new ACM Journal; not a submission-type journal but a journal that looks into academic publications and tries to formulate them for the practitioner. What are the noteworthy outcomes from Applicative 2015 and what are your goals for 2016? The Practitioner Board had never tried to put on a conference before so putting on a 2 track, 2 day conference is a non-trivial effort and I think that was an amazing thing that we did. And if you look to content in Queue in the fall you’ll see that almost every one of the people who gave a presentation at the conference also signed up to turn that presentation into an article, so that those people who were not able to make the conference will still be able to get the content via Queue magazine. Right now Queue exists through the website and that’s one way to reach people, but we find that having a publishing event every other month that shows up on your device is a really good way to reach people. Our other goal in 2016 is to try and get more practitioners who are not currently members of ACM to see the value of being members of ACM and actually join. So the content we are generating isn’t just for members, it’s basically for the entire community and trying to get that community to see that there is value in ACM membership and value in interacting with the broader community. You were a speaker at the 2015 Applicative conference; can you summarize some of the key points from your talk? One of the areas that I’ve been working in for the last seven or eight years is highly accurate datacenter base time. What I discovered in working with distributed systems and time for that period is that most practitioners, programmers and software developers really don’t have any ideas of how time is kept on computers and the challenge is getting really accurate time when creating applications. So what I did was to create a presentation which was an introduction to working with time for software engineer practitioners that covered the very basics of how do computer clocks keep time, why they are accurate or inaccurate and what are the ways in which you can actually get good distributed time. Is there any webcast coming out as well? I believe there is a video of me giving the talk that’s online. In the end of July there is a webinar on this topic as well. You have a very popular column in Communications of the ACM magazine. Can you share some key tips from your column? I wouldn’t say there are key tips. There are certain key themes that you find in Kode Vicious, one of the ones that they keep coming back to is testing. Related Articles Windows 10 launches: User experience makes work easier A Gartner Magic Quadrant: Know what to read and where to look Are practitioners able to interact with you in some way? Sure, the columns are written from letters that are written to Kode Vicious. So we’ll look at the CACM online or Queue online (kv@acmqueue.com). They are always welcome to send in questions. You’ve been doing this popular column for some time now, has there ever been a particularly interesting letter that comes to mind? I’d say there isn’t a particular letter that really stands out. The letters that I always find really refreshing are the ones that are reacting to another letter. Someone will write in, I’ll write a response and then someone will write a response to my response.| Have you ever considered converting some of those columns into a podcast or a book? The idea of a book actually has occurred to me and one of the reasons to do a book is to do a longer form. Kode Vicious columns tend to be two letters, two responses, about 1500 words; that’s about as long a column (generally) at most I use and that’s a fine form for me. In 500 or 600 words in a response you’re not going to be digging really deeply into your topic. You can make it a short single point and that’s a really enjoyable form of writing for me and something I’ve been able to do for a decade, but I do a lot of other long form writing (I’ve written other books) so something that’s medium form would be interesting before I publish a book. We will leverage your expertise; what are your top recommended resources for developers? For me finding good publishers of good books has always been useful. I’m not much for following blogs or for following new sites. I look for things that are well reasoned, longer than a blog entry. You look at Pearson when you want high end stuff. Amazingly one of my favorite books is Raj Jain’s, “The Art of Computer Systems Performance Analysis” was written in 1991 and I’ve been recommending it to this day. That’s going to be updated and published in 2015 according to the publisher’s website and I have pre-ordered my copy. One of my other recommendations, ACM has a bunch of books and they also have an arrangement with Safari so you get a bunch of Safari books and recently I’ve come across The Pragmatic Bookshelf and they to me are the equivalent of the O’Reilly® of 1990s. They are the ones who are doing books on specific technologies that are well-written, to the point. No publisher is universally good, but they come through these cycles and so Pragmatic programmer stuff is actually pretty good. You’ve been focusing specifically in the coding area or things that are related to coding, let’s broaden that. Are there any trends on the broader basis in the computing area that you think are interesting and that people have to start paying attention to? You’ve got machine learning stuff but I don’t work a lot in that area. I’d say, since I’m more of a systems person, the thing that I find amazing is everyone has spent the last five, seven years saying how important understanding multi-core and multi-processing is because of the way that hardware is now built, and that’s one of those trends that people have been banging their drum about for a long time. If you look at the way that we teach about computer systems, we often teach about computers systems as if they are a VAX from 1980. The big single processor complex instruction set, but that particular trend has moved to multicore multiprocessing which really has fundamental changes for the way that one should write software or build systems or size systems. I don’t see that being taken up very well by the academy or by industry. I’d say the other area to look at is computer virtualization, but people have not really addressed a lot of the issues about virtualization. Everybody is just going to move all their stuff to the cloud. They get more security, often more billing, performance, a whole bunch of things. They pretend that every single virtual instance that’s residing in the cloud is exactly like a machine that they need to run it on, and I think that is detrimental to good software and good engineering so that’s another big trend. The big analytics area I think is quite interesting but I think that’s more interesting, from an interfacing with other people kind of idea. So in big data what you really want to be able to do is do all your number crunching, but the interesting problem is how do you relate that to the social scientists who actually have the question? How do we ask the right kind of questions of big data? There are a whole bunch of issues there. People who really understand that interface between engineer and the people who wish to use the results of that engineering. I think that’s real interesting for the big data science folks. If you were conducting this interview, what questions would you ask, and then what would be your answers? If I were an undergraduate, “What area of computer science should I study now?” I think the people who are doing undergraduate work should get a good solid grounding in statistics because all the data science stuff is all stats. Also, “As a mid-career person, what should I be looking at next? You’ve always got to be looking for what change is coming and what’s new. Do you have any additional advice for those who are mid-career? You should try to attend a conference once a year, no matter what that conference is, something that’s of interest to you that’s related to an area you are interested in or an area you are currently working in to keep track. George, with your demanding schedule, we are indeed fortunate to have you come in to do this interview. Thank you for sharing your substantial wisdom with our audience. {{#message}}{{{message}}}{{/message}}{{^message}}Your submission failed. The server responded with {{status_text}} (code {{status_code}}). Please contact the developer of this form processor to improve this message. Learn More{{/message}}{{#message}}{{{message}}}{{/message}}{{^message}}It appears your submission was successful. Even though the server responded OK, it is possible the submission was not processed. Please contact the developer of this form processor to improve this message. Learn More{{/message}}Submitting…