Category: development

  • 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.

  • The 3 Options

    I guess this is part four of my one part series (parts one, two & three) on layoffs and reorgs. For the record, I was right about the reorg following right behind the layoff.

    In part three, I talked about the loss of control that layoffs cause. Reorgs just pile on to that, and then, every change that happens after that just makes that feeling worse. We get more and more defeated until we just can’t manage change at all.

    In my first startup, I had a coworker who was like this. Every change was the end of the world and they were miserable for weeks, even about the smallest thing. I think I was so jaded after 13 years at AOL, where I think executives changed things just so they could justify their existence, that change just… doesn’t register all that much. Unless it impacts my actual happiness, I usually just adjust and move on.

    I’d never thought through my personal calculus for how to react to a constantly changing workplace, so, to help my friend, I came up with a framework for how to handle change. I hope it helps you.

    Given any change, you have three options:

    • Accept it
    • Fight it
    • Quit

    That’s it. The more time you try to spend between those options, the more you will suffer. You need to intentionally decide which option you’re going with. You can decide to fight it and then give up and accept it. That’s fine. You can’t not fight it and not accept it, because you’ll just be miserable. You can’t not fight it and not quit… again, misery.

    Accepting it doesn’t mean you like it or agree with it. It just means it’s not a big enough offense to fight it or quit. It means you might still be upset about it, but you’ll move on. It means you need to let it go and prepare for how you’ll exist within the new change.

    Just complaining about the change is not fighting it. Complaining is between acceptance and fighting.

    Fighting is strategic. Fighting takes a plan. Deciding to fight it means gathering allies, coming up with a counter proposal, working your connections and trying to make a change. Fighting means getting organized.

    Complaining is a good way to make yourself a target without any upside, so be careful who you do it in front of. If you’re going to do it, tack on a proposal to the end so you can move into fighting mode.

    There’s strategic complaining, which is a different topic, where you can complain publicly in an attempt to gather allies for the fight. That’s a calculated risk, and you need to be very careful about how you do it.

    You should definitely let management know how a change has impacted you, but I would recommend doing it privately, and only as far up the management chain as you have influence. If you’re 12 managers away from the CEO, firing off a thousand word missive to them (or anyone more than one layer above you) is a great way to have some conversations you don’t want to be in (ask me how I know). Even if you’re only three layers of managers away, be careful.

    Quitting is the last straw, but we need to remember that it is an acceptable option. We get so invested in our jobs that we forget that leaving them and finding something else to do is fine. It’s a good thing to move on. Now, quitting can take some time, but making the decision to dust off your resume and start job hunting can give you back some of the power you felt you lost.

    There are whole books that could be written, and maybe have, about how to do all three of those options, but after 28 years in the industry, I haven’t found any new options to add – those three pretty much cover it.

  • The Illusion of Control

    I’ve been talking to a lot of people since the layoffs last Wednesday, helping them (and myself) come to terms with the colleagues that are no longer here, all of the survivor’s guilt, uncertainty and fear that comes along with it. I’ve talked about some of those things in the previous two posts (this one and this one), but I want to talk about the fear and uncertainty today.

    A lot of my friends are now really afraid there will be another layoff, to the point that it’s all they can think about. Because who loses their job in a layoff seems random and no one will ever give you a satisfactory answer of why anyone was let go, it feels impossible to make sense out of it.

    I was talking through this earlier this week with someone and I think part of the answer is about losing our sense of control over our place in the world.

    One of the causes of suffering in Buddhism is impermanence. I can’t remember where I read it, but my favorite way I’ve heard it stated is that suffering is caused by a misalignment in our perception of the world versus how the world really is.

    Layoffs destroy the illusion that we have control over our work.

    We think that once we have a job, that if we do that job well, it’s ours as long as we want it. In a layoff, there’s no way that illusion can survive, because who gets let go also doesn’t make sense.

    For me, the solution to that is to stop pretending that I have control over things I can’t control.

    I don’t get to choose the external conditions, the decisions of leadership or mistakes that lead to a layoff. I could lose my job at any moment. I have no control over any of that, and in order to be happy, I have to accept that I have no control over it.

    What I can choose is:

    • How I relate to work: work is just one part of my life, not all of my life. I need to do things that make me happy outside of work like maintaining my health, my relationships and my perspective.
    • How I prepare for the possibility of being laid off: I call this the “blanket fort”. If I was laid off, how long could I go before I had to have another job? Do I have enough savings to alleviate most of that fear? If not, that’s where I would start.
    • How I work day to day to get the most enjoyment out of my current situation: I mentioned this before, but I had to accept a long time ago that who I work with, what I work on, and how long I get to do both isn’t up to me; so, I choose to enjoy those things for as long as I can.

    None of those things are easy, and they took me a long time to come to terms with and work towards. But, they make handling the inevitable disappointments of my work life easier to handle, and the feelings around them manageable.

    Layoffs are a sudden and one-sided renegotiation of your working conditions. You don’t have to accept those new conditions. You can also renegotiate how you work, how much work you do, and your relationship with your work – up to and including deciding that you’d like to work somewhere else.

    Nothing that happens during a layoff and the resulting chaos of reorgs and uncertainty about our position in an organization is easy. It’s all extremely stressful. The best we can do is try to ride that part out and get back to some sense of equilibrium. Lean on your friends and family for support. Talk to people. Don’t keep all of it inside, because other people have been there and can help. Being afraid, uncertain or angry… all of that is natural and you’re not the only one feeling it.

  • One Last Layoff Lament

    In my last layoff-related post, I tried to talk through some of the emotions you’ll feel, and why no question you’ll ask will get an answer that will satisfy you. Well, I’ve still been thinking about them, and how we navigate them.

    A layoff confronts us with suffering we can’t turn away from, can’t reason with, and can’t help but see ourselves in.

    When there’s a disaster or tragedy, we can turn off the news. When there’s a scandal, we can console ourselves that we’d never be that stupid. When our company gets hit with a layoff, and people we’ve worked with closely are just not there anymore, there’s no way you can turn it off or reason it away – because it could have easily happened to us. You have to confront it, and for some of us, that’s really difficult.

    The questions we ask after a layoff all map pretty cleanly to the five stages of grief. They’re difficult to sit through. We’ve had two large meetings since last Wednesday at Gusto and I squirmed through both Q&A sessions.

    Why?

    Mostly because I knew the answers would be at best unsatisfying, and at worst, confusing. But, thinking on it over the weekend, I think the part that felt the worst was seeing the suffering beneath the question. People were angry. They were trying to negotiate with the grief, by trying to figure out ways to bring people back. And none of that’s going to work…

    By the time a layoff happens, it’s almost always too late (“almost” is there just to account for Elon Musk’s Twitter, though I’ve experienced one other layoff where management realized they let go of too many people and brought some of them back, but it was almost the same situation – someone who had no business being in charge making decisions without enough information).

    As “survivors”, we have to go through that mourning process before we can get to acceptance and rebuild (because a reorg pretty much always follows a layoff). Trying to skip that part, either management trying to prematurely rally everyone, or you not giving yourself time and space to mourn, always ends in more sadness.

    I think it’s doubly hard to rebuild trust in a company after a layoff. Layoffs usually result in people renegotiating their place in it – and more people will leave, this time voluntarily.

    But, if you stay, the resulting chaos of the reorg can be a lot of fun. For me, they always feel like the first day of school – who am I going to be? What am I going to do differently? What can I jettison or claim in the chaos that will make my life easier / better / more fun?

    It’s OK if you’re not ready to think about that yet – but, there will come a time, hopefully sometime soon, when you get to the acceptance stage and can decide what you want to do. If you’re not there yet, please know you’ll get there eventually, even if it’s somewhere else with a fresh start.

  • The Layoff Line

    With yesterday’s layoff at Gusto, I was inevitably thinking about my own history with . For my jobs as an adult, I’ve only left by something OTHER than being laid off twice. Here’s the history:

    1. AOL: I survived more rounds of layoffs than I can remember (it felt like we did them once a quarter for awhile), and left on my own after 13 years.
    2. Music Intelligence Solutions: I ended up having to lay everyone off when we ran out of money, and even laid myself off.
    3. Rails Machine: I was laid off (which I think was just in lieu of firing me) because… reasons. I’d be happy to discuss them over a beverage sometime.
    4. Planted: COVID crushed the recruiting business and PPP wouldn’t cover all of us. I was effectively laid off, but mostly because I was both expensive and was able to find a new job.
    5. Outvote/Impactive: I left on my own.

    Being laid off isn’t a black mark on your job history. If you’re in tech long enough, YOU WILL GET LAID OFF. It’s the consequence of working in an industry that’s pretty unstable, or for early stage startups.

    It’s heartbreaking to go through them, on all sides. It’s obviously worst for those who’ve lost their jobs, but the people who stay get to deal with a flurry of emotions and questions – a lot of which management legally can’t answer, which makes it all even more frustrating.

    All of those feelings are completely normal, and justified… but most of the questions aren’t going to get answered in any way that will satisfy you.

    Your leadership team will NEVER be able to PROMISE that there won’t be more layoffs, EVEN IF THEY’RE BEING PLANNED. No one will ever tell you a layoff is coming. No one will ever tell you why people were laid off.

    Layoffs are almost always followed by people choosing to leave because they’ve lost faith in their employer. That’s normal, and should be expected.

    My friend Cindy Li always said, “work won’t love you back,” and she’s right. We’re all “resources” for our employers and the company is not your family.

    A long time ago, I made a conscious decision for how I would work:

    1. I will treat everyone with loving kindness, and work where I love the people, the work, and I will love my coworkers as long as it’s possible to work with them. People leave, but they’re not dead.
    2. Change is constant. I will work to be comfortable with ambiguity and help create order from it.
    3. At the end of the day, there are three choices when confronted with any change: Accept it. Fight it. Quit. That’s it. If you’re between one of those three options, you’ll be miserable.

    That was a lot. The last piece of advice I’ll give is… if you just survived a layoff, don’t get fired.

  • Aggressive Accessibility

    I’ve been working in tech a long time (it’ll be 28 years in May), and I think some of things I think everyone already knows, or are obvious, maybe not everyone knows and aren’t all that obvious.

    Updated to add a disclaimer: This is what’s worked for me. Coralie posted a really observant comment – and I think it’s worth mentioning that this might have worked for me because of my privilege. It’s very difficult for me to tell because I’m in it, but I’m not going to discount what’s a pretty high likelihood that privilege has had a lot to do with this.

    So, since I’m at risk of missing my back to blogging goal of 3 posts this month, I figured I’d write up something real quick on my favorite topic.

    I think developers focus too much on technical excellence and think that’s the only way to get ahead in their career. It’s definitely important – but it’s the bare minimum. To excel, I think you’ve got to be able to grow other people, and part of that is something I like to call being “aggressively accessible.”

    It means:

    • Offering to help when you see an opportunity to offer it.
    • Looking for opportunities to provide help, even if it’s outside your normal duties.
    • Making things better because they need to be made better.
    • Volunteering for special projects.
    • Showing up places you think you might be useful.

    By offering help instead of being asked, you put yourself in a place to be of more use than just waiting to be activated. You’ll meet more people, learn more stuff, and become more effective, and you’ll never be bored!

    None of this needs to be super overt. Just showing up and being open to helping is enough. Just quietly offering help when it looks like someone is struggling is enough.

    It has made such a big difference in my career and built so much social capital that I don’t know that I could actually quantify it.

    It’s also part of moving from “senior” engineer to roles like staff, principal or into leadership roles like CTO. You have to go from being an executor to an enabler / multiplier.

    That’s it.