Canadian Information Processing Society (CIPS)
 
 

CIPS CONNECTIONS

INTERVIEWS by STEPHEN IBARAKI, I.S.P.

Writer, author, entrepreneur, philanthropist, highly respected and top-ranking software developer

This week, Stephen Ibaraki, I.S.P., has an exclusive interview with writer, author, entrepreneur, philanthropist, highly respected and top-ranking software developer, Leo A. Notenboom, owner of Puget Sound Software, LLC.

With more than 25 years of continual success in the software industry including almost 19 years as a manager and senior software engineer at Microsoft with his projects awarded a number of patents, Leo brings incredible breadth and wide-ranging expertise to his work.

He received his B.S. in Electrical Engineering from the University of Washington in 1979.

More details can be found at:
Putgetsoundsoftware.com
Ask-leo.com
Dollsandfriends.com
Kleofoundation.com

Discussion:

Q:  Thank you for taking time out to do this interview!

A: My pleasure!

Q: You have a remarkable history before, during, and after your time with Microsoft. Can you detail your journey to the present including major projects, milestones, challenges faced, and lessons learned that you wish to share?

A: Well....It’s been a long journey; I’ll try to keep it brief. The path to software started, oddly enough, with a TV repairman. In my preteen years a friend of the family was a TV repair man who indulged my curiosity with his repair equipment by showing me various gadgets and gizmos and the patterns they would generate on his oscilloscope. My interest in things electronic was born. Several years later when the University of Washington admissions form asked what college I wanted to apply for, my response was electrical engineering.

One of the required courses was introductory Fortran programming. I’d never touched a computer before, but I took to programming like a duck to water. It was clear that this software thing was something I could do for a living. I then took all the computer related engineering courses I could, and began working as a consultant at the computer center, and as an undergraduate teaching assistant for both that introductory Fortran course as well as one of the fourth year courses I’d taken.

My first industry job was as a software engineer for a small company in Seattle that manufactured Z-80 (8-bit) microprocessor based data-entry terminals. I got my fingers into several different types of software including communications packages, operating system components, user applications and programming languages – including Microsoft Basic.

