Hannah Wolfe on being a polyglot developer

Ghost's lead developer chats about Node.js, embracing new languages and using her skills to terrorise her teachers.

Do you want to introduce yourself?

I'm the co-founder and CTO of the Ghost Foundation (the non-profit company that is the caretaker of the Ghost software), and lead developer on the Ghost project itself. I spend my days on IRC and GitHub managing the creation of Ghost and the supporting infrastructure.

When did technology first appear in your life?

It was the morning of my sixth birthday. I bounded down the stairs to find, on the dining room table, an Intel 486, with a 5½-inch floppy disc drive and a red ribbon tied around it. On the screen, in bright colours, rotated the words 'Happy Birthday Hannah'. I was spellbound. How did it know it was my birthday? Wait! How did it know my NAME?! I wanted to know how it worked, inside and out. Three years later, I built my grandparents their first computer.

Then, aged 11, I picked up a library book: HTML in Easy Steps. I read the book cover to cover, including the appendix on a new thing called CSS, went to my computer and coded my first web page. The next year I terrorised my teachers at school by handing in all my homework in the form of a website on floppy disk.

You describe yourself as a polyglot developer. Do you collect languages or learn them as required?

It's about using the right tool for the job. Picking up new gadgets for my toolbox is fun, but I don't tend to have the time or motivation to really learn a new language until I have a reason to use it. I keep up-to-date on the latest tools and frameworks, but I'm not one of those developers who'll grab something new and code a random side project just to test it out – although I often wish I was.

The use of libraries always causes heated debate on @netmag. Some developers assert you should always learn the language first. What's your take?

Learning is a very personal thing. I like jumping in at the deep end with a project: grabbing a new language along with a new framework isn't uncommon in that scenario. I picked up both Flask and Django whilst learning Python, and I'm not sure anyone really learns Ruby without also learning Rails. When it comes to JavaScript it varies based on what you're trying to achieve. I really don't think there's a wrong or a right way to learn.

Node.js is a comparatively young platform, yet you chose to build Ghost around it. Why?

There are a number of technical reasons why Node.js was the right choice, not least its incredible speed and the benefit of being full-stack JavaScript. Specifically, we opted for something new and shiny because we felt it necessary in order to 'reboot' something as overdone as blogging. Node.js is aimed at the future of the web, and is particularly good for creating APIs for consumption by a rich client. With Node.js, both of these pieces are written in JavaScript, which is a big plus when you're open source.

What can we expect next from Ghost?

We're wrapping up the conversion of our admin panel from Backbone.js to Ember.js. Our internal JSON Data API has been cleaned up and OAuth is being added so we can open it for external use. Later in the summer we'll be working on getting the first proper examples of Ghost Apps (plugins) out into the public.

You're a big open source fan. What's the best way to start contributing to the community?

There are two key things to get to grips with: the code base you're contributing to, and the way that particular project works in terms of contributions. For the latter, the best thing is to find out where the majority of discussions happen – usually IRC or a mailing list. With Ghost, developers hang out in #ghost on freenode. For the former, nothing beats grabbing a small bug and fixing it.

Words: Martin Cooper

This article originally appeared in net magazine issue 257.