my magnum opus stalled out

I have an open-source personal/side project consisting of several sub-projects, that I call my “magnum opus.” (I don’t link to it here to preserve my pseudonymity.) It has been my most brain-consuming project so far. My white whale, my windmills, my Project Xanadu.

It began in the best and worst way: with a flash of inspiration that gripped me and would not let go, insisting that it was revolutionary, necessary for the future of the Internet, needed by the world. It convinced me that no nasty profit-minded company would ever conceive of or build it correctly; it was therefore my responsibility to make it happen. It demanded I pay it attention and spend all my spare time thinking about it. I even wrote on my website that I thought it could “fix the Internet.”

I can compartmentalize and recognize that this feeling is mostly delusion of grandeur and flights of fancy. It’s not the first time I’ve had a “change the world” idea, and I look back on previous ones with bemusement. Nevertheless, it is fun to explore such ideas when they arrive. Maybe if I have enough, and I don’t simply dismiss them, one might be successful, maybe just a little bit.

And sometimes they have become successful, when other people independently conceive of and implement an idea of “mine.” That’s frustrating, but as Mark Twain said, “there is no such thing as a new idea.”

Anyway, it makes me happy to ignore people’s advice to reign in my ambition, and instead pursue unrealistic projects in my crumbs of free time to make the Internet a better place.

The Lab

Around the same time that I conceived of the magnum opus, my then-employer was offering a self-directed research program to their developers, as a perk, modeled after Google’s famous 20% time program. They called it The Lab.

The program let our engineers spike out projects and proof-of-concepts that captured their interest. Even not-entirely-work-related projects were admitted. The justification was that this sort of non-work work can:

I can certainly vouch for the first point. Even though I was working for the weird technology/internet-focused sub-sub-department of a big, slow, traditional-media company (which was being eaten alive by the likes of Google and Facebook,) I still felt that because The Lab existed, we might actually make a real innovative difference in the industry. And by innovation, I don’t mean a Silicon-Valley-style “disruption” that skirts important regulations and makes everything worse to enrich a billionaire. I genuinely believed that due to The Lab it was remotely possible for our little skunkworks to make things better for readers and journalism itself. As unlikely as it was, the mere possibility made me feel hopeful and invested, even when my day-to-day work was to make computers better at serving ad impressions on “content.”

Google’s “20% time” program also gave the company some of their best products: AdSense, Gmail, Google Transit, Google Talk, and Google News. I think it’s worth emphasizing this: all of those products that helped Google to become as huge is it did were not “on the radar” of the company’s leadership. They were the result of capturing innovations made by rank-and-file engineers left to their own devices.

Our program felt like somewhat of an extravagance, as we were a small division of an old-guard corporation, itself nowhere near as large as Google. We did not work on our “20% time”-equivalent projects a little bit each Friday as Googlers do; instead we were granted contiguous blocks of multiple days to “go into The Lab” and work full-time on them. But only one or two developers at a time were able to “enter The Lab.” When “in the Lab” our managers even sheltered us from the day-to-day interruptions and fire-fighting of real work, so that we could focus on our Lab projects. Management also celebrated the progress of Lab projects and rewarded those who “graduated” from the Lab with recognition, science-y gifts, a little diploma-like certificate of participation.

It was so great.

It was a bit of genius on their part, too: to an employee like me, who does programming as a hobby as well as a job (which itself seems to be a job requirement these days,) two solid paid weeks out of the year to work on your fun toy feels like a bonus second vacation, but still amounts to only 4% of a developer’s time, compared to Google’s 20%. Not to mention some Lab projects resulted in a new product or service or improved tooling.

At the time I felt like “The Lab” made that company the best that I might ever get the opportunity to work for. It was the closest I might ever come, I thought, to the kind of opportunity for innovation granted to Internet and UNIX pioneers I revered at places like Xerox PARC and Bell Labs. It was one of the most enjoyable and productive times in my programming career so far. And it was the perfect opportunity to make some real progress on this pipe-dream research project, that the world needed, instead of struggling to tinker with it in my increasingly limited spare time.

