Episode 026: Chris Weber, Software Engineer
Chris Weber, software engineer at The Nerdery in Minneapolis, sits down with Ivan Stegic at DrupalCon Nashville 2018 to discuss Chris' Drupal origins, as well as other related issues.
Here's what we're discussing in this podcast:
- DrupalCon Nashville
- Hot chicken at Hattie B's
- BOFs (Birds of a Feather)
- Web Components Summit BOF
- The hype cycle
- Google I/O
- DrupalCon's value
- Chris' Drupal origins
- Kookie Kids
- The Nerdery, Minneapolis
- The evolution of Drupal
- Automated testing
- The Twin Cities Drupal Community
IVAN STEGIC: Hey everyone, you're listening to the TEN7 podcast where we get together every fortnight to talk about technology, business and the humans in it. I'm your host Ivan Stegic. And in this episode of the podcast, I'm at DrupalCon Nashville 2018, and I'm sitting down with Chris Weber also known as cosmicdreams on Drupal.org, and he's a software engineer at The Nerdery in Minneapolis. Chris, welcome to the podcast.
CHRIS WEBER: Thanks, Ivan.
IVAN: It's nice to see you here. It's great in Nashville, isn't it?
CHRIS: I know I know I, this is my first time in Nashville. And, I've been, unlike other Cons been trying to go to the local restaurants and trying to like get out and see the city some it's really great. The atmosphere downtown's really great.
IVAN: I agree. I had some hot chicken yesterday.
CHRIS: I had some hot chicken yesterday.
IVAN: How hot was yours?
CHRIS: Well, there was a there were five levels it was mild, medium, hot, dang hot and shut the cluck up. I knew that the people had told me that the last one was just gonna kill you. Yeah, so I took the middle of the road.
IVAN: You know, I did too and it was hot. I like spicy but that was hot.
CHRIS: Like tell the story of that. I had a buddy in college that when he got to trouble with his parents, they just feed him peppers. So he built up a resistance over time.
IVAN: What did you have with your hot chicken, if I may ask. What sides?
CHRIS: Oh, creamy coleslaw.
IVAN: I had that too.
CHRIS: Got to have that relief.
CHRIS: That mac and cheese was very interesting.
IVAN: I had the exact same thing.
CHRIS: Yeah, I you know, I couldn't tell by the time I took a couple of bites of the chicken, but I thought the mac and cheese was kind of spicy too.
IVAN: I agree and you went to Hattie B's right I went there as well and the line when I went for lunch was an hour to get in.
CHRIS: Our line wasn't like an hour, but it did feel like a half an hour, but we can kind of like for dinner. Okay? Yeah and the first taxi driver that I ran into in Nashville recommended Hattie B's, and like everyone recommended how to his every every driver that I went to so I gotta go.
IVAN: That's interesting because my Lyft driver also recommended Hattie B's. And Lex who was on the podcast last week, also had his driver recommend Hattie B's. I think Hattie B's might be... it's a thing!
CHRIS: It's a thing you've got to do it if you go to Nashville, go to Hattie B's.
IVAN: One more question about hot chicken. I wasn't sure if I was supposed to eat the bread.
CHRIS: You are. You haven't eaten a full meal unless you eat the bread.
IVAN: So I ate half of it.
CHRIS: That's fine. Okay. You know, I mean at a certain point you're full and just trying to push in. Yeah, but the the spices accumulate in the bread and, actually I was expecting like eating the chicken blowing my mind eat the bread and then I'm just done. Go to bed, but it wasn't all that bad.
IVAN: So the chicken was good. How was Con?
CHRIS: Con is great this year. Yeah. I, I've been one to like try to go to the the BOFs. But this year I was like, you know there really are some compelling sessions that I just want to see and then usually after the con is over, I have like a viewing YouTube viewing party.
IVAN: Do you really?
CHRIS: All the videos on YouTube so and I don't have to worry about this anxiety that I feel like I'm missing something because I could just go see the see the videos later.
IVAN: Kevin does a great job of recording all of those sessions. It's just incredible.
CHRIS: Yeah Kevin's the man.
IVAN: He's the man. Are the BOFs recorded?
CHRIS: BOFs not recorded.
CHRIS: So that's the reason to go to the BOFs. I actually had my own BOF this year.
IVAN: You did?
CHRIS: It was the Web Components Summit.
IVAN: Of course it was! And tell people what web components is.
IVAN: Now when I was doing my prep work for this podcast, I did Google "Chris Weber components", and I saw reference back to 2013. So it's, it's been at least five years that this has been in the pipeline, hasn't it? Do you feel like it's matured, like it's something?
CHRIS: Oh, yeah. Yeah. It's kind of went through its early phases of you know, they at the at the Driesnote or somewhere, they showed the graph of the hype curve.
IVAN: Yes. Yes. I've seen the hype curve.
CHRIS: Peaks really high, then there is the trough of disillusionment...
IVAN: Yes, and then it kind of goes up and then there's a stage... so where are we right now?
CHRIS: Well, we certainly went through the trough of disillusionment. What's interesting is that at Google I/O upcoming in a couple of weeks, maybe like next month, they're going to have a reveal of Polymer 3.0, which is supposed to be like this is what steady-state looks like. This is what normal looks like instead of the oh whizz-bang-new-thing and disillusionment... and oh, you're so disorganized... you keep changing stuff... you're breaking all the things all the time.
IVAN: You refer to it as Polymer.
CHRIS: Well Polymer is Google's attempt to demonstrate what's developing, what's with web components look like. See this is the part of the confusion because a lot of people identified Polymer with as the standard bearer of web components, but it really isn't. Web components aren't supposed to be this platform, this framework, this complicated thing. It's just supposed to be a set of HTML standards like Ajax.
IVAN: Like Ajax, got it. So you mentioned Google I/O. I've been to about three or four of those conferences very early on when it was just starting out.
CHRIS: You didn't have to mortgage your house to go.
IVAN: Exactly! When you didn't have to mortgage your house and when when tickets were actually available.
CHRIS: That's awesome.
IVAN: I used to love going to that con. The swag was great. The people were interesting. It was Google's first attempt at getting into... kind of the developer community. Have you been to any recent I/O cons?
CHRIS: I only had the opportunity to go one time and that's when my buddy was a Google User Group organizer.
IVAN: The local one?
CHRIS: Both the local the Twin Cities Google developer program or User Group organizer. And so, he gets to go every year.
IVAN: Who is that?
CHRIS: Patrick Fuentes. He's an awesome guy.
IVAN: I think I would like to talk to him.
CHRIS: Yeah, he's a really interesting guy. He's very involved in Android. And he's just a just a great human being to talk to. He's just very generous and kind, thoughtful.
IVAN: I'll connect with him get him on the podcast. You might not know, the original founders of the Twin Cities Google... it's called the GDG, Google Developer Group right now... but it wasn't called that. It was called the Twin Cities Google User Group. I think it was TCGUG Google User Group. Lloyd Cledwyn and I are the original founders of that group, and we used to have meetings in the TEN7 offices on Third Avenue South in Minneapolis. And then I kind of stepped away because I got involved with TEN7 and Drupal and I decided I... you know, I'd rather spend time with Drupal then Google, but that's why I used to go to the I/O conference.
IVAN: Yeah, so, the question about I/O was actually supposed to be a lead-in to the question of why you choose to come to DrupalCon every year.
CHRIS: Well, I at this point in my career, I never want to miss a DrupalCon. There's just so much energy here. I first started going to DrupalCon because I kind of felt like I'm a developer working on Drupal like professionally. But I'm the only person I know that does this, you know, and this was about the time that I start discovering that the Twin Cities had Drupal user group and that in the small collection of people in the Twin Cities that does that, that looked like a really awesome way to participate and finally talk to somebody else that does the thing that I'm doing. I don't have to feel like I'm alone in the middle of a wilderness. And then I keep hearing, I keep following... I kept on following drupal.org in the news channel and everyone's excitement building up and plans being made and agendas being said and it's like you know what? I have no reason to participate in any of that, but I just want to be around. I just want to be a fly on the wall while people are talking about things. Maybe I'll learn through osmosis you know, something more than what I currently know, because.. we were talking today and you were saying that you know, let's just talk about how we started.
IVAN: Yeah. How did you come to Drupal?
CHRIS: I wanted to build a website for my college friends. We wanted a forum we could just sit there and talk about things just joke around but we didn't want it indexed by Google. A buddy of mine had created like a little blog or something like that and it was indexed by Google and he went to a job interview and they were asking him about it.
IVAN: What year was that?
CHRIS: Must have been either still in college, or jus tout... maybe 2004.
IVAN: 2004? And so you chose Drupal because you wanted to build something...
CHRIS: Well, I originally did not choose Drupal. I was trying to find... so I was a computer science student and I was just trying to find something that I could tinker with what could I do with my program was very theoretical mathematics base, very little real world application. So I had to go out and find a real world application to get that itch satisfied. So I tried things like working with PostNuke.
IVAN: I remember that.
CHRIS: I tried MovableType
IVAN: MT. Yup.
CHRIS: Yeah and some of those things just you know, it didn't just feel right and I tried to go deep in other communities and I just got, the common response I got whenever I asked my questions because I ask tons of questions. Yeah was read the manual noob. Yeah. And I'm like, okay, is this just what I have to endure and then maybe one day I'll be the one telling someone that. I don't ever want to be that person that tells another person to read the manual. Then don't talk to me. So this wasn't a good fit and then I found Drupal and I went on to the support forums, you know...
IVAN: The issue queue...
CHRIS: Not even the you go to the Forum on yes, and you can ask your questions there, and I got a lot of great responses and people lent tricks to me. Then I was like, okay. Well, maybe I'll keep with this and I was able to tinker with things in my own learn things didn't really dive into code for like years. Just trying to be a good chef by grabbing modules off the shelf. Figuring out if I mixed this thing with that thing it's gonna make a better thing. So I was just a site builder.
IVAN: Just a site builder, quotation marks.
CHRIS: I mean there are levels to this, but sooner or later I got to my friends asking me to add some feature and I'm gonna have to go maybe I'll have to alter a form in order to do that. Eventually my buddy wanted to start up a business where he would do the design work and I would do the development.
IVAN: What was the name of the business?
CHRIS: Kooky Kid. All K's. Capital K Kooky. And we did that for a couple years. It was really great.
IVAN: So that was your first professional use of Drupal in business? Wow. What version, do you remember?
CHRIS: That must have been five five or six. Yeah, probably six. We had to build out like event registration websites, some marketing kind of landing page like sites. There was one site we built for a person who was on The Biggest Loser to advertise his workout spa because he wanted to take the ideals of Biggest Loser and spread it to his local community.
IVAN: As much as he could...
CHRIS: Yeah. That was the first time we were like, okay, he's gonna be on the episode gonna talk about it's going to reveal the URL for the site. It's gonna be a huge spike. What do we need to do in order to prepare? So that was... I love those engineering challenges!
IVAN: Those problem solving things...
CHRIS: Yeah. It turns out though that I'm not a very good business owner. So I eventually decided to go work somewhere. Because I kind of felt like I needed to learn at that point like the full engineering process. How far could I advance my skills if I could only just focus on the technical problems. And what would it be like if I finally could work with someone else that was also programming?
IVAN: And you've been able to achieve that in your career. Your work at The Nerdery and in the community is yeah, it's amazing. So you've been with Drupal now for about 13 years... it's a long time. What has surprised you the most about Drupal in the last 13 years?
CHRIS: At this point in my life, I don't... it's like watching a movie. You don't want to be hypercritical of it while you're watching it, because you just want to let the story play out. You know, I try to be resilient enough so that nothing really surprises me. But when Drupal 8 was being developed. Let's roll back a little bit, when Drupal 7 was finishing up....
IVAN: Circa 2011...
CHRIS: Yeah, but... the key moment in my development life was when Dries put out a blog post and he basically said, we need help. If you're out there in the community and you're just hovering, or if you're like window watching you're just looking at and waiting for this development to finish up and you maybe would want to jump in and help out. Please do come in help us out help us get Drupal 7 out the door. And then I was like, yes, I will shift things around I will get over my anxieties. I will jump into the issue queue see where I could help out. And I remember that all I could really do was test.
IVAN: Very important part...
IVAN: And you're doing that! You're at the core mentoring sprint. We're sitting in the room with core mentoring is happening right now before everybody starts arriving.
CHRIS: I think I've been doing the mentoring thing for like four years now, and that's kind of like my mission in life. My mission in life is to do whatever I can to empower other people to succeed. That's actually one of the Nerdery's core values, win by empowering others, and I know that I am not a genius. I've just been a person throughout my entire life that is willing to put in ample amounts of hard work. But there are those geniuses out there and if I could just put that seed of knowledge into somebody that they could take whatever I've been able to do and take it like light years further.
IVAN: So what's different in development today compared to when you first started, compared to D5, compared to where we're at?
CHRIS: I don't know how it is for other people. But for me, the main difference is how competent open source is. Like when I first started the company I was working at was like, hey this ColdFusion thing's really awesome. You should just really learn ColdFusion, we'll be doing ColdFusion like forever. I did we made some stuff with it was it was okay, but it was also proprietary. And every time every year that they had a major version everything was done in secret until it wasn't and then you were like, oh that breaks all my stuff. Oh you didn't actually solve any of the things I care about. So I mean with especially because I've been using Drupal for so long, when I have an issue with anything, I could jump in and create a patch, and then chances are if the if the patch has merit, it gets included into core and I don't have to support a fork of or at this this weird little thing I'm building on top. It's a part of the the thing and it's maintained by huge test suite. I can have a large amount of confidence about the tools that I'm using.
IVAN: Now, you're passionate about testing and automated testing. That's certainly something that I think we need more of in the world especially in maybe in agency life.
CHRIS: Yeah. Well, you know you go through that problem in a project where on deployment day you're just sitting there right that button and you're like, I think I know what's going to happen. Yeah, I'm pretty sure but am I do I have evidence, you know. Way back early in my career deploying was the most stressful thing possible because I didn't have a lot of confidence. I knew I fixed the things that I was working on, but you know, I've tested all the things I can. Maybe early in my career is I didn't actually test all the but when I press that button it's live and weird stuff might happen weird stuff happens that looks poorly on me and my abilities and if when you're starting off of it as a developer, you're like can I do this? Yeah, you're paying me to do this. I'm teaching myself how to do this, but. I know that I don't know everything, and I still don't know everything but you're like if I have like one or two jobs and people tell me I can't do this, maybe I'll believe them and maybe I'll just go be a car mechanic or something like that.
IVAN: Do you have a methodology that you use for testing? Do you have tools? How do you automate the process of testing your code?
CHRIS: Actually one of your friends Les, really opened my eyes to a practical approach which is to identify the five or so things about an application that are like if these things mess up then the soul of this project dies. And make sure that those tested. However, you can Drupal 8 has PHP unit which can cover functional testing, Behat is a tool set that is also somewhat supported. You just need to add in the extra libraries for Behat. You can write tests that cover those user experiences those interactions. In the past it was just straight up the Selenium client where they would record things you can just rerun that as I'm that's a macro.
IVAN: I think Behat integrates with Selenium as well. We called those four or five top things, critical paths at TEN7 and it's something we've always wanted to try to implement for a client but have never really been able to get there. So it's certainly a work in progress.
CHRIS: I had a client like three years ago and we were pitching the idea of having automated tests to them, and we actually try to break down some numbers. It's like look one test pass by one, quality assurance engineer costs this. We're planning on doing a number of iterations of this code base that that's what the project was. If we have that QA engineer do a full test passing generation, it's gonna cost this over the cost of the project.
IVAN: We can't see your hands.
CHRIS: Like the size of my head. So the sides of like to two or three of my heads would be the cost of like if we wrote automated testing so that that QA engineer doesn't physically have to test and retest all the things that the automated tests are covering and we can rake automated tests for the expensive things things that would take long in order to test, except for the fact that all the cost of writing those tests on the first iteration. So you pay upfront for the quality tests to get savings later. They were able they were receptive to that idea because they were if you're thinking long-term it makes sense.
IVAN: You invest in the beginning of the project to get the bang for your buck throughout the life of the project.
CHRIS: If you're an agency and a client comes to you, they could be very hinged on short-term thinking basis. It's just a sprint to get a site out there and then you're gonna hand it over to us and then we're going to go so maybe in that sense arguing for testing won't win. But I am I what I'm trying to get to is the point in which I am so fluent with testing that I don't have to make that argument like this testing is just a part of things and maybe it's a little bit of overhead. But because we're so was so tight, the testing is a minimal overhead.
IVAN: We're gonna wrap up soon. But I do want to ask you about Google+. You're a Drupal guy in my mind, and I know that you started the Google+ Drupal group. Is it called a group?
IVAN: Community, Google+ Drupal Community.
CHRIS: Yeah and when I started it, I called it the Drupal Community on Google+.
IVAN: Drupal Community on Google+.
CHRIS: Because someone has actually created a community before I did and they called it Drupal, and I was like, well, I don't want to do the thing where you name a thing and I named it thing and then...
IVAN: We have to fight about it and namespace.
CHRIS: I'll just call something a little bit different.
IVAN: So when did you start that?
CHRIS: Oh, right about the time the feature was released.
IVAN: And is it still in existence?
CHRIS: Yeah.. Yeah. The very first thing I did when that feature rolled out was I got in touch with all of the other people that had created community on Google+ for Drupal and I said, hey you're doing your thing. I'm doing my thing. Let's just work together. You know, I'll give you full administrative rights of this one, but you know, this will be a much better thing if we could just consolidate a working one. That worked out really well. We quickly got up to about 15,000 users and I found out that once you get that many users not some 1500 users. When you get to that number of users, you can't change your name.
IVAN: You can't.
CHRIS: So later when we consolidated, I could not consolidate the name. Couldn't change it back to just Drupal. Yeah, and now we're at 11,000 users.
IVAN: Wow, so the users that are in Google+ those 11,000 users, some of them are active some of them aren't. What are they getting from that community from that forum that they aren't getting on D.O or that they're not getting an IRC or they're not getting in slack or is there a lot of repetition? What's what's the value of that Google+ community?
CHRIS: There's a little repetition the posts are are visually different because of the way that they're able to combine pictures and videos and texts and stuff like that. And over the time the main reason why I created that was because of that feeling I felt when I was all by myself and there was no one I could talk to that also did Drupal because you know, I wanted wanted to have a place where other people who were just on their own could find a community of people to talk about Drupal. Kind of like an online group user group.
IVAN: So yet and yet another channel that makes people that might be more comfortable in Google+ accessible.
CHRIS: You know the philosophy was you know, if people use Google+ why not have a place that can just chill and talk about Drupal.
IVAN: I love it. Was there ever a Google Wave Drupal thing?
CHRIS: Well Google Wave was never officially a thing.
IVAN: That's true.
CHRIS: But I was ready.
IVAN: I was there too.
CHRIS: I was you know, Wave was a really interesting unicorn, and we'll never see anything like it again. I don't think they were had huge plans probably those plans killed it.
IVAN: But they used some of the technology and other parts of their suite of products.
CHRIS: Yes their operational transform in Google Docs and stuff like that.
IVAN: That benefited incredibly didn't it?
IVAN: Thank you so much for spending the time with me.
CHRIS: Thank you. And I just want to add that of the Twin Cities Drupal Community, it's people like you that highlight how open and friendly Drupal is, it's a kind of a very challenging thing. If someone has that experience of a development community that has been really rude to them to give another community a chance, and you know at the first sign of this might not be a good thing people might be rude, you know that person like me would just run. Oh not not gonna do that again. But it's meeting people like you and people like like Joe and Tim and other people in Twin Cities that made me feel safe to participate and I want to thank you.
IVAN: Thank you. You're welcome and thank you for doing everything you do. It's important to not lose sight of the fact that we're all human and then we all have our own thing going on and is as welcoming as we can be to everyone is kind of what we should be doing. So, thank you for doing everything you do. Now you're cosmicdreams on drupal.org, but you're not cosmicdreams on Twitter.
CHRIS: Well that someone already had it.
IVAN: So you're @chris_m_weber on Twitter. You've been listening to the TEN7 podcast. Find us online on ten7.com/podcast, and if you have a second do send us a message, we love hearing from you. Our email address is email@example.com. Until next time, this is Ivan Stegic. Thank you for listening.