Best Professional Advice I Ever Got

This is the story of the best piece of professional advice I ever got, and how it affected my career. I think it’s good advice, and I’ve never stopped thinking about it, so I thought it was time to share.

The Advice

It was 1996 and I was just starting work at my first job outside college. The company: Microsoft. The product: Windows 2000. The team was Base Test, and my boss was a guy named Terry Lahman, a lean mustachioed Dad-type who really cared about the product and his employees. I was nervous and green and didn’t have a clue what I was doing. Eager to please, I did everything Terry ever asked of me, as best as a new college grad could.

One day he came into my office, and this is what he said:

Eric, every now and then I’m going to come into your office and ask you, “What are you working on that I don’t know about?” You should always have something to tell me.

I remember being surprised, which is probably why it stuck. I thought he’d be upset if he found out I was “wasting” time on outside projects. But here he was, telling me to do just that.

The Results

After that, I started taking on little side projects. I learned fast. A dislike of Perl and a love of C++ led me to write a C++ regular expression engine called GRETA. It had little to do with my job, but that’s OK. Terry always took a keen interest in my projects, and they never interfered with my work. My passion for code grew.

As luck would have it, my little regex engine became popular within Microsoft, and several groups started using it. Around that time, the C++ world was abuzz with talk about TR1, a set of planned extensions to the standard library. They were looking for C++ regex engines, so I got involved in the C++ standardization effort (an involvement that continues to this day).

Through my interactions with the standardization committee, I met a lot of talented and smart people. I also came to hear about Boost, a collection of open source C++ libraries. Eventually, my path crossed that of Dave Abrahams, a co-founder of Boost, and he and I became friends. When I finally decided to leave Microsoft, Dave took me on as a sub-contractor at BoostPro Computing.

During this time, my involvement in Boost grew. No matter what I had going on work-wise, I always had side-projects, as if Terry might walk into my office at any time. I wrote a new regex engine called Boost.Xpressive. As part of that work, I wrote a library called Boost.Proto for building embedded domain-specific languages. People started using my code and wanting my help on their projects.

Now I work for myself. Clients find me through my open source contributions, which I always make time for. I have never forgotten that day Terry encouraged me in just the right way.

Be Passionate

To me, Terry’s advice is about initiative and passion. Don’t wait for someone to tell you what to do. Just do it. Experiment. Play. You’ll find your passion, and you’ll surprise and delight your boss, your clients, and yourself.

4 thoughts on “Best Professional Advice I Ever Got

  1. An interesting point of view but I reckon it depends on the nature and atmosphere of each individual company one is working at. It may have worked at Microsoft but I don’t think my current employer would be particularly pleased to find me working on my personal projects during office hours.

    Still, thanks a lot for that advice, I’ll try to keep that in mind. :)

  2. Pingback: Meeting C++ trip report. | KDAB

  3. Very nice story. Sounds similar to what Google made famous with their 20% time projects. I wonder if this still holds in present-day Microsoft, as opposed to Microsoft of old.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>