Topic 3 Posts


I owe my career to Second Life's developer experience

I’ve told this story a million times:

I have the career I do because eighteen years ago, by accident, I learned to code in Second Life.

What began for me as a series of experiments with scripted 3D assets evolved into my first business and my first software products. I made enough money selling content in Second Life to pay my real life rent, for months. With this experience in hand, I was prepared for the iPhone’s App Store indie developer revolution, which rocketed me to a career in Silicon Valley startups.

There’s immense gratitude I feel for this experience. I’m a first-generation knowledge worker. The leverage of a technology career isn’t something I grew up anticipating. I didn’t even think writing code was for “someone like me.” What a joy, to surprise oneself this way.

I also feel a duty. The power of microprocessor automation and global computer networking is unprecedented in human history. You can reach audiences on a scale that was once simply impossible, and later merely the exclusive domain of a half dozen corporations. Now, through the internet, you can share ideas, build relationships, shape culture itself.

A single individual, wielding these tools, can have an accordingly unprecedented effect. Teams can go further still. I want others to have access to this, to find their own path to prosperity, to make their own mark on the future.

So I want to talk about the broad lessons of Second Life, as a developer experience. I want to talk about how it’s possible to create an environment that is so creatively fertile, someone could stumble backwards into learning code, changing their first life forever.

0. Storytelling

The journey always starts with a story.

Different tools have different stories for different audiences. In the case of Second Life, the story was larger than life. Build anything. Be anyone. Fly.

No, really, you could fly in Second Life. Why not?

While this story was dramatic and over-the-top, the product could back it up. When you arrived in Second Life, you really could build anything and be anyone.

Tools existed to compose primitive geometric shapes into larger orders of complexity, enabling everything from jewelry to robots to airplanes to skyscrapers. There were limits, but the expressiveness was deep.

You could also look like anyone you wanted. Every parameter of your avatar’s physical expression was editable. Advanced users could even upload custom UV mapped textures to apply as a custom skin.

The story promised a lot, and the platform delivered.

1. Frictionless sharing

When we create something we are proud of, we want to share it.

In the case of Second Life, everything you built was instantly visible, in realtime, to anyone nearby. You could attach creations to your avatar, parading them around everywhere you went in-world. With a click and a drag, any object could be transferred from your inventory into the shared environment around you.

For those who had access to Second Life’s land, sharing took on permanence. You could leave creations in place for others to discover and enjoy.

2. Easy experimentation, tight feedback loops

Any object could be scripted, using the C-like Linden Scripting Language (LSL). Select an object you owned and within a couple of clicks an editor would appear where you could begin writing code. Another click to check your script and then it would run immediately, affecting the object that contained the script.

The time to “hello, world!” was instantaneous.

As a consequence, the cycle between experimentation and result was tight. And again, it happened within a frictionless sharing context. You could quickly show off your scripted work to friends, or even get help from a more experienced coder. More on this in a moment.

Because of these attributes, I spent more time rewarded by experiments than I did setting them up. This built confidence and made it easy to develop a mental model of how the tools and language actually worked.

3. Abundant starter code

Glitch demonstrates the value of working implementations as a jumping-off point for both new and experienced developers. But more than a decade earlier, Second Life was bursting with working code you could drop into anything.

Want an elevator? There was a script for that you could modify and drop into your custom-designed elevator geometry. Between Linden Lab, Second Life’s developer, and a thriving community of tinkerers, scripts were everywhere, for every kind of purpose. Whether you wanted to build a car or learn more about the Second Life particle engine, it was easy in roaming around the environment itself to discover leads you could use to get moving.

4. Healthy, thriving community

In its heyday, Second Life was packed with the most generous, creative community. Animated by the principles of open source, “stores” popped up giving away free content newbies could use as a foundation for building their own experiences. This included everything from low-priced, pre-fab furniture to open source scripts.

Linden Lab did their part to foster this, and it was work. They enforced a terms of service, but also established and maintained community norms through their presence in-world. The investment yielded a community that was welcoming and multiplied the power of the platform. More and more people could be successful in whatever ways their imagination called them to be.

The resulting culture was transformational to me. People willingly spent their time teaching me everything from how to coax interesting shapes out of the building tools, to the vagaries of debugging a script. And once you were in, as a creator, with the crowd of creators? The heavens opened up. I was gifted the most interesting skins, offered pre-release products, even handed complex automatic update code from a more established creator. (Thanks, Francis.)

I’ve never known anything quite like it since.

5. Co-created, living documentation

The Linden Scripting Language wiki was my first piece of developer documentation. It was an exhaustive listing of the APIs that existed for interacting with Second Life as a platform, along with a primer on basic language features.

