Saturday, October 5, 2019

sfe

Note: I’ve edited this since initial publication, mostly to add links to other entries, but there’s some new text as well.

Late summer into middle fall seems to be a time when things get kind of loose around the edges and I think about what I’m doing and, often enough, make decisions that change the whole structure of my life.

Not coincidentally, it’s coming up on 5 years since I quit SparkFun Electronics. They’ve been eventful years, for good and ill both. I’ve had some times, man. Even so, I wonder in a clichéd way how it’s been this long already.

Mostly, SparkFun gets further from my mind all the time. Every passing year fewer of my friends are trapped there while it decays into the kind of thing it used to repudiate just by existing. I’m still bitter, but it’s a bitterness I don’t have to think about very much. Still, it comes back in waves now and then. This time I wondered: What did I learn from all of that?

There was probably a lot. After all, it was seven years of my life, and on one end of it I was still young and on the other I wasn’t really. I probably knew a lot of things in the middle of that experience that I’ve lost since.

So, first: You won’t always know more than you used to.

When I started working on sparkfun.com it was an e-commerce site written mostly in a programming language called PHP, and when I left it was still an e-commerce site written mostly in PHP. We made plenty of mistakes along the way, but I’m pretty sure we were right not to do a wholesale replacement of a functioning system using trendier tech.

If you are not familiar with the politics of programming languages, a thing you should understand is that it’s important to the way technical culture operates that some tools (and often by extension the people who use them) be understood as generally bad and without value. PHP is, in this model, marked as fundamentally misguided and thoroughly regrettable, and is thus an acceptable target of derision and mockery.

Just as important are two other facts: First, that despite its nastiness and reflexive contempt, this understanding is in many ways correct, insofar as it applies to tooling. Second, that it errs mainly in being applied so narrowly. Which is to say that yes, PHP is a bad programming language, but generally so are the programming languages preferred by PHP’s most vocal detractors. (I should know, as I have often been a vocal and ardent detractor of PHP.) I have yet to find an exception to this, though I continue to learn programming languages and may one day be pleasantly surprised.

I’ve spent most of my working life using tools that are, as I’ve written elsewhere, terminally unhip. SparkFun was an extended lesson in the difference between something’s received reputation and its consequences in practice.

See also:

I learned that you should be kind to customer service reps and tech support.

There were a lot of times I was unkind to the people I worked with, and I’ve learned to regret that.

I learned that “the customer is always right” is poisonous, and that there’s some joy in explaining to the kind of person who has always used that notion as a weapon that their business isn’t worth the abuse.

I already knew how to program when I started at SparkFun, or at least I thought I did. While I was there, I learned how to make software. A bunch of the apparatus and the tooling, but more than anything that you have to work with people. That it’s a shared thing. That, mostly, you’re going to do it together or you’re going to fail at it.

I learned a lot about unintended consequences, and the ways that design decisions unfold into patterns you never anticipated. I learned to mistrust cleverness and prize the explicit.

Models are always wrong, maps are territories unto themselves, and shared understanding is a harder thing to build than almost any other kind of technical artifact. If people use the tools you create, even if they helped you build them, they’re going to do it in ways that break every expectation you had and put the lie to every unstated assumption you made.

I discovered all that at painful length, and then I thought that when I got into the wider technical world I’d find out how unsophisticated we’d been about the whole thing. In some ways that’s what happened, and it’s painful (but also funny) to think about how little I knew back then. In others it turns out that most people are groping in the dark and a lot of what gets sold to you as sophistication just curls back around into wishful thinking, technical debt, and bureaucratic churn.

In late 2013 I wrote this:

Programmers must, as long as we hope to be effective, sustain a dispassionate awareness that all we do is dust in the wind: That entropy is destiny, disorder is law, and futility is the architecture of existence. We succeed, to the extent that success is possible, only as long as we remember that our efforts are but brief disturbances in the ordinary course of time’s certain triumph over the integrity of all built systems. Everything you make will surely die, and unlike the children of your body or the structure of a great city, the code you write will probably die long before you do.

See also:

I learned that salespeople will find a way around you, and that no one is more susceptible to marketing than marketers.

I came to think of marketing itself as an aggressive ideological cult, or maybe just the most visible part of one — a complex of ideas spidering out into most domains of human endeavor, and hungrily grasping at whatever cognitive territory remains unconquered. Marketing as a mask worn by something deeper in the culture and harder to name or delineate, let alone contradict.

See also:

