The best-laid plans…

This is an entry that’s never going to feel appropriate to write but needs to be written before I can move on with more useful blogging topics.  I had a really hefty year-end-summary post that was in the works that is now scrapped because it is forever tainted by the present.  So it goes.

Twelve days ago I went to work and reported as usual during the usual team scrum stand-up about my work on that week’s “red hot engineer” (the first Google result on this is the best, and MAY IT ALWAYS BE) tasks, i.e. I was dealing with any production issues that came up so the rest of the team could focus on our actual sprint work. It’s a great rotating role that we had just finished sequencing through as an entire team, and it allowed us to share a layer of knowledge and responsibility in a way that kept the group engaged. As an augment to the traditional scrum team model I only have good things to say about it, and it must go by other names elsewhere if the current Google results are that silly.

Immediately following the morning’s report I had a 1:1 with a higher-level manager who had been visiting for the week. At that meeting I learned that my position had been eliminated; I was one of the dreaded 10 percent of employees who faced the chopping block.

The day before this happened I had this most amazing shadowing experience with a Customer Service agent for about 2.5 hours. This was part of a larger team effort to, as a technical team, better understand the CS team that shared an office with us, and figure out ways we could help them (and customers) with the part of the product that we managed. Very cool! I was totally wowed by the professionalism, efficiency, and smarts of the agent I was shadowing, and I was reaffirmed to see that my company really did treat their customers well. To top it off, these folks managed to handle an epic harrowing final call with an impeccable grace (I would have caved and made an embarrassment of myself, no doubt).

This same week there were also some good reconnections with New York coworkers who were in town and a lot of conversations about the year that lay ahead, our team’s values, and other discussions that are nice to have at the start of a new year. The company had downplayed the severity of layoff rumors, and my team didn’t look short for work (or overburdened with too many heads). I don’t think I could have been more forward-looking and engaged with my team, my role, and the company at the time this all happened.

Needless to say, the news came as a complete and utter surprise. I was downright optimistic, excited for the future and the work we’d take on after the amazing ups and downs we’d gone through in the past 10 months. We’d built a well-functioning team that embodied software development values I really believed in and consistently delivered a reliable end product.

I’m an experience junkie; while I hope to never become Justin from Parks and Recreation (season 2) and just be a person who “collects stories”, I knew “my first layoff” is something of an important milestone and was going to happen eventually. For that reason alone I’m coping OK; I just really wasn’t expecting such news at this time, in this context. What I learned from my own “layoff story” (and I still haven’t watched “Up In the Air” yet, but probably need to) is that I don’t really emotionally react at all to this news in the moment. I guess this isn’t a big surprise. I’ve learned that my emotional reactions are a bit of a thunderclap – happening reliably on delay from the actual event causing the response – and I have a bit of working time for my rational self to take over and do the work it needs to get out of the way first. So I got out of there and home safely before the emotional side kicked in.

Beyond that first hour I don’t think it’s fair for me to fully reflect on this experience of being laid off and being able to claim unemployment and all of those “worker drone rites of passage” that I’m getting to participate in just yet. (Several more paragraphs lay ahead for your ingestion nonetheless.) I’m still very much in the moment with this experience, and it’s evolving (emotionally) day-by-day. Right now, I’m really just sneaking in a moment of post-karaoke relative stability to reflect at as dispassionate a stance I can take at this point. I know these moments are still fleeting.

That said, I can say without a doubt that in the case of this particular layoff / transition / what-have-you, my first and most gutteral response was heartbreak. I was heartbroken because I had lost my team. Per my opening, it was a particularly good week at work for feeling smitten with my team and pumped for what we were going to do collectively in the future. That had not been an easy place, personally, to get to. After years of mostly working in isolation, that much teamwork was initially scary, and I had to grit my teeth through so much of it. I had trouble believing my (more experienced – overall and with the tech we were working with) teammates really respected me and saw me as an equal and this made me especially sensitive to occasional unconscious slights that communicated a lack of trust in my intelligence and perspective. Those slights had formed a bit of a discouraging, silencing pattern for awhile, but thanks to some hard work and great management we’d gotten past that. I could finally stop feeling like the god what’s her problem lead weight who seemed to be the only one visibly struggling in an environment that was constantly shifting, and I cannot tell you how happy it made me to finally feel safe in the assertion that I belonged. It is heartbreaking to lose that, so close to finally feeling certain in it for the very first time since we’d embarked on an agile approach.

I spent the first days after being laid off grieving. Not freaking out over money or what would come next – that will be figured out in the weeks to come – nor even much of feeling angry or resentful (not that such feelings have been absent.) I wasn’t grieving over the loss of a company I really believed in or now-forever-shelved trips to New York, but the loss of my team and the work we had ahead of us. That loss was felt deeply, only comparative to the times I have (for various reasons) lost close friends or partners. The rest of the processing of this sudden change has been downright simple in comparison, and I suppose that’s been reassuring.

There’s more to come but for now I’m still in transition: the place I worked was far from perfect, but its imperfections were either a.) interesting or b.) symptoms of a systemic issue, not a company issue, and I was by no means ready or interested in leaving or moving on to other work.  In the face of needing to look for other work, my current mindset is “how can I keep doing what I was doing (in a technical sense).” It’s the same attitude I had when buying my house, which is less than a mile away from my final rental property: “I like this neighborhood, and even if I have to move, as little else should change as possible, because I didn’t welcome this transition in the first place.” (Keen minds will point out that the transition was nonetheless for the better.) I’m guessing my interests will probably evolve a bit more than that in the coming weeks.  I have absolutely no idea what my opinion of my now-former employer will look like in a few months; that’s been a very interesting relationship to track with my other former employers.  (I have more former employers than I’d prefer at this point, but far more interesting experience than the average person 5.5 years in, so I will live with the lot I’ve drawn.)  Working with other fascinating and smart people, engaging with different exciting opportunities, etc. has not yet become a “perk” of this transition just yet, but I’m optimistic it will be.

I was a dedicated employee and customer who believed in the company and its business model and pretty much love everything I bought there (and I bought so much; far more than was really reasonable.)  I leave with a fresh pile of More Wonderful Winter Coats Than I Could Possibly Need and the world’s two best Free People cardigans, acquired with my last batch of employee credits.  The wonderfulness of the coats (and cardigans, which I wore as I burrowed in bed those first harrowing days) is not really much solace for the loss of everything else, but it’s a contrast nonetheless, and I think it maps out the complicated relationship I’m likely to have with this particular job in the future.  There are no simple answers or summaries here; I learned so much and had the most productive 10 months of my career – I loved my work and had such a thrill out of being able to see that it was impactful – I had the first truly productive technical managerial relationship of my career – I finally worked closely with a team and despite the initial and numerous growing pains I really came to love working within that team unit.  At the same time, and these were pre-existing feelings that the layoff cemented, I leave so much less confident in myself (by way of having such outstanding peers to compare to and very little positive individual feedback), legitimately worried that I cannot be successful in this industry even though it’s only for cultural reasons, seriously wondering if I should start to think ahead to a career “escape hatch” that is not software engineering for the first time ever, and more fighting mad about women-in-tech issues than I have ever been.  I suspect that it’s going to take a strong shift in focus away from this current loss and onto future opportunities before those two competing forces balance themselves out.

In the meantime I would like to extend my deepest gratitude to my personal and professional communities for really stepping up and providing me the best support I’ve ever received in light of one of these transitions, as well as the coworkers who accepted and supported me despite my stubborn feminist engineerness often overruling other engineering identi-forms as the safest and most self-protective option. My friends have been incredible and my network within the Portland tech community has never been more rewarding. I owe the Portland tech community so much and am reminded of that every day.

Posted in Uncategorized | Tagged , , , | Leave a comment

About Sheryl Sandberg

I feel so conflicted about Sheryl Sandberg.

She’s speaking in the keynote at the 2011 Grace Hopper Celebration of Women in Computing, which I’m happy to be attending this year.  But I already have a pretty good idea of the gist of whatever message she’ll deliver, and I suspect it’s going to get under my skin a bit.  My fellow Code-N-Sploder Christie has similar reservations, so we may be sitting together during the keynote to ease the tension a bit.

