A Beginner's Guide to CPPCon 2017

When we last left our heroine, she was just stating that although she'd be accompanying Ben to Seattle for his talk at CPPCon 2017, she wouldn't be attending the actual conference...

There were a few reasons I didn't intend to go. For one thing, I'm very much a C++ novice, just wading my way through the beginning of my education. I assumed that there would be nothing there for me, and although the conference is quite reasonably priced -- less than $1k for a whole week of content! -- I was unsure as to whether it would be a waste of money for my skill level. Plus, there's that pesky impostor syndrome that sneaks up on me with a less-than-friendly reminder that I'm highly unintelligent and that should I dare darken their doorstep I would be swiftly exposed as the fraud I really am.

Indeed, I had planned a whole week of excursions and exploration in Washington State when Ben invited me to dinner with him and a few colleagues from the conference.

My experience as a female programmer has made me incredibly wary when it comes to meeting my male counterparts. I've implemented entire automation frameworks and spearheaded learn-to-code initiatives only to have the credit ripped away from me and given to a random guy on my team. Once in a while I've even run into the dreaded brogrammer, the type who reads manifestos detailing why women are supposedly unsuitable for engineering jobs and agrees with every word. If I had a nickel for every time I've been talked down to or talked over, or a sentence to me started with "I don't know how much you know about code, but..." I'd have fled the country and bought myself a lovely estate somewhere in Devon by now.

Thankfully, not a single person I met during the past week fell into that category.

Instead, I was surrounded by programmers of all education and skill levels, genders, races, and areas of expertise. It was an environment that inspired collaboration and the exchange of knowledge, encouraged friendly debate and intellectual discussion, and made me feel truly welcome and safe. CPPCon has and enforces a zero-tolerance policy of harassment or other bad behaviors, which is more than some other conventions and conferences out there can say for themselves.

I expected to put in an appearance as The Significant Other of Benjamin Deane and quickly find myself left out of the conversation or otherwise cued to leave. Quite the opposite happened -- I was treated as an equal, offered multitudes of invaluable advice on my own programming efforts and fighting back against impostor syndrome, and reinvigorated with regards to my personal projects. For a long time I was so demoralized that I stepped away from code. Suddenly I felt like the world was shiny and new again, and that I could do this, I wanted to do this.

At the encouragement of my new friends, I ended up attending the evening lightning talk sessions, which were open to the public, and I was hooked. With just five minutes to present various food-for-thought topics related to C++ and general programming, it was a smorgasbord of brilliant engineers from a wide variety of industries. Although some of the concepts were definitely above my current expertise, it was still easy to recognize the value of those I didn't yet have context for.

As it turns out, Friday, the final day of the conference, was open to the public. Ben kindly lent me one of his dev shirts -- I was entirely unprepared in this regard, since I never dreamed I'd be brave enough to attend a programming conference, after all -- and off I went, a small Bunny in a world of very smart giants.

Choosing which talks to attend was harder than I imagined it would be. My sole complaint about the conference is that there were several equally fascinating talks by major players in the C++ world in conflicting time slots, and the only two talks given by female engineers were also slotted against each other. The good news is that videos of all the talks from the current year and previous years are made available on the official CPPCon YouTube channel shortly after the conference ends, but it's not quite the same as being in the audience for the live presentation. Unfortunately, it may be somewhat unavoidable with a limited number of days for the event and so many quality presentations to offer.

Undefined Behavior is Awesome! by Piotr Padlewski: I'm a huge fan of edge cases and learning how to avoid common coding pitfalls, so attending Piotr's talk was a no-brainer for me. Not only were some of the most pervasive undefined behavior sins outlined here, but tips and solutions for their mitigation followed each case. This invaluable information was presented with exactly the right amount of humor -- enough to keep it interesting, but not so much that it cheapened or drowned out the point. My main takeaway is that compiler optimizations are an awesome way to save us from ourselves (and the neverending hunger of Clang), and I'll definitely be toggling a few of them on before I start any projects!

Traveling the Solar System with C++: Programming Rocket Science by Juan Arrieta: Rocket science. ROCKET. SCIENCE. How could I pass this one up? Juan is an engaging speaker who worked on our dearly departed Cassini at JPL and used that experience to bring us a fascinating overview of what it takes to power a spacecraft with code. If I had to choose a single favorite talk, it was this one. As soon as the presentation videos are uploaded to YouTube, I plan to watch it a few more times. Juan starts with a brief history of what we know about the universe and then gives some easy-to-grasp examples of not just the code itself, but some very unique considerations that must be made when programming for space exploration. I'm sad to say that the slides for this talk haven't been uploaded yet, but if you ever wanted to be an astronaut as a kid -- heck, or especially as an adult -- do not miss this talk once it's made available! Also, Juan, please write a book, because I would love to read it, and I'm sure I'm not the only one.

