Thursday, May 10, 2007

Lessons learned from the patent filing process (three times bitten)

As of the end of last summer, I had three patent applications in the works. I searched the european patent database today, and it seems that my very first application is now public, and available online.

The name is typical lawyer-speak: Method or apparatus for managing a server process in a computer system. The paperwork was filled out in the final weeks of my internship with IBM Research (Switzerland) in August of 2004. It was made public by the European patent office at the end of February 2007.

I am quite proud of this idea, although, the circumstances that followed proved to be a fairly negative, yet extremely useful learning experience. The full description can be seen online. Essentially, the idea involves having a number of short-lived virtual machines each running on one physical machine. Incoming connections are routed to a new virtual machine every few minutes, and thus, the existing virtual machines can be brought down and restarted from a 'known' good state. In addition to making it really difficult for a hacker to leave a machine in a permanently hacked state, it also accelerates the rate at which forensic information can be gathered, and potentially, automatically reacted to.

However, the purpose of this blog post is not to discuss the technical details of the patent. It is to describe the problems that came after the patent filing. This problem was not unqiue to IBM, and thus the very same thing happened to me two years later at Google. I would like to say that I've finally learned. It's also quite reasonable to argue that these two experiences have done much to shape my current ill-feeling towards the patent system.

While the details are slightly different, my two internship patent filing experiences at both IBM Research and Google can essentially be generalized to the following:

1. Come up with cool idea while an intern at company x.
2. Tell my boss/the legal department, and begin the process of filing an invention disclosure.
3. Begin writing code that implements the idea.
4. Run out of time on the internship.
5. Am told by bosses/company lawyers: Here is your $1000 (give or take) patent filing bonus. Thank you very much. The idea is now ours, you are forbidden from telling anyone about the idea, you are forbidden from writing any/completing any code that implements the idea, and you may not publish a research paper on the subject.

Now that my patent application from IBM is public, I suppose that I can finally finish implementing it, should I wish to do so, but arguably, the idea is stale now (it's 3 years old), and the field has moved on.

The two ideas that I came up with at Google were the same. For one, I had a good chunk of demo code that at least fleshed out the idea. It would have made a perfect research paper, but my several attempts to get permission to work on the idea post-internship have gotten me nowhere.

The moral of the story, I suppose, is to be careful about disclosing inventions.

Interns really don't have any room to negotiate an NDA. Thus, the only real power you have, is over your choice to disclose inventions or not. Sure, you get a cash bonus, but in the grand scheme of things, it's chump change - esp. if it means that you won't be able to publish a research paper on the subject. After all - research papers are the currency of academia. And were it not for my desire to be an academic, I'd be making real money now, instead of being $100 per month shy of food stamp eligibility.


Anonymous said...

Tough lessons learned. Thanks for sharing your experiences and thoughts. Academia and the world need more like you.

Mobocracyminded said...

You are a genius!
Imagine this process used from the web browser perspective.
Drive-by download/malware killer.

I wish you would have taken that Microsoft internship...
launching a new vm to contain your browsing experience - tripwire goes off and jump.

Do you see any problems with it?