Sunday, August 30, 2020

An Open Letter to My Friends

Dear friends,

We need to talk about event invitations.

If we're friendly enough that you're inviting me to social distancing events, you know about my health issues. I have a mild sunlight allergy that, among other things, causes my skin to swell and develop an itchy rash after a few minutes of exposure. Dysautonomia means I can't regulate my body temperature properly, so I get overheated very easily -- thankfully, in cold weather, I can always just layer jackets to mitigate. And if nothing else, given my unpredictable stomach, I need access to a proper bathroom.

Please stop inviting me to shit that you know I won't be able to safely attend.

I acknowledge that right now we're kinda limited on venue options. It was easy when we could just go to pub trivia or grab lunch downtown whenever we wanted. Now, our options are pretty much "outside in the park" or "outside in someone's yard." I don't fault you for this, but what I beg you to remember is that my disabilities don't care that this is the only option to get together right now. Unfortunately, they cannot and will not decide to take a break for the duration of the pandemic. They're with me 24/7/365.

But when you invite me to a picnic on a hot, sunny day, in a park with no bathroom facilities, even if I know that it is a Royally Bad Idea for me to go, I'm stuck between two lousy options:

1. Say "no," which with repeated obviously-unsuitable invites, adds up over time to make me the asshole friend who never wants to do anything;

2. Say "yes," because ultimately I want to make everyone else happy even if it means I'm going to end up in the ER, and also maybe if that happens it'll finally drive home that I'm really not kidding about my quote-unquote acceptance criteria.

Obviously, I'm not telling you how it is for all of your disabled friends. I'm speaking only for myself. But I really hate being put in that position of guilt and anxiety over potential consequences to our relationship where I have to keep telling you "no" despite the fact that you knew from the very first moment of putting together the event what my answer would be. I don't need to attend every single event. Hell, I'm happy with one social event per quarter, because I'm also an introvert. By assuaging any guilt you may feel over not inviting me to, I don't know, mountain-climbing on Saturday, all you're doing is transferring that guilt to me. It sucks. It's inconsiderate, even if you're coming from a place of good intentions.

And for the love of God, do not pull the "oh, well if you're not going, I'm not going" thing. Do not put the responsibility for your happiness on me, because whether you realize it or not, all you're doing is trying to emotionally manipulate me into ignoring my own needs and comfort. I am honored that you want to see me. Thank you. That is awesome. This is not the way to do it.

It's incredibly unfortunate, but right now, the most reliable ways to hang out with me are to ensure:

  • Late evening or night-time events
  • Cool weather (ideally under 85F) since we're stuck outside
  • Bathroom access
  • At least marginally comfortable seating that I can lean back against
So ignore every manners guide you've ever read. Listen to what I am telling you.

If you want to have the summer's day picnic, have the picnic, enjoy yourself, and don't invite me.

I'll catch you in the fall and winter. In the meantime, I don't know -- if you miss my witty takes on life and awkward tangentially-related anecdotes that are the only way I know to connect with people, send me an email, or set up a video call or something. Again, I appreciate that you want to include me, but if you're trying to include me in things that I definitely cannot and should not be included in, that's actually worse than just not inviting me in the first place.

Friday, June 19, 2020

Run, Rabbit, Run

I'm an introvert with severe social anxiety. Untangling where one begins and another ends is quite a task, but the primary difference is that when my introversion is driving, I can do the thing, I just don't want to. When the social anxiety kicks open the door and gets behind the wheel, I absolutely cannot. I stand at the threshold of my front door with tears springing to my eyes because I'm dreading what's about to happen. Sometimes I can force myself outside. Most of the time, I can't.

Thankfully Pokemon Go has been helping me through the anxiety from social situations and more by giving me the ability to go outside with a handy-dandy distraction to turn to should things get too overwhelming. As I continue to leave the house and then return without encountering any sort of confrontation or danger, it's getting easier. It's also giving me the space to sit down and reflect on exactly why the idea of even having friends over sends me into a tight-chest-can't-breathe spiral.

It's all too easy to cling to misanthropy as an excuse. But the real reason is that I am 100% convinced that everyone is going to hate me on sight. With very, very few exceptions, this is how my life has gone. I've learned that my neurodivergent behaviors and mannerisms are only accepted by other neurodivergent folks, so when they're around, great -- but otherwise, people don't understand, and thus I end up getting yelled at, bullied, and just generally rejected.