Curiously Recurring Bug Patterns in C++ at Facebook by Louis Brandy: Another chance to learn about all of the interesting ways that code can go wrong! Louis was quick to point out at the beginning of the talk that he wouldn't be covering some of the more arcane bugs in his talk, and while I'd love to see a second presentation to go over those, it was a choice that added much more value to this one -- after all, it's much more useful to be made aware of mistakes you might actually make than the one-in-a-million errors unlikely to ever happen. Like Piotr's talk about undefined behavior, solutions were offered alongside of each case study. ASAN is our friend and we should not fear it. The bugs selected for discussion are also not exclusive to Facebook's architecture; these are the types of simple errors that any C++ engineer at any company in any industry could make. All in all it was an entertaining and extremely well-curated presentation.

Unbolting the Compiler's Lid: What Has My Compiler Done for Me Lately? by Matt Godbolt: Yes, THAT Matt Godbolt, the angel who brought us the Compiler Explorer tool. Ever wanted to see under the hood of your compiler for various architectures? Compiler Explorer lets you do that. I'm not ashamed to admit that a good chunk of this talk felt a bit over my head, as I'm not yet developing anything in C++ to the point that I need to worry about compatibility testing my code against multiple chipsets, but there is something oddly enticing about assembly language and being able to access it so readily. If you're feeling generous, please support Matt and his Compiler Explorer project on Patreon, because in addition to creating a really useful tool that's being used heavily in the programming community, he's just a really nice guy.

Building for the Best of Us: Design and Development with Kids in Mind by Sara Chipps: Teaching the next generation to code from an early age is so important, especially when you focus on girls. Our society doesn't encourage girls nearly enough when it comes to STEM, and Sara is working to change that with Jewelbots, friendship bracelets that can be programmed simply in C++ using the Arduino IDE. Not only did we hear from Sara herself on the challenges surrounding designing a programming project that's easy enough for kids without dumbing it down to the point of losing educational value, but we were honored to hear from two brilliant young ladies, Sumeya and Eleanor, who have jumped right into their own Jewelbots projects. I teared up a little hearing them talk with such passion and professionalism about code -- I wish I had grown up during a time where something like this would have been available to me. I truly hope that the day comes soon where we'll be seeing their talks at CPPCon! I'd also like to admit that as a fully-grown woman, I want a Jewelbot for myself, although based on whispers I heard in the audience, I'm not the only one. Jewelbots is an open-source project, so if you have experience with Arduino and/or C++ and want to contribute to encouraging girls to code, wander on over to their GitHub and commit a few things!

So was it worth it for me, as a beginner, to attend this conference?


I can't stress enough how grateful I am to the C++ community members I met during the dinners and lightning talks and event for restoring my faith in the programming community and inspiring me to get back into my IDE. I don't feel like an impostor or like I'm not good enough or that I'll never be able to achieve anything after talking to these folks; instead, I feel like the world is my oyster, and my goal is to submit a presentation to CPPCon 2019. In the meantime, I'm already planning how I might make it to the full week of 2018's conference, and look forward to seeing everyone there!


Streaming for Good and Other Scheduling Tidbits

The first of September kicked off what is almost always my busy time of year -- hence my blogging has been sporadic at best for the past couple of weeks and may or may not continue to be that way through the holidays. In the past, it was due to the extreme content push that accompanies every BlizzCon. This year, it's all stuff that I actually want to do and enjoy doing, so while I'm still unbelievably exhausted, I'm at least falling asleep with a smile on my face!

At the beginning of the month I visited my parents in Northern California and got a brief tour of the Super Evil Megacorp offices in San Mateo. If you're not familiar with the name, they're the masterminds behind the mobile-friendly MOBA Vainglory which is starting to make some serious waves in the esports scene. It was great to see a studio full of such passionate individuals and see all of the growth they're currently experiencing! They were also kind enough to give me this incredible T-shirt to commemorate my trip, so now I guess I need to get some mad Vainglory skills to replace the "free kill to all other players on the map" ones I'm currently sporting.

That trip was the first time I've traveled by myself in about a decade, a testament to exactly how far I've come in conquering the agoraphobia and anxiety caused by my CPTSD. I dealt with one flight cancellation and multiple delays without even batting an eye and now I'm afraid I've been bitten by the Adventure Bug that's making me want to hop more planes to more places.

I won't need to wait long for it, either; in a few days I'll be on a plane to Seattle, accompanying Ben on his travels to CPPCon 2017. He'll be reprising the amazing talk on constexpr magic that he gave with Jason Turner at this year's past C++Now conference in Aspen. I won't be attending the conference myself, but I'll be serving as his executive assistant, handling day-to-day details so that he can focus on C++ deliciousness instead. Since there will probably not actually be any details to handle, I'm planning to visit a few friends and explore Bellevue -- this is my first trip to the Pacific Northwest and I'm thrilled because it's a place I've always dreamed of visiting! I've already been warned about the cool temperatures and frequent rain because apparently a lot of people consider that a bad thing. Weirdos.