I learned that you should moderate the comments, if you have them at all, and maybe something about how.

I learned to ride a bicycle again, commuting as many days as not on an aluminum road bike from from the early 80s with downtube shifters and straps on the pedals. A coworker found it on craigslist and helped me tune it up - the first bike I’ve ever owned that wanted to go fast.

Despite an ocean of beer and liquor and all the attendant bad decisions, I was probably healthier then than I’ve been any time before or since. I was definitely more plugged into the landscape and the seasons where I live. Every working day bookended by little adventures.

Some things about hiring:

  • It’s hard and very often the people doing it are flailing.

  • Interviews are mostly nonsense.

  • Hiring your friends (and maybe relatives) is an entirely rational way to go about things, to a point. What you have to deal with is this: Some of your friends might be incompetent or worse, and even if they’re not, leaning too hard on your existing social connections reinforces all the privileges and biases and latent power structures that put you in the position to hire somebody in the first place.

I learned how much quality matters and how much it doesn’t: From how hard we tried to get things right in the software and how little it probably mattered in the final analysis. From selling things that were basically pretty good and also from selling bottom-dollar no-utility garbage, both with enormous externalities.

I was pretty good at not thinking about those externalities: Cheap labor and industrial pollution in someone else’s country. Fuel oil and gasoline and jet fuel in transit. I was fully complicit, and I knew it on some level, but as long as we were getting something right I felt like we were ahead of the game anyway.

We sold stuff with open designs and open code and showed people how to use it. A faction of us free software partisans fought pretty hard on that open part, and got listened to for a while. A lot of the people I worked with were teachers in the best and simplest sense. I couldn’t begin to guess how many people learned to solder and write a simple program from SparkFun workshops and tutorials. It worked for a long time. Maybe we were ahead of the game. Maybe we made people more free, gave them greater agency in a time when the tech in general is spinning wildly out of their control.

Then again maybe we mostly taught the children of technocrats to put more tiny computers in everything, to the long-term advantage of the billionaires and authoritarian scumbags currently hastening civilization along to an end state that’d slot pretty cleanly into the Mad Max franchise.

It’s hard to say exactly.

Erik Winn always said business ruins everything. I learned I think he was right, for the most part. I also learned that you have to work with people to get anything done, and that businesses are a lot of where that happens, for better and worse both.

“Community” has to be one of the most abused and debased words in the contemporary vocabulary. There’s this Greg Brown recording I half remember where he makes fun of the idea of intentional community and says that community is what happens when you have to get along with the people you’re stuck with.

Well, for years I went to work in a gray-carpeted room in a shabby building in a half-empty suburban office park, and after a while I woke up looking forward to it as often as not, because I was going to work with my friends.

The Sunday after my last day at Sparkfun:

It can be an astonishing thing, in a certain sort of life, to look around and understand that you have, and have had for a long time now, a lot of friends.

I still feel like that.

A lot of what I learned from SparkFun came right at the end.

I learned never to mistake an aesthetic for an ethic. That the signifiers of style can’t be relied on as the signs of a lived belief or a worked understanding. That a keg in the break room and a high tolerance for stoner hijinks makes a pretty good smokescreen for lousy wages and bad faith.

I learned just how easy it can be to kill something from the top, even if it got built from the bottom up.

I knew for a long time before SparkFun that employment was mostly bullshit, and that the interests of the owners are not the interests of the workers. I managed to set that one aside for a while, but it all came back in a rush: More complicated by all the contradictions of experience, but true all the same.

As long as there’s no shared power that can check and hold to account the owning class and their enablers, we’re all their enablers. Individual workers are, more often than not, left with rage-quitting an organization as the only means of signalling meaningful dissent. And at that it’s a form of dissent open only to the few who are cushioned enough by their skills, family wealth, or social status to exercise it at will.

It’s late on a Saturday night and I’ve been trying to write this for days without getting half of what I wanted to say into it.

I guess for now I’m going to call it good and close this set of entirely too self-serious reflections with some dialog from the Coen brothers' Burn After Reading, as quoted on IMDb.com:

CIA Superior: What did we learn, Palmer?

CIA Officer: I don’t know, sir.

CIA Superior: I don’t fuckin' know either. I guess we learned not to do it again.

CIA Officer: Yes, sir.

CIA Superior: I’m fucked if I know what we did.

CIA Officer: Yes, sir, it’s, uh, hard to say.

CIA Superior: Jesus Fucking Christ.