I Joined Automattic

Monday will be my first day working at Automattic.

In the past I’ve worked on consumer software and enterprise software, but this will be my first time working on open source software. It’ll also be the first time I’ve joined a company without my existing software coming with me. FeedDemon is going away soon, and I no longer work on either Glassboard or Social Sites. I’m starting fresh with Automattic, which is a very welcome change.

When I talked with Matt Mullenweg about Automattic, he mentioned being proud of the company he helped build. At the time I didn’t know too much about the company, but the more I looked into Automattic the more I realized why it’s something to be proud of – and why I wanted to work there.

They treat their employees the same way I try to treat the end users of my software. As a developer, I’ve tried to provide a great experience to those who use my software. As a company, Automattic tries to provide a great experience to those who work there. People stick with you when you provide a great experience.

They also, of course, make great software. I’m looking forward to a chance at helping them continue to do that.

Old Farts Know How to Code

I turned 45 this month. In many professions that’s the prime age to be – and in others it’s considered young –  but in my line of work, some people think middle-aged coders are old farts. That’s especially true when it comes to startups.

The startup culture is similar to professional sports in that it requires a fleet of fresh-out-of-college kids to trade their lives and their health for the potential of short-term glory.

“Old farts” are often excluded from that culture, not because we’re lousy coders but because we won’t put up with that shit. We have lives, we have families, we have other things that are important to us. We’re not about to sleep at our desks and trade watching our kids grow up for the promise of striking it rich. Especially when the people who really strike it rich aren’t the ones writing code.

So many developers my age have had plenty of chances to ditch coding and move into management, but we’ve stuck with coding because it’s what we love to do. We’d earn more in management, but writing software is in our blood. We wouldn’t stop doing it for anything.

And because of the years we’ve spent creating software, we’ve learned what works and what doesn’t, regardless of the language or the platform. Operating systems rise and fall, development tools come and go, but through it all, old farts know how to write solid code.

Young Gamer Geek Nostalgia

Earlier this week I wrote about "Moon Runner," a TRS-80 game I created when I was 18. That was my first piece of commercial software, but I’d written dozens of other games before that.

The first game I remember writing was "Possum Run," a bloody takeoff on Frogger which was published in a magazine called Hot CoCo when I was 16. Back then I was a long-haired metalhead, and I remember my friends being absolutely shocked to discover that I was a published geek.

During the remainder of my high school years I published a number of other games in Rainbow Magazine, including a goofy platformer inspired by Bloom County which featured a penguin trying to find wings that would enable him to fly.

Writing those games wasn’t just a hobby: it was my great escape from the boredom of school. I remember countless days staring at the clock in class, just waiting for the final bell so I could go home and continue coding. And during class I’d often be scribbling code in my notebook instead of taking notes.

Every now and then I toy with the idea of getting back into writing games, and I’ve even considered creating Android versions of my old games. But I’m more of a news and communication junkie these days, so writing games doesn’t interest me the way it used to.

Although I have to admit, it sure was fun coding that Easter egg in FeedDemon :)

I Used to Write Video Games

Sometimes people ask me which program I enjoyed writing the most, usually expecting me to say either HomeSite or FeedDemon.

Nope.

"Moon Runner" was the software I most enjoyed creating. It was a game for the TRS-80 Color Computer that I wrote in 1986, when I was 18 years old. Back then I was hopelessly addicted to video games, so being able to write one myself was an enormous thrill.

"Moon Runner" was loosely based on the arcade game Moon Patrol which I wasted countless quarters on as a kid. It was coded entirely in 6809E assembler and took me several months to create. I still have a printout of the source code on my bookshelf, but it’s gibberish to me now.

I formed my first company ("D & N Software" – my Dad was the "D" and I was the "N") to sell the game, and had wild dreams of striking it rich. But despite receiving rave reviews in popular TRS-80 publications, "Moon Runner" was a flop. It barely earned enough to keep me stocked with peanut butter and Ramen Noodle Soup for a week.

