54. Building a Business by Teaching Developers
Hosted by Mike Mondragon, with guest Geoffrey Grosenbach.
We're fortunate to live in an age with access to nearly unlimited resources for information. Sometimes, though, reading a tutorial isn't enough: you've got to see how someone builds something to fully grasp it. Geoffrey Grosenbach certainly thought so. Back in 2006, he built PeepCode and sold screencasts guiding watchers through his work building Ruby on Rails apps. He's currently at Hashicorp as their Director of Product Education. He joins Mike Mondragon on this episode to talk about launching a business aimed at developers, and how he learned to teach others.
Mike Mondragon is interviewing Geoffrey Grosenbach, the Director of Product Education at Hashicorp. Before that, he launched PeepCode in 2006, a platform for developers to share and sell screencasts of programing tutorials. Over the years, he was able to grow the company until its acquisition by Pluralsight; he describes what the experience was like.
The conversation turns towards how to best learn new programming skills, after you've plateaued to being a "good" developer. Geoffrey suggests two things. First, writing about something you're working on is a good way to experience how you might express concepts to someone learning about them for the first time. He also recommends that developers step out of their comfort zone. For example, if you know how to
git push to Heroku, perhaps you could try writing your own buildpack next.
Towards the end of the episode, Mike and Geoffrey discuss the effects of attention, particularly around social media. The more you produce helpful content—whether that's an article, a video, or an open source project—you're bound to attract others. Finding that balance of joy and sanity can be a difficult one.
Mike: Hello and welcome to the Code[ish] podcast. My name is Mike Mondragon and I'll be your host for this episode of Code[ish]. Today we are speaking with Geoffrey Grosenbach about developer learning and entrepreneurship. Geoffrey, can you introduce yourself?
Geoffrey: Yeah, I'm currently director of product education at HashiCorp, creators of Terraform, Console and other cloud infrastructure automation tools. Previously was VP of innovation at Pluralsight video training and before that I started PeepCode video training. Like to describe myself as an entrepreneur, developer, designer, teacher and athlete.
Mike: You were well known in the Ruby and open-source communities. Many are likely to have heard your smooth radio voice on PeepCode Screencast. Can we start by talking about PeepCode?
Geoffrey: Yeah. I was lucky to be involved in the early days of Ruby on Rails and right away started blogging, picked up participation in a podcast that was pretty popular, 6,000 subscribers and 100,000 listeners to some episodes. But people kept asking me, "Well, can you teach us about actually writing code," which is kind of hard to do on a podcast. And I already had been creating short little screencasts for web clients just to show them how to use the software or whatever.
Mike: When I think back to when PeepCode started, I would have never considered watching somebody code on YouTube. Can you talk about that a little bit?
Geoffrey: Yeah, I mean, the biggest question that people would tell me when they asked me, "What do you do for a living?" Oh yeah, "I sell videos online." People are like, "What? You can make money with content online." Whereas now we hear about YouTube stars who are making $1 million a month and there are many different ways that people are aware of the value of that. But at the time it felt pretty risky and that's kind of why I didn't quit my job immediately is because I just didn't even know if it was financially viable.
Geoffrey: But there was some precedent out there. O'Reilly sold a lot of PDF books that were just 50 to 80 pages for nine bucks. So that's kind of where I modeled my pricing. And I thought if somebody could read a PDF book that's not too long, then hey, maybe they'll pay for a video. And then I also wanted to make sure that I had enough revenue to where I could put a lot of good effort into it. And it was more than just something I squeezed into lunch, nights, and weekends. And so eventually we were able to buy video equipment, pay animators to make 3D diagrams and other kinds of things in it.
Geoffrey: And so yeah, glad to be part of that early on and inspiring to see all the different people doing that kind of thing today in different ways.
Mike: What happened to PeepCode?
Geoffrey: Well, I mean we did very well as a company. It was the first real revenue generating company that I'd started, although I had some other shareware and little things previous to that. That wasn't really a full-time thing. But yeah, I mean revenue went up and up. We got pretty close to about a million dollars a year and suddenly people started approaching us to talk about a possible acquisition.
Geoffrey: The first one was actually very early on, we talked to O'Reilly video publishers and I have a lot of respect for Tim O'Reilly, all the kinds of things he's done for Open-source. And he told me, he was like, "You're doing a great job. Why don't you just stay independent and do what you're doing?" So that was about two years in, but six or seven years in, we actually talked to GitHub about a possible situation. And then eventually it worked out with Pluralsight, a developer focused video training subscription service that was up and coming and that happened in 2013. So pretty much all of the PeepCode content is at Pluralsight and you can watch some of the best videos that people still love over there. But otherwise I worked at Pluralsight for about three and a half years, helping them build out their video content, open-source training content, and they've continued to do very well with that.
Mike: That reminds me, you mentioned shareware, I seem to remember you mentioning that, oh like right around turn of the century. You had like a Mac app that people were fond of that you were supporting for a long time?
Geoffrey: Yeah. Wow you have a good memory. It was kind of before RSS and more open data formats. I had the idea that like, "Well, what if I could just subscribe to all my favorite websites and when they post a new article I can see what's out there to read." And I came up with this software, it was mostly you could write like a regular expression to kind of find the headlines throughout a webpage. And then it could also, if there was a data format it would try to slip that in and I think I sold it for like 30 bucks a copy. I bought some add-ons, some Mac sites, got some good feedback.
Geoffrey: Cory Doctorow of Boing Boing actually bought a copy and sent me a bunch of good feedback. But like a number of things in my life I had kind of the kernel of success but then I just didn't really put the effort into continuing it. So that kind of died out. But it was a good experience at creating a product, getting feedback from people, seeing if it was actually useful, and actually shipping software.
Mike: We were talking about this before, but you had mentioned witnessing the rise of technologies and experiencing the IPO when you were at Pluralsight. Do you want to talk about that for a little bit?
Geoffrey: Like a lot of people I worked for a variety of different startups right out of college. My degree actually isn't in computer science, it's in philosophy. But I had an internship during college and I was writing code. And most of those companies were small or went out of business or didn't get very big. And so PeepCode was my first chance to actually feel like I had a revenue generating successful company.
Geoffrey: And then Pluralsight certainly took that further. When I joined they were already making tens of millions of dollars in revenue and now they're up to hundreds of millions. But mostly I was able to focus more on the content and we brought over a bunch of the live sessions. So sitting down with a developer or designer, giving them a project and working through that live. So it was called play-by-play and we, at PeepCode we did that with Aaron Patterson and Ryan Singer of 37signals and Katrina Owen and a bunch of other people.
Geoffrey: But it was great to be part of a bigger publisher at Pluralsight. We could see what people were searching for and what kind of content really resonated. So things like Kubernetes, React, JS, Terraform definitely saw those increasing in popularity while I was there. So that was quite exciting.
Mike: And can you talk a little bit about your role at HashiCorp right now?
Geoffrey: In 2017 I ended up moving on from Pluralsight and it was kind of a point in my career to where I hadn't really had to look for a job in 10 or 12 years. And so, very lucky in that way. And there's always this feeling in education of like, "Well I'm not doing real programming because I'm just teaching and writing demo apps. So do I want to be a CTO or vice president of engineering or something like that."
Geoffrey: And so I, fortunately thanks to my visibility in the community, I just made this one little tweet about, moving on from Pluralsight and blam it was like 50 companies reached out to me. I had two or three interviews for a day for like a month and talked to a bunch of really good companies. But eventually thanks to some advising from some good friends I ended up just reaching out to the companies I wanted to be part of. And HashiCorp was right up there, definitely had used Vagrant for a long time. Even before HashiCorp was around as a company. Knew about Terraform for scripting the creation of your cloud infrastructure or even your Heroku apps and add-ons and all that kind of stuff.
Geoffrey: And at that time they didn't have an official education department. But they were just about at the time of needing that and they're like, "Oh, why don't you come on board and let's see what we can do." So for the first year or so I was doing a lot of creating content, full day classroom curriculum and some online guides and then fortunately been able to hire just an amazing team and we've got about a dozen education staff right now creating videos, textual project-based guides, interactive in browser experiences as well as we're working on some certifications which we're going to launch shortly and just helping people get on with cloud infrastructure and learning how to use the HashiCorp tool set.
Mike: As I said at the beginning, I think of you as an entrepreneur and a teacher and I was really interested in how you're coding today, how are you programming. I know that you have designer chops as well, so like how do you keep all of that experience going?
Geoffrey: I love learning and I will often relax by trying to pick up some new skill or read a new book or watch a new video on something, which for a lot of people can be exhausting and it is, but that's fulfilling. The downside of constantly learning is you can't use everything you know at all times. I remember in 2003 and four I worked at a English speaking school as a IT director in Taiwan and I learned how to completely script and automate a whole Windows 98 network, and I've never used that skill since then.
Mike: So, as a new developer, can you tell me how I can improve my skills today? You're an educator. I think that you could probably help me with that.
Geoffrey: It's been great to be in education because you not only try to connect with people with how they want to learn, but then you can see some analytics and talk to people and see what actually works for a large number of people. And so at HashiCorp we found a lot of beginners love video. Because especially if it's just like here's five minutes of someone actually walking through a demo that we're going to then show you the text and the code for. It gives people that confidence, they can watch it being done and see what's coming ahead and then go ahead and do it themselves.
Geoffrey: So probably not surprising, but I would say, "Go watch videos. It's a great way to learn about it." And if depending on the teacher you'll learn about their personality or little tips and tricks and things like that. Another thing I love to do and whether I'm learning something new or when I was learning code the first time was just reading code. One of the education engineers on our staff, Judith Malbec says that, "Code is the only thing where we try to write it before we read it. If you going to learn French or Spanish, probably you would want to read some words or read some sentences first. But with code we want to get in there and just write it immediately." Which can be good. But I love reading code. Kind of when I was getting started with Ruby on Rails I went through and read every last API doc that was written. I read some of the framework code and it's a good way just to understand how people use the language and the best ways to do things, or how it should look.
Mike: So in that same vein as I'm a new developer, HashiCorp is well known, there's all kinds of great developers that are there. Presumably most of them are senior. If I'm a new developer, how do I improve my skills and perhaps even make myself known to a HashiCorp recruiter, or another developer at HashiCorp so I could potentially work there?
Geoffrey: Early on in the company ... You're right, we were writing some pretty low level software and needed more intermediate to advanced developers. But in the last year plus we have a number of associate level openings and we've brought people in at early levels of their career and many of them have done extremely well, whether it's writing code or operations, SRE type roles or whatever. And so we have more of those roles but certainly it helps if people can demonstrate something that they've done online.
Geoffrey: So GitHub or any kind of source publishing system like that is fantastic. Blogging. Actually put an app up on Heroku that you've made and hey, show us the code that you used to do it is a great thing as well. That puts you head and shoulders above as far as applying for a job at HashiCorp or anywhere else I'm sure. I think for experienced developers to reach beyond the edges of what you know.
Geoffrey: So if you can just
git push to Heroku, well maybe you see what it's like to write your own buildpack and what's involved in that. You can do it pretty simply with just a couple of lines of YAML or whatever. And then you can go on from there, or maybe you can click around to create an app. Well what if you script that with Terraform? Kind of expanding those edges. And I think that's what's helped me a lot in my ... The things I've learned is once I was able to do something, I started to see what else orbited around and how far could I learn the pieces that got me there to these initial kind of simple demos.
Mike: With the mindset of an advanced developer. I can think of two times in my career that I got to level up. One was actually learning Ruby and I knew that I was going to be doing Rails, but I knew that I should learn Ruby first and read through The PickAxe book, cover to cover and another book that helped me level up in my career it was the Refactoring book, Martin Fowler's Refactoring book. I learned some new patterns on looking at code from that. So do you have any thoughts on, as a senior developer, like how I could improve my skills?
Geoffrey: I think there's an element of a lot of programming communities now to where it's not just about getting a task done, but it's also about doing it well and best practices and that type of thing. So I think that's available a lot more in communities. So definitely draw on that. One thing I did appreciate early on about Ruby on Rails is it didn't invent any of these things, but it was strong into test driven development. And that's how I learned how to do it. And there were a lot of people in the community that you could ask who were glad to help you get started. It was big into documentation and so you could either use that as a way to contribute or as a way to learn. And so finding those best practices. And to me it's also about like, can you not only write code, but can you build it in a way that you can collaborate?
Geoffrey: And that's a lot of, especially the enterprise HashiCorp tools are all around collaboration because we realize if you can just write something solo, that's a certain level of maturity for yourself as an individual. But if you want to move on in your career, you got to be able to write code together with other people. So is it getting your code up on GitHub and having some kind of workflow that other people can contribute to?
Geoffrey: Or is it like collaborating on deploying a Heroku app with a couple of different people? Or is it building your application in a way that there's this easy onboarding process? I was in a situation where I had to hand off a application to somebody else and 24 hours later without even talking to me, they had the thing built, up and running and they were able to enhance it and add new features.
Geoffrey: And I think part of that is I had a good README, I had a good Makefile or a kind of bootstrapping script, it pulled in any dependencies. And so you know some of these best practices not only around yourself and your own skills but how you collaborate with other people I think are another big level of scaling up.
Mike: That reminds me too. Do you participate in meetups and still participate in a lot of conferences?
Geoffrey: When I was running PeepCode I was lucky that most of the conferences I went to were ones that I was speaking at or participating in somehow and that's still the case at HashiCorp. We're up to three major conferences around the world. We've just announced one in Australia that's going to happen in April. So in the last two years most of the conferences have been our own HashiCorp conferences in the U.S., in Amsterdam and now in Australia.
Geoffrey: I also love the Write the Docs conference in Portland, it's probably like the other single conference that I've gone to the most. And you've got a lot of people doing documentation for technical products or even firefighters and emergency response teams talking about how they document these different systems so that like a new wildfire individual comes on board. How do they learn how to make the right decisions and use all the tools and communicate to the people that they need to? So love that conference.
Mike: So do you have any other things that you'd like to talk about?
Geoffrey: One of the things I love about the open-source community is that yes, we want to make a good life and career for ourself, but it's not competitive and it's a lot of like let's help everybody get better and improve themselves. And I think, so one thing I love about education in the whole developer tools community is just like, there's still a huge need for it out there.
Geoffrey: So I felt like it was this huge achievement to get to 10,000 Twitter followers and felt I had a community that I could talk to. And now I look at people who are doing well with that and a 100,000, 200,000 followers. And so, it could feel like there's a lot of competition out there, but there's still a dearth of good original content. Anybody who can get out there and write a blog article, make a video, speak at a meetup, it's a great way for you to learn.
Geoffrey: And if there's anything you're learning, it's probably the case that somebody else is going to need that too. So I would just encourage anybody listening to this, if you want to get into education or if you just want to learn to better yourself, go out there, create some original content, talk about what you're doing. Still a huge need for that.
Mike: One last thing. I saw that you were featured in the Why The Lucky Stiff documentary that was recently released and I'm not sure if everybody knows about Why The Lucky Stiff. He's a somewhat famous Rubious from back in the day. Can you talk a little bit about his impact? I know that he also showed up in announced set a Seattle.rb barbecue that you hosted one time.
Geoffrey: Yeah, I was, I dialed up his blog one day and here I was in the sidebar of like, "Hey, here's a list of other people you should go read." And that felt like this huge achievement to me. That was like getting an Oscar or something like that. And yeah, I was able to meet him a couple times. One of the things I still remember is he told me, he was like, "Yeah, the internet is so funny. You just make a video or write a book in your basement and put it up on the internet and suddenly people around the world read it and they know who you are."
Geoffrey: And I've definitely experienced that. But one time he showed up to my basement, which was, I was hosting a party for Ruby developers, just in my backyard one summer. And it wasn't really even like a RSVP thing. It was just like, "Hey, here's a date and time, come out here and let's hang out." And suddenly he just shows up. I didn't even know he was in the Seattle area. And of course people are excited, had a conversation.
Geoffrey: Because even though he was this very public feature on the internet, you didn't have a lot of personal interaction with him that often. So it was fun to see him at the event. But the funny thing though was when he left is, I think most of the party had wrapped up and I was like, "Hey, do you need a ride somewhere? Glad to take you, drive you out to a bus stop or take you home or whatever." But he was very, very private and he was like, "No." And he's like, "I don't even want you to look at me going out the door which way I walk down the sidewalk, I will just find my way and I will just take the care of that for myself." So I don't know. For all I know he, he stepped out and jumped into UFO and disappeared.
Mike: Yeah. So I really appreciate your time and sharing your experiences with us. Thank you for being a guest on Code[ish].
Geoffrey: Absolutely. And should say that my team at HashiCorp is always hiring. So if you love teaching, love education, we'd love to talk to you at hashicorp.com/jobs.
Mike: Thanks Geoffrey.
Geoffrey: All right.
A podcast brought to you by the developer advocate team at Heroku, exploring code, technology, tools, tips, and the life of the developer.
← Previous episode
53. Scaling Telecommunications Data with a Service Mesh
Next episode →
55. When Side Projects Become Real
March 3rd, 59. All About the Cloud
Lead Member of Technical Staff, Heroku
Mike is a team member of Heroku's Runtime Control Plane team ... the place where the "git push heroku master" commands land.
Director of Product Education Engineering, HashiCorp
Geoffrey is an entrepreneur, designer, developer, teacher, and athlete. He is the director of Education Engineering at HashiCorp.
More episodes from Code[ish]
Emmanuel Levijarvi, Teddy Ward, and David Morgenthaler
We're all familiar with using data and analytics to monitor the performance of our applications, but Kevala is applying those software fundamentals in new industries. Kevala tracking energy grids in cities and neighborhoods, to map the ways... →
Bret Fisher and Mike Mondragon
Docker has emerged as an extraordinarily popular way to safely and predictably deploy applications. But because of its rapid evolution, changing business targets, and technical composition, it can still be a bit daunting to understand when... →
Joe Leo and Corey Martin
Legacy code is everywhere. Software is also being modified, whether as a result of new requirements, new security issues to patch, or new hardware and operating systems to target. Whether you're working with code from three months or three... →