On Boundaries: When You Have to Say “No,” Professionally

Reading Time: 15 minutes
The Shedd Aquarium in Chicago in the 2021-22 winter. PC: me.

How long is a career?

Impossible to predict, maybe, but my personal goal is a 1,000 blog post career.

It’s not an unreasonable number. If I were to publish weekly (with a couple weeks off each year) I’d hit 1,000 posts at 20 years. My publishing cadence varies more than that, but it averages weekly so far across eight years.

Lately, though, I haven’t posted. Nothing for two months, in fact. My mom got diagnosed with cancer in March, and my schedule and perspective both changed drastically.

This post won’t be about cancer, my mom, my family, or my feelings. I have a lot to say about those things, but I’m lucky to have channels for that. Instead, I’d like to talk about career changes.

1. How I got here

In March of this year, I had a full-time job as a Staff Engineer at Mozilla. I taught three programming courses per year at the University of Chicago Master’s Program in Computer Science. I gave workshops for O’Reilly on roughly a monthly basis, and I had six clients who paid me hourly for bespoke programming work. I was organizing a couple of conferences and preparing to speak at a few more. I also volunteered with Emergent Works and wrote this blog, and had been trying to apply my personal studies of compiler design as a maintainer on the Roc programming language.

I know how it sounds.

Composite photo illustration of a bullfrog (Lithobates catesbeiana) in a pot. (Compositing was used to avoid harming the frog.) PC: Joel Sartore.

It happened by accident. Here’s the rough timeline:

  • Jan 2019: I started teaching for the University on top of my full time job, and I quickly found the teaching more fulfilling than my job at the time.
  • May 2019: I quit my full time job at the time and started my consultancy for software coaching and bespoke individual contributiojn, with clients I had hand-picked or who had been referred to me. I wrote about the decision at the time.
  • Jan 2020: I agreed to teach again in the 2020 school year.
  • March 2020: The world locked down. I spent a lot of time alone in my apartment. Teaching gave me a sense of purpose and probably saved my mental health during this period. I took almost every client engagement I was offered because, I mean, what else was I doing? I started working with O’Reilly during this period, with a truly fantastic editor/producer. I also started working with Emergent Works because I already loved teaching, and their mission means a lot to me.
  • October 26, 2020: Justice Offred confirmed to the SCOTUS, creating a conservative supermajority that was vocal about its plans to strip healthcare and LGBTQ+ protections. I saw a possibility of a future in which my queerness counted as a “preexisting condition” that precluded my ability to independently access health insurance. I thought an employer would be more likely to get me health insurance, so I started looking. Things moved way faster than I expected, and by November I was choosing between a few offers.
  • December 2020: I started at Mozilla. I wrote about the decision at the time.

Since then it’s been largely status quo for me, but pressure on my time and effort gradually increased. Tech conferences started to come back. Other commitments started to crop up. Clients had larger projects for which they needed a champion. I can’t say I was finding the amount of time I wanted to work on Roc.

2. Yikes

In March of 2022 I felt burnt out, tired, and sad. I was pursuing a team transition at Mozilla and experiencing stress from the conditions that led me to pursue that transition. A friend of mine diagnosed me with needing a vacation and kindly invited me on a trip to Mexico with her and her partner. I took a week off of work and flew down with them to lie on the beach, read, and eat ice cream.

And it was lovely, but I did less reading and beaching than I imagined. I still had commitments to fulfill. I had an independent programming project to wrap up and 278 conference talk proposals to review. Though I had suspended client meetings that week, a few things popped up that I needed to take care of. The experience planted a seed in my brain: “I’m going to have to change this.” I started thinking about what I wanted my work life to look like by the end of 2022. I figured I had nine months to get my plan set up and implemented. No rush.

Then I got a text from my brother: Mom is in the hospital. She stayed for about a week, and that’s when we got the diagnosis. I flew to the town where she lives in the southern U.S. to help her get set up with her treatment and to support my brother, who would be (we thought at the time) her primary caregiver while she went through this. During that week, I took time off from my day job again, this time from the new team (my current manager has been nothing but supportive, and for that I am endlessly grateful).

That said, it was the first week of the spring quarter at the University. My mom’s place is not suitable for video calls, so I taught Session 1 on Zoom with a big pair of gaming headphones and a crop top (the south is hot, y’all) from a booth at Starbucks. I had kept all my client meetings that week, too. I experienced another week of my life away from my day job, and with it another look at just how much of my time and energy was still locked up outside that day job. It had become unmistakably clear just how little I had to give—temporally, intellectually, and emotionally—to other pursuits. No wonder I had gotten nowhere on Roc, or any of my own professional development stuff.