Sandberg, currently the COO of Facebook, was my first boss (up a few levels in the chain of command) out of college, as the head of Online Sales and Operations (OSO) at Google. As a figurehead for that division, she definitely made a positive impression, and her talent for management is immediately noticeable.  But as an engineer embedded in OSO, I always felt isolated and out-of-place – most of the engineers were in the Engineering division, not OSO, so few people around me spoke my language – and by the time I was on my way out, a Sandberg speech tended to amplify that lack of connection more than anything else.  But my experience at Google was unique and weird in a lot of ways (quite typical in others, as I’ve learned from other alumnae), and I left with a tremendous amount of respect for her and the company nonetheless.

I thought my disillusionment with Sandberg’s speeches was specific to that experience until I watched her TED talk on Women in Leadership when it was circulating the feeds of some of my friends early this year.   I felt a familiar unsettled feeling returning, one that has come back again and again, as the issue of women in tech appears to be Sandberg’s pet cause, reappearing in most interviews I’ve seen with her since then.  I read the New Yorker’s excellent profile of her on a flight back from New York this summer; TechCrunch has a piece on her today.  The message has been similar in all contexts: the onus is on women if they want to increase their representation in the highest tiers of business; the shared responsibility of the systems that help perpetuate these inequalities are always acknowledged, but are never the focus.  This boils my blood every time I hear it.

TechCrunch’s piece today throws it out there the most brazenly via its headline: “Sheryl Sandberg: ‘Until Women are as Ambitious as Men, They’re Not Going to Achieve as Much.”  Ironically, I read this just hours after reading part of the Catalyst study “The Myth of the Ideal Worker: Does Doing All the Right Things Really Get Women Ahead?” (short answer: not as much as you think.)

According to the Catalyst study, women are already as ambitious as men, but it’s not paying off:

We found that women were less satisfied with their careers than men, which suggests that they aren’t intentionally seeking slower career tracks. If they were, we’d expect them to be as satisfied as men with their advancement and compensation growth.

…Women were also less satisfied than men with their salary and rate of compensation growth. …This suggests that women likely were not seeking out lower-paying career tracks and, therefore, accepting of and satisfied with their lower compensation. Rather, they likely were less satisfied with their salary and compensation growth when they compared themselves to others in their field and at their level.

July’s New Yorker piece did an excellent job of covering Sandberg’s rise to the top, and while I have no doubts about her qualifications, she had so many doors opened for her thanks to her connections with mentor Lawrence Summers (former Harvard president, as well as former member of the Clinton and Obama administrations).  Now that she’s at the top, Sandberg is clearly eager to bring more women up with her – and I love that about her.  It’s really great to see a woman at the top being so open about this issue; my concern is that her messaging hurts more than it helps when it puts so much of the responsibility for changing things on ambitious women who are already stretched to their limits and not reaping the rewards.

The two key critiques of Sandberg’s messaging, nicely covered in the New Yorker piece, are that she does not give enough credit to the value of her connections (Larry Summers as a mentor) in providing opportunities that equally qualified, but less-connected women simply aren’t being offered.  She also diminishes the impact of the institutions which keep women from moving ahead, acknowledging their existence but choosing to step aside from the topic pretty quickly.  Maybe it’s a matter of not biting the hand that feeds her (since I can’t imagine Sandberg hasn’t been exposed to a ridiculous amount of sexism in her time at the top of the boys’ club, but perhaps her world has really been that extraordinarily privileged), but we’re setting women up for so much frustration and grief when we don’t acknowledge the big picture.  The Occupy Wall Street movement has also  contained elements of that frustration and grief on a broader scale: ambitious individuals (male and female) who have been told they’re in a meritocracy and have made sacrifices and followed all the rules, but to little avail. Sandberg’s overall message feels disingenuous and unrealistic, and like many of the OWSers I’m left feeling jaded.

My time at Google exposed me briefly to the world of the ultra-privileged, and I can say pretty confidently that the people at the company were just as talented and ambitious as they thought they were.  But there was a sense of entitlement (versus gratitude) among so many of them; it was such a weird bubble of elitism and privilege that didn’t acknowledge all of the institutional barriers that can keep driven people from the so-called promised land.  My brief contact with the ultra-elite continues to color my perceptions of the people who have “made it”, and there aren’t many people who really give adequate emphasis to the systemic factors that allowed them opportunities to prove themselves.

Of course, I also know that I’m probably not in Sandberg’s intended audience – I don’t want to climb to the top of the corporate ladder.  I consider myself an ambitious person in recovery, and have been since the start of my college years. I (anecdotally) suspect manypeople with the level of ambition to get to the level Sandberg’s at to have some degree of personality or other emotional disorder, as has been the case for most of the really ambitious people I’ve been close to (including myself), and the rewards for that level of ambition just don’t seem worth the health risk.  So my career goals aren’t about ascending the corporate ladder; I’m more interested in passion and making impactful change regardless of rank, and while that probably will include taking on more responsibilities at some point, maintaining a healthy balance is always going to matter more to me.  That said, I’m probably still outside of the standard deviation when it comes to ambition; I am a single woman in her late 20′s who doesn’t see starting a family as a higher priority than my career at present, and I’ve been the most ambitious person in many of my social groups (but not professional groups) for most of my life.

I understand that “It’s not your fault” is far less actionable and motivating than “You can do it,” but I really wouldn’t mind a bit more of the former from Sandberg, because she’s such an incredible woman and I think her end goal for women in leadership deserves the attention it’s getting.  I just hope her perspective will change over time: she’s an outstanding public speaker and I think she’s capable of acknowledging the wounds ambitious women have suffered under the status quo while still inspiring action. My dream Sandberg speech would provide equal parts acknowledgement / healing with motivation / calls to personal accountability, and maybe someday we’ll see it.

Posted in The Opiner | Tagged , , , | Leave a comment

Growth Spurts and Growing Pains

For the last month or so, I’ve been meaning to write about my professional experiences – on the job and otherwise – during my first six months as a software engineer slash platform engineer at Gilt Groupe.  It’s been an incredibly hectic six months: a whirlwind mix of glamour, stress, excitement, fear, novelty, pain, and gratitude.  From that frothy brew has come a staggering amount of technical growth, something I quite frankly don’t give myself credit for in the midst of my day-to-day frustrations.  It will be personally useful to document some of the aspects of that growth here, as a reminder of the less obvious things I’ve accomplished, on those (many) days where I’m spinning my wheels and feeling discouraged.

I meant to write so many other entries in these last six months, starting with a rundown of my impressions of the job search and a summary of the reasons why Gilt was ultimately the right choice for me.  Those quickly became distant memories as I encountered new experience after new experience on the job (and corresponding inspiration for even more blog posts).  By September, while enjoying some excellent reflective time at Burning Man, I decided the six-month mark would really be the best jumping-off point for more productive future blogging.  But I can really only allow myself a half hour at a time or so to sit down and write; when I mind-mapped the things I wanted to cover in even a “brief six-month summary”, it quickly became a monster of its own.  I’d like to be blogging more often, so let’s try a different tack and slice that six-month beast into little pieces.

* * * *

As part of my six-month reflective mind-mapping exercise, I outlined the things I really loved about my new job and the things that were problematic, and was really heartened by how quickly the few “needs improvement” bits were dwarfed by the stuff that’s really fantastic.  That’s easy to miss in the midst of day-to-day ups and downs, and the anchoring sentiment in all of my reflections.  I’m in the place I want to be; making the most of it is really up to me at this point.

At the start of this year I had a pretty good sense of where I wanted to go next career-wise, but I wasn’t sure if I could find all of that in one job; I’ve been “surprised and delighted”, to use a Gilt catch-phrase, by the ways this position has met my needs, often without any actual intervention on my part.  That’s a wide-ranging satisfaction that has often extended beyond the scope of the tech team.  It’s all been refreshingly positive, and quite a bit of fun.

Here are the core bits that I wanted from a job back when I was interviewing, and that Gilt has provided:

  • A product that I can get excited about, and can explain / promote to friends and family
  • Engineering work involving a diverse set of tools and technologies – a nice mix of proven, well-tested tech and the cutting-edge.
  • Opportunities to work more with software methodologies like scrum, pair programming, and test-driven development
  • Frequent opportunities to learn new technologies and increase mastery over those I already know
  • A say in the direction of the culture of the organization and within the external community as a representative of the organization (specifically, the Portland engineering team)
  • Smart, hard-working co-workers who hold themselves to high standards