It happened at a software development conference I attended last year. I had built up the courage to go and be social. I was mid-conversation with someone when out of nowhere, another person walked up and after listening to me for a couple of seconds, started tearing down literally everything I said and did. I ended up fleeing the conference in tears and didn't come back for a couple of days and not without a serious outpouring of support from a handful of friends who convinced me it'd be safe. But I spent the whole time looking over my shoulder, terrified that The Person would resume their attacks, ducking behind pillars and dropping my head anytime I saw them in a crowd.

Maybe it seems like overreacting to most people. But between the rejection sensitivity dysphoria, the anxiety, and the fact that this is nowhere near the only time I've been singled out or made vulnerable to harassment because I am the Weird Kid, it was enough to make me swear off any tech conferences not catering to neurodivergent or disabled folks.

My childhood sucked. Everywhere I turned, I was met with a complete lack of understanding. When I couldn't conform to someone's ideas of how a "proper young lady" should behave -- swearing too much, talking too much, fidgeting too much, not having the right interests, just to name a few of the things that still swirl around in my head -- I got shamed. It wasn't just the kids in my class, either. It was the neighbors, family members, parents of other kids, and teachers. Adults were some of my worst tormentors while I was growing up.

If I was lucky, it was "only" emotional abuse. Otherwise I'd get punched, kicked, slapped, pushed downstairs, have my stuff stolen or broken... one time a group of the popular girls at my junior high got together to try and get me expelled and arrested by claiming I'd made bomb threats. I obviously had done no such thing, but who's easier to believe -- the kid who acts strangely and keeps to themselves all the time, or the kid who everyone hopes their kid will end up like?

Eventually I started wondering why, if nothing was wrong with me, did it seem to happen everywhere I went, every time I tried to communicate or socialize? The few supportive individuals in my life -- by few, I mean literally could count them on one hand and still have fingers left over -- kept insisting the problem wasn't me, it was the others who just didn't get it and didn't care enough to try. But the repetition of these social nightmare scenarios ended up convincing me that:

1.) Everyone judges me on sight.
2.) Everything I say pisses other people off.
3.) People want to hurt me.
4.) I can't conform, so it's better to just stay away from other people.
5.) I can't do anything right.

Pictured: the most unlovable little asshole you'll ever meet hyperfocusing on her books like a weirdo. Zero stars.

It's not a matter of low self-esteem. My self-esteem is in the deep negatives. If negative TREE(3) exists, it's somewhere around there. It affects everything I do. It affects my ability to have friendships or acquaintances, to meet new people, and to go off on my own to do the things I want to do.

It means that I don't understand why my husband loves me -- no, scratch that, I don't understand how he can love me. I don't understand how the people who insist they are my friends could possibly want to be around me. I assume that I'm going to embarrass myself the minute I open my mouth, or worse, embarrass everyone around me. When I accompany my husband to one of his company's events, I'm afraid to even shift in my seat lest someone notice me, I make a mistake, and then I make him look bad.

The truth is, I'm probably doing everyone a favor by making excuses to not hang out -- although the current pandemic is a damn fine reason to stay home, alone -- because I am convinced that the more time I spend around someone, the more chances I have to fuck everything right up and make them hate me.

And yet if a friend came to me and told me all of this, I would absolutely burst into tears and want to hug them and make them feel better and tell them that they're fine. It breaks my heart to see other ADHD folks go through the same thing because It Should Only Be Me. I deserve it, after all.

But it's hard to talk to other adults. I'm 33 and still stuck at 16, mentally and emotionally. We lived next door to our neighbors for two whole years before I finally got up the courage to leave a note under their door mat telling them their garden was really gorgeous (it is) and that I was grateful to them for maintaining it. They seem like nice people. We wave and say hi to each other now every time we see each other in the yard. They even invited me and my husband to come over once it's safe to do so.

I'm terrified every time. Terrified that this is the time I'm going to say or do something that will let them in on the fact that I'm Not Normal and then they will hate us and whisper about us and we'll have to leave this house all because of me.