In 1982, IBM had just launched their personal computer, and this local company called Microsoft was advertising for engineers. Cover letter, résumé & several interviews later I found myself across the table from this gentleman named Steve Ballmer who offered me slightly less than I had been making. There were also these things called “stock options” that I didn’t really pay all that much attention to at the time. (You can visit http://notenboom.org/history/begining.html for the letters, the résumé and more.)

I spent my first year at Microsoft working on Microsoft Cobol, and hold the distinction, if you can call it that, of releasing the last 8-bit version of Microsoft Cobol for CP/M. We also shipped several MS-DOS versions, and I was introduced to all sorts of technologies including 8086 assembly language, the Xenix (aka Unix) operating system, MS-DOS and some serious C programming. The next three years then saw me shipping various flavors of Microsoft Basic. And apparently because I appeared organized, I also got my first taste of management.

I joined the C compiler and runtime team to develop common help technology that turned into the help engine used in products such as Quick C, Quick Basic and OS/2’s Quick Help. I received one of Microsoft’s earliest software patents for the compression technology therein. With the company experiencing geometric growth, it also didn’t take long for my return to management, leading the team that developed Programmer’s Workbench, Microsoft’s first attempt at a high-end integrated development environment, which shipped with Microsoft C 6.0.

I then took my on-line help experience to the Windows Help team, which was developing the equivalent technology that shipped in Windows 3.x. Eventually the Windows Help team merged with the Multimedia Viewer team, which had earlier cloned the WinHelp technology to provide the underlying technologies for products such as Microsoft Bookshelf and Encarta. After facilitating that merger, I spent the next year as the development lead for Microsoft Money, grew that team from 5 to 16 engineers, and shipped Money 3.0. After Money it was off to the telephony group where I worked on a subsequently cancelled project to integrate sound cards and telephone hardware into a unified device. That work also resulted in one more patent.

Expedia was my personal introduction to this thing called the internet. I started as a software engineer working on communications protocols, but soon became the “technical operations lead” charged with interfacing between the developers of the product and the MSN datacenter where it would be hosted. Expedia was a fantastic learning experience, but not without its drawbacks. If the site had problems I was the one carrying the pager 24x7, which invariably went off in the middle of the night. After a three month and much needed sabbatical, I returned to spend time once again as an engineer working on the back end communications protocols between Expedia and its service providers.

After Expedia I returned to where my Microsoft career had started: programming languages. Visual Studio has a large infrastructure dedicated to the official, daily and debugging builds of the product. That team and lab represented the culmination of the unification of the various programming teams and technologies into one product. With both the operations team and two development teams, one for the build process itself and another for product setup, this was most complex management experience to date.

When Visual Studio .NET shipped, my plans to retire and leave Microsoft had been forming for some time. My manager offered me a part time consulting position, which I kept for roughly a year, focusing on analyzing aspects of the development process.

I left Microsoft in November of 2000, but three months later I returned to the MSN group as a part time hourly contractor. They were in the process of setting up something very similar to the Visual Studio build lab, and facing many of the same issues.

One ongoing role at Microsoft has been as a job interviewer, and hiring manager. Recently I’ve taken some of that experience and written two books: “10 Quick Steps to Interviewing for Tech Jobs” and “10 Quick Steps to Interviewing Tech Jobseekers”. (http://10quicksteps.com)

Q: Your background is so diverse. Please share some stories and meaningful experiences including ones with humor.

A: When I was an undergrad teaching assistant at the University of Washington, I helped with one of the 400 level courses that involved students choosing one of three projects and completing it on their own. One of the students clearly didn’t need any help, as he successfully wrote software to draw a maze on a small plotter, and then graphically navigate that maze. His embellishment was to have the plotter draw a small mouse at each position as the maze was traversed. That student was Chris Peters, who joined Microsoft and who’s first programming task included the drivers for the first Microsoft mouse. In fact, he’s credited with coining the term “mickey” as a unit of mouse movement.

I mentioned that the company I worked for prior to Microsoft was running Microsoft Basic on their equipment. What I didn’t realize until sometime after I got there is that it was a pirated copy, reverse engineered, and then augmented to take advantage of the hardware specifics. The ensuing legalities had been taken care of by the time I showed up. And the engineer that had actually performed the reverse-engineering and modification had gone on to work for another company, Microsoft.

In the early IBM PCs, Microsoft’s Basic interpreter was actually burned into the ROM of every PC. Apparently by the time I joined the Basic development team, the actual source code to the specific Basic burned into the ROM had been somehow lost. We had something close, but I did, indeed find myself reverse engineering the Basic interpreter from the ROM on my own PC to reconstruct the exact source code.

Text editors never have all the functionality I want, so when I was the project lead for Programmer’s Workbench, or rather it’s predecessor, “M”, I wrote an article detailing how to use its extensibility model to add a couple of simple editing functions. That article was published in The Microsoft Systems Journal in 1988. In the years that followed the extensibility model was either not present at all, or somehow limited in subsequent versions of Microsoft’s C development environment. It wasn’t until Visual Studio .NET that the full capabilities of the programming environment were once again exposed in a way to allow for the same level of extensibility. So, roughly 14 years after the original, after I had returned to the Visual Studio team, I once again wrote my editing functions, and the companion how-to article again. It was published in MSJ’s replacement, MSDN Magazine, in February of 2002: (http://msdn.microsoft.com/msdnmag/issues/02/02/VSIDE/default.aspx).

Q: How do you bring your finely tuned expertise, passion, vision, and accumulated knowledge to your clients? In which areas do you feel that you add the most value?

A: I think my versatility and “jack of all trades” nature are exceptionally valuable skills in a rapidly changing world. The technology space is so dynamic – so much is changing every day, from new technologies, new techniques and even new concerns. Having a lot of experience in a large number of areas makes it not only easier to adapt to the new, but also to recognize common patterns and those “we’ve been here before” situations. For my clients that translates into an ability to pick from a wide range of solutions, or work effectively within various pre-existing technologies and environments. Even as I was writing this response, I received a question involving a programming language I’ve never used, and was able to quickly resolve it and learn something in the process

Q: You provide a valued service with Ask-leo.com which illustrates your breadth and depth of knowledge and experiences. What are the most common questions and their solutions? Are there particularly interesting ones that you could share?

A: I expected common questions, and so far I’ve been surprised that a pattern hasn’t really emerged. I’ve had questions that boiled down to hardware issues on an individual’s computer, to networking dilemmas, to the programming question I mentioned above.

I do blog the most interesting and generally useful questions or summaries at http://ask-leo.com. The currently most popular entries I think illustrate much of the confusion that people feel about technology: “What’s the difference between MSN Messenger, Windows Messenger, and Windows Messenger?” (http://ask-leo.com/archives/000017.html), and “How do Outlook and Outlook Express Relate?” (http://ask-leo.com/archives/000008.html). These show that in many cases, people are just interested in understanding what they’re facing. Thus consumer education is becoming an interesting focus of Ask Leo!.

With new technology being both pervasive and rapidly changing it’s hard for people to even know where to turn sometimes. Even if the only value I add is to help point people to the resources that they can use to address the issue at hand, I’ve added value.

Q: Please provide the details behind your different activities, today and into the future?

A: I have my fingers in many pies. Currently I’m:

1) Answering Ask-Leo! questions.

2) Configuring my new leased server that hosts Ask Leo!, Puget Sound Software, and my wife’s doll shop: http://dollsandfriends.com. It’s my first deep experience with Linux and related software, and it’s been very positive.

3) Developing the shopping cart for dollsandfriends.com and defining how that will relate to the point-of-sale software I’ve written that runs in the retail store.