One of the things I forget – quite often – is that my choice to stick with programming classes in my initial years as a coder was influenced by quite a bit of masochism – it hurt, but it didn’t hurt too much to quit, and it actually felt a little good in the bits where the pain let off. I’d find myself signing up for another year of classes, despite having no plans to stick with programming in the long run (I had finished two years of high school programming, and three years of university Computer Science courses, before deciding “Maybe I won’t just do this as a torturous side-hobby after all.”)  Something about the pain made the accomplishment that followed it that much more satisfying, but if you’d asked me at any random time what I thought of the experience of being a CS student, I would have unloaded quite a bit of vitriol and misery.

I need to remind myself of this omnipresent component of my relationship with programming – that dichotomy between the (majority) frustration and the (minority, but addicting) glee, accomplishment, and satisfaction – when looking at my new job.  Because I’m getting exactly what I wanted out of this job, but “exactly what I wanted” turns out to be pretty painful.  Quite frankly, that makes sense – working with a variety of technologies, many of them new, is a lot more difficult than working with the same thing every day; the software methodologies I haven’t tried are going to make me incredibly uncomfortable while they’re still unfamiliar; if my coworkers are as smart and hard-working as I want them to be, I’m going to be the slowest and least knowledgable in the room far more often than if they weren’t – but it’s easy to not see the forest for the trees in that pain, and feel discouraged.  It happens a lot, and I want to give myself a more frequent dose of perspective: growth always involves growing pains, and the last six months, for me, have been a full-fledged growth spurt.

I’m looking forward to exploring these growing pains, celebrating the ways I’ve grown and acknowledging the work that’s left.  I also think there’s some real utility to exploring this discomfort in a professional context, because I don’t see as much acknowledgement of these tricky, multifaceted transitions as I’d like.  There’s a lot of really interesting information to share.

Posted in Anecdotes | Tagged , , , | Leave a comment

Open Source Bridge 2011 & Community Awry

Note: While this post includes a recap of this year’s Open Source Bridge conference, it’s also heavily about gender-in-tech issues and negative experiences I’ve had outside of the context of this conference.  I will be moderating comments as a result; see the Geek Feminism comment policy if you aren’t sure about what’s appropriate.

Open Source Bridge is one of the local gems that makes me proudest to be a Portlander in the tech industry.  The conference, created in response to OSCON’s one-year departure to San Jose back in 2009, manages to be unconventional in all of the right ways, from running on a home-brewed open source conference platform, to being entirely volunteer-run, to placing a strong emphasis on building community and a welcoming environment for all throughout the event.

When I go to Open Source Bridge, I’m expecting to leave a better and happier developer, due to:

  • Exposure to new technologies, or special insights on technologies I already know
  • A reinvigorated return to my day job after being around people who are intensely passionate about what they do
  • A strong sense of community, that I feel like an intrinsic part of, during the conference, and persisting in smaller degrees in the social media sphere (Twitter) post-conference
  • A handful of quirky, entertaining, hilarious “only in Portland” conference anecdotes.

This year was weird for me because a lot of that experience was either missing or diminished.  A big part of that was caused by being extremely distracted by events tangential to the conference – and “recovering” from said events meant that I ended up missing about half of the sessions.  It also seemed like the people I most wanted to connect with were equally distracted and tired.  I don’t think the warm fuzzies or awesome talks were missing, but this year we were ships passing by.  So while this summary is going to seem like a bit of a downer, I want to make it very clear that I don’t think it reflects on Open Source Bridge overall, bur rather some of the larger and more pervasive issues within the technical community (in Portland and beyond), finally creeping their way into a little gem of an event that has managed to avoid a lot of that nonsense in the past.

But, before getting to the heavy stuff, I want to make a note of the good things:

Things That Were Awesome at Open Source Bridge 2011

  • “Third Time’s the Charm”, and in this respect the conference organizers were really on top of their game this year.  Along with continuing strong with the things that have worked in years past (excellent website, beautiful and clear conference guide, ever-hopping conference lounge, a great balance between number of sessions, the length of sessions, and breaks, etc.), they refined things that were already pretty good for the better (all-in-one conference guide and attendee badge, clear and proactive messaging like daily conference emails, an onsite hacker lounge that was hopping all conference long) and added some fantastic new amenities (in particular, three lunches that were friendly to people with vegan and gluten-free dietary restrictions, while still being delicious for those with less restrictive diets, as well as some simple merchandising – I *love* the soccer-inspired Open Source Bridge scarf).
    Open Source Bridge scarf in blue and green over a red tutu.

    Wearing my Open Source Bridge scarf out to Tuesday night karaoke.

  • The Eliot Center is definitely the best venue for the event yet (after years one and two at the Oregon Convention Center and the Portland Art Museum, respectively).  It allowed for an intimacy that suits the conference really well, something that the large and sterile layout of the Convention Center, or the dark chasms of rooms at the Art Museum, hindered a bit.  The venue seemed a little too small at times, due to a couple talks that were surprisingly packed (I never expected such a healthy turnout for more human-focused topics like technical management and women in open source, especially given attendance at similar presentations during prior years, but both were very well-attended), and a hacker lounge that was frequently on the cusp of being a little *too* cozy.  But the intimate, well-lit and casual space that the Eliot Center provides was very well suited to the overall culture of the conference.

    View of the backs of attendees of a packed conference session.

    My view during Sumana's "Tech Management" talk - had to sit on the floor during a spot between 4-5 rows of chairs and a table. People were watching from the hall!

  • There were tons of great talks put on by women this year, many of whom I hadn’t met before.  Women in tech are so rare that I tend to see anyone who identifies as a woman in tech and also has the guts to give a presentation as a bit of a role model, and I had several more to add to my list this time around.  I also met a couple of fantastic male allies.
  • While I personally ended up in a pretty low place midway through the conference, the attendees that I reached out to once I’d had a little time to myself to recover were able to pull me out of my hole and get me engaged again – thanks in particular to the Code N Splode BoF and the Privilege / Identity unconference session (productive despite being too short and chaotic for all that needed to be discussed).  Reaching out and finding an anchor – many anchors, really – when I feel like I am drowning is not an experience I’m used to yet, but one I’m glad to be growing familiar with.
  • Attending for the first time while working for a company that I was not only happy to talk about and recruit for – but also sponsored the event – was really cool.  I helped out with arranging the Gilt-branded lanyards this year and was happy to hear that they were well-received, since choosing one lanyard style from about 30 with no prior expertise is an odd task.  Apparently organic cotton is the softest choice!

    A drawing of a kraken head in crayon and a conference badge with a black Gilt Groupe logo lanyard.

    My kraken-inspired contribution to the Crow & the Wolf Project, and my badge with its Gilt Groupe lanyard.

  • The job board was PACKED with companies that are hiring.  Very exciting to see.

    A dry erase board heavily packed with job postings.

    The job posting board in all its glory at the end of the conference.