I talked to my therapist. She had, in a prior session, advised me not to make major life decisions during a time of emotional upheaval. “Don’t undertake a major move, for example. Don’t change jobs.” I relayed the story about the vacation and confessed that I had been considering changes before my mom got sick. I shared feelings of total despair and questioned the point of it all. My therapist asked me whether I might try to sit in a park, with my bare feet in the grass, and just…be…for ten minutes. I confessed “I’m sure my brain could handle it. But gosh, you know, I wish I had the time.”

She asked me how often, during the week, I get the opportunity to rest. I walked her through my Google calendar for that week. I could see the decision forming in her eyes like a settling swirl of tea leaves: if there were a situation to buck the standard advice and recommend a major change, this was it.

This is pretty close to exactly what she said: “Your priority exercise for the immediate future is to get at least two of these evenings freed up. Emphasis on at least, Chelsea. More would be preferable.”

3. Time for change

I started to write a sentence here about how I thought long and hard. Then I realized it wouldn’t be true. I guess my body—my chest, my stomach, my neck—already had a very good idea of what I needed to do. I’m learning to trust that.

I am enjoying learning and executing at my day job; I want to devote focus to that.

I also love teaching. I know it gives me energy and bolsters my spirits. I feel inspired and motivated to create uniquely effective learning experiences, and humbly, the feedback I have received on my teaching suggests that I’m good at it. I think it would be good for me to pour more of myself into teaching classes and workshops right now.

But to handle my family obligations or to pour myself into anything that will energize me for those obligations, I need some amount of myself to pour. So some things have to go.

Context switching runs an energy deficit for me, and it happens a lot when I work on a bunch of different, unrelated projects. Being a sole contributor to a project without the support of a team also exacts a steep energy toll on me. So I have started rolling down all six client commitments for hourly, bespoke work. I won’t be writing code transactionally as an individual contributor for anyone besides my full-time employer. I won’t be doing company-specific advisory work. I will continue teaching workshops with broad relevance, like my technical debt workshop and my system risk analysis workshop.

I’ll also continue offering courses at the university, but I’m working with my director there to change what I teach. I love the Mobile Software Development course, but over time my area of specialization has moved away from mobile. With the end of my bespoke client commitments, I also put down all my remaining mobile development work. The mobile landscape changes rapidly, even by tech standards, so an exemplary class on the subject requires instruction from an active practitioner. I am no longer that practitioner, and I have no interest in offering a course that is anything less than exemplary. So I’m talking to the university about the future of that course, and what I might be able to teach that would be outstanding.

And while I love conference organizing, and I love specific conferences, and I feel honored to work with the people I get to work with on conference organizing, it’s also draining and often thankless. In particular, this year for RailsConf, our program committee (which I am on, so I take responsibility), in the words of an observer, flubbed editorial handoff on a decision. We apologized publicly and appreciate the community holding us accountable. However, the way the community held us accountable was to jump to the conclusion that we were caving to grifters collectively and therefore morally compromised individually. Maybe I’ll regret putting this in writing later, but for now I’ve decided I want you to know: that, specifically, made me realize I have a limited threshold for conference organizing. I’m not complaining—I know it’s part of the job, and it’s not my first experience like this—but I think my tolerance for experiencing it is, at most, once per year. And I’m done for this year.

So I backed out of organizing any more conferences in 2022. I also backed out of writing any custom talks for conferences for the remainder of the year (though I can still offer talks that I have already created). The responses from organizers ranged from relatively gracious (thank y’all, sincerely) to no response (I don’t blame y’all—conference organizing is hard, especially now, as things return to in-person amidst a pandemic).

4. What I’ve learned

Setting boundaries is exceedingly difficult. Everybody knows this cerebrally, but it’s a different thing to come face to face with the tradeoffs of it. I realize now that what I had done up until this point in my career wasn’t really setting hard boundaries. For the most part, I’d reserve my ‘no’s for circumstances where I didn’t think it would hurt me, and just go ahead with ‘yes’ anywhere that might have a personal or professional consequence. What I have done now is say no to a lot of people I like and respect, and would work with, and have worked with, and whose opinion of me matters to me, and whose opinion of me I must accept might be lower now. I have had to say “Unfortunately I have to welcome you to think I’m a b*tch or a quitter or unreliable over what I am about to tell you, but it does not change my choice.”