Sometimes, when I stumble across a particularly cool person, like any of the folks I met on the way to or at Anxiety Tech last year, and they follow me on social media, I end up checking every so often to see if they've decided to unfollow me yet because they've found out that I really just suck and I'm annoying and they can devote their time to much better people. I don't really know how to make and keep friends. In kindergarten I walked up to the first person who seemed interesting and said "Ok, we're friends now."

Spoiler: she thought that was a weird thing to do or say, so we were not actually friends.

I want to go outside. I want to talk to friends -- energy levels permitting, of course -- and meet up with some of the neat Denver-area developers I've come across on Twitter. But that requires putting myself in a position where I could end up hurt again, like I have nearly every time I've done so.

So I guess I'll just play videogames by myself again today.

Friday, May 15, 2020

Ain't No Therapy Like Poketherapy

CW: talkin' about OCD and germaphobia and all sorts of other thought processes related to mental illness.

Colorado's stay-at-home orders have technically been lifted, although the state government's official stance is "for the love of god, STAY HOME ANYWAY." The streets around my neighborhood, a suburb of Denver, are still largely empty. Anyone who is out walking around is thankfully observing physical distancing guidelines, and kids are still being confined to their homes and backyards for the most part. Heck, with my underlying physical and mental health conditions, I, too, am largely couch-bound for my own protection, and to stave off boredom I've been re-introducing Pokemon to my life.

I hadn't really thought about Pokemon much since I was a kid and the card game was at its absolute peak in the United States. I was super into it, though, and I drove my mother up a wall by watching the dubbed anime anytime it came on TV. I had the electronic talking Pikachu plushie. I knew the Team Rocket creed by heart -- okay, I still do. But I never owned a console I could actually play the video games on, so once the furor around the cards had died down and I'd seen all of the TV episodes a hundred times over, there wasn't really much of a way for me to stay in the fandom.

Now I am a strong and independent human who makes her own money and I, a fully-fledged adult, chose to spend it on a Nintendo Switch and Pokemon Sword about a month ago. The flames of fandom weren't rekindled in me; it was like they'd never gone out. My short-term memory is still shit enough that I've left the oven on and nearly killed us all more times than I can count, but show me a brief glimpse of any Pokemon and I will immediately have committed to memory its evolution path, silhouette, and elemental weaknesses/strengths. Go figure.

At this point I've pretty much filled my Pokedex in Sword, and I'm not quite ready to dive into Let's Go Eevee (the correct choice), so I found myself once again feeling the edges of that Poke-hole -- shut up -- that had been previously filled -- I SAID SHUT UP -- by Sword. And that is when I was reminded that Pokemon Go exists.

I still remember the launch of Pokemon Go.  It was... less than smooth, with the servers going down under the strain of so many folks trying to create accounts and start catching 'em all. Even once the initial zerg slowed down, there were still a handful of server and UX issues that meant I played briefly, but quickly lost interest, especially after I'd left my at-the-time job in the games industry and couldn't go for walks with my team or run across the street to the other campus after a company-wide alert that Charizard had spawned.

But now? No traffic to dodge, few if any people to avoid, and boredom. The perfect time to stage a comeback.