A week or so after we return to Southern California, we'll be hosting a couple of his family members who will be visiting from England. For some, this would be a nightmare, but I happen to adore everyone in his family, so I'm quite happily dashing around trying to make sure all of the necessary arrangements are made for a fun few days! I don't often get to see them due to the distance, so I'm excited for the chance to do so twice in one year.

Then I'm celebrating my five-year anniversary of participating in Extra Life! Extra Life is a charity gaming event benefiting Children's Miracle Network hospitals. Participants pledge to stream games for 24 hours, either all in one shot or broken up over the span of a few days, with the goal of raising funds for the CMN hospital of their choice. I'll be streaming from 9 a.m. to 5 p.m. Pacific time starting on Monday, October 16th and going through that Friday, which is actually almost double the 24 hour requirement, but it's for such a fantastic cause that I'm pleased to make it my full time gig for that week! The stream will happen on my Twitch channel each day, and donations can be made directly to Extra Life via my fundraising page -- only the hospital I'm supporting, All Children's Hospital in St. Petersburg, FL, will be able to touch that money. Donations are tax deductible and many employers will match the amount, so even just $5 (cheaper than a pumpkin spice latte) can do some serious good! If you're unable to donate, please feel free to share the link to my fundraising page and help me get the word out.

In case you missed the link to the fundraising page in the paragraph above, it's here.
November brings with it NaNoWriMo, which I haven't actively participated in since before I started working at Blizzard -- I just didn't have the time to devote to it. This year I'm jumping back in the saddle by writing a salacious historical romance novel so steamy that I fully expect it will bring shame to not only my family, but the families of anyone who reads it or associates personally with me. In keeping with the event's rules I haven't written a single word of it yet, but the working title is Master of the Moors, there will be scullery maids and brooding aristocratic widowers, and I'm so sorry, mom.*

* = Actual regret content is less than 0%

Beyond the firmly scheduled upcoming events, I've also got a lengthy to-do list:
  1. Keep working towards Twitch Affiliate status
  2. Figure out some social media platform art (headers, et cetera) and a logo -- and then how to pay someone to make them for me because artists do not and should not work for free
  3. Take a refresher course on crochet
  4. Reopen my old Etsy store, or more than likely just create a whole new one
  5. Flesh out some short story ideas that are kicking around
  6. Actually self-publish my dirty book on Amazon
  7. Maybe self-publish the short story ideas in an anthology if I get enough of them written
  8. Complete a full-stack web development bootcamp
  9. Put together a weekly Diablo 3 stream co-starring Ben (his request!)
  10. Put together some sort of nice, supportive weekly gaming stream where I can focus on the community, tentatively titled A Nice Cup of Tea and a Smackdown
I'll admit that I've got a lot of ideas I'm excited to implement, and I'm always trying to figure more out -- but it's a little overwhelming at times. It's hard to focus on just one of them at a time because I want to do them all right this minute even though I know that's impossible, especially with my constantly lengthening schedule. When you're working for yourself, it's easy to get distracted and lose motivation. My hope is that by blasting it to all corners of the internet that I'm doing stuff, it'll keep me honest and on the track to eventual world domination.


Still Sick, Still Living Well

I've been mulling over a polite way to talk about something that really distresses me: the assumption that just because I'm open about my chronic illness and because I stay home instead of having a "real job" my life is somehow less fulfilling or sad or that I'm just laying around on the couch all day eating bonbons and whining about my joints.

These are all things I've heard in some form from strangers, yes, but also from family and friends -- thankfully, those I'm close to fall more into the concern category than the accusations of laziness, so in a way I'm grateful that they're worried about me, but regardless of their intent, it basically invalidates all of my small victories that I do accomplish.

In general, I am extremely content with my life, even if it has deviated from the norm a bit more than I ever accounted for. Sometimes I feel like maybe there's something brutally wrong with me because of that. People are telling me "oh, you poor dear, why don't you get out and do x, y, and z to make up for it?" and I'm just sitting back blinking my eyes thinking "But I wouldn't want to do those things even if I were healthy." If others look at my life and walk away dissatisfied, does that mean that I am in the wrong for being satisfied while living it?

For example, the gym. Oh God, let's talk about the gym. Look, I know that eating right and staying active and all of that fitness stuff is important. It doesn't change the fact that I hate working out. I have hated working out since I was little, I have hated working out since before I started developing Sjogren's symptoms, and I sure as heck hate it now that sometimes just walking across the living room is enough to make me double over in pain. On occasions where I'm feeling pretty good, I'll do some yoga as a way of keeping my mobility up and centering my brain. That's... pretty much it. Oodles of respect to those out there who feel that certain "high" I keep hearing about whenever they go to the gym, but I just don't feel it, and I never have.