I got a complete crash course in programming—variables, logic, loops, types, functions, event handling, and more—thanks to the LSL wiki, which was a joint effort between Linden Lab itself and the community.

The wiki was packed with examples and notes. It was thorough and technical as it needed to be, while still being a friendly and accessible reference.

Being a successful developer is, more than anything else, learning how to learn. I couldn’t have asked for a better onramp than this living, hypermedia tome.

6. Scaffolding for success

Second Life’s ambition went further than all this.

Linden Lab wanted an economy to animate the incentives needed for all the content creation Second Life’s user-generated model demanded.

Anything you built, you could sell, paid in the platform’s virtual currency. It was this component that fueled me to go beyond tinkering to actually building full products, with marketing and advertising, documentation, even custom packaging.

Thanks to this economy, I was an engineering manager before I was a confident developer. At 20 years old, I was running my first software project, contracting with a friend I’d made who was good at scripting. Gathering requirements, checking on status, feedback, iteration, QA—I learned it all thanks to the promise of loot.

I built robot avatars people could wear, with little touches of personalization. The first one, largely cosmetic, netted me a few dollars. The second one, more elaborate, with goofy missiles you could take to Second Life’s various live-fire environments, did a little better.

By my third robot, I had enough contract code written that I could make sense of how the scripting language mapped to the various domains I needed to interact with. Everything from particles to user interaction handling to manipulating the physics engine—now I knew the foundations of how to do it all, and could expand and iterate even further.

Writing everything from the color customization scripts to the HUD UI, I was in the driver’s seat, and I could go as deep as I wanted. Months of late-night coding sessions, the joy of creation, the agony of bugs… the thrill of release.

The result made me thousands of dollars.

Through the internet.

What a revelation this was, discovering firsthand that you could make money through the internet. My working class roots had nothing even remotely analogous.

I still remember the night my third robot launched. The money kept pouring in. Every few minutes, another notification would slide down, another jingling coins sound effect. While it was great to clear a month of rent in a weekend, what was even more exciting was more than 18 months of passive income. The robot sold steadily, until everyone who wanted a science fiction robot appearance had found and paid for it and the cash petered out.

Forever after, I would see the world differently.

I want more tools and environments like this

I want a world where imagination, expression and technical implementation have the flimsy, porous boundaries that made Second Life so special.

I want more tools that are easy to dive into, easy make your own, and fast to share with the world. Environments that reward your investment by connecting your work to people who will enjoy it.

I want tools that bake in a sense of both community and camaraderie, lifting up newbs and accelerating them into a space of accomplishment.

I want tools that have serious power and impact, but still offer a friendly and accessible face, from the starter resources to the documentation.

Second Life was ambitious. It was a shared, persistent 3D environment that was completely dependent on user-generated content. Only through a potent developer experience could it find the success it needed. They had dire incentives to get this right.

But I think there’s a lot to learn there. As this technology cycle sputters to a close, a new one lurks around the next corner. I’ve always carried the hope that a new platform like Second Life could emerge.

Whether or not we find a worthy, broadly-adopted metaverse in our future, I think these lessons can help any developer tools project find some leverage for growth, positive impact, and creative power.

Meanwhile, I’ll always be grateful to the visionary team at Linden Lab. Their strange, powerful creation permanently altered the course of my life. When technology trends get me down, I can always look back and find inspiration in the place that got me started. Second Life, bandwidth and GPU-hungry, was far ahead of its time.

It was a singular achievement nonetheless.

When your salary requires you not understand the labor movement

I’ve been reading Daring Fireball for something like 18 years now. I appreciate John Gruber’s insights on Apple, and find him more right than not in analyzing their products, strategy and motivations. Hell, I survived a layoff in 2020 by buying an ad on his site.

But I’ve been scratching my head at this recent remark about union drives at Apple’s retail operation:

This public enthusiasm for labor unions is manifesting in high-profile unionization drives at big companies like Starbucks, Amazon, and now Apple.

This is a strange logical construction to me, but it mirrors a larger challenge I find among pundits in understanding the current moment and movement in labor.

In one of my favorite quotes of all time, noted 20th century troublemaker Upton Sinclair wrote “It is difficult to get a man to understand something, when his salary depends upon his not understanding it!”

The most insightful people in the game are struggling to make sense of a resurgent labor movement. But it’s not that hard to follow—if your incentives aren’t too bound up in the interests of the people who already have a lot of money.

Trouble is, that’s a hard line to walk while getting paid to write. I'm sympathetic—and unaffected. Maybe I can help.

Unions aren’t forming because they’re popular; they’re popular because they’ve become urgently needed and they’re forming for the same reason

In most people’s interactions with a workplace, the company takes too much and gives too little. The only recourse for labor is to form structures of counter-power to try and balance the equation.