Things That Were Less Awesome at Open Source Bridge 2011

  • I didn’t feel like the technical talks I attended really paid off this year.  I went in expecting a more nuanced discussion on an element of a technology I was already pretty familiar with, and instead got a handful of beginner-level talks.  Afterwards I read through the synopses, and although they weren’t totally misleading, my expectations hadn’t been unreasonable.  I think entry-level talks are useful, but the stuff that struck my interest this year often seemed to be pretty superficial, which meant that I left feeling like I hadn’t been exposed to anything new.  By the end of the second day, I started choosing the less technical and more human-centered talks because I knew they’d have a greater payoff than someone recapping things I mostly already knew.  (I’m not sure of a good way to fix this, either: if the synopsis looks compelling but the talk doesn’t deliver, I see that as more of an issue with the speaker than the organizers.)
  • I felt like I had fewer opportunities to make connections and network with people – something I was actually eager to do since Gilt is actively hiring for its Portland office.  I think this was due to a mix of random events, from the talks I attended leaving less room for discussion than in the past, to the events of the week making me less comfortable with meeting new people.  Since I had a far more rewarding social experience at BarCamp (located at the same venue), I’m inclined to say that it was mostly circumstance and not anything obvious that led to this lack of connection, but I still feel sorry for missing it.
  • The entire Strip Club Crawl debacle (these are just a subset of the tweets):

    A screencap of assorted #osb11 tweets related to the proposed "Strip Club Crawl".

    ... and now we have our own candidate Incident to add to the Geek Feminism archives.

    While I know this is a conference that successfully had an unconference session titled “NSFW” that included ChatRoulette (and its accompanying masturbators) last year, being able to carry those things off successfully is very difficult (and while NSFW was very funny, so was the side-splitting “Troll University”, which didn’t step into any of that territory).  Even as a Portlander who has attended strip clubs and has friends in the industry, and enjoys making inappropriate jokes in the correct environment, I don’t think that there is ever going to be an occasion where attending a strip club in conjunction with the conference is going to be appropriate.  And hearing about a lot of sex-positive people being told that they needed to be more open-minded was pretty laughable.  While I hate to think that something like “NSFW” was a one-time thing, I suspect in the future I’ll recommend that people avoid sex altogether if they’re trying to cultivate a whimsical and lighthearted culture; there are just too many other things to choose which circumvent these messes, and too many individuals who think they “get” how to do salacious topics in a nuanced way but fail (hint: 140 characters will never be enough space for nuance.)

Finally, The Tough Stuff

My Open Source Bridge week was full of conflict.  Just one of these conflicts would have been enough for me, but the grand total came to something more like four instances of conflict in two days, with more minor prickliness sprinkled in elsewhere.  To be clear: I dislike conflict, I dislike confronting people, and I don’t find “debates” to be interesting or fun.  I really enjoy discussions, in which a group of individuals are sharing their knowledge or experience to expand each-others’ awareness about a given issue, but I think debates or intellectual arguments are unpleasant and often immensely personally disrespectful (treating someone’s reality like it’s an abstract concept to be played with is incredibly dismissive).

I want to admit that some of the unpleasantness and conflict that happened this week was due to others calling me out on insulting or privileged things I’d said – both while attending the conference and in one instance a few months ago.  In both cases I felt really crappy about having done such a thing, and pretty frustrated with myself – but I also acknowledged where I’d messed up, and apologized.  I have the tendency to either get a bit obnoxious or a bit oversharish when I feel my most comfortable, and I’d rather have people call me out on my mistakes than be paranoid about saying the wrong thing and shutting myself off entirely.  But I make that exchange with the intention of always taking the person who calls me out on my mistakes seriously.  They usually have a point.  And I try to learn from those experiences.

But the meat of this is that I had two conversations – in the same 12-hour period of time – that I found pretty brutal and disappointing.  Both were with people I have known only within the last year but nonetheless expected better of, and the experience has left me a bit shaken and confused about where I go from this point.  I had to take an entire day off from the conference because I felt so floored by the whole experience, and am only moving on from that space now due to the amazing support of the women and allies also attending the conference.

I’m combining these two conversations for the sake of anonymity and because it’s easier to discuss them that way.  One resulted in me terminating the relationship entirely, but with the other one I don’t have that option (and I’m not sure if I’d want to follow through even if I did).  One was with a conference attendee, one was not.  One conversation took place via Twitter, one took place in person.  In both cases I get the impression that my male counterpart thought he was having a harmless, albeit spirited debate, while on my end the discussions were enormously distracting, on both a physical and emotional level.  They could return to their code afterwards and I still haven’t.  And I’m pissed about that.

If I were to boil down the bulk of my interlocutors’ comments, the real pain point would be this idea: “I like you just fine, and I think it’s great that you’re a woman in tech, but can you please stop talking so much about being a woman in tech?

I don’t know how to be in tech and not be female – I live in a world where the majority perspective in the tech sphere is not my own, and I’ve never been able to adopt it with any degree of confidence.  I’ve never not been aware of my presence as one of the few odd people out in any given space (except for the rare case, like Code N Splode, where that latent anxiety is able to drop a bit).  Asking someone to cut off something that is intrinsic to their identity and existence is impossible.  It is an immensely cruel thing to say.  And the worst part is that the person making the complaint is merely annoyed or inconvenienced; the person receiving the complaint is left feeling worthless.  It’s not okay.

When I’m told “Why does so much of this have to be about being a woman in tech?  Why can’t we just focus on the code?”, the last thing I am capable of doing after that is writing code.  Because I’ve just been asked to stop being myself, to somehow separate from something that is intrinsic to all that I know.  And while I’m aware that there are little bad behaviors that we all exhibit and could stand to correct, my being female is not one of them – not even close.  (Maybe if the other person agrees to unpack an equal amount of their gendered socialization in equal measure – but I don’t see that happening.)  I am just as incapable of doing away with the number of negative experiences I’ve had while I’ve been in tech (whether or not I’m a woman); I didn’t ask the people who participated in those negative experiences to treat me so poorly.  Nobody wants to be infantilized, dismissed, bullied, or abused.  So if someone tells me to stop talking about being a woman in tech, and I know nothing else, it feels an awful lot like being told to leave altogether.

And this is why women leave tech at greater rates than men at all stages of the pipeline.

Before I was more open about my experience as a woman in tech I lived in constant fear of people telling me that I was obsessed with it or making a big deal of it or otherwise trying to dismiss or diminish my points.  I had battles in my head about a way to somehow justify my experience while still meeting the impossible, unspoken needs of my peers to not challenge them on this level.  This fear kept me from connecting with people, and it left me feeling pretty crappy about myself.  Even though it was “all in my head” at the outset, this was exactly the response I started getting when I did start feeling more open about my experience, and it turns out that no amount of comeback prep ahead of time will appease a person who would prefer to discredit your experience altogether.

If your response to the issue of sexism in tech is “I haven’t seen any” or, “You’re blowing it out of proportion / being overly negative / being overly angry,” or, “You’re seeing sexism where it may not actually exist,” or, “Why can’t you just get over it already so we can get back to coding,” you don’t actually care about having women in tech.  You may think you do, but you don’t. If you can come up with a counter-argument that can’t be labeled as a Derailing for Dummies category or a silencing tactic, I’d love to hear it.  But I don’t think it’s possible.

When I started working in industry and dealt with managers who insisted they knew what was best for me as a developer, even when I was adamantly insisting otherwise, I was willing to write it off as not sexist.  But it still left me with a healthy suspicion of management, that they wouldn’t take me seriously no matter how intelligent I am or how much information I try to offer up about myself.

When I joined a team that had the best gender representation I’ve seen in a company but had all of the women doing the less “glamorous” work and occupying none of the managerial positions, I was willing to believe it was a fluke and had nothing to do with sexism.  It still left me deeply unsettled.

When I got past the neglectful and dismissive managers and moved on to the bullying and abusive managers, I was willing to admit that they were each just individual assholes, even when I’d dealt with a couple in a row.  When one of them called me a “bitch” in a public forum and likened managing me to babysitting, I was willing to say that those comments weren’t coming from a place of sexism but rather one of deep personal instability.

All of these things are experiences I’d be willing to write off as “not the result of sexism”, but listen: they’ve still made a huge portion of my time in industry an enormously negative experience, they’ve still made work and community events a place where I never feel completely safe, and they still mean that my guard is vigilantly and exhaustingly up almost all of the time.  They’re still things we should care about fixing overall as an industry, because negative interpersonal experiences like that suck for everybody, suck for business, suck for innovation, and keep anybody exposed to such experiences from being capable of being their best.  And these things all have nothing to do with writing code, but they certainly have distracted me from it, which means that although I’ve made a lot of progress in the last five years, I’m also nowhere near where I’d be if I’d had the luxury of just being able to focus on the code.

Nobody asks to be treated disrespectfully.

This last January my boss of two and a half years displayed a total change of character during what should have been a routine email conversation.  He employed verbally abusive language in a way that was incredibly similar to a manager I’d had at the same company a year and a half prior.  The emails were unsettling on their own, but having to relive the trauma of the first abusive manager made the experience outright terrifying.  When I returned to work the next week my boss revealed that the email exchange had been part of an effort to get an emotional response (of such a severity that I’d have to stay home from work) out of me.  He believed that he needed to show me that I couldn’t allow emotional outbursts to interfere with my work (as part of a role change I hadn’t discussed with him or consented to), and since I didn’t have a history of being overly emotional on the job, he had to create such a response artificially, by recreating a past trauma.