The responses have ranged, like I mentioned above, from exceedingly gracious to nothing. I have also had an occasion where someone tried to sort of undo my decision. The steps were as follows:

  1. I gave and end date and offered to focus for the next four weeks on transferring context to someone else,
  2. They didn’t take up the offer for context transfer
  3. They told me the project would die without me, and so therefore they would expect me to keep going, and if I could do that by my stated end date, great, but if I couldn’t, then that would not be my end date.

My assessment of my own behavior is that, in response to that, I started interacting with less trust with all of the clients I’m rolling down. I started interpreting every miswording or errant sign as evidence that they would put me in the same bind. I regret that. I wish I had compartmentalized more effectively. It turns out my transition will look less like the smooth, graceful one of relay racers and more like molting: ugly and flaky, with bits wholly transformed beneath vestigial portions waiting to fall off.

But I have also learned the relief of trusting how a collaborator will respond to ‘no.’ In her book Pleasure Activism, Adrienne Maree Brown describes ‘no’ as “the container in which an embodied yes can flourish.” I am also well aware, from both reading and experience, of the advice for companies executing a layoff: cut once, cut deep. I have tried to do that. What I am left with are things I wholeheartedly want to do and can do, with collaborators who have treated my boundaries as opportunities to build a stronger relationship.

5. What to expect from me

I think I’ve mentioned what I do in a lot of different places on this blog, so it’s likely some of them will be out of date for a while. I’ll find and update them all eventually.

I still work at Mozilla. I plan to continue working at Mozilla for the foreseeable future, barring major changes in my work situation. I firmly believe in what I’m doing there, as folks who have spoken to me at recent in-person conferences can attest.

I still teach at the UChicago MPCS; I’m currently revisiting the course materials for Intermediate Python Programming this fall. I am confident that we will figure out the spring quarter, when I typically teach the mobile class.

I still teach workshops with O’Reilly and at conferences, and I’m open to more compensated opportunities to offer professional workshops. I am happy to give the existing workshops you see on my speaker page for private clients. I would also love to craft new workshops and extended-length versions of my existing ones. I would offer these with organizations that take participants through public signup rather than for private companies (in other words, no company-specific advisory work).

My hope is also to get back into working on Roc, and leveraging my experiences teaching Python in a writing project with a collaborator in the fall. And of course, I plan to continue blogging. I said I’d retire at 1,000 posts. This one is number 418, and the other 582 aren’t going to write themselves ;).

Finally, I’ll be spending time with my family. I’ve taken up vegetarian cooking more seriously, and I’ll be attempting to make something delicious enough that even my frozen-pizza-subsisting brother will eat it. I think my ticket in is gonna be chickpeas. The last time I went home, in an upset victory, I managed to get my mother to eat hummus. On a recent trip to Europe to give workshops, I got a notoriously picky eater hooked on my chickpea stew with a creamy blended carrot sauce (secret ingredient: a touch of honey). Also, did you know you can air-fry chickpeas in to crispy little party snacks?! And have you seen their protein and fiber numbers?? Chickpeas, man. They’re practically cheating.

I’ll try to pass some of this lovely summer weather biking, skating, and maybe even running. I might even read for fun: perhaps in a park, with my bare feet in the grass. I’ll tee up some painting, and maybe a DnD game, for when the weather inevitably gets colder. I’m trying to keep a closer eye on filling the cup I pour from.

And I’ll be thinking further about what teaching looks like for me. While freelance individual contribution made sense for me at one point in my life, teaching feels like a more sustainable place to build an income and an impact outside my day job for the next phase.

So I’ll be around. If you see me at a conference, feel free to ask me about any of this. I used to try pretty hard to “keep it technical” around here and not “get personal.” But I’m learning that sometimes the personal experience is the most important one to share.

If you liked this piece, you might also like:

What Pride (like the gay kind) means to me in practice in this, the most cursed Pride Month

Why I went freelance when I did

I dunno; this thing about coffee?


  1. This reads almost like a Production incident post mortem! Which isn’t a bad way to go about it. I admire your ability to do this self-analysis. I think any of us who have many talents find ourselves in a place eventually where we’ve spread ourselves too thin and have to take this kind of stock.

    And chickpeas. They _tear my guts up._ Which is a shame.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.