You can stop reading there. All I’m going to do next is prove the point several ways, but if you came here to understand why unions are both forming and popular, you’re good to go.

CEOs, as agents of Wall Street and other financial interests, are paid hundreds of times what their workers make every year. In Apple’s case, Tim Cook took home $100m in 2021 alone. The typical Apple Store employee, making $22 an hour, would need to work 2,367 years to match Tim’s compensation.

This isn’t unusual to Apple, though. CEO pay is at an all-time high, but that’s not even the worst part. When workers create profits for corporations, what doesn’t go to the CEO is too often sucked up by shareholders in the form of stock buybacks.

Supporters of the status quo will argue that guys like Tim Cook create outsized value for companies, and deserve outsized compensation as a result. I can accept that Cook is a uniquely talented person with unique insights. Gil Amelio, Michael Spindler and John Sculley are proof enough that not everyone is suited to run Apple.

Nevertheless, I struggle with the idea that Cook deserves that much more of the pie than the people who make it possible for him to move the vast quantities of hardware and services that allow Apple to post its billions in quarterly profits.

This isn’t an argument in the abstract, either. It’s becoming harder and harder to afford the basics of life—housing, food, transportation, childcare—in the United States, precisely because of this inequality. For example:

The people with money are living the high life while wage workers are struggling to get by. But this is about more than money. Employees of large corporations are separated from decision makers by enormous gulfs of reporting structure and policy, with limited say in their day-to-day work.

Apple’s workers don’t just want more money, they want things like better scheduling and career advancement. The timing of when you work is everything: it impacts your ability to rest, to be with friends and loved ones, to meet educational goals, and otherwise determine the course of your life.

Scheduling in a recurring theme in many recent retail labor disputes, as in the case of Starbucks.

Amazon presents perhaps the most extreme example of how precarious today’s workers are. Six warehouse workers died when a tornado struck a distribution center in Illinois last year. Desperate drivers with no slack in their schedules have to piss in a bottle to meet their delivery quotas, as the company admitted to lawmakers. The company’s idea of worker well being is, in a bit that would go too far even for Severance, a phone booth-sized cubicle where workers can watch mindfulness propaganda.

Self-determination is an issue for wage earners across many sectors. The US sits on a knife’s edge as rail workers—over-scheduled and fighting for the basic right to do things like visit the doctor once in awhile—contemplate a nationwide strike that would grind logistics infrastructure to a halt. Those guys, at least, have a union.

To recap, workers are struggling with:

  • The basics of reliable scheduling and paid time off
  • Soaring costs of the essentials
  • Their ability to advance their careers
  • All the surplus value they create going to CEOs and Wall Street

In an economy that has produced enormous gains over the last decade, all of the fruits are going to the richest people in the system. After a global pandemic, in which frontline workers kept entire global economic order afloat, the rich are richer than ever, while workers are scrambling to pay the bills.

That’s why unions are popular. That’s why unions are happening.

There’s just no other recourse for such a wide-ranging, unfair, structurally entrenched bargain.

9/11 and a Hari Seldon future

It's important to understand the War in Iraq as an imperial snuff film.

You can get away with a lot in America—destroying the financial system, illegal arms dealing, laundering drug money—without earning the lasting ire of our ruling class. America is an empire long ago built on a two-tiered view of human worth.

It's a country that has always treated some of its population as disposable. Which neatly limits your accountability for malfeasance. Consequences are for those other people. Up to a point.

Because of this two-tiered state of affairs, American life is not itself treated as sacred by our culture, nor is civic duty.

But the American Status Quo is another story. Rupturing that has consequences.

While we lost thousands of American lives on September 11th, 2001, we also lost our sense of the status quo. Bankers, politicians and generals spent their day feeling out of control. Literally running for their lives, American elites felt visceral fear as they evacuated their strongholds in the wake of a terrorist attack. The people who were supposed to be safest in our country, the people with the most power, were scrambling.

This is not how the United States is supposed to work.

Bush and his courtiers spent the day in a nightmare of uncertainty, vulnerability, and disconnection. The resulting trauma of that crisis was pumped and massaged into the psyche of the country. In the US, calls for blood were in the media, in the halls of government, in the corner bar.

Somehow, Afghanistan wasn't enough.

Meanwhile, Iraq never had anything to do with 9/11. Didn't, as claimed, have terrifying weapons that could end Our American Way of Life as We Knew It. What it did have was people who bore a passing cultural resemblance to the attackers who shattered our status quo. It had a feeble dictator.

So 18 months later we all watched on cable news while the American Empire made a demonstration of its power. The world's most expensive military made quick work of Iraq's defenses, concluding its invasion in less than one month.

