I Am A Core Contributor

Impostor syndrome. It’s a bitch.

If you’re not familiar, impostor syndrome is used freely as the in-vogue way of describing the feeling that you’re an impostor. Somehow, someone made a mistake when they hired you, picked you to lead a project, promoted you, describe you as an “expert” or something else like that. If they really knew what was up, they’d never have chosen you because you don’t really know half of what they think you know.

Yesterday, r33589-core landed. It’s a minor changeset to core WordPress—updating contextual help for the tweaked comment notification bubble. It marks my 30th core commit, i.e. the 30th proposed patch that I made/contributed to that was accepted and running on 24%+ of the top ten million websites.

Little of what I’ve done is earth-shattering. Changing the copyright date. Allowing non-admins the ability to set the value attribute on the li html tag1 or to use the mark html tag. Or the epic 16-month battle to remove two instances of ?> that really didn’t matter if they were there either way. Finding random bugs in the default themes (the Twenty Somethings that are included in a new download of WordPress).

Some of it though, I’m pretty proud of, no matter how big or small my individual contribution was: The revised Dashboard in WordPress 3.8. Finding a number of bugs and helping with a tiny bit of code for adding emoji in WordPress 4.2 (though totally unrelated to the security fix). The revamped Press This also in 4.2 and improvements in 4.3 led to 12 of my commits.

This tiny little thing made me a core contributor.

Despite all that, I’ve never felt comfortable saying “I am a Core Contributor”, the faux-title assumed by folks who banged the keyboard into code that made it into WordPress Core. I mean, sure, I’ve been given props for a patch here and there, but not like anyone else couldn’t have done it, right?

Well, they didn’t. I did. Decisions get made by those who show up and code is written and contributed the same way.

How Did I Become a Core Contributor?

For me, I lurked forever it seems. I sat with IRC open on my second monitor, then following along on interesting conversations. The first time I spoke up, Nacin promptly slapped my wrist in a private message2. I took a lot of time to feel out the community, how it works, and the “politics”—not in any bad way, but every community has some written and unwritten meta stuff going on.

I majored in sociology. I hadn’t taken any classes, formal or otherwise, in PHP, JS, CSS, etc or read a book about them. I taught myself everything I knew about websites. There’s no way that someone like me would be able to help out with something the scope of WordPress. I could do custom development ghost-coding for designers, sure, but that doesn’t count, I told myself.

I was an impostor in the room trying to hang with real developers.

At the time when I started, perhaps, that was true. That was four years ago.

In the time since, I learned a lot. I pushed myself on personal projects that made me build, break, rebuild new things. I had some friends that totally trusted me to figure out things for them that I really had no clue how to do when they asked—yes, Grady, I wasn’t kidding when I said I had no idea how to do that site for you when I said I would figure it out. I pushed myself to search for tutorials less and study the code more.

After the WordPress 3.6 Post Formats UI implosion inspired the fantastic Feature Plugins structure for Core development, it was the opening I was trying to find. Open call for volunteers to work on a project. That felt much more attainable than picking a random Trac ticket. Working with Dave Martin and team on the 3.8 Dashboard was a wonderful experience. It pushed me forward too—I volunteered for a tiny, tiny part and was asked to do a medium part. You get the drift.

From there, the default themes provided great projects to help test and patch. New feature plugins kept popping up and an extra set of hands and eyes to test, code, and/or design were always welcome.

All that said, I sat on the sidelines for a long time thinking I couldn’t contribute and being afraid of being discovered. Even after jumping into the game, I sold myself short.

Don’t be like me.

Don’t be cocky either. If you’re interested in contributing to Core, say something. Reach out. I’m @kraft in the WordPress Slack account. Follow along on the make sites that interest you and chime in. Volunteer to help with feature plugins (and actually show up to do the work). Test out patches, the nightly builds. Read through the code instead of using a tutorial. Help in the support forums3.

For some of us, it is more work getting into the game. But, in the end, it doesn’t matter if we’re a full scholarship player or a walk-on, we’re all on the team together.

It’s actually pretty cool, okay? ↩

I was on trial for Automattic and asked if a particular commit would drop soon since I had “a .com user who wanted it”. He, realizing that I was new, nicely, but firmly, told me that WordPress.com requests aren’t special and Core doesn’t give preferential treatment to something because WP.com wants it. In retrospect, it was pretty silly given I was asking about something that was filterable anyhow and if it really mattered, we didn’t have to wait on Core. I was eager and learning the ropes. ↩

I’m 100% serious—both as an awesome end in itself and as part of contributing code to WordPress. Most of my first commits were because of users having trouble or trying to do something that was a bug or limitation in WordPress. ↩