I’m willing to write off the past bad experiences I’ve had in industry as merely unpleasant.  But being lied to, and manipulated, by an employer so he could prove to himself that I was just as emotional and in need of guidance as he thought I was, despite having no prior evidence to support this theory – is sexist.  He may not have said “I need to test you emotionally because you are a woman,” but I can promise that none of the men promoted to the role he was hoping to see me in had to participate, non-consensually, in such a sadistic exercise ahead of time.

When I let my co-workers know that I no longer felt safe being in the same room as my boss, they tried to say I was being unfair because he had been only verbally abusive, not physically abusive, and “unsafe” implied physical abuse and I was therefore crossing a line and hurting my boss’ feelings.  My boss cared very deeply about not being perceived as physically threatening, and here I was, someone he’d never hit, saying that I didn’t feel safe around him.  These are the sentiments of people who do not understand what it feels like to be unsafe, who can’t comprehend the chasm between “looking bad” and being abused or violated.

As of this January I was done with being silent about my experiences, done with writing things off to mere coincidence or a string of bad luck.  I have had too many adult men with some degree of power over me, be it at work or in a business context outside of my job (for instance, a former landlord) treat me like a child after I’d interacted with them as an intelligent adult for months, if not years.  On more than one occasion, I’ve had to contact a lawyer before getting these individuals to take me seriously.  I’m done pretending that this all has been no big deal.  It has been intensely traumatic, and it’s human for me to be left with a very different approach to my career than the typical programmer as a result of it.  I have legitimate reasons to trust slowly and feel unsafe by default.  This is not a case of me needing to “get over it” or have a more optimistic outlook, this is a matter of me protecting myself.  I’ve always been passionate about issues of gender and technology, but a lot of my mouthiness about the issue in the last 6 months has had a lot more to do with self-perserverance.  I want to thrive as a developer, and I’m hyper-vigilant about making sure that anything that gets in my way is taken care of as soon as possible.

My new job has been great.  I intend to write an entry on the specifics of why it’s been such a good fit for me, but it’s safe to say: I haven’t experienced the managerial issues that I have at all of my former companies, and I hope I never do.  Even so, I’ve dealt with so much negativity up until this point that even if all of the people I deal with are awesome, I’m still highly cautious.

I discovered one of my post-traumatic triggers as a result of January’s incident a month ago, when my team undertook a managerial shift.  I had to choose a new manager, and I hadn’t actually met one of the individuals that was available to me.  Just that bit of uncertainty left me feeling like a total wreck for nearly a week.  I felt like a shell of myself.  Of course, once I met the manager in question, we got along great and had no issues to speak of, and that continues to be the case.  I expressed my issues with trust and authority and received nothing but support in return.  But I feel frustrated that my past experiences have turned every work experience, whether it’s deserved or not, into a potential minefield of threats.  Of course, that’s the impact traumatic experiences can have.  I don’t expect people to bend over backwards for me as a result of these experiences, but I do expect some effort at understanding, and just a little compassion.

Ultimately, that’s all this really is about.  I don’t really understand why so much of tech culture is so invested in being politically incorrect at the expense of compassion, kindness, and openness.  Compassion and friendliness can only help our community, and if you love the community aspect of OSB, creating a more welcoming, inclusive and compassionate environment should be the top thing on your list of priorities.  Sure, many of us are introverts, or we’re wrapped up in the minutae of our day-to-day, so being mindful of the feelings of those around us and showing some compassion is often really difficult.  I certainly fail at it quite a bit – I tend to get quite obnoxious when I’m feeling my most comfortable, and I can say things gracelessly, or in a way I don’t really mean.  But when called on these things I can show my true colors by swallowing that gut defensive response that we all have and looking at the situation with a kind heart.  (Indulging the defensive response reinforces that you really meant it – go ahead, keep digging.)  Showing compassion can be uncomfortable at times; hearing about another person’s pain is often exhausting, and we only have so much capacity for dealing with the ugliness of the world before we need to shut it out for awhile.  That’s normal.  But your brief discomfort is nothing in comparison to the pain you cause a person by dismissing their experience or asking them to be “themselves, but without that [insert minority group experience here] part.”  That hurts, distracts, and derails more than I can express, and quite frankly, I want to get back to writing code.

Here’s some additional documentation related the issues I’ve raised here – there’s an extensive library on these topics on the Interwebz, putting words and strength behind sentiments that I, and others, have had for quite awhile but haven’t been able to articulate so clearly.

Please also check out Geek Feminism and the Geek Feminism Wiki for a further drill-down on any topics that are specifically related to women in technology.

Posted in Code Culture, Conferences and Events, The Opiner | Tagged , , , | 7 Comments

Shaking the Dust

Back when I was a sophomore or junior in college I went to an arcade with some friends from high school during a weekend at home.  We were at one of the arcades where gamers win tickets that can be traded in for an assortment of crappy prizes, and my friends and I decided to put our entire winnings towards as many cheap bouncy rubber balls as our tickets could afford.  We came away with a paper bag full of fifty-some rubber balls and no immediate idea of what to do with them.

After driving around a bit, one of us remembered that a nearby strip mall included a suite of racquetball courts that could be rented out by the half hour, i.e. an empty closed space where we could wreak havoc.  So the four of us put in a couple dollars for one of the courts and then went wild.  We each grabbed handfuls of the balls, counted to three, and then hurled them at the walls and let physics work its magic.  It was one of those delightful youthful experiences that I’m still lucky enough to have once in awhile, and one of my favorite photos from my early college years is of my friend Jon on this night, hurling the collection of rubber balls from his cupped hands into the air.  The photo was taken right at the moment of initial trajectory; seconds later we were laughing hysterically and ducking out of the way of the sparkling plastic missiles.

Career-wise I feel like my life has been a bit like that whole scene in the racquetball court since the start of 2011.  In very early January, I figuratively threw all the rubber balls in the air, and in the months that have followed, I’ve been coping with all of those resulting trajectories, sometimes with excitement and glee, other times with foreboding and fear.  In the heat of the moment, I knew that the laws of physics would have their say and things would eventually settle back to a nice stillness (as much as life affords stillness).  So I tried to walk the line between taking advantage of the growth opportunities that these intense experiences can provide and keeping my sanity.  It ultimately meant a lot of self-care and continually being reminded that the process of figuring out my next step career-wise took greater priority over most of the things I would have liked to do with my Winter 2011.  Saying “no” was vital; I just didn’t have the capacity to fit everything in, and in the interim I needed so much more downtime than I’m used to.

I’ve been off of work since early March and the time off has been incredibly restorative and necessary.  I start with my next company next week and can honestly say I haven’t been more excited to start a job since I was fresh out of college and headed to the big G (and in this case, I’m a lot less wet behind the ears, which means my excitement is a whole lot more eager than nauseated this time around!).  As I pick everything that I had to put down back up, I’m especially happy to be returning to my technical blog.  I’ve been compiling an ever-growing list of entries to write over the past three months, but until recently, this outlet hasn’t been the appropriate place to focus my attention.  Now that the immediate crisis of the moment (“figure out your next step!”) has been addressed, I’m looking forward to picking through the queue on a more frequent basis, along with whatever new bits reveal themselves in the months to come.

A sampling of the queue:

  • Breaking Up with Perl: Lessons learned from 2.5 years with the language
  • Discoveries and anecdotes learning Ruby, revisiting Python and Java
  • Observations from my latest iteration of the technical job search; ever-evolving!
  • Adventures in Triangulation (i.e. what happens to the brain when you try to work with Ruby, Python, and Perl at the same time, or other similarly-grouped languages)
  • My (female) Friends Want to Learn to Code… wait, really?!?
  • Agile Open Northwest 2011 (how I ended up attending at the last minute, and the neural connective magic that has happened ever since)
  • Verbal Abuse in the (Technical) Workplace (this one will take some major settling time before I can really address it)
  • (related:) Workplace Disability Laws: Experiential Overview
  • Great Open Source Bridge Proposals That Could Have Been (due to time / personal limits / etc.)

