Thanks to Terence Eden for point me towards this lovely essay about writing on the internet by Henrik Karlsson. I’m not going to write anything better than that today, so… just go read it instead.
Author: Kevin Lawver
Web developer, Software Engineer @ Gusto, Co-founder @ TechSAV, husband, father, aspiring social capitalist and troublemaker.
Just trying to be understood
If you are writing the clearest, truest words you can find and doing the best you can to understand and communicate, this will shine on paper like its own little lighthouse. Lighthouses don’t go running all over an island looking for boats to save; they just stand there shining.
Anne Lamott
The creation of all media is accompanied by a wish: to experience and to be experienced by another human mind. Above all this means to feel and to be felt.
Ze Frank
Today, you get quotes. So far, National Blog Post Writing Month has me writing longer-than-I-expected posts about things that I either wrote about a long time ago, or things that have been trapped in my head for years and I finally had a reason to write them down.
All of it is an attempt at being understood… and it’s my favorite thing about personal blogging. It’s one person, quietly sharing their heart, in the best way they know how, out into the chaos and cacophony of social media.
I’ve been doing it, somewhat inconsistently, for almost twenty-four years. This is the 2,800th post on this blog (here’s the first), and over 2,500 are mine, written by me (my wife also used to blog here once upon a time).
A lot of those posts are now kind of embarrassing. I don’t think I’ve ever gone back and deleted any (guaranteeing that I’ll probably never be able to run for office – a brilliant bit of subconscious self-sabotage). But, they provide a portrait of what I was trying to make sense of at the time, what was important, and again, all in an attempt to understand and be understood.
The mind that is not baffled, is unemployed.
Wendell Berry
People are always the problem
I’m now a very senior engineer. I don’t even know what the right title is (once I got “CTO” titles kind of stopped mattering), but at Gusto I’m an L6 and there are seven levels at the company.
One of the great things about working at a larger company is how many people I get to work with, and how many opportunities I have to mentor more junior engineers.
We spend so much time early in our careers just learning the mechanics of our immediate job: how to write code, make it maintainable, how to test it, how to make it performant, etc, etc, etc. That takes years, and is a lot. And then someone promotes us, tells us we’re now a “senior” engineer and we’re now presented a whole new scale of problems, and all of those problems involve people.
I think the industry does a pretty terrible job of preparing software developers to deal with people problems. We tell them to focus on code, which is important, because that’s the first layer of what’s expected of us.
If we think about the problems we deal with as we get more senior as layers, I think it’s easier to understand them. To me, in this very much first draft of me putting this into words, the layers are:
- Code: We have to be good at this to be asked to do anything else (even though almost all code problems are also caused by people).
- Individuals: We have a manager (at least one), people on our team, product managers, designers, etc. We need to deal with them individually and make sure we get what we need, and meet their needs.
- Processes: Everything we do at work is some kind of process – the meetings we have, how we deliver code, how we get rewarded for our work, all processes.
- Systems: Collections of processes in action – I think of them mostly in code, but “the patriarchy” is a system.
- Organizations: Organizations are just groups of people who create systems in order to accomplish their goals. Depending on the size of your company, you may in a nesting doll of organizations and may interact with several more.
As you get more senior, you’re expected to be able to solve problems on and across all of those layers. The hard part is figuring out what layers are “crossed by the problem you’re trying to solve, and then peeling them off and solving them – because the tools you can use are wildly different at each layer and require different skills.
The good part is that solving problems across layers is extremely valuable to organizations, so if you can do it, you’ll be just fine. The bad part is that as soon as you start crossing layers, people are always the problem.
Looking back: ficlets launching
I was going to just post a quote for today’s NaBloPoMo, but I was looking for old posts and stumbled on this one about ficlets launching.
Re-reading it, sixteen and a half years later, a few things jump out:
- How many people I worked with, and thanked in the post, are no longer with us: Cindy Li, John Anderson and Suzie Austin are all gone, and gone way too soon.
- How often I think about the people I worked with on ficlets, and how much ficlets opened my eyes to what working at a small startup could be like.
- I thought that ficlets launched in 2006, but nope, it launched in 2007, and I left AOL in May of 2008.
- How happy I am that all the links to the stories actually work (because AOL never owned the domain name, and didn’t make me give it to them, I took it back around the time I set up the ficly archive, and ta-da, all the stories live again on the web at their original URLs). I couldn’t do the same for the blog posts, unfortunately.
- How much ownership we felt over the product and the community. Jason, Joe and I spent a lot of time “rescuing” the stories (thank goodness for Creative Commons licensing), and then building ficly.
Most of the hundreds of projects I’ve worked on over the years (LOL, decades) blur together into vague lumps, but not ficlets. It was just the absolute best, most fun, weirdest thing I’ve ever gotten to do, and I miss it all the time (because working at a startup wasn’t really like that – it was way scarier).
The last thing is just how strong my feelings are for the people I’ve worked with. I may do a terrible job of keeping in touch, but I really do love all of them. The products we work on, they don’t matter nearly as much as the people we work with. And none of it lasts, not the products, not the jobs, none of it – but the people, the people are what’s important, so act accordingly.
Be kind, but have boundaries
After yesterday’s post, Amy asked another question that I’m ill-equipped to answer, but I’m going to try anyway:
Ok, tough question: a thing I struggle with, (maybe as a woman or maybe just my family of origin), is me behaving in a kind manner often means being seen as inherently weak or (shudder) useable to others. Any insights into how a woman might reconcile or boundary that in a patriarchy?
Amy van der Hiel
I think a lot of people mistake kindness for weakness, and I’ve never understood it. Being kind is work. Being kind when you’re in a bad mood, unwell, or struggling is even more work. So, to anyone who equates kindness with weakness or gullibility, you’re just wrong and I’d love it if you’d stop.
I’ve seen “do no harm, but take no shit” around the internet, and I think “do no harm” is too low a bar, but I definitely agree with the sentiment. We all need to set boundaries, protect our inner peace and make sure we’re kind to ourselves.
I think this can be hard at work – we want to be available to our coworkers and be helpful, but that’s a trap. If we want to be present when we’re working, we need to set some boundaries and make sure we’re taking care of ourselves and our families.
As for how to set them as a woman, as not a woman, this is what I’ve observed: people will try to take advantage of them because they see it as weakness, but if you’re firm with them then hopefully they’ll stop. Hugs are a good example. I no longer just assume people are fine with hugs. I don’t even offer to someone I’ve not hugged before, because I know it’s one of those “openings” men take advantage of. I think setting a boundary that you don’t hug coworkers you don’t already have a close relationship where there won’t be misunderstandings is one a lot of my female coworkers have had – and yeah, it can be awkward, but I think the momentary awkwardness is better than any unintentional (or intentional) misunderstandings later.
Being kind to myself involves the following:
- No arguing with strangers on the internet. It’s draining and not worth it to me. I just don’t engage, which means I definitely share less than I used to on social media.
- Turn off all notifications outside of working hours except those that are related to a real emergency (PagerDuty, for example).
- Don’t try to do more than one thing at a time. Multitasking is a myth and I can’t do my best work if I’m juggling too many things.
- Treat no as a kindness. Saying yes to something I don’t have time for isn’t kind – because I’ll either not get it done, or I’ll half-ass it. If it’s really important, then something else will have to not happen.
- Admitting when I’m not well, and taking time to recover. This one’s really hard, because I work from home so the bar to call in sick feels higher than it should be.
I think enumerating your boundaries, needs and wants is helpful. Once you know what they are, you can communicate them to your family, friends, manager and peers. I love having the “exchange of needs” conversation with my manager. It helps set expectations for both of us, and makes working together a lot easier – because we both know what to expect, and have easy ways to measure if we’re asking for something that’s beyond those expectations.
I think a lot of us grew up thinking that taking time for ourselves was selfish, and it just isn’t. We can’t be effective for others if we’re not kind to ourselves – and part of that kindness is balancing the giving with recovery and personal growth.
I hope this helps. Healthy boundaries create healthy relationships.
The intersections of kindness, humor and privilege
On Mastodon this morning, as I sat watching football (aka soccer) and drinking coffee, I asked what I should write about. Amy came through for me:
You’ve always seemed to put a lot of thought into kindness and humor (you++). I’d be very interested to read your thoughts on that – not just as a something you decide to do as practice or ethic – but maybe a bit deeper as to why and how and how you receive kindness and humor from others too.
Amy van der Hiel
I think this post from 2019 explains some of the how, but definitely not all of it – and I wrote it almost 4 years ago, and I think things have evolved a little in how I think about the why of it all.
Before I get to the why, I need to talk a little bit about privilege.
Part of the process of accepting that I have privilege was deciding what I was going to do about it, which is constantly evolving and informed by the results of a lot of practice and trying new things. I am a middle aged, cisgender, heterosexual, white man. That’s a whole bucket of privilege – the entire modern world was made to work for people just like me.
I’ve also had a very long career, full of ups and downs, learning new things, failing a lot and learning from a lot of those failures.
That puts me in a place of even more privilege. I work at a very successful tech company, and am a very senior engineer, where I have a lot of influence and yep, a lot of privilege.
I’ve also realized (multiple times, because it takes repeating things before you really learn it) that because of that privilege, I get away with things that other don’t. I’m not invulnerable, but I know where my lines are and am really good at figuring out how to cause trouble in a way that doesn’t get me in more trouble than it’s worth.
And that brings us to why I am the way that I am, and why I believe kindness and humor are the best tools to do good work.
Pushing limits and making space
I have a big Pride flag hanging from the curtain rod in my office, and I wear chunky rainbow glasses when I work on the computer.
I bring up equity issues at work in the open and to leadership fairly frequently.
Why? It’s fun. It’s also important. But it’s really because it pushes the line of what’s acceptable and creates a space for others to do it as well. If I, the normiest normcore dad in the world, can wear rainbow glasses and fly a pride flag that’s visible in every Zoom call I’m on, then others can too. I want to derisk people being their full selves as much as possible – and if that means I get to be weird and a little silly, that’s a bonus.
Humor as humanity permission slip
It’s hard to be nervous or stressed out when you’re smiling. I work with a lot of people who are decades younger than I am, and I see huge confidence issues. Work is also sometimes full of stressful and unpleasant situations: software breaks, projects fail, people screw up, layoffs happen out of the blue, and it all feels terrible.
So, I make jokes. I used to make sarcastic and sometimes mean-spirited jokes… it’s taken a long time to fix that. Now, I make terrible puns, jokes about software, or myself – anything to break the tension so we can recenter and get on with fixing whatever it is.
Humor allows us space to admit our humanity. It is a permission slip to take a second, find a little bit of joy, and recenter before we grapple with whatever fresh hell awaits us.
Kindness and humor are invitations
I don’t know quite how to put this part into words, but work is a community, and communities work best when people are comfortable, willing to express themselves, and play along.
Kindness and humor are the best ways I’ve found to help kickstart the vulnerability required to create great teams. I can afford to be vulnerable because I’ve got this super giant soft pillow of privilege, and I know that not everyone does. So, I need to be vulnerable first to show that it’s possible. I then also need to reward and celebrate vulnerability in others.
They’re also a great way to get people to take risks and get out there. Building people up to the point that they get out there and do a presentation or volunteer to lead a project is such a rewarding feeling – and the best part is that I can then praise them publicly, which reinforces feelings of safety and possibility.
A big part of the why for all of this is that I don’t want to be the reason that someone holds back part of themselves. I don’t want my overwhelming normieness to shut people down, make them withdraw or make them feel anything other than completely welcome and appreciated.
I think this might actually be the core of it: I love learning about people, about their loves and lives and what makes them tick. I want to work with people who, like Emile Zola said, “live out loud.” If there’s anything I bring to a situation that would keep them from feeling safe being around me, I want to fix it – and sometimes that means turning my own volume down.
It’s been a huge realization that sometimes, just because of what I look like (resting dad face), and my visible undeniable privilege, that might not always be possible. Just me being there might be enough for someone to withdraw, and I have to be OK with that. But, there are things I can do to make things better, to make people feel more safe, and I think the obligation of privilege is to make more room for people to be themselves, to make room for them at the table – especially the board room table.
And this is where I am today. I’m trying to figure out how kindness, privilege and humor can build equity. If I make other people feel safe, but that safety’s not actually there, I’m not really helping. But, if I can create actual safety, and create more space where people can be seen and rewarded for being their full selves, that’s worth it.
I’m still working on it. It’s still a “practice”.
Web-based faith restored
In yesterday’s post, I was pining for a simpler web and today, I’ve found it! I’ve spent the last hour or so messing around with HTML, a little CSS, a little git repo and some hosting, and ta-da, I’ve launched a new temporary homepage for my little non-profit (DNS things might still be updating; you can see the new thing over here)!
I’ve forgotten a little basic HTML and CSS, but MDN was there to back me up.
I wanted to make sure I could easily deploy it, and Github was there to help me make a repo and get it cloned to my laptop. I even used VS Code to make a couple of commits!
When I was ready to get it online, Render was there to make it really easy (and free) to get it out there and ready to launch.
I even used a color wheel to find a kind of complementary color for the links (I darked it so it passed the contrast checker – accessibility is important!).
Is my faith fully restored? Kind of? There’s still a barrier to entry to get hand-crafted HTML online, but it’s not a particularly high barrier. For hobbyists who have a few hours to learn how to set up a repo, are OK using VS Code’s git plugins to commit things, and Render to host it, you could get something up and running pretty quickly, and build on it over time.
And if you don’t want to know about any of that, there are lots and lots of ways to WYSIWYG your way online – so many that I won’t even go into them all.
I’m happy to see it’s possible to start a project on a Saturday morning while watching Brentford v. West Ham, and get something online before halftime. Backing up wordpress and moving the domain might take me to full-time…
Pining for simplicity
I run a teeny tiny nonprofit, TechSAV, and we have a poorly maintained WordPress site. We picked a very professional-looking thing eight years ago, and haven’t changed it since.
Well, now our hosting company says the version of PHP we’re on is end-of-life (RIP) and we have to upgrade, but there’s something in our ancient theme that won’t allow us to upgrade without incident.
I don’t have time for this. I don’t actually like the site as it is, nor do I have the time to figure out what’s wrong with the theme (which is no longer for sale) or to migrate to a new theme.
So, what am I going to do? I’m going to spend tomorrow morning creating a very simple static HTML page with all the links from the homepage and replace it.
Before that, I’ll export the posts, and then will probably tinker with a static site generator at some point (which, let’s just be honest, I’ll never get to).
I miss the days of static HTML. Anyone with a directory exposed to the web could publish a poorly formed index.html, and ta-da, you were on the web!
Now? It’s my profession, so everything feels like work, and let’s face it, it all feels like work. I feel bad for people just learning web development – I talk to a lot of them. You have to know so much to be productive, and a lot more than that to be employable. If I started today, I’m not sure I would have had the patience for it all.
I’m not pining for the old days, really. I’m pining for simplicity, for the small web, the personal messy web. Maybe my little non-profit’s homepage will be fun. I’ll be able to write just HTML and just CSS. I won’t even add any javascript. It’ll be Static As Fuck.
Yes, that’s the movement… welcome to the Static As Fuck Web 1.0.
Playing
We have a monthly thing at work where someone picks a conference talk, we watch it together and then discuss. This month, we talked about Playing with Engineering by AnnMarie Thomas from this years Strange Loop. It was really good, and it’s definitely worth your time. While watching it, I realized that it’s a great summary of how I’ve treated work for the last two decades.
She spends some time at the beginning defining play:
- Play is about process, not outcomes.
- Play is joyful.
- Play involves freedom of choice.
- Play is social.
And near the end, she shares the rules for her lab:
- Be kind.
- Play well with others.
- Clean up your messes.
Looking at my career, I could tell you the story of it as a series of failures or successes, and be talking about the exact same experiences. I’ve been a part of some spectacular failures, and most of them have had their share of pain, and I’ve felt a lot of guilt and some shame over them. At some point, though, I got tired of being angry and ashamed, and started processing them and realized that in all of them, there were successes I could take from them, even if they were just lessons to apply to future projects. I also realized that for most of them, the failure wasn’t all my fault (and in a lot of cases, there’s nothing I could have done to fix it).
I’ve also started my share of “trouble” in my career to push for culture or process changes. It didn’t take too many failures there to start treating them like playful experiments – because in an experiment, even a failure is a useful result.
It also turned out to be a lot easier to play along if I followed the rules above. If I’m playful about it, keep it light and make it seem like it’ll be fun – even if we’re just fixing tests or performance issues, people are more likely to join (this is also known as Tom Sawyer’s Fence). If I give people credit, cheer them on, encourage them and am kind how I treat them, they’re more likely to stick around and see it through. And, in the end, even if I’m playful and kind and no one joins, I feel a lot better about it.
There’s so much serious shit in the world all around us and all the time that we should be as playful as possible as much as we can. It makes the hard stuff easier, and easy stuff a lot of fun. And if we can bring kindness with us on the trip, then we’ll never regret it, no matter how whatever it is we’re doing turns out.
Oh look, I did day two of NaBloPoMo! I think I’ll do something a little more in depth about kindness tomorrow, because I’ve been thinking about it a lot recently.
Yep, Mastodon is Good
I just read Mastodon is the Good One, and I agree. I left Twitter about two weeks after it was announced that Mr. Billionaire was buying it, because I knew that I couldn’t stay (and I’m not psychic, but it’s going about as well as I expected it out). I’d been less active on it for a while, but that was the breaking point.
I joined Mastodon shortly after to try out the fediverse (if none of that makes any sense, read the article and then come back). I’ve been a big fan of interoperability for a long time (fun fact: I helped build a feed reader at AOL back in… 2002, and was at the first meeting that resulted in the Atom feed format). Also, don’t ask me how many domain names I’ve registered for hypothetical fediverse projects (hint: it’s more than one).
Mastodon’s been great for me. I know there are issues, especially with inter-instance conflicts – but day to day, that doesn’t affect my experience (because I don’t follow a lot of people involved in those conflicts so they rarely bubble up). I’ve found most of the people I most enjoyed interacting with on Twitter on it, have really fun conversations with people, and it’s generally a lovely place to spend some free time.
So, don’t be scared! Try it out! And if you like it, consider joining a paid instance like the one run by the omg.lol folks (that’s where I am).
(And hooray, this is my first post in my first attempt at NaBloPoMo – let’s see if I can keep this up)