4) Working with one client to define and implement a new section on his commercial web site.

5) Working with one non-profit to define and implement their entire web site.

6) Working with another non-profit to develop a leadership program to support some non-traditional, entrepreneurial volunteering impact.

7) Maintaining the web site and participating in overall direction for a third non-profit.

8) And of course, like many folks in technology, helping all the friends and family who get to bypass “Ask Leo!”.

Q: Where do you see yourself in the future?

A: I still clearly love this work and technology, so my expectation is that my immediate future looks a lot like today, only more so. I see myself working on a handful of paying projects and a handful of more philanthropic endeavors that allow me to contribute and exercise my skills and strengths doing so.

Q: You have one of the most remarkable development backgrounds on this planet! With your considerable knowledge of the IT industry, any predictions about future technologies, specific winners and losers, killer apps?

A: Other predictions to the contrary, I think that the PC, or a device very much like it, is going to be around for a very long time. I’m really looking forward to the convergence of the PC and Tivo-like devices which are just now starting to happen. I believe that one killer application is the marriage of the Palm Pilot class of devices with cellular phone and MP3 players. Companies are taking steps in these directions, but internal integration, ease of use and the relationship with the desktop need to be an order of magnitude better than it is in even the best device in this class today.

As bandwidth to the home increases, I think we’re going to see many more issues like the current file sharing controversy the music industry is facing. While for-pay download services are a start to allowing honest people to remain honest, they don’t really solve the underlying issues that I think will remain. And while I don’t have “the answer” to the problem, I’m definitely frustrated by DRM solutions that in the long run punish honest people in the attempt to make illegal file sharing harder.

And speaking of bandwidth, another killer application out there somewhere is ubiquitous high bandwidth (10mbs or better) wireless internet access. WiFi hotspots are a start, but consider the possibilities of having that kind of high-bandwidth connectivity, say, anywhere you can use your cell phone.

Q: Since you spent so much time at Microsoft, describe your experiences with the company, and what you view as Microsoft’s strengths and weaknesses?

A: If you’re a software engineer, it’s the greatest place on the planet to practice your craft. Really! The opportunities within the company are absolutely amazing. Leaving was in many ways an incredibly difficult decision for me.

It’s been said before that Microsoft purposely tries to retain the atmosphere of a small company running scared, and it’s not far from the truth. Many of the groups or divisions definitely have that small company, “underdog” kind of feel. That’s a great thing to try to preserve because it does play to two of Microsoft’s true strengths: autonomy and pushing responsibility down the management chain. An engineer, especially an experienced one, can have a tremendous impact on the product he or she is working on. The downside, of course, is that you sometimes end up with very mixed messages that confuse the marketplace – consider Outlook and Outlook Express for example.

Microsoft’s attempting to act like an aggressive small company is both a boon and a bane. In many ways it’s what makes the company as successful as it is. However when in reality you are the dominant market force, you have less practical freedom. As a result Microsoft is constantly pushing the envelope, successively succeeding, failing and occasionally getting into trouble.

Q: What top ten tips would you give to businesses and IT professionals to remain healthy and competitive?

A: Stay flexible, embrace change. Not doing so is the way to get left behind.

Put aside technological religion and focus on solutions, on getting things done.

Don’t compromise quality, and expect the same from your suppliers.

Stay educated. There’s something new in your field every day – knowing it gives you an advantage.

