Chuck Carpenter & Robbie Wagner from Web Whiskey and Whatnot stop by to talk about podcasting, hiring and firing, imposter syndrome, web3, Ember, and working with clients.
Time Jump Links
- 02:05 Guest introduction
- 06:01 Client work and new tech
- 07:51 Podcasting as a marketing effort
- 12:29 Sponsor: Memberful
- 14:11 Having strong opinions and life experiences
- 28:32 Sponsor: Notion
- 30:26 Building in Web3
- 37:25 Getting recruited
- 39:01 Dipping toes into Go
- 41:06 Talking Whiskey Web and Whatnot
- 45:07 Working in tech
- 52:30 Dealing with imposter syndrome
MANTRA: Just Build Websites!
Dave Rupert: Hey there, Shop-o-maniacs. You're listening to another episode of the ShopTalk Show, a crossover edition. I'm Dave Rupert and with me is Chris--in the booth--Coyier. Chris, do we got in the booth with us today -- crammed in that booth with you today?
Chris Coyier: That's right. I've invited everybody here to Bend, Oregon, and we smashed in this booth. No, just kidding. We're using the booth of the Internet, which is Riverside FM. I'm pretty happy with them for the most part, other than that mic just got weird for a minute.
Anyway, this is a special crossover edition of ShopTalk Show. It's been a while. It reminds me of how Douglas from Eureka traveled to Warehouse 13 to fix their computer system and then Claudia from Warehouse 13 traveled to Eureka, Oregon, to check out what was going on in their crazy town of Eureka. You know? I don't even watch those shows, but I just looked up crossover on the Internet and that just--
Dave: Or like when CSI Miami goes to Las Vegas?
Chris: Yeah, that was our classic one, but I'm like, have we used the like-CSI one too many times? I want to get a fresh crossover idea.
Anyway, these two fellows have an--
Dave: Okay. When--
Chris: Just shot down. Just shot down, Dave.
Dave: No, it was the WB does it all the time with Flash and super bands and arrows and--
Chris: Yeah, I mean Marvel made an entire trillion-dollar industry on crossovers, practically.
These two fellows are from shipshape.io, and agency a little bit like Paravel, I'd say. They're going to have some stuff to talk about there. And are the hosts of Whiskey Web and Whatnot.
I was just on their show not long ago, so that's what we mean by crossover episodes. We're all professional podcasters.
Robbie, Chuck, glad to have you on the show. Robbie, what's up, man? How ya doin'?
Robbie Wagner: Hey, I'm doing well. I am almost done with paternity leave now, so I've got like four whole hours of sleep last night.
Chris: Oh, congratulations. Your first?
Chris: Yeah. Right on! My cofounder is in that same bucket.
Dave: Congratulations. Yeah, you're in it right now.
Chris: Yeah. But look at you. You're glowing with a smile on your face. You're doing great, it seems like.
Chuck, what's happenin', man? Good to see ya. I've known Chuck a little bit longer.
Chuck: Yeah. Yeah. I think, a number of years over longer, back in my D.C. days. I'm just getting accustomed to the 90+ degree weather that we've jumped into this week. I'm in the desert. That just comes with the territory.
Chuck: But I got plenty of sleep.
Chris: That means it's negative 90 at night, right? [Laughter]
Chuck: Yeah, exactly.
Chris: Yeah. [Laughter] Yeah, right on. Well, let's do the basics first. For one thing, you have this agency, right? You're the CEO, Robbie. Chuck, you're the CTO, COO.
Chuck: COO. I think, in hierarchical terms, COO means number two, and that's the only reason why that ended up being the title.
Chris: Nice. Yeah. I thought that was president.
Chuck: Operational work. Yeah, maybe I could have been president. We could switch it.
Dave: Oh, you could pay Delaware $400 and call yourself whatever you want.
Chris: Yeah. CodePen quite literally is a Delaware corporation just because they have good deals on incorporation specials. But you literally make websites for clients, right? That's the ballgame.
Chuck: Yeah. It's usually like SaaS applications, I guess, like in some terms their website is like e-commerce stuff. But in general, we are operating on the World Wide Web.
Chris: Yeah. Right on. So, SaaS is the specialty. Interesting. Clients find you that are like, "We want to build - whatever - a dog walking app," or something. And you're like, "That's our bread and butter. We do--" because it has logins and has interactive functionality and stuff, and that's the sweet spot for Ship Shape.
Chuck: Yeah, I'd say so. Ship Shape started out as an Ember-specific consultancy. Then, over time, as trends and demands have changed -- Web speed stuff -- we tend to do a lot of Next.js these days.
Chuck: But exploring some other things as well. I mean, Robbie has gone down the Svelte path, the Nuxt path.
Chuck: Very interested in trying to do something in Remix. We had Kent on our podcast, actually, too. The only person more famous than you, I think.
Chuck: All ten of our listeners were really excited.
Chris: No, that's nice. Yeah, Kent is the most effective dev rel guy I've ever seen. I don't think I know a single thing about Kent other than that Remix exists.
Chris: The man lives and breathes it.
Chuck: Yeah, he does.
Chris: Oh, yeah. You knew that. You knew that. That's cool.
Yeah, I did notice, Robbie, that before you became the glorious CEO of Ship Shape, you were at someplace called RSA Security, and that was Ember all day, right? You just kind of brought Ember with you when you decided to branch out and do your own thing?
Robbie: Yeah. Yeah, I mean I was at a good point where if I failed doing my own thing, I could just run back to whoever and it was a good time. I didn't have kids yet. I wasn't married yet, so yeah.
Chris: That's when we all do brave things, except Dave. He does it after having two kids.
Chuck: Same with me. Same with me. I had--
Chuck: Yeah. I joined Ship Shape like two and a half years ago. My daughter is going to be three at the end of this month, so I jumped ship from middle management in corporate America to the consultancy world just based on Robbie promising me his firstborn if it didn't work out.
Chuck: But lucky for him, it's been good.
Chris: Good deal. It's been good. Well, congrats. It sounds like things are going good there. It's interesting how many frameworks you get to touch and play with. Sometimes I'm jealous of Dave, too, for the variety of stuff that he gets to work on. It kind of comes with the nature of client work, right?
Chuck: Mm-hmm. Yeah.
Chris: But you get to kind of do it on purpose. If you really wanted to play with Remix, is there a chance that you're like, "How about Remix?" to your next client, almost to scratch your own itch a little bit? You wouldn't force a tech on a client just for that. But if it's a decent fit, maybe, huh?
Chuck: Yeah. I mean, it would be great if you could kind of suggest these things, but probably a little dangerous to have them be your sandbox.
Chuck: We are trying to do some internal projects that might use it, and then we'd kind of go from there. Then we can speak on the expertise of building. Basically, build a dashboard, build some kind of admin app, and we get a lot of requests for that kind of thing, so there are some repeat patterns there and the difficulty in deploying it, trying to deploy it to Netlify, Vercel, AWS, and that kind of stuff too. I like to have that, too, because you have clients that are going to deploy things all over the place and not everybody wants to use the easy path.
A lot of places don't want to use Netlify. They want everything within the same ecosystem.
Chuck: So, it's kind of good to do both of those things on your own before you start suggesting it for money.
Chris: Yeah. That makes a lot of sense. Just this morning, in our Discord, somebody was just flippant about how difficult something became, even to deploy it to Netlify. You have to pay that cost before you can speak on -- you know, you suggest to a client before you've ever deployed it once.
Chris: Probably not super intelligent.
Chris: Then you podcast for fun, it sounds like. You literally drink whiskey at the show. You literally sent me a jug of whiskey, which I'm still highly appreciative. Thank you.
Chris: I used it earlier this week. I spoke at a conference with Dave, and I like to have a drink before I speak. You know? Warm the bones a little bit.
Chris: But do you find it helpful for the agency itself? I listened to another podcast, Postlight Podcast, which they're a big-time agency now out of New York, I think. But they do the same thing. They're like, "Ah, we're an agency, so we'll have this podcast to talk about the Web. It maybe gives us some social cred or something." I'd have to ask Dave why you've been doing it so long. But does it help? Do you think it helps Ship Shape to toss a podcast out?
Chuck: We have no idea. We figured--
We honestly started it for fun. We both like whiskey. This is a way for us to chat and - I don't know - get to know each other more. Let the world know a little more about us.
We didn't want it to be overly technical even though we're in that tech field. So, we just kind of thought it would be fun. That's why we started inviting guests because we thought it would be fun for people to listen to a podcast with tech people that wasn't just all about their tech. That maybe it was just about personal things and you bring whiskey into it to lubricate the conversation.
Really, it was just out of curiosity and fun. And if it, again, totally flopped, it was another thing where we were like, "Okay, we tried that," but we've been enjoying it, so we keep doing it.
Robbie: Yeah. Yeah. I think it's more about putting out content, so if we blog or podcast or do anything, no one is ever like, "Oh, my God. I heard this one podcast and I want to hire you and give you millions of dollars." But they may just know of us casually if we keep putting random content out in different spaces, so that's kind of the main strategy.
Chris: Possibly. I don't think I've ever heard a Paravel story that was like, "Because ShopTalk, then millions of dollars." Not quite. Right?
Dave: You know I actually don't know. I know we've had some business and some awareness come through the door through a podcast or this podcast. But it's not like the marketing arm or anything like that.
I actually find agency podcasts can be kind of rough when they are a marketing tool. It's like, "Ooh, buddy. This is a bad sell."
Dave: But I will say the thing that I do like about it is it actually helps me in client services when I've talked about stuff a lot, I have a lot of thoughts, I have a lot of opinions, I've talked through almost everything you can talk about already. Then sometimes there have been things like people will be like, "Hey, have you heard of Lighthouse?" Well, it's like, "Yeah, actually, the guy who made it was on the show last week." You know? Stuff like that.
There's been actually really cool situations where, in client services, that expert dynamic kind of matters. And so, where that expertise has been leveled up. It's been a net positive, I think.
Chris: Yeah, I'm sure. Even blogging is, too. You're like, "You think you get something. Just try to write three paragraphs about it. Good luck." You know?
Chris: Then you have 15 tabs open trying to verify what you're about to write. You know?
Chuck: Yeah, and that's almost the only way I'm going to remember some of the things I learned. I've had this idea to have a blog post about Lambda Layers, and I had done a PR into one of our serverless projects. Then left that PR open, didn't write the blog post right away, and I've completely forgotten everything about layers. What's the benefit there? Why would I do this? I have no idea, and so I'll be starting over.
Chris: Oh, no! I was hoping to get the two cents because I'm like, I use Lambdas all the time. I have no idea what a Lambda Layer is.
Chuck: It's shared resourcing, and it's supposed to speed up your warmup times or something like that. That's all I remember.
Chris: Okay. [Laughter]
Chuck: I'll share that blog post with you. [Laughter]
Dave: Node module cache.
Chuck: Yeah. Yeah, exactly. Something like that.
Chris: That would make sense because that's always a thing. Even from the Netlify perspective, it's like, gosh, you push one character change to your footer and it's time to download every node package while this entire website builds again.
Chris: You're like, I don't blame you. I don't have a better idea, necessarily. But weird?
[Banjo music starts]
Chris: This episode of ShopTalk Show is brought to you in part by Memberful. Memberful is easy to use, best-in-class membership software. If you're a developer and you've been tasked with making a membership site, which by the way is a fantastic business model, I'm sure most of the successful businesses on the Web are essentially driven by membership models. Pay me monthly. Pay this website for access to stuff on the website: downloads, extra content, email newsletters, whatever.
You've got work to do in making sure that that experience is good. You've got to build the website. You've got to build all the emails around it, all that transactional stuff. You've got to be making sure the content is properly protected and the different plans are being dealt with. It's a bunch of work.
You should take any help you can get out there. There is no need to be writing this stuff from scratch. You should use Memberful to do it.
Memberful takes care of all the hard stuff so you can focus on what you do best, you know, the building the website part. The building the content part. You should get to that point in which that you're earning revenue as quickly as you possibly can.
They have a super good WordPress plugin, so if you're a WordPress person like me, you've got that to use. Best in class for, you know, this page is protected and there's an upsell over here. Fill out this form to be a member - and all that stuff.
But it's modern, too, in that it has a GraphQL API. So, if you're using any other stack, there's a full-featured API to use to do all the stuff that you need to do. They've got that.
Then it's modern in the sense that it's like, let's say you want to control Discord members via if you have a paid membership or not. They have integrations there.
You want to send your paid newsletter through Mailchimp. Sure. Mailchimp is an amazing, best-in-breed product for sending newsletters. You can send it through Mailchimp, but only to your paid subscribers - and stuff like that.
There's just a lot to know and a lot to like about Memberful. Please check them out if your goal in the world is to make a membership-driven site. Memberful is the way. Thanks for the support.
[Banjo music stops]
Chris: I had an idea to talk about perspectives a little bit in that you have a show like this and it's nice to have opinions. If you didn't have any opinion, it would be the boringest show ever, right?
Chris: we almost try to thicken up our opinions a little bit.
Chris: Maybe even disagree once in a while. That's healthy for any multiple voice forum.
Chris: But when you have a strong opinion, the only reason you have it is because of your own life experiences, and you've worked on the tiniest, tiniest sliver ever of websites that exist. I'm sure all come at it with that knowledge that even though I have this opinion, it's informed by my limited set of experiences.
What are those sets of experiences? Wouldn't that be interesting to know? The reason I know Chuck is because my wife worked at National Geographic in D.C. You had kind of a long stint there.
Chris: Does that inform your, like, what does technology do? You know? You have opinions probably from those days, still, or at least that formed them a little bit.
Chuck: Yeah. I would say 100%. I spent five years at National Geographic. I was working on what we call global properties because they had various arms of the business and global properties would be the components that you would touch on every single site, like a universal login or a bootstrap library for setting up analytics or setting a video player that could work across properties and then you can load any kind of video, and it would also send analytics.
Yeah, I think I have a lot of opinions formed from media and then just having that time on a Web property that got millions of hits per day.
Chris: Yeah, so scale, technological complexity, and institutional complexity because, surely, thousands of people worked there - or whatever.
Chuck: Yeah. Yeah, and everybody has an opinion on something that's going to get a lot of traffic. And you have to do a lot of thorough testing. I mean, in our tech world where we have CI/CD ideologies where you would deploy 30 times per day where there are so many different hands in the pot, it's a challenging thing to ever try to get to that in that kind of forum. It's not a one size fits all ideology, although it's fun to get your code out there all the time and see your changes.
Chuck: It's the Web, so it's not permanent. But on the other hand, if you screw something up for 30 minutes, they could lose $100,000.
Chris: Yeah, so carefulness, too, maybe comes from that world a little bit.
Chris: The classic dynamic on ShopTalk is that I don't think Dave or I have worked at or for a company with thousands of employees. We just don't have that. Dave has done work for companies of that size, but I always come from the small guy perspective of, like, do a lot of small. I do a lot of solo projects. I do really small team projects. I have a Web app, too, that has really specific technological choices, and then thus don't have much other time to experience.
Like Nuxt or something that Dave talks about and comes up in our Discord a bunch, I spun it up once because I needed to for some random thing to learn quick, and that's it. My experience, my breadth of technological experience isn't as wide as somebody in client services. I try to keep it wide because, for a while, I wrote about the Web a lot.
Chris: But my hands-on experience is actually a little narrow, and it was mostly product work and one product, not a bunch of products. That was a cool dynamic, I think, for Dave and I because Dave did client work. It just has a bunch of personal projects, but I guess you can speak for yourself, Dave. What's the attitude you come at in tech-based on your history?
Dave: Yeah. I mean y'all probably have this similar experience. Sometimes you don't get to choose the tech. [Laughter] Sometimes the client is like, "We're Java and jQuery," and you're like, "Yikes. Okay. We'll figure that out."
Chuck: And run away.
Chris: You literally do figure it out, too, right? It's not like you're like, "That's outside my wheelhouse." You're like, "Java it is. Here we go."
Dave: No. Yeah, there is a -- you should be a shoe that fits. You know? They're going not get more value out of their money if they find a company that actually does Java and jQuery. But there is also -- we can do it, and we're small enough and agile enough to fit into teams.
But for the Microsoft homepage, we went out and went to BestBuy, bought a computer to put Visual Studio on it, so I could do asp.net. We just did what it takes to ship a website.
Chris: A lot of stuff informed by that. What do you think about yourself, Robbie? I guess I know the least about you. What do your past experiences form your current technological opinions?
Robbie: Well, yeah. I mean I guess I started doing Ember in 2012, and I liked it. Angular was kind of coming out around then. All the frameworks started happening. I was younger than more willing to move to different things, played with a lot of stuff, had different jobs in different things, even did some Java, .NET, and never again - thanks. [Laughter]
Yeah, I just realized that I really loved Ember and kind of moved back into that.
Robbie: The biggest opinions I've gotten from Ember, I guess, had been it is so opinionated that I just want someone else's opinions to be mine. I don't want to have to care about everything. I just want a set of opinions and go with it.
Chris: Yeah. You like it when other people make the choices. Yeah. Yeah.
Chris: Not that it's -- I mean that's a weird way to put it, but you like opinionated software.
Robbie: Oh. Oh, yeah. Yeah, everything that people think is the new hotness, basically, I just say no.
We finally ship it, and everyone is like, "Oh, no, no, no, no, no. We don't want classes. Let's do everything functional. That's the cool way to do it." [Laughter]
Dave: We do functional.
Chris: Man, I do so much React that mostly my opinion comes from that world in which that they were so, so deep down into class town only to just be like, "Nope. Sorry. Not only are we switching away from classes. We're going to ship the most important piece of technology that we've ever shipped - the hooks idea - and only make it work with..." so just going to drag your ass back away from classes was so weird, only to have it not be completely perfect in that, to this day, we have some class components because there are just some things that they can do that the functional ones can't. Leaving us in this crazy limbo town. Man, yeah, I could see a legit hatred of classes forming. [Laughter]
It'd be like a legit villain, like when you watch a movie and you kind of understand why the villain is the way that they are. Classes could do that to somebody.
Robbie: Yeah, and that's a classic React thing to do, in general, to have this thing that has always been the view layer, just a library, and then strongly shift towards a completely different way of doing it and also put these stronger state management mechanisms in it. I don't know. It's kind of what I like about Next is it gives you some safe guardrails around what React lets you do.
There are too many options. You can do it any way you want.
Chris: Do you wonder what their relationship is like? Has Next become more important than React is? If it is, how does it feel to work on React then? Do they talk to each other a lot? I don't know. It just feels weird.
Can React even make a big move anymore without Next's blessing?
Robbie: I don't know. I wonder. See, I think that it's an interesting thing that Vercel has been hiring up all of the framework people, though. It gives them even more potential power and options, like, "Oh, if React goes a direction we don't like, that's cool. We'll switch to Svelte," or whatever.
Chris: Hmm. That is kind of a power move, isn't it?
Chris: Yeah or maybe they'll just make a version of Next that runs on Svelte or something, not necessarily shift the whole project. I don't know. I don't know, but I think it's a big deal, and I wasn't trying to paint them as some big bad industry danger point or something. For the most part, I think it's amazing. Next is transformatively good. Anyway... That's probably your top framework that you all build on, generally, like if you had a greenfielder today.
Chuck: Well, I think if we had a greenfielder today, we'd try to dive into Remix, like on the side, and then see if that was a good fit. Kent really seems to feel like it is.
Robbie: Not Redwood?
Chuck: I think Redwood is interesting, but it's an all-in-one, and all the performance, like all the performance gains that Remix is saying it gives you and the way that it operates on the edge, it feels a little more interesting.
The only thing I like about Redwood is the fact that it includes really usable things like authentication packages like right in it, so it really is an all-in-one. It would be great for an NBP, I guess.
Chris: I would have thought, Rob, you'd be all over Redwood. Talk about opinions. Man, they're thick with opinions.
Robbie: Yeah, but it's still React. I won't touch React because everyone likes it.
Robbie: Just because it's Reacts.
Chris: [Laughter] I realize this about you - anti-React.
Dave: My people!
Chris: Yeah. [Laughter]
Dave: My people.
Robbie: Yeah. I do Ember and Nuxt and I've played a little with Astro, but I won't do any React. I just won't unless every other job goes away. Then I'll bow down and do it. But not right now.
Chuck: Yeah. Robbie represents a very small subset of our business because most of our business is in the React and Next world. I mean large companies trust React, and they trust Next. It's kind of proven itself to be good.
Then the other side of that is the hiring capabilities. It's like, "Oh, yeah. We could build this app in Ember, but we're going to have to spend $300,000 on every Ember engineer because it's a small pool, and they are going to work for LinkedIn, or they're going to get a bunch of money elsewhere. So, there's that aspect too.
Chris: I would have thought that because you literally already said, "Oh, we build a lot of dashboard admin screen kind of things." We just had Fred on the show the other day from Astro, and he's like, "That's not for Astro. Don't even try to build that in Astro. It's just not appropriate," kind of thing.
Chuck: No. No.
Robbie: Yeah, maybe. Yeah. Yeah, super opinionated. It gives you GraphQL auth out of the box. I mean I could see it being useful in that way. I don't know.
Chris: Unless the data source is, like, I'm building a dashboard for a data source that's not -- because Redwood cares a lot about--
What is their data? They have one major adapter thing. They care about where your data is.
Chuck: Right. Yeah.
Chris: They're not like, BYO data source. Yeah.
Dave: Prisma. It's Prisma. I like it.
Robbie: Yeah, well, Prisma has a few adapters now, right? They have a PostgreSQL adapter. They have GraphQL stuff. I don't know. I know they were coming out with more adapters. I do like Prisma as well, too. It's a nice ORM.
[Banjo music starts]
Chris: This episode of ShopTalk Show is brought to you in part by Notion. Go to the URL notion.com/codepen. I know this is ShopTalk Show and that's a CodePen URL, but that's the tracking URL we have to let them know that you came from us. That'd be cool.
I'm so glad they're our sponsor, a long-time sponsor, because it's just perhaps one of my favorite apps of all time. Just absolutely love Notion.
Learn more and get started for free at notion.com/codepen. That's notion.com/codepen to help you take that first step towards an organized, happier team today.
Why do I love Notion so much? Well, one of the reasons, and I almost hesitate to say this, is that it replaces a lot of apps in your business life. The only reason I hesitate to say that is because I'm like, imagine these ten apps, and you smash them together, and that is this app. I've seen that done before poorly. I bet you have, too, where it's just disparate apps, and they just so happened to be smashed together just because enterprise or something. That's not what Notion is. It's just a really well-designed app for working with your team that just by virtue of how it works, it just happens to replace some other tools.
Let's say the way that you do project management is essentially Kanban boards. Here are a bunch of tasks. What's the state of those tasks? Are they being worked on? Are they done? Are they blocked by something? Whatever.
I do a lot of that because I think it really helps a team stay on the same track. The Kanban board thing is cool.
It's not like Notion is a Kanban app. It just so happens that their database view supports that as one of the possible views. It could be a calendar view of that same data, too, or a list view, or something. That's just one of the things that you can do in Notion. To me, it doesn't scream that it's set out to replace Kanban boards, but it kind of did because it's so good at that.
But another way to think of it is just documents, too. Notion is just nested documents. Each one of those documents has a waterfall permissions level, too. That's important to me because I can invite certain people to certain documents and know that if I invite them at this level, they have access to everything below that, too. Their permissions model is beautiful. But you use it for things like your business calendars and the project planning stuff and the meeting notes stuff and the editorial calendar stuff and the internal wiki stuff.
There's so much you can do with Notion. I just love them. Thanks so much for the support. See you next time.
[Banjo music stops]
Chris: You've had a couple of shows on this Web3 universe a little bit.
Chris: What if somebody came knocking on the door and said, "Build me one of those apps"? Yeah, you'd probably do it?
Chuck: We'd definitely do it. We just don't know how yet.
Chuck: Just don't tell anyone. [Laughter]
Robbie: We will definitely drink whiskey and build your Web3 thing.
Robbie: We want to do that.
Chuck: Yeah, I'm very interested.
Chris: You both were nodding your head vigorously, so it sounds like--
Chuck: Oh, yeah. I'm very interested. I'm also very interested in infrastructure. I don't know that I've ever talked about this in a podcast, but I'm kind of tired of UI, in a way. I can do it.
Chuck: But I'm way more interested in serverless. I've actually played around with Kubernetes some. Infrastructure very much, and delivery very much, interest me these days.
Chuck: Doing that in a Web3 context, I would be all over it.
Robbie: Yeah. We have some people, like some of our contractors and some people that we know, that are kind of into some Web3 things, but it seems like even those people that have implemented a thing or two are still kind of like, "Eh, I use a framework for it, and I don't really understand what it does." [Laughter] You know?
Chris: It sounds like the front-end side of it is all the same, right? You still just build a website. Then I guess to your point, Chuck, everything else is different. Where the data goes is different. How you get the data is different and all that.
I don't know anything about it either. It seems very complicated to me.
On CodePen Radio, I talked to a dude who was getting into NFTs. It's a little unavoidable on the CodePen because there's so much generative art there that you can't blame those artists for trying to dip their toes to understand that world a little bit and possibly mint some stuff.
There's a slew of tools that it takes to even buy one NFT. It was quite the journey for me when I did it a couple of months back.
Robbie: Oh, you have some.
Chris: I do. I have some from the guy I interviewed. It's like journalistic integrity, I feel like, required me to go there.
Chris: I'm interested. I don't feel particularly apologetic about it. Although, I feel like there are some people out there that almost expect that out of you.
"You own one of these? Do you have a muffler on your car, too, you piece of garbage?"
Robbie: I don't. My car is electric, but--
Chris: Nice. Well, you're already up and up. I think you could buy two NFTs and you're square.
Robbie: [Laughter] Yeah, well, we have one that was a charity thing. A guy that we work with created an NFT, and it was a whole charity project for a children's hospital, so I feel good about that one.
Then I have a couple of dirtbag ones too, but no weird apes or anything like that.
Chris: Hmm. Dirtbag like -- is that an actual series of -- [laughter]?
Robbie: Oh, I don't know. Anybody who is anti-NFT, you know, looks down upon those that would actually get into the space. I don't know. I have one that's a membership to be able to buy other NFTs, which is probably a farse, and one that's an avatar for some online game, but they haven't quite released what all that is.
Chris: Have you looked at your wallet in a while? I opened mine up for the first time in a long time, and I bet there were ten additional ones that I haven't bought in there, because there's this thing.
Chuck: Yeah, don't click those.
Chris: Yeah, there are these ones that just can send you -- you can just put an NFT in somebody's wallet. I'm like, "Whoa!"
Chris: How neat. Great. In order to get them out, you've got to pay to get them out.
Chris: Whatever. What a joke.
Robbie: Don't click those.
Chris: Don't even -- what does "click" mean? Sometimes you--
Chuck: Like look at the image.
Chris: Yeah, but to even know that you have it, you have to look at it in some cases.
Chris: There's not like a text version of looking at your NFT.
Robbie: Uh... Doesn't Etherscan give you hashes and all that stuff and doesn't necessarily fetch the image?
Chris: Maybe, but I'm sure what my experience is, if I showed you the slew of apps that took me there, it would be a different slew of apps than your slew of apps. You know?
Chris: You know what I mean. There's the place you buy the crypto, and then there's the wallet, and then there's the marketplace.
Robbie: Gas fees.
Chris: Then there's where you put the thing after you get it, and so it's at least four right there.
Anyway, I was talking about the delivery of it, the performance.
Dave: What's good? Sorry... [Laughter] What's good? I don't understand.
Chuck: Let me pitch you an idea. We want to experiment. We've been talking about creating an NFT and associate it to the podcast in a way.
Say you bought one of our NFTs, and we give you a membership into Whiskey Web and Whatnot. Then we would buy -- we would do some barrel picks. And then you could get access to the barrel picks.
Like, oh, we'll send you whiskey, or whatever, because we can't sell it. We're not a liquor distributor. But if we went and bought a barrel and then gave it away to members of Whiskey Web and Whatnot, for example, that would be kind of cool. I like that kind of interesting utility, the membership aspect of it. It's like being in a wine club, except for you have this hash or tangible thing that you could sell your place in the wine club rather than just remove yourself and the next email on the list gets it.
Chris: Yeah. Well, I hope you get involved. If you get involved, you can work on the perf aspect because, as you're loading these sites, they're so, so, so slow.
Chris: I have to query the entire blockchain, or whatever it is. It's just my experience. Maybe there are some fast ones, but so far I've been like, "Wow, is this slow!"
Chuck: Yeah. That's true, like you said. Fetching the data aspect of it. How do you handle that caching? But then it's also just in time data.
Chris: [Laughter] Yeah. I just have no idea what I'm even talking about, so I will stop there.
Robbie: No Java.
Robbie: Yeah. That's cute.
Chris: It's still a thing. It's still a thing.
Robbie: How are you talking to a recruiter? What's going on? You've got that CSS-Tricks money.
Chris: A family friend. Yeah. Yeah. Yeah. No, it is a little rare, but I have been surprised at how little recruited I've been ever. I don't get those. Are your inboxes full of that stuff? Do you get one a day? Yeah?
Chuck: I don't know. I don't get one a day, but I definitely get some stuff. They're always weird and, like, "Did you read my profile at all?"
Robbie: Yeah, like, "Do you want to do some COBOL?" No. Have you met me? [Laughter]
Chuck: I get too many, I think because I did some Python at National Geographic. I get a lot of Python inquiries, but they don't notice that it was ten years ago and what am I doing now and what position I'm in. No, I do not want this job for $85 an hour in Virginia.
Chris: But does Python still come up a little bit? You literally say Ship Shape is a full-stack operation, right?
Chuck: I haven't really touched any other languages in a while.
Chris: Ooh... Really?
Chuck: Last year, I played around with Elixir. Then I shifted to just doing serverless stuff with the same API. Then--
Chris: You mean Node serverless, right?
Chuck: Yeah. Yeah.
Chuck: I was just doing Node serverless stuff. Then I did some Go at my last job, which I was engineering manager at Aquia, and one of my teams was doing a bunch of services in Go, so I dipped my toes in that some.
Chris: Yeah, well, tell me about that because that's where I'm at, at the moment, kind of liking that world of serverless. Go more than serverless. I don't really care where it executes. Wherever you execute Go, it's going to be fast as hell.
Chuck: Yeah, I was going to say it's fast. It makes a lot of sense. It was fun. Yeah. I mean it's great for microservices, I think. It's ideal to that.
Chris: Yeah, it is, kind of, right? Scripting, too, I'm finding. I have a job in front of me that's like, "Take this huge piece of data and loop through it and perform some logic on it and write it back to where you got it," but many tens of millions of times.
That's happened to us at CodePen a number of times, like we need to munge some data. In the past, we were a Ruby shop, and it was like, "Well, I guess we'll write it in Ruby then." Then you'd start the script and be like, "Well, I guess I'm going to control-C that mother fucker," because it's like 18 days.
Chris: This is not me. These are Alex and stuff that's working for us, so I'm just recounting his stories, but I'm trying to get into this world more. They're so strong in Go, and it's been so good to us that that same thing, that same script, you write it in Go, and you're like, "Well, that's going to take 38 seconds," or something. It's that many orders of magnitude faster, which is transformative. It literally changes technology when there are things that you had to just say no to before that you don't have to say yes.
Not only are you not saying no to, you're like, "Meh, no big deal."
Chuck: Yeah. Absolutely. I mean that's the power of that platform. It does small, very singular operations really well. You have a service for every major thing you need to do.
Chris: Who have you had on the show recently that was great? Tell us about Whiskey Web and Whatnot a little bit. You've been keeping it going, though, super consistent, so obviously you're having fun with the thing.
Robbie: Yeah, well, we recorded I don't even know how many -- ten or more -- in a couple of weeks, it seems like, because I was getting ready to go on paternity leave and we had to have one coming out, so we just reached out to everyone we could possibly think of. We were like, "Hey, come on the show."
Yeah, I'm trying to think. We were going to have Guillermo from Vercel on.
Chris: Yeah, Vercel.
Robbie: But he -- an hour before, I feel like -- was just like, "Uh, no." And then--
Chuck: I like how you're calling him out right now.
Robbie: I don't care. I speak my mind. You've met me. [Laughter] But no shame on him. I'm just saying it was a little annoying because we had hyped it up. The episode before it hasn't even aired yet, but we were like, "Yeah, this guy is coming on."
Robbie: And so, that was a lie.
Chuck: He used us for whiskey. He clearly couldn't afford his own Japanese whiskey bottle.
Chris: Just wait until they have a release, man. That's when I start getting the emails from Vercel. They're like, "Would you like Guillermo?" Then they tend to pair them up with somebody else. They're like, "How about Guillermo and..."
Chris: Anyway, you'll get that soon enough.
Chuck: Yeah, okay.
Chris: But now you're snake bitten.
Chuck: No. It's hard to say.
Robbie: No. No, I mean he's made a lot of stuff that I like, so no ill will there.
Dave: We've had enough guests that cancel that I think we no longer announce what guests will be on the show. I think that's a decision we made year one of the podcast was just, you know, it flakes. There's a 30% chance every time.
Robbie: Yeah, that's smart.
Chris: Then a 0.2% chance that we lose the episode somehow. We're putting a lot of trust in Riverside right now. There's a chance they screw it up. There's a chance your upload doesn't finish and they won't give it to us.
Dave: My computer.
Chris: Yeah, your computer goes. Anyway, it's happened.
Chuck: Technology is flawed.
Chris: It's happened.
Chris: One time we had a guy on, then screwed it up, and then we got him back. And I think we even did it a third time and lost it a third time.
Robbie: Oh, my gosh.
Chris: Do you remember that, Dave? Whale on Twitter, Matthew.
Dave: Yep, Matthew Smith. Sorry, Matthew.
Chris: Yeah. We really screwed that dude.
Robbie: I'm just surprised at how many people say yes, which is kind of nice.
Chris: Isn't it amazing? Oh, my gosh.
Robbie: Yeah. Yeah.
Chris: There are limits. You can't get Barack. But you can go pretty high.
Robbie: Well, have you tried?
Chuck: I was going to say--
Chuck: --does he like whiskey? I mean I think us leading with that, like, "We'd like to send you some nice whiskey and talk about it on this thing," but we're nobody. We weren't in the top three podcasts in the state of JS. Maybe that'll change. I don't know. But I'm surprised how many people say yes and come on and chat with us.
Chris: The amount of people that are, like, "Thursday at 9:00 in the morning? Sure." Isn't that when people do their job or whatever, usually.
Chris: I always like that one. What if you wanted to book a teacher or something? They're going to be like, "How about Saturday?"
Robbie: We have to take time off?
Chuck: Yeah, exactly. Yeah.
Robbie: Yeah. When Tom Preston-Werner came on, it was like, "He said yes? Okay. This will be fun."
Chris: Yeah. Yeah. That one is -- he's -- have we had him on? He's our biggest guest too, probably, as far as net worth anyway.
Robbie: Success and net worth. Yeah. Yeah.
Chris: I'm a close second, though. Close second, I'd say.
Robbie: Okay. Fair. That's fair.
Robbie: You've just revealed a little something.
Chris: No. That's pretty far from the truth because everybody has had their stint in Silicon Valley or their version of it, too, for the most part. We've got it good, these developers.
I was just at a meet-up the other night, just here in Bend. And there are probably two, three people I talk to that were boot-camping it up.
Chris: That's still a major phenomenon. Good for them because they see it's still very visible. Tech is still just a kick-ass career to have right now.
Chris: Coming from almost anything else.
Robbie: If anything, there's so much more demand too. It's so much easier to get a job now that starts really well paying right out of some of these boot camps. Yeah.
Chris: Yeah. I still don't quite know what to say when you see somebody looking for six months or something. There's some disconnect happening here. This should be easier for you.
Chris: I know who you are. That means you clearly -- it's not like I just clicked "follow" on random people on Twitter. I know you for some reason, which is probably through your knowledge of technology - at least a little bit.
Chuck: I think the interviewing process is broken at some places. That's the other part of it.
Chuck: They need people, and they want to hire, but then the interviewing process is flawed on some way. People are failing to perform in the moment, but probably can do the job just fine. They know how to make a website, but they don't know sorting algorithms or something because they're not going to work for Google, so you don't need that crap.
Robbie: Yeah. You don't need any algorithms for the Web. I'm saying it now.
Chris: Not a single one?
Robbie: Not a single one.
Chris: If you do, you can Google it in the moment.
Dave: What's the best interview you've ever, ever had? Or what would be your ideal interview process, either for hiring somebody or being hired? What have you experienced? I'd love to know that as I enter a phase of hiring.
Chuck: I mean, all we do is A) we have a normal get to know you. As Robbie would say, "What's your origin story?" Just talk about what they worked on, what they want to do -- kind of thing -- how you came into the industry, and your interests.
Then we just do a one-hour pairing session. We just sit down. Use your computer. You can get on the Internet and find the answers because none of us have memorized all the docs everywhere. And let's make a quick app with some routing. That's what you'll do on the job with us, so can you demonstrate that?
I think pairing with people and having them explain what they're doing and why they're making choices, to me, is the slam-dunk.
Chris: Yeah. Do you give a little leeway on, you're going to not perform as well as you maybe would have?
Chuck: Yeah. I mean people being nervous. Yeah, absolutely.
Robbie: I was talking to Eric Bryn several, several years ago now. He was looking at hiring some people. He runs an agency as well.
He was like, "Yeah, my hiring process is more or less just prove you're you," because if you have some GitHub history and some things you've built and you can show that you've built it and that you are you, done.
Robbie: Be quick to hire and quick to fire.
Chris: Oh, quick to hire, quick to fire? That's pretty good.
Robbie: That's how I do it because why spend 17 rounds interviewing someone? If you think they're pretty okay, just give them a chance, right?
Chris: That's great! Yeah, and that firing isn't this horrible, death beam disaster because you're almost freeing them up to go somewhere where they're a better fit, in a way.
Chris: You already gave them some money and stuff. I guess it could look a little weird if you have a bunch of one-month stints on your resume or something. That's kind of up to them. They could fudge their way out of that, probably.
Chuck: Talk their way through it. Yeah.
Dave: Okay. Let's do some role-playing. Let's do some role-playing where you pretend fire me. Okay?
Dave: Hey, guys. Yeah, just logging into work. I'm sorry it's late. It's been late for three weeks. I apologize.
Chuck: You have to do it. Robbie is the firer.
Robbie: Yeah. I mean I don't know. I usually give people a first chance. I'm like, "Hey, you've missed a couple of meetings. The clients are noticing. You need to be at the next one."
Then if the next meeting is the next day--
Dave: Oh, sorry about that. My thumb hurts.
Robbie: Yeah. I mean I don't know. I've only -- I guess -- have I fired two people or just one? I can't really remember.
Chuck: No, I think just one with Ship Shape.
Robbie: Just one.
Robbie: Yeah, so it's rare, but yeah. Basically, this guy missed the meetings again the next day, so I was like, "Hey, you've missed all these. It's not that hard to be online. We can't do this anymore. You're just terminated effective immediately."
He was like, "Oh. Oops." [Laughter]
Chris: Okay. That makes sense because you had a demonstratable failure and a chance for correction. I've screwed up the chance for correction thing in the past, like let it go way too long. Then by the end where it was obvious to me how many failures there were, it wasn't so obvious to them how many failures there were with no chance of correction. That sucked.
But once you've done the, like, "Hey, these are the problems," and you've kind of written them down. I don't even mind giving them a document that says, "This is what we talked about, and this is what we expect," so you can draw that up. It's not -- it probably would help in the court of law. Hopefully, that would never come to that. But still, if there's any question as to why that firing happened, you'd have some paper trail of it - or whatever.
Robbie: Yeah. I mean that's just essentially how you should be as a manager is that you should be communicating very clearly when things are good, when there's need for improvement, and so whatever outcomes shouldn't necessarily be a surprise to the employee.
Chris: I don't know what you say about the thumb hurt. That was a wildcard. [Laughter]
Robbie: You know how often you need your thumbs for Zoom.
Robbie: Dave, we're going to have a talk. Performance--
Dave: People come up with the wildest excuses in my whole history of work.
I worked with a lady at Linens & Things, and her armpits sweat a bunch, and she had to miss work because of that. [Laughter] I don't know. It was just a thing, so it happens.
Robbie: Yeah, the world is a strange place sometimes.
Chris: There are emotions into it, though. To say quick to hire, quick to fire, and then it's like, "Oh, you've got to be kind of bad-ass to do it."
I like the concept and don't think I have the cohunes or whatever. You know? [Laughter]
Chuck: Yeah. Robbie is really underselling his strength in that. He is very direct, and so if someone is sucking it up, he's going to really let them know.
Robbie: Yeah, you're going to get a message immediately that goes, "Hey, you suck."
Robbie: You know?
Chuck: Can I get that in writing?
Robbie: Well, no. It'll be nicer sounding, but I'm not going to just be like, "Oh, we'll just wait and see." You're going to get feedback immediately, and I'm going to give you a way to improve. And if you don't do those things then you're in trouble.
Chris: Yeah. That's the right thing to do. It's an adult thing to do,, and it's easy to do it with children, for me, because it's so cut and dry when they're just being a little jerk or something. But with an adult, I have this problem where I'm like, "Yeah, but I suck too," you know? I think of my many failings. How could I possibly give you feedback when I'm such a piece of garbage? You know?
Robbie: Hmm. Wait. Chris, do you ever have imposter syndrome?
Chris: No. [Laughter]
Robbie: There you go. Awesome.
Chris: [Laughter] I just don't really get it because I've always been in this position where I don't really need to impress anybody or anything. I don't know. I asked you for what I need and you give it to me or not. Big deal. I don't know.
It's not that I'm not sympathetic towards it, but I think that you're not knowing how to do something is also kind of a normal feeling and that it can give you the drive to then learn how to do that thing that you didn't know. Just because you don't know something and be like, "I'm so dumb. I don't know anything. My whole life is a lie," kind of thing. Wow! Taking it a little too far there.
If that's how you really feel, I think that really maybe it actually is a disorder or something. But if you're just like, "I don't know how to do that. That's amazing how smart other people are, and maybe that's my drive to learn how to do the thing," that just falls into the old normal bucket of emotions and doesn't need a big, special world to describe "I don't know a thing."
Robbie: Yeah. Yeah, I think Chuck said it well -- I think in one of our recent episodes. We were talking about what makes a senior developer. It's not really that you know more stuff, necessarily. It's that he's confident he can figure anything out. Right?
It's not like, "Oh, yeah. I know everything." It's just, "I'm more confident I can learn all those things and do it well."
Chris: Nice. Yeah. I feel like that way for the most part, although, I am being very humbled in my journey towards back-end development in Go. There are a lot of things where, even in my own app, like this week we have this--
We're working on some next-generation CodePen stuff. There's an aspect to it where we take your code, and we render it, like we do now on CodePen. There's a very robust pipeline of things that happen to the code that you author before it gets turned into essentially a URL that gets then rendered to you. We're making promises.
We're trying to deliver you a DX experience when you write code that might require running preprocessors. It might require running processors you don't even know about (for your own safety). It requires DNS crap and hosting that content on a URL that's not one that's the same of the parent page because that would be ridiculously dangerous for XSS reasons.
There's just a lot of stuff that has to happen internally. There's one thing what happens on production, and then another thing that happens in development. Hopefully, those things are pretty close to each other because debugging one that's very different from the other would suck. So, we try to make production and development as close as they can, but they're not always identically perfect. There are different URLs, little different network stuff that happens.
But I have this idea that I want to start running more and more stuff through Cloudflare. We mostly run everything through Cloudflare, but maybe even those pages, too, like your rendered output because Cloudflare has this thing called workers. I don't know if you've seen, but they're just so cool, and they give you this opportunity to potentially even manipulate the request before it gets to somewhere, but it's so, so sticking fast that you can perform those manipulations, like change some headers or even manipulate the HTML on the way.
We haven't actually done that yet. We have a different way of doing it on CodePen today, but I wanted to explore it. They have this product called Mini Flare, which is their local development version of Cloudflare worker.
Chris: We're pretty big on that, like, let's make sure our local development is just like production. Cloudflare workers, the normal product, that's a production-only concern. But that sucks. How do you replicate that locally? Well, you run Mini Flare.
I was just humbled as can be. I was like, "I'm going to install this and run it before our local development servers," and I had no idea how to do it. I spent half my morning being like, "Where do I put this? Is it a docker container or something that fakes the server?"
I was like, "If I put my mind to it, I could do anything." That's what got me thinking about this, your guy that doesn't have imposter syndrome because he was so confident that he could figure anything out. That's not me. I am stopped regularly at things that I just cannot figure out that are just so far in the back-end side of things that no amount of slowing down, really being careful, and looking at stuff. I just hit a brick wall, but I know I can climb the brick wall because I can get on Slack and be like, "Help me."
Robbie: Mm-hmm. Right.
Chris: And somebody will be there to do that. So, I still have a way to climb it, but alone I don't have that confidence. I still hit the wall.
Robbie: I don't disqualify that. I think that that is in the realm of knowing how to find the answers. Part of knowing how to find the answer is knowing when you need to reach out for help. You can still solve the problem without doing it alone and saying, I know where some of the experts are that can give me some hints and get me through some of these blockers. And then I'll keep going, and then I'll keep chugging away.
Chris: But imagine you're not me. I've spent my lifetime cultivating the people that I can ask about things. If you're new to the industry and you're hitting these walls, which you'll probably hit more of than I will because I have more experience than you do, and you don't have anybody, you maybe have -- maybe you're in the Wes Bos Slack group or something, so maybe you're asking.
Chris: But can you imagine how much more painful it is to hit one of those walls and not know how to climb it? That's what I think the feeling of imposter syndrome comes from is, "Dude, I'm hitting these walls constantly and I just have no recourse. I feel like I'm just done."
Robbie: No network. Yeah. I don't know. You get on the cloud-native foundation's Slack group because it sounds a little like a docker container and the cluster that you would access, but not sure.
Robbie: Then what was the Mini Flare or does Cloudflare have some sort of help channels? You start exploring that.
Robbie: I don't know. Yeah.
Chris: They totally do, for the record.
Robbie: We don't all ... Chris Coyier to get the answers, but I understand where you have a very deep network to reach into. People are probably like, "Oh, it's cool to help him and help CodePen get through a thing."
Robbie: I wanted to regress a little bit, though, because, yeah, I remember when Cloudflare workers came out quite some time ago, but they're just kind of getting hot now. And then AWS now has the Lambda functions, which I think are kind of the same.
Chris: They don't really do the edge function quite yet, right? They'll have Lambda at the edge, but maybe they do. Netlify released theirs like yesterday. They have little edge functions now, so everybody is getting in on it.
Robbie: I think the Lambda functions, which are different than your normal Lambdas--
Robbie: Yeah, they have this new thing. Maybe I'm not even saying it right.
Chris: Oh, I'm sure you--
Robbie: But they have a second thing that is exactly for the purposes of what you're saying, like manipulate a header on its way through. And also, you don't have to use the--
You could actually have a direct URL instead of having to go through API connects.
Chris: DNS or whatever?
Robbie: Yeah. Yeah, so some interesting things.
Chris: Yeah, that's what feels like uniquely qualified for Cloudflare. So many sites run their DNS through Cloudflare too.
Chris: Because you want the DDoS protection and all the cool performance stuff that they do. Then that's what gives them this opportunity. They are your edge already, so running your functions there makes sense.
Whereas it's harder with a Lambda because I think a lot of people take advantage of Lambdas despite not really doing all the rest of their DNS at AWS.
Robbie: Right. Yeah, that's true. Yeah, you've got to kind of buy into an ecosystem, right?
Chris: Yeah. Right. That's why the cloud industry is so crazy and so big is once they got you, you tend to stay there. You know?
Robbie: Yeah, because it's so damn complicated to get everything going. It's like, "Well, I'm here now. I'm not going to do this again."
Chris: It is. There are so many opportunities to be just humbled in this job, isn't there? [Laughter]
Chris: Part of our responsibility is to not show that. I'm almost glad I don't have clients because I'd be the worst guy to call. They'd be like, "Could we do this?" I'd be like, "I don't know. That sounds weird and hard."
Robbie: You always say yes and figure it out later. Right, Dave?
Dave: Ka-ching, ka-ching, ka-ching.
Robbie: Since none of my clients listen to any podcasts that I'm on, I'm not too worried about it, but yeah. You just say yes and figure it out as you get in there.
Chris: That's good advice, people. Fake it to you make it is the official word for that. Well, thanks so much for being on the show, guys. Dave, do you have any final words?
Dave: Yeah. Thank y'all so much for coming on the show. Really appreciate it. For people who aren't following you and giving you money, how can they do that? We'll start with Robbie.
Robbie: [Laughter] Yeah, you can find me everywhere -- GitHub, Twitter, et cetera -- as @rwwagner90. You can find Whiskey Web and Whatnot at whiskeywebandwhatnot.fm, and Ship Shape at shipshape.io.
Chuck: Yeah. I guess I would just say sort of ditto. I'm not on all the things.
Chuck: I did have to get on Twitter for some crypto thing recently. I think I'm @charlesthethird on Twitter. Just LinkedIn, Chuck Carpenter; GitHub, Chuck Carpenter. But mostly through the Ship Shape stuff.
Dave: Perfect. Well, thank you. And thank you, dear listener, for downloading this in your podcatcher of choice. Be sure to star, heart, favorite it up. That's how people find out about the show. Follow us on Twitter for 16 tweets a month at @ShopTalkShow. Join us in the D-d-d-d-discord, patreon.com/shoptalkshow. We have a YouTube, youtube.com/shoptalkshow. You're getting the theme going, but anyway--
Chris, do you got anything else you'd like to say?
Chris: Oh! ShopTalkShow.com.