bitHound Blog

Interview with Emma Jane Hogbin Westby

Welcome to the bitHound interview series, where we talk to developers about development, Node and working with teams. Our first segment is with the ever-talented Emma Jane Hogbin Westby, author of Git for Teams. Let's dive into the Q&A!

Emma Jane Hogbin Westby

"... my biggest draw to Javascript is being constantly in awe of the amazing things people are thinking to build."

Tell me a bit about yourself and how you started in development.

My very first tech job was in 1996. Myself and one other woman were hired to be the "CQUEST Home Page Help Centre" at the University of Toronto. We had these stunning SGI workstations that had been purchased by the Geography department to make high end maps. Our job was to help professors create course websites. Of course, being summer, our "clients" were all out doing field research. We had fun learning the nuances of HTML (there wasn't a lot to learn at the time). I was studying Environmental Science, so it was very much a "self-taught" introduction to programming. Later I would take some classes from a local chapter of WebGrrls, and participate in various open source mailing lists (Webdesign-L being my favourite). Everything grew organically from there.

You just wrote a book, Git for Teams, what was your motivation behind that?

Git for Teams had an interesting start. As an Ubuntu user, my first introduction to distributed version control systems was Bazaar. I remained a strong advocate of Bazaar during Drupal's evaluation of different distributed version control systems. It was my self-appointed job to find all the ways that Git wasn't as good as Bazaar. (Spoiler alert: Drupal picked Git.) The main complaint I had was the onboarding experiencing. At the time, it was exceptionally difficult to learn Git (it's still hard today, but it's always getting easier). In 2013 I gave a conference presentation called "Git Makes Me Angry Inside". It was a fun look at why Git is hard to learn, and gave folks some alternate ways to onboard their teams. One evening during the conference my friend Carl and I were at a pub and he wanted to show me some work he'd been doing. It was, of course, stored in Git. So there we are, in a pub in Prague overlooking a graveyard, looking at code. And I'm learning all kinds of new things that you can do with Git to examine history. And Carl is making it fun. It shifted my thinking. I wanted everyone to be able to have this fun experience with software that I had found totally frustrating. At first it was conference sessions, and workshops, then videos, and finally the book. Everything was iterating and learning about what people found hard, and figuring out how to cement some best practices for teams. I still find Git frustrating some days, but the community has been amazing. They are outrageously helpful and supportive. If you can handle a relatively high volume mailing list, I recommend subscribing. There's also a much quieter IRC channel.

We see that you are active on topics about JavaScript and Node.js – what is your biggest draw to these tools?

I'm a little late to the cool stuff when it comes to tech. (Back in 2004, I wasn't convinced the whole asynchronous web / "AJAX" thing had a future.) Or maybe it's more fair to say that I'm too busy solving today's problems to spend time thinking about the possibility of what could be. I kind of like hanging out on the trailing edge and giving folks a lift up so they can catch up with whatever's taken off. So with that in mind... my biggest draw to Javascript is being constantly in awe of the amazing things people are thinking to build. For example, I love all of the data visualisation work that's happening in D3.js. Scott Murray has been my introduction to that world. One of the teams I work with in my day job has built amazing humanitarian responder app. (Think Four Square for natural disasters and complex humanitarian emergencies.) It's open source too! You can read more about the project (that info site is built in WordPress; the app itself is node + Angular).

What are the biggest challenges you see for Node.js developers using Git?

Interesting question: I can't think of any Node-specific challenges to using Git. (Maybe others can! Got any ideas? Tweet them!) Every team I've worked with has benefited from a standard "how we do version control" one-pager. You don't need to write a lot of documentation, but if you want to find (and fix!) things quickly, you will benefit from being consistent with how you put things into your repository. From a code perspective: The biggest problems I see generally are single, big files that need to be refactored. (This can be easier to track if you have several smaller files.) And perhaps tracking of information that shouldn't be (e.g., your API keys / login credentials). (You should be using a .gitignore file to un-track text editor files, special setting files, and the like.)

If there was just one thing you could tell the Node.js team to do, what would it be?

You were right about the whole asynchronous thing; I was wrong. I'm glad I didn't wager any money on it. ;)

About Emma Jane Hogbin Westby

Emma Jane Hogbin Westby is a technical project manager, author, and trainer specializing in version control with Git, Drupal, and team dynamics. In 2014 she released a set of videos with O'Reilly: Collaborating with Git. The companion book, Git for Teams, was released September 2015. Her previous books (Drupal User's Guide; and Front End Drupal) and videos (Drupal Fundamentals) were published with Prentice Hall. You can follow her on Twitter.

Stay tuned for our next instalment? Want to be part of the series? Let us know!

bitHound identifies risks and priorities in your Node.js projects.