And a couple that have been outstanding for a bit:

  • Sleep Disorders, Dysfunctional Sleep, and Coder Culture
  • The Fantastic Geeky Women in Warren Ellis’ FreakAngels

Add to that the mess of technical books I’m trying to juggle right now, and the continuing effort to get this blog actually looking like something a bit less out-of-the-box since my host switch last fall, and I’ve got plenty to keep me occupied technically in the coming months.  Looking forward to sharing it and heading into the next chapter of my tech career.  It’s been good so far and the opportunities ahead are abundant and rich with potential.

Posted in Uncategorized | Leave a comment

Devchix: Best Workplace Atmosphere and Culture

Devchix just posted a blog entry giving the group’s ideas about “the best workplace atmosphere and culture”. One of the group’s members was dealing with a “blah” workplace culture and had been given the opportunity by management to provide some feedback to make improvements.

The discussion that followed was really interesting and ended up being summarized in the aforementioned blog post – which you can find here. Much like with Code Anthem, I like to geek out on questions like these, so I was part of the discussion that led to the summary blog post and am really pleased with how well Garann tied it all together (I’m not nearly as effective at being concise).

Posted in Code Culture | Leave a comment

Quick but Important: Why Women Don’t Speak Out

You need to read this, and here’s why:

A lot of things have happened in the last month that have had common ties and with them a certain profundity.  (I also have the tendency to see epiphanies and connections between things I wouldn’t otherwise notice after going through a period of intense stress or personal change, as I have in the last week – so that may be contributing to why I see the need to post about this.)

I’ve been following Sady Doyle’s #MooreAndMe campaign from about three or four days in.  You can catch up on it pretty quickly just by Googling that hashtag.  Sady, of Tiger Beatdown fame, is very unconventional in how she writes: she’s long-winded and sassy; you can tell that she doesn’t fret too much over either of these.  I admire her on this because I used to be a lot more like that.  I’m still pretty long-winded, but I reserve most of my attitude for the public sphere, and I do think this is a shame; I cheer for Sady because it’s good to see that there is an audience for people with her long-windedness (for the sake of driving her point home harder; and she does) and fighting spirit.

You can take issue with the way Sady presented her point, no doubt.  As a person who keeps her filter at a very low setting (and I suspect most of her readers are glad she does), she’s destined to have made some mistakes along the way.  You may disagree with her tone or her choice of supporting arguments or which aspects of the argument are her “non-negotiables”, but this does need to be done in proportion to the general soundness of the point she is making: do not use language which feeds rape culture, especially if you are a public figure.  Because this language does have consequences.

(If the term “rape culture” is unfamiliar to you, I recommend Fugitivus; I’d try to link to one article, but Harriet J. is brilliant at capturing this on all fronts and I can’t choose just one.  She’s similarly long-winded but to equally potent effect.  Dig into the “most popular entries” on the right side of the page and continue further at your own benefit!)

A couple days ago Sady posted “Why I Didn’t Delete Tiger Beatdown“, a very personal response to the vitriol (including death threats and other threats of sexual and physical violence) that had been directed towards her during and in the aftermath of #MooreAndMe.  Geek Feminism re-posted parts of it as “Quick Hit: Getting Too Close to Power“, focusing on one of Sady’s key points.  But really, after the reading the whole thing, I see it as nothing less than a Grand Theory on Being a Woman with Opinions.  And I keep going back to it time and time again since reading it; my passion about sharing this entry is unequaled recently; the closest competitor was the vitriol I felt for the source material for “The Social Network” (post coming about that soon).  I’ve shared it on Facebook and Tumblr and Twitter; after remembering “Oh yeah, my blog is back up!” today, I figured it was only appropriate to share it here as well.

Because here’s the thing: Sady captures exactly why I took so long to start this blog (and why I don’t post to it with more regular frequency) in the first place, with language stronger than I felt like I could use.  Because, by virtue of setting this up, talking about ONLY tech, and identifying as a woman (i.e. allowing the content to be tied to my identity), I set myself up for harassment and abuse – all it takes is one link to the wrong person or group of people.  I increase the risk by knowing that I can’t really keep my mouth shut about cultural issues within the tech sphere, because, in all honesty, they seem to be the part of the tech picture we aren’t making a lot of progress on lately.  It’s one of our most difficult problems, no matter how anybody wants to talk it down.  But tackling this problem increases the risk for me too.

If you don’t believe it, read Sady’s post.  If you do believe it, read Sady’s post.  If what happened to AZ congresswoman Gabrielle Giffords today upsets you, read Sady’s post (because Sady has been dealing with the same thing from the left: unstable people using the risky rhetoric of public figures to justify their behavior.  And eventually it does lead to this, as countless people will be saying.)  If you have any experience with what I’ve dealt with in the workplace, and you have empathy for it, read Sady’s post.  There’s pretty much nobody who won’t gain from reading it.

A lot of my reason for upping my filter as I’ve become a working adult has been because of the threat Sady discusses.  It’s also because I want to maintain an Internet identity that doesn’t paint me as unprofessional, but I think I’d be a lot more candid if I felt safe doing it.  The truth is that I have experienced far more sexism since starting coding full-time in 2006 than I ever did during my 7 years coding in high school and college, and I have no doubt this is related to the power issues that were far less overt when I was a student.  I want to be able to speak out about these experiences because I know most men in industry want to change things and don’t know how, but I won’t be able to do so unless I feel like I have a safe space.  So I encourage everybody to educate themselves on the contributions they can make.  I’m doing the best I can, in the hopes that I can empower people after me, but every new person committed to the cause makes this easier.

Be mindful of the language you choose and make sure to keep it non-violent.  This isn’t easy; it’s something I’m always working on.  But the consequences of using violent language are too dire to not try.

Posted in The Opiner | Leave a comment

Back from the Grave

This blog has been offline for a couple months now on account of a host transfer.  Restoring WP from a backup is remarkably easy, but it nonetheless requires some directed attention, and I have been keeping myself plenty busy elsewhere.

There is a lot I have wanted to write about, but I encountered a major disruption last summer: I bought a house.  Six months later, I am still dealing with the transition – moving is something I am admittedly terrible at, so there are still boxes lying around the house that need to be unpacked.  That’s also been a major deterrent to learning new technologies, as my home doesn’t yet feel like the oasis to foster appropriate learning just yet.  But we’re getting close!