Understand the value of people. I’ve grown the most in my career by virtue of the people I’ve met, worked with and worked around than any other single factor.

Understand the value of communication. Misunderstanding or miscommunication can cause more havoc in a second than just about anything else.

Q: You worked as a technical interviewer and hiring manager. What tips can you give to potential employees and conversely to employers?

A: How timely – I’ve just published two ebooks on that very subject; “10 Quick Steps to Interviewing for Tech Jobs” and “10 Quick Steps to Interviewing Tech Jobseekers”. (http://10quicksteps.com)

I will say this: a lot of people get wrapped up in the mechanics of the interviewing process, and while that’s important, you’re probably worrying about the wrong thing. Puzzle problems are not a trap. You will be asked things you don’t know, and you will be asked things you should know. It’s how you deal with them that matters. Once you get past having the skills for the job, the real question to me is all about fit and passion. Is this a group of people you want to work with? Is this a job you’ll love? “Do what you love and all else will follow” is true for both the potential employee as well as something the potential employer should be looking for.

Q: Considering the rapid changes in technology, forecast the appearance and feeling of a typical home and business environment—perhaps five and ten years into the future.

A: As rapid as change has been in the past, almost any prediction is doomed from the start as either being too fantastic, and hence showing up next year, or as too obvious, and then never happening.

In many ways I think much will remain the same as it does today – we may have new and faster toys, but even when you look backwards 10 years, the only truly major paradigm-shifting difference I see is the internet itself. With that in mind, I will say that the world will continue to get virtually smaller, and that in the home and business alike we’ll be interacting more frequently and more directly with individuals all over the globe. And we’ll all become more cognizant of time zones.

Q: What are your top ten recommended references and resources for business people and IT professionals?

A: The Seven Habits of Highly Effective People is very high on my list.

Being proficient at Google turns out to currently be a very valuable skill. Both the mechanics of the tool, as well as your own sense at sifting the wheat from the chaff. (The book Google Hacks is a great reference.)

The Risks Digest, http://catless.ncl.ac.uk/Risks/ is a must to remind us how reliant we are on, and yet how vulnerable we are to, technology of all forms, but particularly computers and software.

Micosoft Support, http://support.microsoft.com is an under-appreciated resource. Sometimes difficult to wade through, there are many, many gems in the knowledgebase.

I recommend at least becoming familiar with RSS, a publication model alternative to email. Spam is having such a negative impact on our ability to communicate via email that a smart business should be looking at additional alternatives, RSS being one of them. http://rss.lockergnome.com/ is a good reference and starting point.

On a purely technical and very geeky level, I highly recommend the tools out at Sysinternals for folks attempting to diagnose, tune or just manage Windows based systems. I use something of theirs almost daily. (http://www.sysinternals.com/)

Anyone involved in system administration should be paying attention to the Bugtraq  mail list or RSS feed at http://securityfocus.com/, and/or the NTBugTraq mailing list at http://www.ntbugtraq.com/

Q: Describe your computer setup?

A: My primary desktop is a Dell 3gz hyperthreaded Pentium 4 with 2gig of ram and 60gig of hard disk running Windows XP professional. I have four other machines on site, all running either Windows 2000 Server or XP. A laptop, of course, connected wirelessly. One server is my mail and testbed web machine, and others serve up either disk space or peripherals or both.

I lease a Linux server out at ev1servers.net that hosts my public domains.

Q: If you were to do it all over again?

A: I’d pay more attention in English class. Seriously, the ability to speak and write well is an underappreciated skill that makes a huge difference in the workplace. It took me a long time to grasp that. And I still kan’t spel.

Q: If you were doing this interview, what three questions would you ask of someone in your position and what would be your answer?

A: I’ll use this opportunity to refocus some of the things I’ve touched earlier on with the question “What does it take to remain a successful IT professional?” Beyond basic ability, my answer would be a passion for technology and the ability to embrace change. Specific skills are critical, of course, but in many ways they’re only transitory. What you know and use today is likely not the same skill set you’ll need 10 years from now. By staying truly interested and aware of the industry, and continually learning, growing and honing your skills, you’ll stay on top of your game. And you’ll probably also enjoy the heck out of the ride, as I do.

Q: Leo, we appreciate the time you have taken in participating in this interview. You have done many marvelous things over an outstanding career! Thank you for sharing your considerable knowledge and experiences with our audience. We are so fortunate you spent the time with us.

A: You’re very welcome. Thank you for having me.