Careers: Interviews
Top-ranking developer shares his views...
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.
|