So, I envisioned an application of my magnum opus that could potentially benefit my employer without compromising the users-first design whatsoever. It wasn’t bluster and empty self-marketing; I really believed in the idea. I proposed the idea to the Lab Director along with some second-choice projects and, to my surprise, he seemed to see the same potential in my project that I did!

In January 2012 I “entered the Lab” and (as the sole author) forked my project to improve in secrecy. At the time, it consisted only of public notes with no declared license.

My proposal described how the project was necessarily open: there would be no value in the complex particulars of its design (hash-based references, cryptographic security, decentralized storage) if it were centralized. If it were going to be owned and controlled by a single entity, it would 1. not be innovative at all and 2. could be built with a simple relational database. As such I expected that open sourcing the work would be the obvious, reasonable, inevitable outcome.

And that was not without precedent: a co-worker had insisted that, and was granted permission for, his Lab project to be open source and developed in public from the beginning. He admonished me for not doing the same, but I assured him everything would work out fine.

I was granted almost two months of time to work on my project, which I felt was incredibly generous.

When it was time for me to “exit the Lab,” I requested that the work I did be merged back into my project under an open source license. I was asked to “wait,” so they could get a better sense of what the project might do or become for the company.

Stagnation

I waited.

As time passed, the company changed. Budgets were tightened, the Lab was shuttered, management shifted, deadlines were looming. The managers I talked to didn’t have the authority to approve the release of my project. Their bosses didn’t have time to deal with my silly request which offered little of value to the business and was not pursuant to new business goals. My repeated requests to get someone who had some authority to waste a corporate lawyer’s time to get permission to release my little project—which the company was not using whatsoever—were never successful.

I grew disillusioned and depressed by my work and this was a major contributing factor.

I changed employers in late 2015 without having received permission to release the fork, so to avoid any legal risk, I have deleted my local copy.

True, it’s probably not even on that company’s radar. But on the extreme off-chance that I actually (re)build it, and it becomes popular, and it underpins a new and open platform for commerce and communication, I don’t want whatever my former employer becomes in that distant future to be able to claim a proprietary interest in it.

Senseless loss

The work I did “in the Lab” did not amount to very much in terms of a useful “artifact.”

I did a lot of research and proof-of-concepts of various pieces I wanted to implement. I learned a lot about the state of front-end development at the time (which was not my specialty) and the feasibility of performing cryptographic signing in browser Javascript. The artifacts from my time in “the Lab” were a couple slide presentations, a written report, and a smattering of ugly code. (Indeed, it’s probably better that that code is thrown away!) It was very far from, say, a useful program that someone could run and benefit from.

The work and research I lost can be re-done. Probably faster and better, with the hindsight of experience. Probably much better, with the advancements in front-end development that we have seen over the past several years.

So why, if I did not really lose all that much, did my project sit on GitHub untouched for more than six years?

My former employer did not—will never—benefit from keeping my work secret. Indeed I doubt anyone still working there even recalls that this happened, or knows where any copy of my work might exist.

So, it seems to me that the destruction of my work was meaningless.

And my colleague’s Lab project escaped this fate.

I don’t think that any person involved in this had malicious intent or disrespect toward me. No individual greedily tried to steal my project for their own gain. This was simply the most efficient course of action for the lumbering corporate machine, given its priorities, directives, and communication channels.

The only person in this whole saga whom I might be able to focus my seething ire toward, for causing my beloved and critically important personal project to be derailed for no good reason, is myself. Because of my own naïveté about corporate behavior.

That self-disappointment might be why I didn’t just dust off and rebuild right away. But I’m still not sure.

Lessons

This experience taught me some hard lessons about trust and corporations:

I’m happy to report however that recently I’ve felt some of my frustration sublimate away, and I’ve been feeling motivated to continue working on the project. First, I’m going to read up on some of the work that has been going on in the W3C with ActivityPub and Decentralised IDs, because I suspect there may be some overlap, and it would benefit from a common vocabulary.