Unrelated to my illness is the simple fact that I am an introvert. Even without the complex PTSD, even without the depression, I find being surrounded by tons of people and noise and other sensory stimuli confusing and exhausting. So yes, if you invite me out to a club or to hang out with a big group, I'm probably going to say thanks, but no thanks. It is true that in years past I was totally down to party. These were times when I was also drinking heavily and so could mask the unease and misery I felt in these situations, because I had also not mastered the art of putting myself first and saying "no" when I didn't want to do something instead of pretending like I was happy to go along with it so I didn't hurt anyone's feelings. Most people think I'm joking when I talk about my "party budget" -- I essentially prepare myself for the energy for about four parties or major events per year. Additional events will be considered, especially important ones like weddings, birthdays, et cetera, but it's not guaranteed that it's in the budget. And you know what? I'm perfectly happy with that.

I don't feel like I'm missing out on the world, although I am more than mildly irritated that my days as a Dance Dance Revolution champion are over. I don't feel that I'm not accomplishing anything in my life. Some days I will accomplish more than others. Today I have done all of the laundry, served two meals, helped make pancakes, made double chocolate chip banana bread from scratch, cleaned up the kitchen after said banana bread exploded a little in the mixer, spent time with the kids and my boyfriend, and now I'm sitting down to write while I wait for the dryer load containing our bedsheets to finish, after which point I will put the freshly laundered sheets on the bed. Later tonight I will clean up the kids' room and cook dinner. I will do the dishes. If I have time, I will play some Diablo 3 with my boyfriend and wind down for the evening by reading more in my current book. I will fall asleep happy and proud of myself for accomplishing as much as I have today. Perhaps it's not as prestigious as working at a major game company, but it's my life now, and I love it.

Caring for other people has always been my passion in life. The only reason I didn't go into nursing or a similar field is because I was terrified someone might die on my watch, knowing that it'd probably haunt me for the rest of my life. I also love baking and cooking, but only as long as I know that the person (or persons) eating whatever I make are enjoying it, so that ties directly back into the primary passion. I'm in a position now where I can not only take care of myself, but others as well. I can stay in a controlled environment that can be as dark or bright as I want it to be, as cold or as warm, as loud or as quiet. If I'm having a bad flare-up, I don't have to scrape myself off of the bottom of the shower and stress myself out about how I'm going to find the strength to function for a nine-hour workday. I can just say "Okay, self, we're not going to run any marathons today, so just do what you can and we'll be fine." I've reached the point where I can ask for help without feeling guilty for it or worrying that I'm going to lose my job for it.

Wouldn't you know it, I'm actually feeling better since I left my career and focused on my own interests and making a happy, safe home for myself and my loved ones. I feel like I've made more of a difference in people's lives in the last three months than I have in the last three years. I'm not running myself ragged and pushing myself to my very limits so that instead of feeling lousy for one day, I feel lousy for a whole month.

I'm in an extremely loving, supportive relationship. I have time to pursue additional knowledge. I have time to try new hobbies. All of those cookbooks I've been hoarding are getting plenty of use now because I have the time and energy to finally give all of those tasty recipes a shot. My brain is in no danger of withering away from lack of stimulation! I keep in contact with my friends and family all day long. I interact with the gaming community. Just because there's nobody else home doesn't mean that I'm isolated.

This month I'm traveling by myself for the first time in years to visit my parents up in Northern California. At the end of the month, I'm accompanying my boyfriend to Bellevue for CPPCon. In October, I'll be running a week-long Extra Life charity stream. In November, I'm going to participate in NaNoWriMo. In between all of this I'm streaming regularly with my World of Warcraft guild's Wednesday night casual raids and anything else that strikes my fancy. I'm writing on a more consistent basis than I have before.

So why do I talk so much about my illness? Because I know too well what it's like to feel scared to talk about it. I know the stigma that exists around invisible illnesses because I've run up against it countless times. I want everyone else out there who is dealing with a diagnosed illness or even just the symptoms right now in their battle to be taken seriously that they are not alone. I want people to learn about my illness, to ask questions, to maybe look at the sick or disabled people in their lives through a slightly clearer lens, to not blame themselves for feeling sick. Support networks and the feeling of normalcy while still receiving understanding and compassion for limits that may be different from a healthy person are incredibly vital in living a good life with a chronic illness or disability.

I'm not trying to single anyone out with this Treatise On My Awesome Life or make anyone feel guilty. I'm not angry. I'm flattered that there are so many people who want me to have the highest possible quality of life. This is just me saying loudly and proudly that I am doing fine. I am handling what life has thrown with me, and then probably making cupcakes with it.