Saddam, humiliated, was yanked out of a hole in the ground nine months after that. Then they killed him.

Truly some street thug shit, sending a message: the US can still deal pain and destruction wherever we want it. For the rest of the world, this was a threat. For US citizens, this was meant to be a reassuring promise.

For the traumatized elite, it was confirmation that they were still in control.

Foundation on TV+ is an intro to imperial power

Vague spoilers within.

One of the gifts of science fiction is its ability to reframe our perception. Spaceships are fun, but they're not really the point. What matters is that, from a new frame of reference, we can imagine old problems fresh. We can discover new points of view, freed from the biases of history and prejudice.

At its best, science fiction is a social simulation laboratory.

In the case of Foundation, the simulator projects an enormous, tactile model of empire.

How does empire work? What are its traits?

Foundation takes all these details and zooms in on them, letting us roam around and examine systems of empire. Imagine a sociological museum filled with exhibits, diagrams and models. By imagining a powerful state that spans an entire galaxy, Foundation lets us really dig into the mechanics of power.

And what is an empire?

Empires are… civic eruptions. They're tangled webs of logistics capacity, resources of all kinds, military power, and self-justifying ideology. Empires can snowball, since having all of these things in combination lets them seize more capacity, more resources, more power. Ideology provides the moral and cultural lubrication needed to enable these actions.

The challenge is stability. All that growth comes at a cost. Administrative overhead, yes, but also the resentments of those on the losing end of encounters with the empire.

Foundation explores the practical, visceral experience of an empire: the brutality of power, the terror of instability and decline. We join Cleon as his Peace is interrupted in a terrorist attack. He responds, much like America, with attacks that do little more than destabilize the game board and slake popular bloodlust.

"You can't play chess with someone who's willing to set the world on fire."

Like America, Cleon lets his subjects watch on TV as the empire enacts revenge upon far-away people who or may not have had anything to do with their crisis.

An imagination toolbox

America is an empire in decline. I walk with the trauma of watching a leviathan crumbling around me.

Logistics capacity sputters. Resources are squandered to fight enemies we don't have. Meanwhile, hundreds of thousands of lives are snuffed out by a plague—many multiples of those lost on 9/11.

Large swathes of our population are too ignorant to shield themselves from that plague now, even as science provides badly needed, effective protection. Meanwhile, grifters take money for cures that don't work.

We've always had the ability to shut down the covid pandemic within our borders. We've just never bothered to do the work.

There is, everywhere, an air of discontent. The minor burghers who would once bully the poor into low-wage work now lament shortages of people willing to be so oppressed. Labor actions are more and more frequent, as conditions grow so dire that workers must overcome decades of crumbling union power and organize.

Of course, injustice abounds. We see corruption out in the open, we see the innocent oppressed for the color of their skin, we see righteous anger in the streets.

And we see white supremacists trying to overthrow our government.

Meanwhile, basic needs go unmet. US citizens, supposedly the freest people in all the world, can't access medical care without risking financial calamity. Wages have stagnated. We've abandoned updating the federal minimum wage. Homelessness is a soaring problem, and though we have the resources to solve it, like covid, we just can't be bothered.

I don't know what's next for this place. Not knowing is scary and tiring.

Foundation enters with metaphors, postulates and scenarios to help me imagine the long term consequences of what I see around me. All of it is rendered in exquisite, emotional, human detail. So far, we've touched:

  • The civic conflict between science and theology
  • Terrorism
  • Colonialism and the tribute paid to tyrants
  • Use of mathematics, engineering and science to enhance the imperial machine
  • The use of media narratives to support the whims of the political elite
  • Gerontocracy and the consequences of long-term elite crisis
  • Civil unrest as an outcome of the dimming light of the state
  • Imperial meddling in the political process of client states

Every detail of the writing is thoughtful, but every other detail is just as attentive. The production design brings us exquisitely rendered costumes, architecture, vehicles and props. A poignant, utterly distinctive score from Bear McCreary (Battlestar Galactica) sews everything together into perfect emotional resonance.

The cast is, of course, unbeatable.

Lou Llobel and Jared Harris are giving these roles everything they've got.

I'm haunted and captivated by what I've seen so far. I chew on the stories between viewings, and find so much integrity in the web of cause and effect they describe.

The scale of the story works. It's a successful epic that feels both adult and nourishing. Where Game of Thrones hit us with brutality to be provocative, Foundation finds more subtle ways of taking our maturity seriously—without pulling punches on the brutality of empire.

It's not necessarily feel-good. But it's a story of how to recognize, survive and mitigate a difficult moment in history. It's a story about putting a floor on darkness and chaos. It's a tribute to our power to stand up to tyrants and chart a new course.

I don't know about you, but I need a little of that right now.