But you know what? I didn’t care about that. I just loved the fact that I created something good enough for others to use. To this day, nothing has compared to the rush I got at age 18 when I saw "Moon Runner" reviewed alongside software written by professional software developers.

I imagine that’s similar to the thrill so many young coders feel today when they contribute to an open source project or post something that ends up on the front page of Hacker News.

That thrill is why "Moon Runner" will always be the software I most enjoyed creating.

Farty Shoes

One recent rainy morning, I stopped at the grocery store after walking my dogs in the park.

As I strode into the store I realized that my wet shoes were making farting noises with every step. I tried walking more slowly, but that just resulted in slower, deeper farts.

So I paused for a moment, too mortified to move. Then like any geek of good conscience, I asked myself, WWJCD?

"What would John Cleese do?"

Suddenly the moment was transformed from one of extreme embarrassment to one of merriment. I put on my best Cleese straight-man face and continued walking, all the while pretending I had no idea the flatulent feet were attached to me.

If an unexpectedly boisterous blast burst from my soggy sneakers, I'd look around as though someone else was to blame and I was offended by their presence.

When the shopping was done I picked up the pace, resulting in dozens of quick squeaky blats following me as I left the store.

I have no idea what anyone else's reaction was, but I certainly had a good time.

So if you ever find yourself in an awkward situation, don't worry about it. Just ask yourself, WWJCD?Everything will be fine after that.

Dog Rescue: The Aftermath

Given how much of my life is consumed by my two dogs, I’m surprised I haven’t posted about them since adopting them a few years ago.

When I say "consumed," I mean it literally. For example, here’s a couch they consumed one rainy day when I skipped their walk:

In other words, they have a lot of energy and need a lot of exercise. They’re also very strong, especially Bella. She’s an Alaskan Malamute mixed with white German Shepherd. Ripley, the black dog, is Bella’s puppy. She’s much more Shepherd in appearance and attitude, but the Malamute in both of them is apparent when I walk them.

Actually, it’s not really walking. It’s being dragged by beasts bred to pull large loads. I’ve stopped going to the gym because being pulled by 130 pounds of dog every day is more than enough full-body exercise.

It’s not risk-free exercise, either. Late one night I made the mistake of letting their leashes get behind me right before they spotted another animal in the woods. They took off full speed, tripping me up and dragging me across the ground for several yards before I could right myself. My wife still laughs at the memory of me coming inside with leaves in my hair.

Another risk is other dogs. Bella is incredibly gentle and sweet with people – she loves everyone – but she’s the polar opposite with other dogs, at least ones that annoy her. If she sees another dog she usually ignores it, but if it makes the mistake of barking at her she instantly changes from a big teddy bear into a raging wild animal that’s very hard to control.

Barking is something my dogs rarely do, though.  In fact, I’ve never heard Bella bark – but I have heard her howl plenty of times (it sounds like this). The neighbors probably think we own wolves.

And did I mention the fur? Both dogs blow their coats twice a year, which means everything we own is covered with either black or white dog hair for several weeks. When I brush them, they shed enough fur to build another dog with.

Sometimes I look back at the day we adopted Ripley and Bella and wonder whether I would’ve done it had I known how much work they would be. I have to admit, there are days that I wish I was dog-free.

But despite everything, these two dogs are like best friends to me. I’ve connected with them in a way I never have with other dogs I’ve owned. I’ve come to truly respect their combination of strength and gentleness, and I admire their intelligence and independent natures. I wouldn’t trade them for anything.

But I am looking forward to them being a few years older, when they’ll hopefully be a little less energetic.

Hateful Hiring

This post on the 37signals blog struck a chord with me.

Interviewing programmers by requiring them to tackle problems on a white board is a lousy way to find successful developers, yet this practice has existed for years.

I’ve experienced it myself a few times, and each time I failed. Badly.

On one occasion I was interviewed by four separate people during a single day, all of whom expected me to answer on a white board. None of them asked any questions about previous experience. One of them hadn’t even read my résumé prior to the interview.

