How GoDaddy rolled out its rebranded website in 1 hour with Node.js and more from Charlie Robbins
Charlie Robbins (aka @indexzero) was one of the first users of Node.js. He is currently working as the Director of Engineering for the UX platform at GoDaddy and is also a Node.js Foundation board member. He and his team use Node.js for front end and back end work, and recently rolled out their global site rebrand in one hour thanks to the help of Node.js.
Mikeal: Welcome to Enterprise Conversations with the Node.js Foundation. I’m joined by Charlie Robbins, director of engineering for the UX platform at GoDaddy and also a Node.js Foundation board member.
Let’s just jump right into it. Tell me a little bit about your role with GoDaddy and your history with Node.js in general.
Charlie: I’ve been using Node.js since shortly after Ryan Dahl’s talk at JSConf in 2009 — roughly December 2009. I have been using it ever since. I guess in terms of length of use, I’m one of the longest term users.
At GoDaddy, I run the UX platform team. We’re responsible for all of the cross cutting UI infrastructure. You might have seen, if you’re a GoDaddy user, recently we did a pretty large re-branding of the site and we rolled that out in about an hour. That went really smoothly and a lot of that was thanks to Node.js.
Mikeal: Can you tell us a little bit about your role with the Foundation as well? How did this come about?
Charlie: GoDaddy acquiring Nodejitsu was really representative of GoDaddy wanting to get involved in many open source communities, with Node.js being one of them. Working together, we decided to fund the Node.js Foundation and we did that at the gold level. For those that aren’t super familiar with how the Foundation works, every platinum member gets a seat on the board. For every 3 gold members there is an election to elect a board member to represent those members and I think a board seat goes for every 10 silver members. That right Mikeal?
Mikeal: That’s right. There are also two board seats that go to members of the community — they are elected by the community.
Charlie: I was elected by the other gold member companies, NodeSource and Modulus. In addition to sitting on the board, I’m on the finance committee. I look at the budgets and make sure we’re doing well, which we are. The Foundation is doing excellent. I’m looking forward to what we can do in 2016 and 2017.
Mikeal: How long has GoDaddy been using Node.js? I know that you said that they acquired your company and you came on board, but were they using Node.js before that? Or was it mostly once you came along?
Charlie: They had it. Right before the acquired Nodejitsu, they used Node.js in one of their first major products. This product was a major portion of their website builder product. That entire product is now based on Node.js and React.
The story at GoDaddy resonates with the story at a lot of other companies that are using Node.js, which is that if they weren’t running it in production, they were probably using Node.js as part of your front end build system. So, it had become essential to that as of 2013.
Obviously that’s quite a bit of time before my tenure, but doing the code anthropology on “Github Enterprise” over the last couple of years, I’ve back tracked commits and read things and I think 2013 is when that started.
Mikeal: Right. Now you’re using React, which is also a Node chain as well.
Charlie: Sometimes I’ll wonder if we’ve moved forward or backward when it comes to transpilers. That’s a separate conversation, I think.
Mikeal: Didn’t you coin the term somewhat related to this at some point in time?
Mikeal: What impact has Node.js had on your company and your team and how things are laid out internally?
Charlie: It has been a great equalizer for a lot of things. Before Node.js, there was primarily .net and also that was transitioning to Java. I have a background from Microsoft; I started working there 10 years ago — almost right out of school. Microsoft does a great job supporting .net developers. They’ve made .net open source the last couple years, which is a great thing. Following in the steps of Miguel de Icaza and the Mono Project.
The one thing that it doesn’t have is a vibrant community of folks that are releasing their own modules and their own things that you can rely on. The typical .net scenario, when I was using it, was you wait for the thing that has come out of Microsoft that you use to do a certain task. That breeds a certain skillset where you’re really good at reading those docs. You become really good at using that stuff, but the search process for what’s good and what’s bad, it’s just not a skill that you develop.
The search skill was a skill that needed to get developed and has been developed across the company. Evaluating what module to use and why, which I think is again, a pretty common story for folks that are coming from a .net background or other enterprise technologies where most of the functionality was included in the standard library. As opposed to something like Node.js, where you get very little with it and it’s your job as an engineer to go out and find all the other parts of your stack.
Mikeal: Also as a result, there’s so many more of those components right? Because it incentivizes the community to build that stuff up. Whereas, if it didn’t come with the .net runtime, then you’re highly unlikely to be able to find it in the ecosystem. Whereas in Node.js, it definitely exists in the ecosystem. There’s probably 6 of it. You’ve just got to figure out which one to use.
Charlie: Right. That evaluation process is a skill that is learned. It’s not something that is innate to engineering. It’s been fun to see that skill develop and also help people develop it faster based on the knowledge and experience that I got and my team got while running Nodejitsu.
Mikeal: You mentioned that you started using it in the front end and then ended up using it more in the back end as well. Did that separation, that wall between the teams start to come down at all? Or did you start to see people move from the front end to the back end more than you had in previous languages?
Charlie: To use a term that an economist would use is something like, the marginal propensity to cross over has increased.
Mikeal: Interesting. You’ve been into Node.js for along time. You’ve had this huge history with the project. Obviously the project has changed. The Node.js Foundation has changed a lot of things. What are you most excited about looking a year or two into the future of them?
Charlie: Things that excite me about Node.js are being handled mainly by working groups. I’m very excited about the tracing working group and the things that are going to come out of that to build an open source instrumentation system of eco-tooling. I think that having all of that be proprietary is dangerous because it blurs the line between what’s Node and what’s not Node, right?
We saw a lot of this with detrace probes when we were primarily running on Solaris and SmartOS. Getting, for example, Linux probes in there was challenging. I know that that work is underway now and that’s incredibly exciting to me. That’s something that has only been possible in Node in the Foundation. So, kudos to the Foundation as well.
Other things that excite me are the inclusivity working group and the Node.js Live events. I’m really interested to see what the Node.js communities look like in countries where there isn’t a lot of English. Places like China, for example, where most of the engineers are still primarily speaking Chinese. There’s a not a lot of crossover. There’s C Node where all that communication happens in Chinese and is, I don’t want to say insular because that suggests that it is by design, but just separated because of the language barrier. That’s a natural barrier; it’s nothing bad. I’m excited to see those barriers start to come down and as those events get run.
At GoDaddy, I’m particularly excited about releasing some of the stuff that we’ve been working on. We have been using Cassandra pretty extensively. When we were evaluating Cassandra the higher level ORM, ODM type libraries for Cassandra that took advantage of all of its nuances and power weren’t really there. So, we’ve been working on one of those for about 8 months. The post for that’s going to go out next week actually on the GoDaddy engineering blog (here it is, in case you are curious).
In addition, we’ve done a lot of work on front end ops that’s do you do after you publish something to npm or to a public registry. That is something that my team has been working pretty heavily on for the last 6 months. I’m looking forward to getting some of that stuff out there and sharing what we’ve learned in the coming months as well.
Mikeal: There was actually a front end ops conference a few years ago; it was totally ahead of its time. People really weren’t talking about this yet. It was clear to people that were in the thick of it that this was going to be a really big deal. It’s great to see it now coming back around and people talking about it again.
Charlie: Yeah. I’m dying to talk to Adam Christian about getting that conference running again because it is something that should be happening.
Mikeal: Definitely. Well this was a great talking with you. It was really interesting to hear some of your thoughts and history and everything. Thanks for coming on.