I redownloaded it fully expecting that this would be a solo affair, as it always is for people like me who are chronically late to the party when it comes to popular games, but I pitched my trainer code onto Twitter anyway (for the record, it's 1233 9814 1659). Within a matter of seconds I had five new friend requests and that number is still continuing to grow. It turns out my coworkers are playing it, my games industry associates never stopped playing it, and the park right across the street from my house is a Pokemon Gym that is constantly changing ownership. As I found out while walking around my neighborhood with my face buried in my phone, the folks who live here are also remarkably unfazed by someone's phone chiming followed by their stopping in the middle of the sidewalk to swipe at the screen, and in fact will yell words of encouragement and ask what you caught, so it's safe to assume that the number of extremely local players is more than Just Me.

Now here's the thing: the pandemic has sent me spiraling with obsessive-compulsive behaviors and a thorough powering up of the agoraphobia I've battled for years. Walking to the mailbox requires crossing the threshold of my nice, safe, secure house, and some days even that requires a pep talk. I avoid talking to people because I am convinced that the minute I open my mouth, they're going to detect that I am weird and awkward and make fun of me for it, or I'm going to accidentally upset them and then I'll feel all-consuming guilt over it for the next two decades. At the moment I'm also terrified of anyone getting within visual distance of me because people are covered in germs which I will inevitably contract and die from or give to my friends and family members and then be responsible for their horrible deaths. But throw some cute cuddly monsters and game mechanics at me, and suddenly... well, I still don't like it, but I can distract myself from the pervasive fear that has me wanting to run and hide the minute somebody looks in my direction.

Then there's the kinesiophobia is the fear of pain caused by movement, and considering that movement is one of the things that causes my joints to all decide they should go off in different directions at the same time, you can imagine how I feel at the mere thought of going for a walk by myself. Would I be able to make it without being in agony? Sometimes my knees dislocate while walking to the kitchen for a tea refill, so what do I do if that happens while I'm in a part of the neighborhood I'm unfamiliar with and nobody is around to help?

Well, as luck would have it, Pokemon Go means I've got my phone with me, and my husband is working from home, so in case of emergency all I have to do is make a call and tell him what street I'm on. Sidewalks are everywhere here and extremely well-maintained, so even if I did collapse while walking, I wouldn't have to worry about falling in the street and getting run over by a car. And as far as the pain goes, I noticed that around the time I'd start feeling those creeping "please stop whatever you are doing if you want to remain upright" signals, I'd find a Pokemon and have to stop to catch it, anyway. Those short intermittent breaks were enough to help refresh me on my way to the nearest PokeStop a couple of blocks away, and since PokeStops themselves are usually public areas -- most of ours being playgrounds and parks here -- I was able to sit down on a bench once I got there and chill for as long as I needed.

This is around the time that I realized if I tossed a lure down to attract more Pokemon, this particular stop was close enough to houses that a decent chunk of the neighborhood would probably be able to catch them without ever having to go outside or at the very least leave their yard. So I did, and not long afterwards I heard a little kid's voice shrieking in joy, "WILL! GO GET YOUR PHONE! IT'S A LURE!"

A note to Will: I hope you got your phone, and I hope you and your sibling/child/friend/etc. caught some damn good Pokemon over the following half hour.

One of the things that's been bugging me is that because of my own health situation I've been unable to do much to help in my community. The sense of powerlessness and uselessness has led to feeling like a burden, which led to some serious depression for a while that I've thankfully been able to shake off, but it's still lurking in the proverbial tall grass. But realizing that with this small gesture I gave at least one other person something to occupy their time, I decided to expand my planned route as far as my joints would let me to hit up all of the PokeStops and gyms I could reach and put down lures where I could. It was a cheap way to get some much-needed dopamine hits for feeling like I'd done something good, and maybe given some parents and kids a break from everything going on in the process.

Okay. Yes. I also sat there and caught the crap out of some lured Pokemon, so it wasn't all entirely altruistic from the very beginning. I never claimed to be a saint.

By the time I got home from my adventuring I was feeling calmer and happier, and not just from the Skinner box effect of the game itself. I left my house. I did it by myself. I had positive experiences with other humans just from the "hello!"s and friendly waves and smiles. I completed a whole walk without struggling or suffering. That walk itself counts as much-needed physical therapy to lessen further pain. I did a small nice thing for other people. I got fresh air and quiet.

Niantic, the makers of Pokemon Go, couldn't possibly have foreseen how chronically ill and neurodivergent folk like myself would benefit from their game -- but I'm more grateful to them for making it than I can ever express.

Thursday, April 30, 2020

Need a Conference Venue? There's No Place Like 127.0.0.1

As I write this, the world is on Day We-Have-Lost-Track of quarantine due to COVID-19. Although the infection curve is finally beginning to flatten, countless highly-anticipated conferences and conventions have already been forced to reschedule or cancel altogether to align with social distancing measures.

But a savvy few have taken Option 3: go online.

And I'm not going to pretend otherwise -- I could get used to this.

Before the 2020 pandemic, I averaged a whopping two tech conferences per year and maybe a couple of local meet-ups. We're only four months into this year and already I've attended easily double that. My calendar is littered with reminders for more conferences and meetups yet to come, some based nearby, some coming from a continent away. I can join friends from Amsterdam in their local meetups, or show up to my Indiana-based employer's weekly Google Developer's Group meetups with the rest of my team. At this very moment, I have Deserted Island DevOps streaming live in another tab.

It isn't just me. Nearly everyone I know who hosts a meetup or helps to organize a conference has been overjoyed to see their attendance doubling or sometimes even tripling since moving to an online format. The extra attendees aren't bots or trolls poised to cause trouble; they're people like myself, who have desperately wanted to attend more events, but been largely unable to.

In my case, the main thing that holds me back from in-person attendance is my health. I'm susceptible to illness, and when I do pick up even a simple cold, my body overreacts in grand fashion. We're talking two miserable months of symptoms and associated agony on average. The severity of those symptoms can easily send me to the emergency room. For me, "con crud" isn't a rite of passage. It's a straight-up deterrent, because as much as I may love the events themselves, none of them are worth months of being unable to function.

Getting around with fibromyalgia and *SHINY NEW DIAGNOSIS ALERT* hypermobile-type Ehlers-Danlos Syndrome sucks even within my house, which for some reason has entirely too many stairs. I've previously had to attend conferences in a wheelchair just to make sure that I could last a full day without being taken down by severe pain and exhaustion, which required extra help from others because older venues hosting these events are not necessarily accessible for folks with disabilities. I'm fortunate enough to be able to make do with a cane these days thanks to physical therapy and an updated medication regimen, but it still doesn't completely eliminate pain and fatigue, only lessens it. I move a bit more slowly and can't walk longer distances, so I end up isolated from friends who can easily walk a mile each way for lunch or socializing opportunities. Morning blocks are out of the question, because I can't reliably get out of bed for an 8 a.m. keynote; evening blocks are always a "maybe" because they depend entirely on how worn out I am from struggling my way through the venue and its host city.

Then there's the severe social anxiety. Crowds freak me out in a very real way. I'm aware of my general awkwardness thanks to a lifetime of regular bullying, so every time I talk to someone, an undercurrent of "OH MY GOD THEY HATE YOU, SHUT UP, THEY'RE JUDGING YOU, THEY'RE GOING TO YELL AT YOU" is running through my brain. Last year I had this fear of mine realized at a conference I attended when somebody inserted themselves into a group of friends I was talking to at the pre-registration event and began to pick every single thing that came out of my mouth apart without provocation, until I ended up fleeing the area in tears and calling for a ride home. I skipped a couple of days of the conference as a result and when I was finally convinced to come back, spent the rest of my time there looking over my shoulder in case that person returned for Round 2.

For any event that requires traveling, amplify all of these issues by a very high power of 10 and add in Financial Strain. I can't drive due to witnessing a suicide-by-traffic during my childhood and a history of absence seizures, and I'm a 20 to 30 minute drive from the major city center, so every meetup I attend by myself costs $60 per day for travel (the nearest bus stop is also not walkable and requires some sort of car service to reach). My almost non-existent executive function makes managing travel schedules and Important Adult Things Involved With Traveling almost impossible for me to do without help, so I either have to pay for another person to go with me, or if that's not an option, spend extra money on things like more expensive hotels closer to the venue to be sure that a.) I can physically make the walk to it and b.) I don't get lost in the process. Also, TSA has some kind of proverbial hate-boner for me, resulting in highly stressful body searches and extra screening because they claim I have "something in my pocket" despite the fact that I'm wearing leggings on a solid 95% of the flights I take. Thanks, security theater and racism!

So let's compare and contrast to Right Now: I'm sitting comfortably wrapped in my burrito blanket, wearing PJs, watching a slew of fabulous talks and knowing that if I want to join a conversation, I can wander over to the conference's Discord server and do that. If I need to take a break, I can rewind the stream. I can play with any fidget toy I want to help maintain my focus without worrying about other people being distracted or thinking I'm being rude. I missed the first two hours today because of my inability to wake up early, but since the online format means that talks are available on-demand almost instantaneously, it's not a problem at all to get caught up. No pressure. Total cost: $0, unless I decide to order lunch, and then maybe like $15. No fears of "but what if I can't make it the whole day?" or "what if somebody's a jerk?" And maybe most importantly, no TSA agent patting down my delicate lady garden.

Now guess which event attendance option I'm going to aim for 100% of the time!

Smaller conferences, especially, can benefit greatly from an online format. Imagine being able to run a successful event with no overhead for catering or venue rental, no contracts to sign with local hotels, no having to worry about sponsoring travel and accommodations for speakers and staff... and yet, being able to expand the pool of potential attendees to Literally Anybody With Internet Access.

It is true that networking in-person, especially for job-related stuff, is a big part of the conference experience that can't be fully replicated through a Slack channel. It's cool, I get it, and in a way I do agree, even with my anxiety surrounding talking to other people. But hear me out -- what if, instead of being fully on-site or fully online, events started offering an online component in addition to their usual venue?

When I worked at Blizzard, one of the projects I worked on was the Virtual Ticket stream for BlizzCon. For those who aren't gamers, BlizzCon is the massive annual convention in Anaheim, CA specifically for Blizzard games. Fans wait anxiously all year for tickets to go on sale and scrimp and save and do whatever is necessary to be able to attend. But those who can't make it to the convention center for whatever reason have the option of purchasing a much cheaper Virtual Ticket, which gives them access to live and on-demand video of the majority of the panels, contests, etc. from the comfort of their couch. They can still buy commemorative swag from the online shop. If proof is needed that you can run an event in both the real world and online and do so successfully, I'm going to go ahead and point to the 50k in-person attendees and probably equal or more online attendees of BlizzCon 2019 and let you draw your own conclusions.

Deserted Island DevOps has just concluded with over 7,000 individual viewers to the stream.

Why hasn't this become a mainstream option for hosting an event? It may be tempting to blame laziness or apathy from the organizers, but I'd wager the more likely reason is that they don't know how to set it up. We have folks who consult on nearly every aspect of tech and those who consult on event planning, but I have yet to stumble across anyone offering online event planning consultation. Figuring out how to do it well requires a team of organizers with experience in streaming platforms, software, and graphic design at the very least -- that's not even factoring in having the ability to manage and flag accounts for folks who register to attend online, which will require some measure of development work.

As someone who's helped organize livestreamed charity gaming events and used to do personal streams on a regular basis, I'm inspired to put together some resources on how to get started. I want to do whatever I can to make the concept of online events like these a reality for myself and folks like me. Who else is with me? And conference organizers -- who among you is willing to learn?

Friday, August 23, 2019

Anxiety Tech 2019: Neurosquads and Floor Parties

As this is my umpteenth attempt at curating a blog, I promised myself I was going to keep it very professional and elegantly technical. I am, as many of you may be expecting by now, about to totally eff that up.

But hey, I really did go to a tech conference. Anxiety Tech 2019 was a full day of big-bear-learning-thangs about the applications of technology on issues related to mental health. There were workshops and Emotional APIs and free wifi and everything. The thing is, it's really the lead-up to the conference and my experience once I finally made it there that stick out in my mind.

My company put together a useful Twitter bot, Tech Daily CFP, which looks for calls for presenters at tech conferences and RTs them all in one place. One of these RTs was for a conference I hadn't heard of, Anxiety Tech -- but they mentioned mental health, which is one of my hot-button advocacy issues, so it stood out strongly to me. Though I've never given a full-length conference talk before, I submitted a talk, This Is Not the End, at the insistence of Ben and others who were present for my eight-minute panic attack of a security standup comedy lightning talk at CppNow 2019.

And then I totally forgot about it. I don't actually even remember writing the abstract, but I know as I was pressing the "submit" button my brain was like "haha, this is crap, they're never gonna let you talk."

A while later I got an acceptance letter and my reaction was "Oh wow I got accepted OH FUCK I HAVE TO GO TO NEW YORK CITY."

The last time I was in Manhattan, I was eight years old, and I distinctly remember being very unimpressed with the myriad smells, visual overstimulation, and noise. Through a comedy of errors I also found out that Ben, my usual travel-handler (because it's a crapshoot as to whether I can cross a street without zoning out and getting hit by a car, and I can't understand transportation schedules on my own), wasn't planning on going with me. So not just Manhattan, but Manhattan by myself.

Those who've been following my exploits over the past several years know that I suffer from a whole bunch of fancy mental illness acronyms, like MDD (major depressive disorder), GAD (generalized anxiety disorder), and CPTSD (complex post-traumatic stress disorder). Leaving my basement usually requires deep breathing and a pep talk. I can do the route from Denver to my parents' house in Los Angeles because I've made that trip so many times, but going to what is essentially a new place with no one to look out for me so I can stand up in front of a bunch of people and brain-dump at them for half an hour?

Full disclosure: I seriously considered faking sick because this was just too damn scary and what had I gotten myself into and why did I do this to myself? Unlike the C++ conferences I attend, I didn't know anyone else going. But I had made a promise to the lovely and wonderful organizers, and it was for an important cause, so I spent a few months having full-on anxiety attacks and accusing Ben at top volume of abandoning me and crying myself into cluster headaches.

The conference organizers, Jamund and Kari, noticed the first of many Twitter meltdowns and immediately sprang into action to find a way to help, because they don't just talk about mental health, they actually do something about it. It was decided that I would have a walking buddy between my hotel and the venue -- only 0.1 miles, and yet when your brain is telling you that you're going to get stabbed or lost or run over by a truck trying to get there it seems like an impossible distance.

Somehow I made it to the airport. I made it onto the plane. I even ended up sitting next to a software engineer and gamer who was so freaking awesome we spent the whole four-hour flight talking and swapped contact info before going our separate ways. This was a Good Sign, but there was still the hotel check-in to contend with.

Oh. Check-in went fine. Well.

I still had to get to the conference the next morning, though. I was originally supposed to walk with Dani Donovan, whose ADHD comics have been frequent retweets of mine for ages, but due to her own nightmarish battle with last-minute cancelled flights and rescheduling, she set me up with her friend and fellow attendee Jessica. I expected she'd probably roll her eyes at me, a fully grown woman, needing an escort to a conference.

Yeah, instead we talked the whole way there, ended up being friends by the time we hit the front door, and spent the rest of the conference hanging out.

I don't remember how Robo started hanging out with us too but he's from my hometown and is doing very good work and I'm proud of him so yeah, the squad was now up to three members. During one of the breaks we found a bare patch of floor and sat down to eat snacks. Then Tori saw us and wisely knows the golden rule of "people who sit on the floor are the very best people" and joined us. Four.

I gave my talk. Mikael stopped me afterwards to say that he liked it. We walked and talked and ended up with the rest of the group and now we were up to five.

Poor Dani finally made it to the conference and then we were six -- Neurosquad, assembled! Six people who communicate in the same way, don't begrudge each other for talking too much, or for having their stuff strewn around them while they're digging for something else, or fidgeting during a talk, or say something awkward, or flail and knock something over. Who can just chill out and be their genuinely good selves together and run down the hall shrieking "OH MY GOD BROWNIEEEEEEES" because there were leftovers and brownies are delicious, thank you very much.

As a kid, I was left out and punished constantly because I behaved differently than the other kids. I tried, I really tried. But somehow I would always end up messing up and being sent to the principal's office or being sent to my room. I even remember telling my mom one day that being "good" was way too hard. My impulse control is shit. I imitate noises I like and walk down the hall softly singing or making little "boop boop" noises to myself. I forget what I'm saying halfway through a sentence. My train of thought is impossible to follow.

And yet now, at age 32, I was finally accepted completely as I am by a group of people who literally just felt right. None of the normal fear or anxiety I usually have when meeting new people or even being around people I already know was present. The thing that was formerly the scariest thing I've ever done ended up being the greatest thing I've ever done and for the first time in my life I seriously considered that maybe I wasn't so broken and strange as I thought I was.

Also, I now know that I need to get evaluated for ADHD when I get home, because apparently I'm pretty textbook, and literally every weird quirk of mine is explained by this.

So yes, I should be talking about tech and about my own talk but the point I wanted to get across here is that this is the greatest experience I've ever had at a conference and if I hadn't asked for help or followed through with attending I would have lost out not only on these six amazing people who actually made me feel like part of a group, but the countless other sweet humans I met today and hope to meet again.

Thursday, August 15, 2019

The Destroyer, Hello World

I try to keep an empty testing queue as much as possible. When something hits that sweet column o' mine on JIRA, I usually drop everything to knock it out right then and there so that it doesn't build up to Towering Inferno levels. Typically it only takes a few minutes per story to give it a good component testing once-over, and my team is adept enough at what they do that I very rarely have to kick anything back to them.

On this occasion, it was nearing the end of my self-imposed work day (hip hip huzzah for flexible hours and remote work) when I decided to quickly knock out four bug fixes that had crossed the threshold between Code Review and Testing. Yawn.

Bug fix 1: not in the environment, even after a hard refresh and cache/cookie clear. I left a note and kicked it back to In Progress.

Bug fix 2: ...also not in the environment. Hm. Okay, strange, given my team's typical success rate, but whatever, we've all been a little distracted lately due to shifting from a recently completed Giant Project back to our normal duties.

Bug fix 3: Nope. Okay. Something's amiss. I've worked closely with these devs for over a year now -- starting as solely QA and editorial, and moving into a junior dev position myself -- and there's no way they're going to miss 3/4.

To Slack I went. "Hey, these changes ARE supposed to be in the test environment and ready to go... right?"

"Should be. Check the pipelines."

Sure enough, two PR merges had stalled out due to queue order -- since the pipelines run after the merge itself, this was the day I discovered that JIRA will still show them as successfully merged even if there's a pipeline fail -- and wouldn't you know it, they were the PRs containing the fixes I needed. I clicked Rerun and prepared to resume my ez-mode work day.

That's when the yelling started.

Line after line of errors and warnings started showing up in the logs, which yes, I do keep up and stare intently at the entire time because we all know that a status bar never actually completes unless you're watching it. Hoooooo boy, so much for that quick end to the workday.

Once both pipelines had gloriously failed I went back through the logs to see what had happened. It looked like a bunch of packages related to our cloud functions were out of date. Nothing an npm update can't fix, I figured.

git checkout master
git pull
git checkout -b cloud-function-update

And now the magic could begin. It was supposed to begin. But attempting to update the outdated packages was triggering a cascade of failures in others. TSLint started shrieking about a laundry list of newly-deprecated code. This... was above my current pay grade.

I pulled my mentor-slash-boss Martine into a video conference so I could show her what was going on. The first issue was that I'd accidentally deleted a closing curly brace, reminding me of why I prefer Python to JavaScript in the first place. But that only fixed one of the many errors filling up my terminal.

I'd like to tell you that we figured out the issue immediately afterwards, but it was another two or three hours of ctrl-clicking file paths and looking for squiggles and beverage refills and swearing before we'd made significant process in whittling down the crisis -- no small feat considering that every time we smashed one error, another would take its place. Our eyes were starting to cross when we finally got the answer we were looking for.

"...Wait, what the hell is this hello-world.ts file it's talking about?"

cd functions/src

Sure enough, hello-world.ts was quietly waiting to be discovered in our sidebar hierarchy.

With all of the care usually reserved for opening the Ark of the Covenant, we cracked that sucker open to find a very important comment starting on line 1:

/* This code is generated as part of the Google Firebase cloud function setup and is intended for demo purposes only. It should never be deployed. */

Oops.

According to GitLens, hello-world.ts and its equally useless cousin, add-message.ts, had been hidden away in our cloud functions since 2:36 a.m. on December 22nd, 2017, the date that it was finally set up and ready to go. It painted a very clear picture of my other boss, Michael, hammering at it all day and all night to get things working, until that glorious moment in the wee hours of the morning when all tests passed and he could finally get some sleep. There was no fanfare to indicate that these demo files had been added. They were two folders deep in the main project files, hardly noticeable unless you knew exactly what you were looking for. So there they sat, untouched, for two years, over three breaking changes to firebase-tools, until the third time was, as they say, the charm, and all Hell broke loose, because even though the demo files were commented out in index.ts, build was causing them to deploy anyway. And since the demo code wasn't being automatically updated with everything else...

Hello World, friend of beginning programmers everywhere, had absolutely wrecked our shit, badly enough to insert :clap: emojis between each word in that statement.

We very quietly deleted both files and re-ran npm run build. Pass. TSLint. Pass. Emulators. Pass. After a nerve-wracking git push, manual testing of functions in our test environment revealed everything in working order.

There was a moment of silence as we watched normal operations resume in our build and deploy processes.

"So... can I like, write this up for my blog?"

"Hell yes you can."