I actually have a lot I’d like to write about and explore in the coming months:

  • After attending ComicCon this summer I am interested in including more geek culture discussions in this blog.  ComicCon was amazing fun and introduced me to so many top-notch comic books – I fell back in love with the medium after the convention wrapped up.  There’s a lot of interesting stuff to chew over here: ComicCon itself was rife with major gender issues, despite strong attendance by women, and yet I’ve discovered some of the most progressive and groundbreaking storytelling and characters in the comics I learned about through ComicCon panels.  So there is a lot of fun stuff to unpack here; in the meantime, there’s Tiny Heroes, my good friend Mindy’s blog of a similar nature.
  • I am officially a Burner after attending Burning Man for the first time in late summer 2010.  Since I had just moved, my electronics work was limited to some simple EL wire soldering, but I have had a soldering iron and other hobby electronics components for a couple years now without having used them.  Getting over my fear of initially breaking into this stuff was really satisfying.  I do not think I have a passion for hobby electronics on its own, but I love to think about the things that I am capable of making for next year and for other aspects of my life now that I am digging into this new skillset.  So, more Maker-culture style stuff to come!
  • I finally upgraded our workplace install of Redmine recently and have been having fun digging into its backend (a necessity since the upgrade was not without its share of issues) as well as exploring the capabilities of the platform overall.  We have been using a very basic configuration for two years now and I’ve been brainstorming ways to utilize the system’s many configuration settings and plugin options to make Redmine work better for us.
  • I finally finished a yearlong project at work involving internationalization, QA, and version control, among other beasts. I am thrilled to be able to move on to new projects!  The work leaves us with more reliable systems, a better product for our customers and an easier way to identify and fix bugs on international sites and keep all servers up-to-date. Yeah!
  • I committed to developing the android app for my wonderful friends at Baby Ketten Karaoke after being jazzed by the Android talk at Open Source Bridge (way back in June).  I installed the SDK in Eclipse, nodded knowingly as the VM took several minutes to boot, cooed with delight at the Android emulator on my desktop, and shook my head knowingly when the inevitable memory allocation issues arose.  It does not take long to re-acquaint oneself with the achy joints of Eclipse development (quite a steep learning curve to utilize the software well) and I was reminded of the joys of scripting languages.  Then – you guessed it! – I bought my house and haven’t returned to the project yet.  This is also to my own detriment, as I would most likely be one of the app’s most faithful users.
  • That said, my darling G1 is on its last legs.  In the name of financial restraint, I am not replacing it until I have encountered a “crash count” of 500 (any Android “This application is not responding” or “This application has stopped responding” errors).  I actually am on my second iteration of this count as I tried to do the first tally on the phone itself and that went wrong pretty quickly.  So now there is a post-it on the back of the phone where I keep a tally; I’m probably still missing about 20% of the errors because I don’t have a pen nearby when I’m trying to SMS my mom and Maps crashes (this happens – a lot).  Yes, I could do a factory reset on the phone, but that would delay my being able to replace it via this game in the name of financial austerity, no?
  • I am overdue to write an entry about the coder’s sleeping schedule and its relationship to coder culture, especially after being diagnosed with Idiopathic Hypersomnia this last summer.  (The good news about the diagnosis & corresponding treatment: suddenly I feel awake during the day on a consistent basis! So much more room to accomplish things.)
  • I re-installed the operating system on my personal laptop, now entering its fourth year of life, in order to drag one more year out of it before replacing it.  I refuse to buy a new laptop until 1TB hard drives become standard issue (i.e. not just for the heavyweight machines – I like my laptops midsized.)  Re-installing an operating system is not particularly geeky, but this install managed to be rife with disaster, lasting upwards of 2 days (main bottleneck: backing up my data as the OS was gasping for life).  I owe a lot of gratitude to the Ubuntu boot disk (even though my personal computer is a Windows install – don’t hate!  I do all my boring, non-technical stuff on this machine.)  I’m really pleased to see how much the reinstall improved system performance, but I’ve been reminded by Code N Sploders that the constant noise made by this machine is not normal, and the speakers are totally failing (they let out a dreadful howl when bringing the computer out of sleep mode).

I’m also very excited about moving to my new host, as my host is not a company but my good friend Andrew.  My last host was terrible for many reasons, but was a good fit for the initial needs I had for my domain (in particular: getting email and a very basic website set up).  I’m really excited about having Andrew as a host because it means I won’t be restricted to a subset of technologies for hosting the infinite queue of webapps and personal tools that I want to develop (all created to serve selfish means; my motivation for personal projects is still solely rooted in whimsy and personal utility.)

In conclusion: the version of WordPress I was using on my old host was getting very old, so I’m really enjoying the improvements I’m seeing on the newest version.  Looks like it will make investing my time in this blog a much more enjoyable task.  First task: install plugins to scare away comment spammers.

Cheers and welcome to 2011!

Posted in Projects | 1 Comment

A Short Meditation on Paralysis

Note – I wrote this entry about a week ago, but since my current (terrible) webhost enjoys seizing up every time I’m editing a WordPress post, I think I got distracted by sites with actual working webservers and forgot to publish. Here it is now; new webhost in a couple months.

Since writing about Code Anthem in my last post, I’ve been catching up on a lot of posts that I’ve missed (almost all of them outstandingly good), and I’ve found myself sticking on this issue of a “good programmer” and what being able to write good code means. When I read, I agree on the “bad” programmer, management, etc. counts – but I don’t think that understanding those problems automatically makes one a quality coder, and I still wonder about where I legitimately lie on the spectrum.

See, the funny thing is that in the year that I’ve been doing team lead level work, I’ve actually been writing significantly less code than when I occupied a more junior position. I’m entrenched in a lot of “legacy” – not just code, but systems, processes, etc, and it’s actually been a great fit for developing my skills and confidence, especially with the full support of our boss to rip out all legacy and start making improvements. Unfortunately, the system-level improvements need to be ironed out before the code can be, and so goes my focus. I’ve also being doing a good amount of front-end development on top of all this legacy cleanup, but still very little backend work.

Anyhow, this week my frontend work required that I write a simple CGI script from scratch. A really easy coding task, but when I was only about 10 lines in, my good friend Paralysis spoke up: “This can’t be the best way to do this.” Which, for a short moment, stopped me completely in my tracks.

Here’s how this ties back to my internal discussions while reading Code Anthem: descriptively, I should be a good coder; I’m interested in implementing best practices and I generally loathe the “Let’s just get it working” tactic. I have had experience with the coders that Amber mentions – the ones that crank something out quickly sans documentation and leave the pain of maintenance and making sense of everything to the poor suckers that come after them. I’ve been in environments where the “get it working, fast” attitude is rewarded and it’s driven me crazy. But I feel like what I have to offer as a contrast – a strong and inflexible orientation towards quality – can be equally problematic in the most extreme of circumstances.

Without a doubt, the phenomenon of Paralysis has a lot to do with confidence (or lack thereof: fear of criticism). My own gauge of quality works in antagonistic concert with my fear of coming under the scrutiny of others’ standards. Confidence isn’t the only contributor though – a lot of this has to do with simply being realistic and self-aware – knowing that one’s knowledge probably isn’t deep or wide enough to come up with the best solution for any particular programming problem in a finite period of time. Another contributor to Paralysis is empathy: being so acquainted with the pain of maintaining bad code, I cringe at the thought of contributing something that might add to the long-problem in any way, even if it adequately resolves a short-term problem.

Paralysis ruled my first two years in industry. I could tell that my superiors (at least in my first job) didn’t think I was a bad programmer, but they also didn’t understand why I couldn’t get anything done. To my credit, I had a pathetically small amount of mentoring and training for a job I wasn’t qualified for on paper at the time (note: hiring college grads in CS because they are smart – even if they immediately lack the practical parts of the skillset – is admirable, but only if you plan on taking the time to train and mentor those grads once they’ve been hired on – otherwise they’ll flounder for a lot longer than is necessary). But the other major contributor to my lack of productivity was my pathetic dearth of confidence combined with a knowledge that what I was doing wasn’t going to be “the best”.

In the last two years I’ve been able to crawl out of the Paralysis hole a bit. The key is jumping in and writing something and getting it to work – and then refactoring and fixing it up immediately, if you aren’t already doing it as you go. Then clean up and amend the documentation (which I always write excessive amounts of as part of my code, but not in the most organized ways.) This is completely different from the coders who get their first solution working and then move on to the next problem, with a horde of maintenance issues just waiting in the wings. But taking that plunge into “just start writing!” can still be so difficult! In the day I spent on this script, I felt like I spent a couple hours standing on the ledge, looking down at the problem, convinced that whatever I was going to write was going to suck. Then I took the plunge, and big surprise, the fixes came to me as I was writing. As a result, the code I had at the end of the day wasn’t perfect, but it was a lot better and more tightly written than what I had imagined it would be at the start of the day.

I have a coworker who deals with his own version of this, and being an third party to his own paralysis struggle has been really insightful. It’s often really obvious to me when he’s sweating the small stuff, and I can apply this back to the times where I’ve been doing it myself. Learning to distinguish between the problems that do deserve my perfectionist’s hand and those where I’d be better off just applying a band-aid has been really beneficial, even if applying the band-aid is never optimal. At some point, a less-than-ideal solution is preferrable to spending infinite time scheming over the perfect solution and, as a result, never producing anything.

That balance is still really hard to find, though. I think learning to manage the Paralysis beast is going to be one of the struggles of my working life, but it’s also an area where I’ve made definite progress. In my current workplace it bites me for two reasons: 1) I work for a Perl shop and think in a far more verbose way than Perl is usually intended; as a result, I know almost everything I write can probably be expressed more tersely and (arguably) elegantly than initially comes to mind; and 2) Our process hasn’t evolved enough to support code reviews (which I love), so it’s harder to drop “I know this can be expressed more tersely” when I know that my code may not be viewed by anybody else for awhile. The pressure I put on myself to get it right on the first try is a lot higher.