I’ve also been asked to tackle problems way outside my area of expertise. Perhaps the silliest was when I was expected to answer a problem which required knowledge of graphic chip architecture even though I was being interviewed for a front-end programming position that had nothing to do with graphics.

Yes, despite the fact that I’ve written several very successful programs, I wasn’t asked back for a second interview because I suck at answering irrelevant technical problems on a white board.

I agree with 37signals that the best way to gauge the potential success of a programmer is to see what they’ve already done, even if it’s just side projects they worked on in college. Interviewing via a white board is like deciding how good a musician is by asking them to write tablature instead of listening to them play.

Privacy is Important

“You have zero privacy anyway. Get over it.” – Scott McNealy, former CEO of Sun Microsystems.

When I was invited to join Sepia Labs and create the Android version of Glassboard, I stressed that privacy was the key to our success. Companies like Facebook and Google are trying to convince millions of us that we can trust them with our privacy, but millions of us remain unconvinced.

These companies make the majority of their revenue from advertising, and advertisers are willing to pay more when they know exactly who their ads will be shown to. We’re expected to trust our private conversations with companies that don’t benefit from keeping our conversations private. Red flag, anyone?

“If you have something that you don’t want anyone to know, maybe you shouldn’t be doing it in the first place.” – Eric Schmidt, Google’s executive chairman and former CEO.

It’s not that we fear saying things that we don’t want anyone to know, it’s that we fear saying something without knowing who will hear it.

We want to be able to say something online without fearing that a future employer may see it and count it against us. We want to complain about the country we live in without fear of reprisal. We want to share pictures of our kids without wondering who else will see them. We want to share with only the people we choose to share with.

When we know a conversation is private, we’re more willing to share ourselves. It feels good to share who we are, to open up to the people we trust. When we don’t know who will hear us, we censor ourselves and hide the rough edges of who we are. But those rough edges help define us. It’s impossible to feel truly loved if you have to hide parts of who you are.

It’s time for us to say, “No, I won’t get over it. Privacy is important, and I won’t give it up.” Today’s software developers need to look at privacy the same way they’ve learned to look at security: it’s not an add-on or a feature that customers have to turn on, it’s something built-in that shouldn’t be turned off.

I hope more companies follow our lead and take the same approach to privacy that Glassboard has. I think the web is headed in the wrong direction, and the more that participate in trying to change that direction, the more likely it is to change.

My Top 20 Minor Annoyances

If you've been on Facebook or Twitter for any length of time, chances are you're following at least one person who constantly complains about all the little things that annoy them. If they stub their toe, wake up with bad hair, or someone just looks at them funny, they immediately post about it.

In an effort to not become one of these people, I've decided to spout off my minor annoyances here. That way I can get them off my chest without bothering my Facebook friends. So, in no particular order, here they are:

  1. People who blow their nose in restaurants
  2. Lights that are controlled by more than one switch
  3. Wearing wet socks
  4. Dr. Phil
  5. "New" music which rips off classic rock
  6. Fitness fanatics who worry about eating too much at Thanksgiving and Christmas
  7. Fake eyebrows
  8. People who think you can't see them picking their nose because they're in their car
  9. Athletes who all-too-obviously thank god when they win a game
  10. Doorbells that play music
  11. Anyone who tries to cure your hiccups
  12. Sarah Palin
  13. TV commercials that are twice as loud as the show you're watching
  14. Walking down stairs and thinking there's another step when there isn't one
  15. Being woken up by the sound of your own snoring
  16. Food with an unreadable expiration date
  17. Slow elevators
  18. Waiting for a long time at a red light when there's no other traffic in sight
  19. People in an audience who loudly say "Shhhhh!" when everyone is supposed to be quiet
  20. Clogging up the toilet in someone else's house

Bonus: Geek that I am, I can't help but mention my top five geeky annoyances:

  1. Software that asks whether you really want to exit
  2. Constant Adobe Flash and Adobe Reader updates
  3. Anyone who acts superior because of their choice of operating system
  4. Video games that make you start the level over when you die
  5. Auto-correct that turns a technical term into a cuss word