Developer Experience Engineer

"If you treat your developers well, then they will (for free) provide you with valuable insights about ways to improve your API, and they will evangelize your API for you."

—Pamela Fox, The Developer Support Handbook

Just over six months ago, I started working at Iron.io as a software engineering intern. I quickly diverged from my intended purpose, though, mainly because I’m really bad at following instructions.

As of today, I’ve been upgraded to full employee status, with a title change that more accurately describes what I do. I’ve become their first Developer Experience Engineer.

I know, I know. What the hell? That’s the wankiest title I’ve ever heard of. But it’s actually pretty accurate. My job at Iron.io is to do anything I can to make sure that people who develop on our platform have the best possible experience. That is my responsibility. It manifests itself mainly in the ongoing work I’m doing with our Dev Center, but it has developer outreach parts, it has higher level strategy parts, it has a lot of connotations that come with it. It means I offer feedback and suggestions on new products. It means I write client libraries and examples. If something will make using Iron.io’s services easier, more enjoyable, or more effective for our customers, I’m supposed to be doing it or helping someone else do it.

That’s a tall order. The job is modeled heavily after Developer Evangelists and Developer Advocates, but with a more holistic approach.

I wanted to take a moment to lay out the principles that I hold above all others for this job, as I think they explain things a lot better than I can:

I’m very excited to continue my efforts at this, even as the daunting size and scope of the job intimidates me. I hope that my efforts in the next six months will help to make me more available to you and will help to make you more productive at what you do.

An intuitive and adaptive product renders examples unnecessary. Illustrative examples render documentation unnecessary. Clear, concise, and useful documentation renders a support channel unnecessary. A support channel makes sure that all other failings do not leave anyone stranded.