To a degree, though, working with a lot of legacy code has been really good for coping with Paralysis. Whatever I replace with my own stuff, however imperfect, is still a vast improvement on what was there before, and this has allowed me to spend less time worrying and more time producing. But I still find myself a bit stuck whenever I’m writing something completely new (like I did this week), or I’m making fixes on a large enough level that I have to sit back and make some serious design decisions before moving forward.

In general, I think the humility, self-awareness, and perfectionism that guide Paralysis are qualities that manifest themselves in some degree (perhaps using less loaded descriptive terms) in the mythical “good programmer”. But the mythical “good programmer” is able to utilize the best of these qualities while keeping the negative aspects in check, and is able to move forward on a problem after the proper amount of consideration and at the proper time. That’s something I’m still working on, but it’s heartening to see that I’m doing a lot better than I was at this point a few years ago.

Posted in Anecdotes | Tagged , , , | Leave a comment

favorite tech blogs: Code Anthem

I’ll be honest – I don’t read a lot of tech blogs. I’m not big on the newest gadget, I still don’t know how i feel about the DailyWTF, and I have very little interest in the day-to-day activities of big-name tech companies. Too many tech blogs exude a lot of the elitism and machismo that make me feel more like an alien in tech culture than a participant. There are some exceptions to this that I’d like to read more, like the excellent Silcon Florist, which follows the Portland tech industry. But as I’m just starting to engage myself with building and strengthening the Portland tech community on a business level, I revisit it less than I should.

There are a couple tech blogs that really draw me in, though, and I love them because reading them makes me feel strongly in alignment with my identity as a technologist. These blogs can be especially helpful to read on days where I need to write some code and can’t get my head in the right space, or the (blessedly infrequent, lately) times where I can’t remember why I ever liked programming in the first place.

I covered the first amazing tech blog, Geek Feminism, in this post, and I think I’ve linked back to it in almost every entry I’ve written since then.

The newest blog to earn my endless praise is Code Anthem.

I actually found Code Anthem through Geek Feminism. GF wrote a small entry on why requiring open source contributions from a job candidate can be sexist, with a post from Code Anthem as the starter material for the discussion: “Don’t Judge a Developer By Open Source”. This topic really interests me – because I’m interested in the open source ethos, increasingly use open source technologies, and have an interest in open source development – but the environment still seems incredibly hostile to me, with a high barrier to entry. As a result, I am still in the “incubation” stage of doing open source work, and it sucks to know that I could be falsely written off as a crappy coder because of my lack of involvement thus far.

The Open Source post led me to Code Anthem’s How to Hire Crappy Programmers, and since reading that post I’ve been hooked.

See, here’s why Code Anthem is awesome: since I started working in industry, I’ve felt like there’s an odd mismatch between the way most companies hire developers and the way developers actually evaluate their own skillsets and otherwise behave. When I was in college, trying to port the skills I was learning while acquiring my Bachelor’s in Computer Science to the job postings that appeared on our department mailing list was basically impossible. What was especially shocking to me about most of these companies submitting the postings was that the way they were trying to market themselves to applicants made me, as a programmer, not want to work with them. Even though I’ve struggled with confidence throughout my lifetime as a programmer, I also know enough about my own smarts to see these job postings and say “if this is the blunt hammer they’re going to apply to resume screening, they’re probably going to filter out a lot of decent applicants (like myself).” Unfortunately, this seems to be what 98% of job postings, at least in Oregon, look like. I’ve ended up coping with this weird reality in two ways: one, I’ve gotten comfortable applying for jobs where I’m not qualified “on paper”, because I’ve come to accept that hardly anybody else applying for these positions can be, either. Two, I’ve written this all off as a symptom of an immature industry that has adopted a stupid standard practice because it hasn’t been around long enough to have an actual tested and established best practice in place.

What a treat to see the How to Hire Crappy Programmers post addressing just this issue. And to see the wide-ranging consensus in the comments! I especially loved the folks who reported on the job postings that require x number of years in a technology that has existed for less than x years. This stuff really happens, and I’ve honestly been surprised to not see anybody ranting about it until the comments section of that entry.

With that personal introduction out of the way, Code Anthem is all about this issue of programming talent and how we evaluate it. How do we hire for it? What is a programmer worth? How can companies effectively market themselves to good programmers, and in turn, how can they (fairly) determine that applicants are indeed qualified? These are really difficult questions precisely because we’re in such an immature industry, but also because this industry is rife with really unique challenges that really complicate the evaluation of an excellent coder (for instance, I’m in the camp that an excellent coder who’s also an asshole isn’t actually an excellent coder, because they can’t work with people – others would disagree).

To my knowledge, Joel on Software has been the go-to for this kind of input in the past, but I ran into a problem a few years ago when reading Joel while doing interview training at Google. His writing seemed thoroughly immersed in programming culture as it currently exists and not programming culture as it could / should be (to start out with, more diverse), and as a result a lot of what I read seemed incredibly male-centric and elitist. I consider myself a conscientious and hopefully constantly-improving programmer – I at least bring some unique strengths to my position – but I didn’t think Joel was talking about people like me when he spoke about good programmers (not just in terms of skillset, but also the social experiences that color one’s identity as a programmer). So I take a lot of his advice with a grain of salt – I think it’s really solid, but a lot of the time I wonder if it’s also perpetuating a lot of what’s wrong with the technological community, not in terms of code quality but in terms of social dynamics and diversity – and those latter two do have an ultimate impact on code and product quality.

I’ll admit some of my preference for Code Anthem is probably based on sharing the same gender identity as Amber, its author. I immediately don’t feel left out of the conversation if the person starting this discussion is a woman – because I know (and she has proven, with the open source post and others) that she’s considering a lot of the nuances which men / privileged groups in the field often overlook or don’t have to think about. This doesn’t seem to be to the detriment of the men reading the blog, either, so in my book everybody wins. Gender dynamics aside, I feel like Code Anthem is different “in a good way” because the blog focuses on the infrastructure / ecosystem of the tech industry as the source of poor-quality work more than the programmers themselves. Most of what I’ve read before this has focused disproportionately on the poor-quality programmers. Sure, bad coders are part of the puzzle here, but focusing solely on them won’t solve the overl

The hyper-focus on bad programmers is problematic in a couple of ways. First, a subset of good coders will read these entries and falsely evaluate themselves as a “bad coder” – simply due to their personalities or social conditioning (read: a lot of women). I know I struggle with Impostor Syndrome and until I became lead on my current team I wondered if I was a “bad coder” myself anytime I read a post lamenting their existence. Then there’s the second problem: the “bad coders” themselves don’t realize that they’re bad. They read along with these posts about bad coders and associate themselves with the “good coders’” group and therefore take none of the content to heart (see the Dunning-Kruger effect.) So in my mind, it’s time to stop focusing on the issue of bad coders and instead focus on the entire ecosystem. Code Anthem keeps doing this, entry after entry, and I can tell I love it because I then want to pass on / retweet each and every entry, to technologists and non-technologists alike.

Here are a few posts that I’ve read in the last few days and finally inspired me to post here. I swear, every entry in this blog is rock-solid and addresses one of these tricky ecosystem issues that really merit more attention.

Take a peek at:

Death By Recruiters – why recruiters are generally bad for industry

How to Get a (Programmer) Job In This Economy – I actually went through almost exactly this same thing two years ago, at the start of the recession

Just Technical Enough to Be Dangerous – how to handle the people who over-evaluate their skills and do risky things because of it (been there)

256x Better than a Resume – the reasons why the standard criteria provided by resumes aren’t beneficial for finding good programmers, and some exploration of, “Well, what’s the good criteria, then?” I agree on the “programmer test” route as part of the solution even though the idea of having to draft one up for my own company at some point petrifies me.

Go read! I love Code Anthem because I am passionate seeing these inefficiencies in industry go away. They make the entire practice of hiring and evaluating programmers a lot more painful and unwelcoming than it needs to be. It’s great to see a blog that’s also calling these things out for the crap they are, and discussing good alternatives. The more this discussion is disseminated, the better for any programmer who wants to see a difference.

Posted in Tech Blogs I Love | Tagged , , , | 3 Comments