POPULARITY
What if you could replace your corporate salary with millions in e-commerce sales? This inspiring episode brings together Robert Gomez, a former senior finance manager at Microsoft turned successful e-commerce entrepreneur, and Kseniia Reidel, an aspiring Amazon e-commerce star. Robert reveals his transformative journey from the corporate world to achieving over $10 million in sales on Amazon and Walmart brand called Kaffe. Kseniia, on the verge of hitting her first seven-figure mark using Project X methods, shares her innovative strategies and experiences in scaling up an Amazon business. From facing the challenge of declining sales due to over-dependence on a single product to launching new product lines in Walmart, Robert and Kseniia provide invaluable insights into the world of e-commerce adaptability. They discuss the critical importance of diversifying product offerings and successfully managing logistics during peak seasons. The conversation underscores the significance of strategic retail placement and the rewards of being flexible in the ever-evolving online and retail marketplaces. We also delve into the game-changing benefits of hiring Virtual Assistants (VAs) for essential tasks like product research. Learn how effective VA onboarding can propel business growth and the impact of diversifying sales channels beyond Amazon, including Walmart, Faire.com, and even TikTok Shop. With strategies for maximizing profit margins and leveraging social media for brand growth, this episode is packed with actionable insights for anyone looking to thrive in the competitive Amazon, Walmart, and e-commerce landscape. In episode 587 of the Serious Sellers Podcast, Bradley, Kseniia, and Robert discuss: 01:08 - Amazon Seller Stories - Catching Up with Kseniia Reidel & Robert Gomez 10:17 - Dependence on Declining Kitchen Appliance Sales 10:24 - Navigating Brand Pivots and Retail Success 20:32 - Walmart Retail Expansion Success Story 22:52 - Product Expansion and Virtual Assistant Hiring Success 26:17 - High Margin Product Strategy Growth 29:01 - Product Launch Strategy at Walmart 36:55 - Amazon Seller VA Time Management 40:01 - Exploring TikTok Shop for their E-commerce Business 41:12 - Retail Expansion and Product Development 44:04 - Brand Expansion Strategy Discussion ► Instagram: instagram.com/serioussellerspodcast ► Free Amazon Seller Chrome Extension: https://h10.me/extension ► Sign Up For Helium 10: https://h10.me/signup (Use SSP10 To Save 10% For Life) ► Learn How To Sell on Amazon: https://h10.me/ft ► Watch The Podcasts On YouTube: youtube.com/@Helium10/videos Transcript Bradley Sutton: Today we've got two guests back on the show who've never met each other, but they've both been on here before Robert, who's generated over $10 million of sales with his brand on Amazon and Walmart, and Kseniia, who used Project X strategies to launch her first product, and now this year she's about to hit seven figures for the first time. How cool, is that? Pretty cool I think. Not sure on what main image you should choose from. Or maybe you don't know whether buyers would be interested in your product at a certain price point. Perhaps you want feedback on your new brand or company logo? Get instant and detailed market feedback from actual Amazon Prime members by using Helium 10 Audience. Just enter in your poll or questions and, within a short period of time, 50 to 100 or even more Amazon buyers will give you detailed feedback on what resonates with them the most. For more information, go to h10.me/audience. Bradley Sutton: forward slash audience. Hello everybody and welcome to another episode of the Serious Sellers Podcast by Helium 10. I'm your host, Bradley Sutton, and this is the show that's completely BS-free, unscripted and unrehearsed organic conversation about serious strategies for serious sellers of any level in the e-commerce world. And we've got a couple of serious sellers back on the show Robert for the second time, Kseniia for the third and a half time. We had her on a little Prime Day special here. But welcome back to the show, guys, your first time meeting each other was today. Right, you had no idea who each other was. Robert: No idea. Bradley Sutton: I love doing that. I love bringing different sellers who maybe under other circumstances, might never have known each other. So it's really good to see that people from all walks of life have success on Amazon. Now, if you want to get the backstory of Robert, his first episode was on 448. So we're not going to go too much into his backstory here. Maybe we'll touch a little bit on it, but 448 is a good one to see his episode. And then Kseniia has been on. I think her first was episode 320. And then she was back on episode 441. So we're really close to Robert's episode there, talking about how she 10X her sales from that first episode today. I'm not sure what we're gonna completely know about. We're gonna catch up, completely know about. We're gonna catch up with them might be up, might be down, but hey, we keep it real here. We're not here to make it seem like, uh, everybody who comes on is gonna 10x their, their, their sales. That's not why we brought her on the last time. But uh, let's see, let's see what happens. So, first of all, Robert, you know, like, like I, you know, the one thing that maybe people who listen to your episode, uh, that stood out was how you were still working at I don't remember it was like Microsoft or something like that for years and years, even though you were already a successful Amazon seller and that you had just around. That time finally was like, all right, I'm going to quit the day job. So you know, you have a couple of years maybe under your belt not working for the man, as it were. So how has that been? Robert: How's that transition been from so long being like the corporate world and stuff and now being your own boss, kind of I think last time I was on was around that time that I had just quit or was about to quit or something. But yeah, I was at Microsoft for a few years. My background is in corporate finance and I started Amazon, kind of like a side venture, back in 2017, 2019. I launched the current brand that I have, but I sort of held on as long as I could, had a whole team and everything, before I finally quit. And around that time was when we were going into physical retail and we had got our first sort of big contract. So you know, it was kind of just time. The amount of time it was taking, the amount of efforts it took to execute that program just had to do it. Robert: And it's now been a little under two years and it's amazing, I mean just the fact. I mean I love I was there for a reason, you know, and corporate served this purpose. You know, I think I'm always able to say that I used to work for Microsoft and that's kind of level setting very easy to tell somebody. But at the same time, obviously it just wasn't for me. From the day I joined Microsoft, I already knew that I wanted to quit. I already had the Amazon business and everything. It was just, you know, really just the golden handcuffs, as they call them. But yeah, haven't thought about going back any single time in this past year plus. So, yeah, thankfully, you know, any day that I get to do this has really been a blessing. It really doesn't feel like work. Bradley Sutton: What would you say were the effects of it as far as on your Amazon business? Like having more time to focus? Like, did it stress you out more? Was it the opposite? Were you able to take care of things that might have slipped into their cracks? Were you able to scale faster? You think? What were the differences on that part of things? Robert: It's hard to quantify it in that sense. But basically you know the role I had at Microsoft. I was a senior finance manager. My team was in the west coast at the headquarters, but I I'm based in the east coast, so it wasn't the amount of necessarily time it was taking. Quite frankly, you know, I had a pretty sweet sort of setup where I didn't take a lot of time right, and that's what made it even harder, because the more you get paid and the less you kind of work. Of course that just sounds like a dream, right, if I just, you know, mentioned it to friends or just talk to people about it, like what are you doing? What are you thinking of putting it for? But it was just the mental sort of real estate, the real estate it took in my mind, even if I only had one meeting that day or two meetings that day. It was just kind of thinking of like oh, I have that meeting coming up, or just like I have to do this, or the feeling of like not giving something. Robert: My all you know I'm kind of like all or nothing type of guy and so like just having to, like almost feel fake in the way that I showed up to work and it's. They still thought I was doing a good job. You know we had reviews and I was kind of doing OK and good on them, but internally I just felt terrible, you know, and then I just felt like if I could focus all the time, you know, on Cafe, it would unlock a lot of other things and it has, you know, like it has allowed me to get the team into more of a rhythm in the way that we run meetings and run cadences for certain product development, for sales, et cetera, whereas before it could have been interrupted at any given moment, right, because basically I had a job so I could always take that backseat. Bradley Sutton: So yeah, it's been a ride, All right. Interesting. I think that's something that Amazon sellers out there, once they hit a certain level if they were working, you know is like a universal question All right, at what point do I do I, you know, give up the steadiness of income and the reliability and the insurance and things like that and go, you know, you know, focus solely on my, my Amazon business? For the people who already are out of out of the, the people who already are out of the corporate world once they start their Amazon business, well, they're just all in from day one, kind of, so they don't have that option. But I think the answer is it's different strokes for different folks. You're probably waiting the longest, more than anybody I've known, wasn't it like, even after you started your, your amazon business? Like a good three, four years um? Robert: yeah, it was about ready to get multiple seven figures at that by that time yeah, yeah, um, we had sold a total of uh, maybe like 12 million or so, um, before I quit, and we rolled, I quit, we rolled out 4,000 Walmart stores and then I quit, basically yeah he was still rolling out 4,000 Walmart stores with his product. Bradley Sutton: He's like you know what. Yeah, I think it's time now, but that just shows you that's not the wrong choice. Robert: There's other people who wait after one month, and they're ready. Bradley Sutton: That's not necessarily the wrong choice. It's whatever works for you. Robert: There was no room for error. If I messed any of that up, not only would I need a job I would be way in that way, so there's one way to look at it but also the focus was there. That was my full time job. You know, I always say Amazon was my full time job, and then I had kind of a side side job in corporate. Bradley Sutton: All right. So now going back to Kseniia, first of all, I'm not sure you know I don't remember the kind of things we talk about all the time. My memory is so bad. But then you know, Mhel gave me some notes this wasn't on there but before you started on Amazon like I do have in my notes here that you were doing like selling collectibles on eBay from Russia and things like that, but at any point, while you were doing Amazon, did you also have a day job or you were 100% your e-commerce business from day one? Kseniia: 100% e-commerce. Bradley Sutton: A great contrast I didn't even plan that, but is perfect. It is to have a. To have the contrast here now. I remember one thing that was, you know, kind of like the highlight of your old episodes is is the way that you discovered uh and launched some of those first products that brought you success was like using the project x uh method. So that brand that you started back in you know 2021, 2022, whenever it was uh are you still selling that brand today, the successful one? Kseniia: Yep, still selling. I've had to change a little bit the product line and expand it but, yeah, the first product since from which one it started still there, still selling. It was exactly three years ago, actually, in August 2021. Bradley Sutton: Wow, okay, perfect, perfect. Now, the last time we talked back, in 2023, uh, I think some of your closing comments about your goals was hey, you wanted to kind of like focus on, on building the brand a little bit more. I mean building the brand in the figurative sense, not, you know, not just expanding their products, but like actually building a, a brand. And how, what did you do to try to do that and how has that, those efforts, worked out? Kseniia: Well, the first thing I want to talk about is what happened after last we talked. Is that in 2023, I lost like 40 percent of my sales? Wow, let's keep it real here. Bradley Sutton: Let's keep it real Well, what was it an attack or just you know the competition? Did you make a huge mistake or what? What happened? Uh, did you make a huge mistake or what? What, what, what happened? Kseniia: yes, I made a huge mistake, totally my fault, because when I started building this brand, this brand was focused on accessories for a kitchen appliance, and what I didn't think about is that my sales are going to be totally dependent on the sales of that kitchen appliance. Under no, no, no circumstances I can sell more accessories than the appliances sold. And so what happened is, in 2021 and 2022, the appliance sales were growing and they were doing a lot of social media, so my sales were growing, with me not really doing anything, like I didn't do any social media for my brand. But in 2023, from the beginning of 2023, for whatever reason, their sales started dropping like every month, less and less and less, and by the end of the year, I think they also lost like 40 or 50 percent of their sales and your sales were 100 reliant on theirs, yeah, the same. And anything I was trying to do. I tried to do social media, I tried to do Google ads at an agency, but nothing really was just a waste of money, basically because their product wasn't selling, so my products were not selling and my brand was 100% focused on accessories around that kitchen appliance. Wow, okay, so like I had eight products, I think, by the end of 2022. And they all were related to that kitchen appliance. Bradley Sutton: Interesting, interesting. And so then you're like how do you pivot from something like that? It's like you know, your whole concept of your brand is around this one thing. And here you are trying to build your brand, but then like, wait a minute, this is not the direction I need to keep going, or else I'm going to keep going down yeah, I spent several months on trying to think about what to do about it. Kseniia: I was like, oh, do I just dump it all and just start it all over? But then, like I had a patent pending for two of the products because they were selling really well and it was really my like design idea that I totally made from scratch, I was like I don't really want to dump it because, who knows, maybe like next year, their sales will go up again, you don't know. So I was thinking about it and I just decided to expand into the products that not a hundred percent related to this kitchen appliance that but can be used by the same people but also can be used by other people as well. So kind of exit the sub niche and get in a little higher niche. So they're still all related, but now I'm not tied to that kitchen appliance. Bradley Sutton: Now, did it help at all that you were in that niche already to launch these other products? Were you able to market to your existing customers at all, or was it almost like starting from scratch again? Kseniia: No, the first product that I launched after that was not 100 related to the other brand um was made for I actually got the idea from the customers of that brand, but it was also being bought by all other people. So and sometimes I see that the um, some of the purchases that are made, they're made like two products bought together yeah, the one for the brand and not not for the brand. So the first one kind of easy, and then I started expanding a little bit more outside of the something totally not related to that brand. Bradley Sutton: Okay all right. All right, we're going to come back to you because I want to uh, double click on a couple of those things you're talking about. But now back to Robert. You know you had mentioned how, in in around the timing of the last episode, you're launching Walmart and there are thousands of stores. Um, I would assume you know we're here in in august that it's been over a full year now of Walmart store sales. So how would you, how would you say that that's gone? Like what kind of gross sales we talking about just in in stores on Walmart, and are we only talking one skew? Robert: Yeah, so we launched, uh, maybe, yeah, 16 months ago or so, with two skews uh right away. Basically, one of those items was the intro offer. What they call that at walmart is basically the the cheapest option of that product at walmart right, in this case a coffee grinder, and from the time it went live it just started really selling. Just basically, we could see from the data like Nielsen data, which is like official retail data, not counting Amazon and e-commerce we could see that our product was the best-selling grinder in the us, like across all retail points, just because of that walmart placement, right like. So, imagine walmart being, you know, the kind of highest volume retailer and you're the cheapest in uh or the intro uh pricing there, so that that, you know, had what was kind of like a big boom. Robert: Uh, struggle to kind of just make sure you know, basically keeping up with their projections were a lot lower than we actually did end up selling. Uh, and you know I kind of had already predicted that we would sell, about you know, more than they predicted, just cause that product did well in any other channel that we put it Um, and so, yeah, just kind of stabilizing that right, so making sure that through the holidays. Bradley Sutton: I would always remember your uh, remember your Instagram post. Robert: You would be going around to Walmart's all over the country you're on vacation stuff and go to the shelf where your product is and look it's empty, like we're sold out, like it's a fly, literally flying off the shelves yeah, so that's what was happening, you know, and so because it had one facing, meaning it's on the shelf once, instead of like having two, two of them and it would sell kind of fast enough that basically it wasn't. It wasn't able to maximize what it could do, right, because it wasn't available fully right. So we were missing, you know, maybe 20, 25 percent of sales there until, like, the Walmart kind of system catches up with it, like, uh, their forecasting system, um, but yeah, it's basically uh, it's bigger than an amazon business, uh, it's a high seven figures kind of deal and we're counting wholesale costs, so like not the actual retail, so it kind of would be bigger. And the thing with Walmart there is, you know it's compared to amazon it's huge. You know, like it's guaranteed you're a vendor, there's no middle sort of person there and just you know they place every week orders for 42 distribution centers, so like, basically every week we get 42 orders and it goes to other distribution centers, and then this May, so basically a year later or a little before that, they launched one additional item, so they added one more to the two and now there's three. And I also went to another line review for next May to hopefully add a couple more items. So it's just kind of working on the retail side there, but separately. Robert: I was actually in Puerto Rico yesterday. I was, as I was telling you, meeting with the Walmart Puerto Rico team because they're rolling out, uh, basically a whole section of like 15 items, um, like they're, they're actually like taking up a whole section, um, and that, you know, even though there's not that many stores in Puerto Rico, it's a, it's a huge kind of way of proving it out, like you know, hey, you know, we did this over there. How about, you know, over here, right, right, two other retailers in the us, and that's kind of where the strategy is. So certainly ups and downs, you know it's not always, uh, rainbows and butterflies, as they say. Uh, that side of the business is great. That's what we've been focusing on for a while. But, uh, there's amazon as well. Not such a pretty picture there, but we're still going at it strong, obviously we're gonna want to uh, you know, uh listen to your story on amazon. Bradley Sutton: But just going back to the Walmart you might have said this in the last episode but, like I said, I forget things how was it that you even got into Walmart before? Did you start to sell on Walmart.com? Did a buyer at Walmart take notice of you because you were crushing it on Amazon, amazon? You know that's probably the hardest thing for somebody who's interested to get in Walmart brick and mortar is getting on the radar of the buyers and actually getting you know in a media unless you'd, like you know, win a contest or do that uh open call or something like that. But how was it that you were even able to get your foot in the door with Walmart? Robert: Yeah, so a little combination of a couple of things you mentioned, but essentially we have a broker, okay, and a broker, what a broker does, and it wasn't the first broker we had, by the way, and we have one for Target we have. You know, these brokers kind of charge a single digit percentage of sales if they ever sort of get you in the door. Some charge a monthly retainer. In my opinion I wouldn't go with those. You know, the ones that are like serious in my opinion more are the ones that charge you a percentage only if they ever get you in the door, right, um, and so we had tried one. It didn't work out. I mean, it's the same as us reaching out to the buyers, which we had also done, you know, and they don't really reply. You know, like all these retailers at least the, the biggest retailers they have once a year kind of reviews, right. So if you kind of get invited to the review, then maybe you they'll review your product, but that has to do with whether they're wanting to change whatever they have on the shelves, whether they're open to whatever you have, just like a lot of different things. Like the most common thing to happen is that they don't change anything on the shelf Right If it's kind of working or. You know, their jobs depend on the performance of what's on the shelf Right. There's not unlimited amounts, so they're very picky on what they select in. So that's why it's kind of like an uphill battle to get into the retail shelves, and more nowadays that everyone's pushing for conf right. If anything, they'll tell you oh, go try conf first. That's just kind of like a cop out to say like we don't want you on the shelf at the moment. Robert: So how it worked with us is basically we had worked with a broker. It didn't kind of work out, just no motion there, and not to their fault. But another broker reached out and said hey, you know I can try to reach out, and he did, and it was regarding our coffee grinders and they basically said you know, you can come to Venville to present it at our line review in June of that year and they had seen the product on Amazon. So yeah, I think we were bestsellers or just doing really well compared to other things they had on the shelf and they invited us for that one product and of course when we went I presented other products Right. So you have like 30 minutes. You set up on a table and it's like go, go, go, and after that just kind of I thought it would be like a lesson learned sort of like. You know, maybe come back next year like a good job. You know, at least I learned how to do this thing. But they came back with, you know, questions that led me to believe that they were really interested, like, hey, you know, would you be able to like fulfill a large number of stores if we allocated you that? And, and you know, I just said yes, you know, I never. Robert: Even that was our first retailer. You know, usually they try you out with a hundred stores or you maybe get into another independent retailer and then you kind of work your way up. But it was one of a weird case where our first retailer was, you know, every Walmart. So it's kind of like you have to learn how to execute the biggest one first, and so now we feel confident that any other retailer, it's kind of like it'll be okay. You know, capacity, volume, just processing the orders. It was a beast at first but yeah, that's how it worked out. Okay, cool, a long sales cycle. Bradley Sutton: Yeah, Interesting, interesting. Now, switching back to Kseniia, you know, like in the old you know I remember some of your other products the way you would kind of find and or launch was, you know, like through Facebook groups and things like that. Like, are you still using that method to like? You know now that you kind of are going a different path, like, is this Facebook play a role, or how are you finding where the needs are to launch these new products? And then, how are you getting the initial eyeballs on your product once you do launch? Kseniia: Yeah, the first one that I launched after switching of being the accessories for other brand that was also from a Facebook group. That also was from the same people. But then after that I realized that I need to find a VA finally, because it was only me before that and it got kind of hard when I got to like almost close to seven figures. Bradley Sutton: Remind everybody what you did uh, you know to do that so they can kind of have a for those who didn't hear the last episode, so they can have a picture of your strategy here so before, uh, I was finding product ideas, I was on the Facebook groups for that kitchen appliance and I would just see what customers say. Kseniia: Sometimes, a lot of times, because it was a new brand and it was like, basically no accessories for this kitchen appliance they would just say, oh, have anybody, anybody seen this product or this product that we can't find anything like this on amazon? We really want it and I would go like Esty or eBay, I don't know. I check Pinterest and I would see people try to make it themselves from, like I don't know, pieces of wood or something like that. So I realized, okay, well, it's great, then you check the search terms and people actually searching for this product, but there is no options available on Amazon. So that's how all the other products before were and then. Bradley Sutton: So what did you hire the VA to do? Just start, you know, just be in all these Facebook groups and Reddits and stuff like that trying to get information, or what are they doing? Kseniia: no, the first thing that I did when I hired her, I told her she needs to learn the Project X. Bradley Sutton: Nice. Kseniia: I gave her the Project X because I told her that's exactly how I learned how to search for products. So the first thing we did is that she watched the whole Project X Love it. Because I wanted her to learn how to find products, the way how the Project X was done. Not starting from the product itself, but let's say starting from the product itself. But I'll say started from the keyword. Yes, so searching for the opportunities and not searching for something that already exists, and you'll be surprised. I think it's in two months I don't remember how many she actually found, but the one that we're actually going with in two months it's like 10 or 15 products, something like that that's already passed, like we're getting the samples. Robert: Oh, wow. Kseniia: So that's just not the product ideas. That's actually what we will be launching. Bradley Sutton: That's awesome. Kseniia: So yeah, she's really great Okay. Bradley Sutton: How did you find her? I think that's another thing that people wonder about is hey, how do I find good VAs who are actually going to produce, Like, did you go to a service? Did you just put a notice up, or? Kseniia: I just went on a website. I forgot how it's called like jobsph or something like that. And yeah, I just did a post that I'm looking for a VA with like a specific requirements and I actually did like a an attention test, let's say so. I put it a note and in the middle of the resume and tell them that's how they should name the email when they reach out to me. And you'll be surprised, out of maybe a hundred people or more that reached out to me, maybe like five only actually read yeah the joke post and they put it the and that was like the first test and then they did a task trying to find a product. Bradley Sutton: So hey, there you go, Robert. There's a tip for your, your next hiring thing. Like uh, dude, that's a good test to weed out half of the applications right there. I like it. I like it, okay, cool. So now you know, now that You've launched some products that kind of are not reliant on that one appliance, what do you project? Is your sales going to be by the end of this year on the trajectory you're going now? Kseniia: Yeah, I think we will definitely hit the seven figures this year, so it should be better than so. So far, the best year was in 2022, when we got very close. I think it ended with like nine80,000 or something like that, and I think we should be more. Yeah, it should be more this year. Bradley Sutton: Awesome, awesome, awesome Congrats. Robert: You got to buy $20,000 worth of goods at that point. Yeah, just at the end of the year just like buy your own product. Bradley Sutton: Come on, I mean you got to hit that number, but hey, that's good, you're going to do it without having to game the system like that this year. Awesome, Robert. Amazon. Let me look at my notes here. In your first year I saw you did $2 million on Amazon. You had grown it to like $4 million, which was pretty much Amazon. Robert: Only If we were just to take the Amazon, not the Walmart. Are you up down? We're probably slightly down. I would say maybe 15% or so, 10 to 20. Part of that was our own doing. We had to prioritize. If we ran out of stock, it's not going to be at Walmart stores, it's going to be at Amazon, and it's happened a couple of times and know, and that's kind of affected. We had a really kind of high margin sort of products that we've launched and one of them did extremely well and we just haven't been able to keep it in stock because it is a new item to our supplier. But, like as an example, we launched it basically like month one, with no reviews, you know, just like our branding and running ads. We did almost like a quarter million dollars of sales and it was profitable, which is crazy. You know, usually we're used to losing money, you know, even after a while sometimes, uh, but you know that kind of like margin. There's certain like we're basically focused more on things that make margin, you know, or things that will basically help us push sales through our website, through other products, or things like that, like our hero, where we include an insert card and they're able to buy other accessories from us. But yeah, certainly, strategy slightly changed. Robert: Within Amazon, advertising basically just kills a lot of the margins, but we see it as a brand awareness exercise as well. We have a lot of products on the roadmap that are higher margin and just kind of like uh, you know, complementary products and stuff that you know I think it's a survival of the fittest on amazon. You know, thankfully, we have always tried to open new channels. You know it wasn't just Walmart stores, you know, for a while we've done all the dot coms, you know, even as vendors like Target dot com, Walmart.com, Macy's Home Depot, fair dot com If anyone out there listening, maybe I'll save it for the 60 second tip. But Fair dot com, yeah, just, you know, all the channels start adding up, you know, and those are higher margin than and where you don't have to run ads and stuff. Bradley Sutton: So how are you dealing with the year of the fees? It seems you know Amazon, you know 2024 new inbound fees and low inventory fees, which it sounds like you probably hit because you keep running out of stock, you know, on some items and refund fees and stuff like that. Like how have you been able to maintain your profitability? Or have you been able to maintain your profitability, you know? Have you had to raise prices or what's going? Robert: On no, we just, we have not maintained the profitability, it's just straight. But not on amazon wise. You know, thankfully, the retail side for us just, you know, pays the bills and more. You know thankfully. But uh, we see amazon, as hey it's, it's tough for everybody. You know, thankfully we have another side of the business that it's actually our priority and you know we're still focused on Amazon. But we didn't keep the profitability. Necessarily we can't always just raise prices because we are basically selling on a lot of other channels, so it disrupts a buy box potentially and it's just one of those things where we just have to optimize on the ad side and just straight up, not focus on some SKUs that are, you know, kind of loss leaders or could be loss leaders. Bradley Sutton: Now I'm looking, I'm just looking with Helium 10 here on your store page with X-Ray, and I see actually you know there's a number of products here that you've launched in the last year. Like I see it, says March of 2024. I see another one here, June of 2024, this coffee scale with a timer. Why, somebody, that's gotta be a serious person. You're weighing your coffee and you got a timer on it, but whatever. So there's all these unique products. Kseniia: It's at Walmart. Robert: So that product is at 3,000 Walmart stores. Wow so wait, hold on stores. Wow so wait, hold on, hold on. Bradley Sutton: It just says you launch this in June. So does that mean that you actually launched a product on Walmart before Amazon? I love that. You see, I keep trying to tell people that exists. Some people say, oh no, Walmart is the opposite. You can expect less sales unless you get into the stores. But there are definitely people out there who launch on Walmart first. But anyways, my point was I see at least four or five products here that were launches here. So obviously you're actively, you know um, trying to expand the brand, you know. I asked Kseniia the same question how are you finding these, these new opportunities, like? What are you doing to, like, do your market research to say you know what? This is the next product we're going to try. Robert: Yeah, so a lot to do with I mean doubling down on what works, for example, the categories that are working. We introduce either variations or new models if we see fit, and then we get a lot of feedback from retailers and pitches that we do to retailers. So we're in line reviews all the time with different retailers and they tell us we like this product, we don't like this product, or potentially, I think we launched maybe like 20 or 15 or 20 espresso sort of accessories, the scale being one of them this year, and that was from, basically, feedback from a Walmart buyer saying, hey, you know, it'd be nice in the future if we have some espresso tools you know that's kind of a trending category, or whatever. And we sort of said tools, you know that's kind of a trending category, whatever. And we sort of said you know, yeah, we have those kind of coming anyway. Yeah, you know. And then we went and looked for those. So we you know I have a lot of products that I've already tested and stuff, you know, every, basically everything. We're a coffee brand, so anything around the coffee categories, you know, are sort of constantly keeping my eye out and our factories also like innovating with us. Um, but yeah, it's, it's. Robert: It's a lot of prototyping for retailers, rather than launching on amazon and seeing if it works and then sort of uh, then going to pitch to the retailer. So it's a lot more capital efficient, just sort of prototyping things or final sampling and then uh, sort of having them available on your catalog and then if a retailer wants it, then of course you go to mass production, you go kind of bigger on that and double down on amazon um, but yeah, on the amazon side for us, you know one thing that you probably wouldn't see on the numbers there, but we're we've been working with a 1p partner where we basically have a lot of margin on but we don't necessarily account for the sales through our account, you know. So, like our item wouldn't necessarily show that but it says sold by amazon. So there's some. We just started that as of like a month and a half ago or so, uh, and it's been kind of working really well, um, certainly making a lot of profit, and they're selling uh as dot com, as amazoncom. So that is sort of how we're mitigating the risk, just sort of looking for ways where we're able to keep profitability, because you know categories that need our products. You know our brand fits in well. Bradley Sutton: Now one thing. The last question for you, before I go back to Xenia, is I don't know the specifics, but I used to supply Walmart to other companies I've worked at. But it's not like they pay you a month in advance or even they pay you up front. There's different terms that Walmart needs and then when they're ordering what? 50 units for 4,000 stores or 20 units for 4,000 stores everybody can do the math out there. We're talking a sizable chunk of change. How do you manage cash flow when you're almost having to front Walmart and some of these other things like and have such a big business with so much turnover? How do you have the capital to sustain, to keep it, to keep it going? Robert: yeah, that's the part that hasn't been easy for sure. You know, financing environment altogether has gotten, you know, tougher for everyone. You know, obviously, the higher interest rates and stuff. I just bootstrapped this so of course even harder right, and I'm in a sort of categories that are, you know, some would say commoditized, unless you have like strong brand but you definitely are competing against legacy brands that are sold by amazon. So basically a lot of competition in that way. Um, so, to scale it, it's not like I had extra sort of profit margins to just dump around and make mistakes and sort of, you know, go everywhere. So it definitely took some, you know, strategic there, partnering with the. Robert: I would say the biggest lever is our supply chain terms. You know our supplier terms are almost unheard of when I tell even you know bigger, much bigger sellers. Obviously I've taken on debt, you know, um, and that's been helpful, you know. You know decent amount of debt, but the largest chunk that allowed to scale at that point has been the supplier term. So think of uh, you know, usually you pay your suppliers maybe like 30 deposit and then the 70 maybe when the goods goods arrive at the US. You know if you're lucky, you know if not when it left China. We pay 15% deposit and then we don't pay the 85%, sometimes until 90 days after the goods arrive in the US. So basically, we sell it to Walmart. Robert: Walmart pays us in 55 days and then we go and pay our supplier essentially. So at any given time we owe our supplier so much money that it also makes a relationship so that we basically don't have to. We do, uh, at least once for all we don't have to do inspections on containers because they're not going to mess it up. You know, if they mess it up, we owe them so much money that it's in their best interest to not. You know, uh, so it keeps that relationship always kind of lopsided in in this way and, quite frankly, is the cheapest financing. Robert: You know that that one can get right. It's just basically your supplier taking on the brunt of it. So at some point earlier this year, yeah, like because of the terms with Walmart, basically Walmart owed us like maybe a million and a half dollars or something, which is crazy. You're like, okay, in the next 55 days every they're going to be paying some amount. But then we also owe the supplier like hundreds and hundreds of thousands, and then over there, this and then you have to order another container because you know Walmart's going to reorder and they're not telling you that, but if it's on the shelves they're going to start reordering as soon as it starts trickling in. So it's just a huge risk really. But when it's Walmart stores, I mean you just have to take it. You know I always said I'm either going to make this thing, you know work kind of do it big or leave a huge hole in the ground of where it was once. But it's business. You know, I try to remove the outcome from me. You know me, or my sort of self-worth, I guess Bradley Sutton: Now, Kseniia, a similar question to you is you, as a smaller up-and-coming seller, how have you been able to deal with all the new fees? Have you changed your strategy about how you send stuff to Amazon at all, or anything else like about how you send stuff to Amazon at all or anything else, or are you just kind of like you know, just taking the new fees and raising prices, or how are you dealing with it? Kseniia: Well, generally when I did the product research before and now we look only for the products that look at like 40% profit and obviously that was the profits that I had in 2022. And after all the fees, it just dropped to like 23, probably percent, 23, 25%. I'm very careful with PPC right now. I'm not trying to overspend on it Plus on the storage, so I'm basically storing for free the products in China after they're being manufactured, so I'm saving money on that. Bradley Sutton: I think this is interesting. A lot of sellers are kind of like maybe in your shoes right now, maybe just by themselves, or maybe they have one or two VAs. Tell me, how many hours a week are you putting to your Amazon business? How many hours a week is your VA doing? And then what are you guys doing? How does your week look? How do you break apart the responsibilities? Kseniia: So actually I hired the first VA in April, I think and I liked so much that I hired a second one, like a month ago. But she's only responsible for like social media because we started doing TikTok, uh and a lot of like UGC content, um. So the first VA she does a full time, so 40 hours um a week, and the second one is a part-time for now because I don't know how it's gonna go, because I don't think all the products are fit for like TikTok are you doing TikTok shop or just like promoting? Bradley Sutton: yeah, TikTok shop. Okay, how's that. Robert: How's that working out for you? Bradley Sutton: I'll go back to the employees or the time management one, but how's TikTok? Kseniia: Well nothing really. Yeah, we just we just started like three weeks ago, I think four weeks ago ago. So she's reaching out to a lot of influencers and through the affiliate program, through TikTok, so I don't know how many she probably reached out to like 200 a day or something like that. So some reply, some don't. So we've just been sending out some sample. I think we only got like one video or something like that yet posted, so not much yet. Bradley Sutton: Okay, one employee is specifically doing social media for you, including TikTok shop, and the other one is she just doing the product research, like you mentioned before, she has other tasks for you as well. Kseniia: Yeah, so the first one. She initially was hired specifically for product research, but then we got to the point where we got so many products that we found but there is not too much money, even though I've taken out the loan, but still there is not enough Like. But there is not too much money even though I've taken out the loan, but still there is not enough like. I don't feel confident yet to get like a huge loan. So we still have to launch like one or two products at a time. I can't do like go and launch all 15 at the same time, because the problem I ran into maybe six months ago is a launch product and it became. It started selling a lot better than I expected to. Bradley Sutton: So cash flow. Same thing we're talking about with uh, with Robert there, yeah yeah, of course. Kseniia: Well, at the moment where I started losing sales, obviously I didn't have any profits. So that's the moment when I had to decide what I'm gonna do if I'm just closing it all down or am I taking a loan. So I decided to get a loan and start launching new products, and then it got better. But also I use a lot of credit cards just because I get points. I figured out the right credit cards to use because I travel a lot. Then I honestly don't remember last time I paid for a ticket. It's all always done through points. Bradley Sutton: So how do you, how are you paying your suppliers with a credit card? Cause not all, not everybody, knows how to do, how to do that. Kseniia: Uh, so I just do it through Alibaba, but I negotiated a terms with them where they covered Alibaba fee, so I'm not worried about that. Okay, cool, but that way I get a bunch of points every month. Bradley Sutton: Yeah, because I know you and your husband like to travel a lot too. So you're saying all those are. Are you business class on everything too? Most of the times, but not for the short flights. Kseniia: Okay cool, cool for the longer ones. Bradley Sutton: So, Robert, as I'm talking to Kseniia, she was talking about TikTok shop. Here I'm looking and I see you're on TikTok shop too. So how, how long have you been on there and how's that been working for you? Robert: yeah, I think we maybe, uh, earlier this year or something like that. Um, again, we have, uh, there's certain products that we know work a lot better for TikTok shop and we see it. You know, there's a concentration on a few products basically that work very well there. You have one of them pulled up. We just had inventory issues on those products. Basically, those products are really hot, kind of everywhere we put them and we really haven't been able to push as hard as we can on TikTok shop, but certainly everywhere we put them and we really haven't been able to push as hard as we can on tiktok shop but certainly are gathering a lot of affiliate content. Robert: Um, and sales are starting to come in. You know, uh, we see it as a big kind of big potential there. Um, certainly so. We're. We're reloading on inventory on those and, and for those that didn't know, uh, fulfilled by tick tock, I think basically, and for those that didn't know, fulfilled by TikTok, I think, basically they're subsidizing shipping. So you essentially make more margin on certain products as long as you get them above a certain threshold. So, yeah, it's one of the channels that we're focusing on. That's newer, okay. Bradley Sutton: You know we talked before about your goals. So, like what are your goals now for the future of your brand, now that you have like a different direction than the last time we were talking? Like what are you trying to accomplish at the end of this year other than hitting seven figures? What's next year look like for you? Kseniia: We're just going to try to launch as many products as we can. Our goal is probably two to three products every couple of months, so like a product a month. So that why we try to develop um. At the same time we're developing like five products, because you never know how it's gonna go um and, of course, do more social media, do more content, just to, you know, to get the, the brand name out there. Uh, we just started doing Shopify, like a month ago or no, a week ago, I think. I just started working on a website um. Bradley Sutton: Are you launching any other platforms? Obviously you're on amazon. You're on TikTok shop. You just said you're on Shopify. Are you on Walmart? Kseniia: or other places. Not yet, not yet. Bradley Sutton: But yeah, I'm thinking about going there too, as well, now you've got an inside connection at walmart if one of your product takes off somebody who can help you out here, Excellent. What is your favorite? Helium 10 tool, Kseniia or function of a tool. Kseniia: Probably the audience. That's the one that I use all the time. Is it called audience? Bradley Sutton: Yeah, the split where you ask the questions to the people and say, how are you using that Like for your images, or just for product ideas, or what are you using that? Kseniia: honestly for everything, for both for the product ideas, for the images, because I just think it's so easy. You know, when you're thinking about like the product we find, then I usually do um, like the drawing and uh, 3d you know the 3d image of the product that doesn't exist yet. Then usually all my products are like, really designed differently. That's what's on the market right now and I just upload the image there and I see what people say and ask them would you buy this product? And if you wouldn't buy this product, why not? Or what would you change in this product? And sometimes I see the things that I didn't even you know, I didn't even think about that. Bradley Sutton: So you're launching just the 3D rendering and just asking a question on that image, or you're launching it like, or you're launching it, you're putting it in a poll next to like existing products and asking them, or which one are you doing? Kseniia: I'm doing both. Actually, the first I just do the rendering and ask them would you buy this product? And if you would not buy this product, would you change like, how would you make it better for you? And then sometimes I also compare it to the other products that on the market and ask them which one would they buy? Interesting and a lot of times I do the changes on the product based on what the people say. Bradley Sutton: Yeah, yeah, I think it's important. I mean helium 10 audience, which is, you know, uh basically pick fu inside of Helium 10. I think is slept on by a lot of people. But that's, that's uh glad to see somebody's similar questions. To close out, uh, before we get to our final 30 second tips to Robert, like what's, what's your goals for the brand this year, next year and beyond? Robert: Yeah, so we're. We're really just doubling down on retail. We have a line reviews with different retailers. We're attending different trade shows, not like Amazon trade shows but like actually exhibiting. We did our first one in Chicago this year that had brought a lot of leads to basically regional retailers and all these new doors where we can just increase our distribution Within Amazon. Just continue to execute our roadmap. You know, basically double down on the products that are working and like higher margin products, but basically just doubling down on what's working. The brand, the angle of like being a go-to coffee brand versus legacy brands, that kind of just focus all over home, all over kitchen yeah, it's really, you know, seems to be really hitting a nerve with retail buyers. So that's kind of where we're going. Bradley Sutton: Nice, nice and your favorite Helium 10 tool for you or your team. Robert: Keyword Tracker. I use the Keyword Tracker a lot, market Tracker the original one. So those are my top two and that's because I have a lot of customization there. And I would say, to answer your other question on what could have maybe some improvement, although I like the interface a lot, is the profits. I think I talked to the team already but maybe there was some delay there with the advertising numbers being posted and so, like you know, profit being a tool that you want to look at almost like real time, you know, as opposed to like a few days back. But overall, you know, I love Helium 10. We use a lot of the tools the follow up tool, the you know I hadn't heard of the audience one we use PickFu from time to time, same thing. Bradley Sutton: It literally is PickFu just inside of Helium 10. Robert: Yeah, I didn't know that you guys had integrated like that. But, yeah, a lot of tools that help us keep an eye on the business, a lot of the notification stuff, the daily like keyword tracker emails that we get. You know, we really do use all those things Awesome. Bradley Sutton: All right. So now you know. Robert and Kseniia have been on this podcast for a while, so they know what's coming up next. What is your 30 or 60 second tip? Let's start with Robert. Robert: So my tip revolves around retail or going into retail. But first I want to talk about a channel called Faire like fair with an E at the end, dot com. To those who haven't heard it, especially if you're selling on Amazon or already on e-com, it's essentially a marketplace for independent stores all throughout the US, Europe, whatever, just sort of mom and pops, coffee shops, just any sort of stores that wants to source goods for their store, and it does really well for us. We've sold six figures through there, high margins, and we get pictures all the time from random friends and things like hey, how is your product that's in a random coffee shop in the middle of random city? Or just like in this little store, I saw your products. So you get actual feedback on what your products look like on the shelves and which products actually sell, Because those products, even though it's going to be a little store, it's going to be on the shelf, so you're going to see which products turn and why they do or do not turn, and that will kind of build up your first book of customers that are actual physical retails. Right, there's a lot of reorders on there and it's just a great way to get your feet wet into going to retail go ahead, you know, into going to retail. Bradley Sutton: So that's my tip there. Okay, cool, all right now. Now over to uh Kseniia. What is your uh 30 or 60 seconds? Uh tip or strategy for the sellers out there? Kseniia: I want to talk about the product development. I want to say that never stop product development. Uh, always have multiple products and a development at the same time. Um, even if your budget allowing launching only one at a time, because there is always going to be something that's going to go wrong, like the samples might not be made according to the drawings, suppliers might take a lot longer time to make the sample, or your packaging can get lost in the mail. So, and if something goes wrong with one of the products that you're developing, you always will have another options what to launch. Bradley Sutton: Cassini in the past. I know she kind of flies under the radar here, and that's why I love having people on the show. They don't come here with agendas, they're not trying to. You know like I'll have professionals, no problem. You know people who have agencies, people who do want to make a name for themselves no problem with that at all. I get good stories. But I also like having people on here who, who, hey, they're not on here for promotion, they're just trying to help other sellers out here. So, Kseniia, I know I don't even have to ask that that that she doesn't even have a you know any website or LinkedIn for people to reach out to. But, Robert, I think you do so like, if people want to, you know somehow find you on the interwebs out there. How can, how can they locate you? Robert: Gladly, we'll connect. I love just talking to sellers and helping in any way I can. I always learn as much as I give away at least. So gladly please reach out. LinkedIn would be fine, Robert Gomez, just search for me and glad to chat. Bradley Sutton: Awesome, awesome. Well, Robert and Kseniia, thank you so much for coming on and sharing what you guys have been up to, and we definitely want to reach out maybe in 2025 and maybe not together, because I like introducing people to new ones, but maybe we'll connect you with other sellers out there. But thank you so much for coming on and wish you the most of success in your e-commerce journeys.
Today's Building Texas Business Podcast episode finds us chatting with Robert Grosz, President and COO of the tech company WorldVue. Robert shares insights into how WorldVue has sustained success for decades through strong customer relationships and a responsibility-centered culture. He details their customer-centric approach and innovation fostering, revealing lessons learned navigating the pandemic with a dedication to service and constructive dialogue. Robert also opens up about transitions into leadership, emphasizing quick decisions, balancing loyalty with progress, and his thoughtful vision for a blended family-exploration sabbatical. From navigating disagreements to keeping pace with industry shifts, Robert offers a compelling view of resilient leadership. SHOW HIGHLIGHTS Robert Grosz, the President and COO of WorldVue, discusses how the company drives growth through strong customer relationships and a company culture rooted in responsibility. He highlights the importance of fostering innovation, creativity, and relevance in the ever-changing tech landscape to stay competitive. We discuss WorldVue's response to the pandemic, emphasizing the importance of their company culture, which includes responsibility, dedication to customer service, and the importance of constructive dialogue. He talks about his transition into a leadership role at WorldVue, emphasizing the importance of quick decision-making and his philosophy on loyalty. Robert shares his proposition for a 30-day sabbatical, and his appreciation for the dynamic beauty of Texas. The episode touches on building relationships and driving growth,We discuss how WorldVue has been successful for 50 years by solving problems, befriending customers, and adding value to their lives. Building a strong company culture is discussed, with Robert explaining how WorldVue managed to successfully navigate the pandemic thanks to its dedication to customer service and focus on responsibility. Building trust and success in leadership is also covered, with Robert emphasizing the importance of making decisions fast and how loyalty can be an adversary to that philosophy. Robert shares his vision for a 30-day sabbatical, which includes spending the first two weeks at home with family and the last two weeks exploring the dynamic beauty of Texas. Finally, We discuss Roberts approach to navigating leadership disagreements, sharing a key lesson learned from past experiences that resulted in lost opportunities. LINKSShow Notes Previous Episodes About BoyarMiller GUESTS Robert GroszAbout Robert TRANSCRIPT (AI transcript provided as supporting material and may contain errors) Chris: In this episode you'll meet Robert Grosz, president and Chief Operating Officer of WorldVue. Robert shares how WorldVue focuses on building a culture of responsibility by being a service-oriented company to its customers in order to drive growth. Robert:, I want to thank you for agreeing to come on Building Texas Business. It's a pleasure to meet you. Robert: Chris, it's great to meet you as well. Chris: Let's get started by just telling the audience about WorldVue and what it's known for. Robert: Chris, have you ever had a friend that is really good at something, whether it's fixing cars or technology, programming your TV, things like that? Chris: It's a friend that you can count on. Robert: It's their best friend. Sure, they go above and beyond. If you've got a problem, you know you can come to them. They respond quickly and they give it their all. Even if they don't know about the solution, they give it their all and they help you and they add value to your life and you build that friendship. That's what we strive for at WorldVue. WorldVue is a company that's been in business for almost 50 years now, houston-based. Our customers are hotels and our expertise is technology. So if a hotel brand, a hotel owner, an individual hotel has a problem with technology, we want them to come to us because we want to be their best friend forever and add value to their lives. So what we're known for is solving problems for hotels, befriending them, building relationships with them and just being part of that industry, being part of the hospitality business. Chris:And that's what's made us successful for 50 years. That's great. I love how it's so ingrained that it's about relationships and even using the analogy of best friend, what inspired you to get involved with WorldVue? What inspired this company to get to where it is today? Robert: Yeah, so they've been along a lot longer than I've been with them. Chris: Sure, I don't look that. You started a company. I started when I was one. Robert:No, no, that's started long before. It's a family business. It's still a family business. The founder still comes to work. He's usually the first one there and the last one to leave. I'm very, very engaged but of course the business has changed a lot over the years. I've known the company for the last 17 years. I actually was with Dish Network. Dish Network is where WorldVue gets their programming, their content, the TV content and some of their technology and I got to know them as a supplier, vendor, got to know the people. I fell in love with the people, fell in love with the company, the culture. The time came where they were kind of pivoting and it's kind of the next generation of WorldVue and we're building this company as a legacy business to last for the next 10 generations and they needed someone with my skillset, my expertise, to help lead them into that. And that's kind of how I got to know WorldVue and got to be involved with WorldVue. Now I'm the president and chief operating officer of the company and I've got a great team around us and teamwork I'm sure we're going to talk about teamwork and people are very, very important and kind of fulfilling our mission. So yeah, that's the origin story of how I got involved with WorldVue. Chris: Okay, that's great. So technology company means evolution and innovation have to be in the fabric of the company. So talk to us a little bit about what you do in your role to foster creativity, innovation, to keep WorldVue relevant in its industry. Robert: Yeah, sure, and relevance. I'm glad you said that word. Relevance is our key growth driver. So you know we've got two growth drivers One's relevance, which is all about product, it's all about the technology that we're out there evangelizing, designing and supporting and really becoming experts at, and with that relevance drives market share growth and getting into more and more and more hotel properties. We currently serve 7000 properties in the US, and now we're expanding internationally. But we're a product driven company because that's our expertise. You know, we want to be the best friend to our clients. That's kind of why we exist. But the what we do is the technology, and we will use technology from leading providers that are off the shelf, you know some big brands that everyone's heard of before, like LG and Cisco. You know brands like that, but what we'll do is we'll take those and we'll integrate them. So integration is kind of what we do best and it's kind of our secret sauce is how do you integrate big, big brands like an Oracle with a LG which does interim entertainment and TV technology? That's our secret sauce. Chris: So the integration. Robert: We're the glue between big technologies and we do it very well. And again, if you lean back on the why you actually want to develop this relationship to add value to your customers and we want your customer to be your best friend. That's kind of what we're doing. So it is related to the technology. We like to say we're a service company that just happens to do technology. We're not a technology company that tries to do service. That's one of our big differentiators. Chris: I would imagine that's a meaningful difference in mindset when you go to the hiring process and building your team to have that servant service oriented mindset be the lead, primary thing you're looking for. What are some of the things you're you do to make sure you're hiring the right people that fit that mindset? Robert: Yeah, yeah, yeah surrounding yourself with people better than you is one of our mantras at any level of the company, and I think if you, just if you, champion that mantra, you know constantly looking for people that do things a little bit better than you, whether it's a specific skill or an attitude, and I think attitude is something you can't really teach. Attitude is something that you carry with you as a human being in your existence, is your WorldVue, which is one of the reasons for the name world. Chris: Gotcha, that makes sense is. Robert: You've got to have that. You've got to have your head on straight as it relates to how do you interact with others, how you act with it, with a team, how you help build the team, how you pull in the same direction to achieve a goal, and those things are very important. We can hire people that are incredibly intelligent, incredibly book smart, have done amazing things and we do but but if, if you don't hire for the attitude and you don't hire for the teamwork, you're going to end up failing, and that's really what we look for there's some tools you have in place so that in that process, the people doing the interviews, whatever it is, and however you go about that, that help you identify or get a bead on the attitude that the candidate has. Yeah, so so we developed our own tools and we, of course, use off the shelf tools, personality assessments and things like that. But, we developed a tool that we called chirp. It's an acronym C, h, I, r, p coachable, humble, intelligent, responsive and persistent. So what we do is, when we're talking to someone, we try to bounce those, those, those challenges, those dynamics off of the candidate to see if they're open to actually learning and becoming a better person. Chris: And if you don't have the C, the coachable. Robert: It's going to be hard for you to be part of the team. Sure Because regardless of what you know, even the smartest person on earth, there's still something for them to learn and they have to be open minded about absorbing that and taking some direction and realizing the experience of others. So coachable humble humility is important. It's related to coachable Intelligence. Isn't book smart, it's more emotional intelligence. It's no one what to say when to say it. Being quick on your feet, having that mindset about who you actually are as a person and how you interrelate to each other, and then how you actually consult problems related to a specific tactical technology, that's intelligence. Chris: Responsive you know. Robert: When the phone rings, you answer it. When an email comes in, you respond to it, you don't let it dwindle. Right and persistence. Persistence is that hunger and that energy, right. Persistence is, you know, knowing that there's a goal, knowing that it's going to be tough to get to that goal, if it's worth pursuing and fighting for it. You know so. Together is the chirp. If you look at our logo, there's a wonderful sparrow icon, which is the chirp, which is a bird, so it all ties together. Chris: Okay. So how do you then take this service oriented mindset you hired using chirp, which I love the acronym. How do you then take that into action and actually go about building these relationships to where your customers become your best friends? How do you connect those dots? Robert: Yeah, so I mean it's about engagement with the customer on their turf right. The world revolves around the customer, doesn't revolve around us as individuals or as a company. So you go to where they are. You go to where the relevance factor is high to them, whether it's a trade show event or it's their office, whether it's charities that they might sponsor and support that are worthwhile getting involved with you. Try to make it about a personal relationship, and that's where our best customers and our best employees thrive is when you can truly make it about the individual. That's very, very important to us. We get on their turf and we try to understand who they are as a person. We're not just checking a box. If we check a box, we become a commodity. When we become a commodity, then the margins are rode, financial performance isn't there and we don't exist Right. So we've got to make it about that personalization. We've got to make it about the customer. Chris: Very good. So let's talk a little bit about how the company has maybe managed over these last few years. I would think, given what we experienced in 2020 and coming in a few years out of that there was, your customers, at least, had probably suffered some downturns in their business, which probably translated to you. What are some of the things you did to help manage the company through those tough times? Robert: Sure, yeah Well, the hospitality industry in general and a lot of industries, but especially the hospitality industry. When people stopped traveling for business, they stopped traveling for personal. They didn't go on vacation. We had a lot of our hotels closed down. Some of our hotels stayed open for first response medical personnel, things like that and they did okay. Some very limited service hotels that don't really exist for that business traveler but they exist just because they need a bed to rent Actually did okay. They thrived, they had good occupancy. We as a company were fortunate. We managed, not by laying people off and cutting back, but we managed by committing and recommitting to our employees. So we had no layoffs because of COVID. We took a kind of unique philosophy to the pandemic and that period of time two, three year period of time where we got back in the office as soon as we could and we did that in a safe way. So there was social distancing and making sure that everything was clean and being aware to the health of all of our employees and respecting individual wishes, but we encourage people to get back in the office in October of 2020. And we've been back since, and we do that because we think that people communicate best in person. It's probably one of the reasons you have us all here to have a podcast, as opposed to doing it virtually. Absolutely Is that personal connection. You can't put your finger on it, but it's important. So I think that that action was a cultural move and I think it's had it's paid dividends for us. I hope it's paid dividends for our employees and I think we'll continue with that mindset. We were there to help our customers, so we were making sure, from a commercial perspective, that we could give them as much relief as possible. We were there to help them turn up their properties, turn down their properties using all kinds of technologies. So there's a lot of different technology out there that a hotel uses. And we were there for them, in all fronts. Chris: That's great. I can totally identify with that thought process, that mindset. We took the same approach in 2020, got people back in in May of 2020, doing the same thing making sure the workplace was safe, but with the view that we work better together. It does foster a healthy culture. I think it makes us better in who we are and in our work and how we can serve our clients and customers. And, to your point, I'm pretty adamant that these podcasts although we've done a few via Zoom because we had to 90, I mean there's I don't need all fingers on one hand, they've almost all been in person, because you just can't replace the dynamic when you're together. So you touched on it. I want to go down this trail with you. And that's culture. How would you make, describe the culture at WorldVue and what are some of the things that you have done to build and foster that culture? Robert: Sure, so we have a culture of responsibility. We're responsible to each other as much as we're responsible to our customers and we have a promise that we make, which is we deliver every time, no exception. And that is as relevant for the guy in the office next to you as it is to your customer, which could be a couple thousand miles away. Right, you know, we deliver every time, no exception. So if someone needs something, we strive to deliver that right. We strive to deliver on the promise. Sometimes it's not easy, oftentimes it's not easy, but it takes a lot of energy and a lot of focus, and I think everyone knows that. But that promise in the company from, you know, from the, the, the, the newest call center rep, all the way to the top they all try to kind of pull that direction. That creates that culture of rowing in the same direction. And that is very, very important. Because if you've got a company that's rowing in multiple directions, it's going to be, it's going to be problematic, it's going to be expensive, the trust is going to be violated, you're not going to be able to move quickly and address customer needs, you're not going to look at the dynamic of what customers can offer in the marketplace and turn quickly to address that it's. It's really core to to who we are as a company, as as individuals. Chris: So what do you do as the president, chief operating officer, low leader, to show up so that people understand that you live the culture, you can enforce that culture. What are some of the things you do to reinforce that every day? Robert: Yeah, so you've got to lead from the front. It's all about attitude. You can't come in all slouched over. You've got to be on point and you've got to do it authentically. It can't be fake, right? And that's a challenge sometimes. Chris: For sure. Robert: And you've got to have your focus. You've got to have your eye on the prize, if you will. Communication is critical, so routine, touch-based meetings. I don't like to have long meetings that consume people's time or people attend the meeting to be attending the meeting. I want there to be a purpose and a reason. I want there to be lots of dialogue. Constructive criticism. Constructive differences make everything special and you can't just kind of dominate. You've got to listen to the different opinions. Chris: Ask more questions. Robert: Ask more questions. We like to say listen 10 times more than people are talking, and you've got to lead by example. If you don't do that yourself as an individual, again something's wrong and everyone sees it and everyone knows it. Chris: So I asked most guests about setbacks or failures and we learned sometimes much more by those. Is there a situation or experience you can think about as a leader where it didn't go as you hoped or it was a failure or setback in a decision or strategy, but you learned from it and the learning from that has made you better today than you were before. Yeah, absolutely. Robert: I mean I've got lots of setbacks and failures, but I think one big example would be if there is a disagreement between leaders and they're not seeing eye to eye and they don't address it quickly, it can create division and that division creates distraction and the distraction creates lost opportunities. And we've dealt with that over the last few years. We've had some disagreements on the direction we needed to go and the solution was coming in the room together, fixing it, getting it on the same page, having the confidence and the buy-in at the most inner level as a person, as an individual, and making the team more cohesive. So you can go from cohesive to a failure very quickly if you don't pay attention to that dynamic. So that was one of big lessons learned. There are others where you bring individuals into the company based upon their experience and their pedigree and you throw them into our mix and they just don't dance our dance and they create a bunch of disruption and you've got to move fast there. It's tough letting people go. It always is tough letting people go, but oftentimes it's good for them as much as it's good for the company, because they're not comfortable in their shoes. That's tough to be a person. When you're not comfortable in your shoes, it's tough to live a life. Chris: Yeah, you touched on something there that I think everyone that I've interviewed in these podcast agree. The biggest lesson learned maybe in that difficult time when someone's not fitting is making that decision faster than you feel like you probably want to, because the person that's not fitting in your organization will be better off because it's just not a good fit and they'll find the place they fit better and your organization will be better because that person that's not fitting is going to be a distraction. It potentially could erode culture and you're just always better off moving faster, even though it'd feel right in your gut sometimes. That's right. You're affecting human lives. Robert: Yeah, and loyalty, by the way is the adversary to that philosophy. Chris: Right, so we all want to be loyal to people. Robert: I think good people are loyal, but you have to have the vision, the foresight, the clarity to understand where there's loyalty and then there's a bad fit, a poor fit. And if there's a poor fit then the best move is always make it a better fit. So that's very important. Chris: As WorldVue has grown, what have you done to build a team around you and let go of some of the things that maybe you used to do more on a day-to-day basis and learn to make us trust and let go yeah, trust is a key word. Robert: So finding people better than you at things, making sure that they're the right fit and then trusting that they're going to get the job done, and sitting back and delegating some responsibilities that you may have you may think that you need to do to them or to their teams, and then watching it grow. And it's very easy to delegate to somebody, but it's difficult to give them enough rope where they're going to actually lead or fail. If they fail, then you can step back in and you can fix it and you can delegate to someone else. You could coach them, but if you've got good people around you I mean if you've got good people that are pulling in the same direction they will self-adjust, they will succeed because they want to reach the same goal that you want to reach. So in some ways it can be very, very simple and easy. Oftentimes it doesn't feel that way when you're doing it, so that's an interesting dynamic. Chris: It really is. The other thing I was going to ask you about, excuse me, is you kind of had an interesting experience in that. I guess I'm talking about transition, succession from founder of company that's still around, as you mentioned in the beginning, but you stepping in to the leadership role as president, chief operating officer maybe talk to us, because there's some listeners out there maybe doing that or or that's in their near future. Let's talk a little bit about what were some of the challenges of bridging that transition gap as you took over as the president of the company. Robert: Yeah, I think, from my personal story, it's about building trust and having integrity as well as having a deep level of respect. If someone founds a company that's been around for almost 50 years, I look up to them. I don't care what that company is. I mean, they've done something that a lot of people have never experienced or will never experience, and I've got to give them tons of credit for that and have utmost respect for that effort. But making that person or that group of people trust you and inspiring them to let you lead is a significant, significant initiative that you've got to have a lot of purpose, a lot of focus on, and that's kind of the most important part, I think, is to to build a relationship. Build that relationship, build the trust, be authentic, have integrity. They will then see that you can lead and take what they've done to the next level and hopefully that will benefit their family and families for generations to come, because that's the ultimate outcome. It's not building to flip it, it's not make a fast buck. In fact, the bucks have nothing to do with it. It's about the purpose. It's about what you deliver value to society, to your customers. It's about what you want to do. That's why that analogy to a friend a best friend is really good at something. I think that's a very good focus for us to have, and I think that if you can generate thousands and thousands of friends throughout the world that all have that need, you've got a successful business that's providing college educations, food on the table, happiness, travel, fun for families, countless families. That's really exciting. That's kind of the passion. Chris: Did you have any challenges as that transition, where the people that used to report directly to the founder maybe weren't coming to you at first, and how did you manage that? Robert: I would be lying to say that that doesn't still exist. It does. It's just a challenge that you have to acknowledge and you have to kind of embrace. I get it. Like I said, the respect level that I have for the founder, the founding family, is so high that I would expect that legacy employees that have been around for a long time. Look at that with the same level of respect. Chris: So you don't take offense to it, oh you can't take offense to it. Robert: It's an eagle driven thing. Chris: Yeah, well, it sounds like that attitude that you bring to it is consistent with the culture, that you're the mindset of the right attitude and that the company's got everyone going in the same direction. Yeah, that's right. So it's not easy running a company the scale and size that you do. What are some of the things that you've done personally to try to have a very successful business life, but also very successful and fulfilling personal life? Robert: Sure, yeah, I mean, I've got four children, twin three-year-olds, a seven-year-old and a 22-year-old and a wonderful wife at home and you know you can't lose focus on what they need and what they want. You can't lose focus on being at home. Right, home is where the heart is. Home provides all kinds of emotional support and you know that's kind of been my exercise routine is making sure that I can maintain a healthy home, which you know. There's this concept of balance that I haven't figured out yet Sure like everyone has their own definition right. Yeah, but because of technology you can be in one location and have a FaceTime call with someone else and you at least can, you know, make sure you're there from a voice and a conversation standpoint. But it's not easy. For sure, but it is definitely worth living for, it's worth striving towards, and you know I value the family component of my life tremendously and I'm hoping that that lends itself to the mission of where we are, the direction we're headed as a company. Out that comes off, and you know I try to treat the folks around me that are closest to me in the office like family as well, and I get a lot of practice. Chris: That's good, that's great, great attitude about it. So what do you see on the horizon? What's next for WorldVue? Where do you see the near future taking you? Robert: Well, our friends are getting larger and larger. We're getting more of them. We are expanding internationally. So we just formed entities in the UK and the EU and Dubai, as well as, I believe, in Singapore and Mexico City. So, we've got a strategy to expand what we do globally, which is going to be very, very exciting. It's going to be very, very difficult. The challenge is exciting, though, and the great people around me and our teams are all excited and enthusiastic about that. But, from just growing business and sticking to our knitting in terms of domestic growth. We've got great relationships with hotel brands. There are multiple. The environment of hospitality is multidimensional and very fascinating to me at least. Where you've got a brand presence, you've got real estate owners, you've got operators and then you've got, of course, guests and the occupants of the property and you've got to serve all four of those groups in a special way and make sure that you're coming through for them. And so we've done a pretty good job at all of those levels. We're excited about some of our brand relationships that are growing and we're becoming more of their best friend. They have other friends. Sure You're their best friend. So the growth plan with product competencies as one lever and market share expansion as the other lever, is what's going to take us forward, and we'd like to be five times larger than what we are in the next five years. Chris: Oh, it's aggressive, it's aggressive. I was going to ask you what's driving that growth? Robert: It's demand. The demand that there's so much technology out there. Technology has become this kind of ambiguous word, right. Sure when it could be hard technology, like a wireless access point or a TV or an ethernet switch or a door lock, or it could be a software right. The software is kind of the glue that makes that hardware valuable, and the software on each of those individual devices is unique. And the key is how do you integrate those softwares together to create an amazing experience, whether it's for a guest, for a hotel associate, the housekeeper or for the owner of the property? In terms of value creation through stronger profitability, there's opportunities to leverage technology to not only solve problems but create opportunities. We think that's where the real demand is going to come from. We just have to be there to be their best friend make it all work and when they have a problem, come to us. Chris: Be that trusted friend. Robert: Be the trusted friend, trusted advisor. Chris: So what advice would you give to someone who aspires to be a business leader or entrepreneur, based on your experience, Create a focus, like create something you really want to achieve. Robert: Start at the end, like what do you want your life to look like and what do you see doing that really is a passion for you. Leave all the other stuff out of that equation, leave the money out of that equation, leave the location out of that equation. But focus with the end in mind, in terms of how you'd like to live to, and then build backwards from there, like what does it take to get there? Create a roadmap for yourself. I know, very early on in life I saw the movie Wall Street and this is on silly, but I loved business after that. I don't know why I don't know what it was, maybe it was the acting, I don't know but I wanted to be a businessman, I wanted to be in business and then I lived my life. I got to college. I was lucky enough to run into some very influential professors. One of them happened to be a real estate guy. He was doing commercial real estate development and exposed me to a company called Equity Group Investments which is based in Chicago. I grew up in Wisconsin, based in Chicago. A guy named Sam Zell who just passed away this last year. And Sam was an iconic entrepreneur, a builder of businesses all along the real estate kind of foundational area, and I decided I wanted to work for Sam Zell. So I graduated college, moved to Chicago, no job, started originating mortgages 100% commission straight out of school and just pursued Sam's company, got involved with Equity Residential, which was his apartment rate, got in the flow of that company, developed this love of technology. I've always had a love of technology, applied technology to real estate early on in the early 90s, kind of made a name for myself, and then that took me to where I am today, which is real estate technology, the scene between the two, solving problems and then being someone's best friend. Chris: There's value there. Robert: And that's kind of how what. I would advise so, start with the end of mind. Chris: Okay, I love that Great story, so let's turn to a little lighter subjects. What was your first job? Robert: First job was? That's a great question. First job I worked in a warehouse and I was moving things around a warehouse after school and I was 14, 15 years old. Like no technology involved in that there was like a tow motor, a tow motor and a truck and a dock. But you know, and really exposed myself to an interesting lifestyle, you know, the people who work in warehouses are pretty salt of the earth and you know, boy, you sweat it in that job right, and then you know. But probably my most interesting job and the one that I was at the least or the shortest amount of time was. I joined a roofing crew in a summer in college and I was on that job for a total of four hours. Chris: And. Robert: I had blisters and bloody hands in that first morning. It was a commercial three-story roof, pitched roof, asphalt, you know, shingles and those guys. I've never seen someone work as hard as them and I couldn't do it. I just couldn't do it. So I went to work as a teller after that. Chris: Okay. Robert: Two weeks later, a bank teller. Chris: Okay, okay, well, so you mentioned you grew up in Wisconsin. Yeah, Been in Houston a while now, so, being newer to Houston and Texas, what do you prefer Tex-Mex or barbecue? Robert: Oh, barbecue. I love the quality of the food meats you know the taste. I think it's good that there's a competition between barbecue to see who's best. I love like playing that game. Chris: It's a good experience as well, there's so many good options. Last week, in fact, someone was visiting Houston, so we've heard all about Texas barbecue. Where do you recommend we go? And I was stumped. Tell me kind of what you like or what you want, because it depends. That's great. So if you could take a 30-day sabbatical, where would you go and what would you do? Robert: Yeah, so that's easy. I spend the first two weeks at home just being at home. You know being a dad being, you know being a husband. I think that's very, very important, boy, that would be a good vacation. Chris: Yeah. Robert: And then maybe the last two weeks I'd stay here in Texas. I go to Hill Country. Yeah, there's so many great places in Texas. It's like a whole different country really. Chris: Sure. Robert: You could go to Dallas and spend some time downtown Dallas doing some fun stuff. You could stay here in Houston and experience all kinds of interesting stuff. Or you could go to Austin, go to Hill Country. It's just the dynamic is incredible. Chris: Couldn't agree more, so I'd stay here close to home. I travel enough. Okay, fair enough, fair enough. Well, Robert:, thank you again for agreeing to be a guest. I loved hearing your story and what you're doing at World View and the team that you all have there. So thanks again. Robert: Absolutely, it's been a pleasure. Thank you, Chris. Special Guest: Robert Grosz.
Do you know your four key quadrants and how to bring them into balance? On this episode of Gratitude Through Hard Times, Host Chris Schembra welcomes back best-selling author Robert Glazer, who is taking us inside his Elevate framework. As the founder of Acceleration Partners, he and his team provide clients a unique framework through which to optimize the core capacities foundational for healthy, thriving enterprises. You'll come away from this lively give-and-take with concrete steps for restoring life elements that are “out of whack” and in need of more attention. “It requires deep self-awareness and real authenticity to be the type of leader you actually are,” says our guest. “If I don't understand my values and why they are my values, I'm showing up as a completely different type of leader.” Don't miss pivotal insights from Robert's most recent book, "Elevate Your Team: Empower Your Team To Reach Their Full Potential and Build A Business That Builds Leaders," and frontlines perspectives on the leadership challenges we're facing daily, both personally and organizationally. Is it time you got your spiritual, emotional, intellectual and physical capacities into alignment? Sign up for Robert's on-demand course (use code GRATITUDE to receive $20 off). And once you've done your core work, let us know about the values that define you!You can hear lots more about how to push your personal limits by listening in to Robert Glazer's The Elevate Podcast. Or purchase his latest book, "Elevate Your Team: Empower Your Team To Reach Their Full Potential and Build A Business That Builds Leaders."Want to stay in touch with what Robert's up to? You can receive his weekly Friday Forward newsletter, click here.If you'd like to learn more about Chris and his 7:47 Virtual Gratitude Experience or subscribe to our newsletter, please visit this link.Click hereto hear more fascinating conversations with Fortune 500 CEOs, professional athletes and entertainerswho have shared their human stories on Gratitude Through Hard Times. KEY TOPICS:Because he's a repeat guest. Chris slightly tweaks the pod's signature gratitude question to ask: How has gratitude been foundational to Robert's “other-ish” orientation in life.From the Jump: Acknowledging the value and benefits we receive from the people who come into our lives and the relational elements that cement true success in life.About Robert's Writing Method: Interweaving the spiritual, emotional, intellectual and physical elements that are the framework for his myriad best-selling books.State of Mind: If you're constantly coming into conflict or dealing with negativity, it's probably time to ask: Are you bringing the best version of yourself?Rejection as a Catalyst: How the “Valley of Death” shapes ultimate business outcomes – if we adopt the tools necessary to adapt to and navigate the terrain.Reframing Growth: Why it's important for leaders today to figure out how to bring their entire team along through waves of expansion that are humane and sustainable.Robert's Four Core Competencies to Elevate Organizational Cultures:Spiritual Capacity: Understanding bedrock strengths and values.Intellectual Capacity: Improving your ability to think, learn, plan and execute on goals. It's your personal operating system!Physical Capacity: Tending to personal performance and optimized well-being.Emotional Capacity: Cultivating strong relationships and how you react to outside individuals and circumstances.Finding Your Values: About Robert's online course and how it expands our spiritual vocabulary and capacity.Examining the role of trust.Bringing awareness to core narratives that drive leadership styles.Finding solutions that reinforce psychological safety in the workplace.Take the free Four Capacities Quiz or use cod GRATITUDE to get $20 off the his on-demand core values course.The Role of Vulnerability: How sharing personal stories and normalizing our common humanity empowers teams to look inward, get honest and make necessary adjustments.The Growth Mindset: When we explore, attune to and build our core capacities our leadership abilities expand in ways that enable us to be agile and flexible.Shifting the Story: How developing the capacity (and helping our teams) to process negative autobiographical experiences turns those negatives into powerful positives.Parting Thoughts:Remember to model the importance in today's hybrid world of being intentional about creating breaks and separation between work and home.A vacation is allowed to be a vacation. Take a real break!Consider using delayed delivery to manage the flow of email – for your benefit and that of others up and down the organization.Don't forget that setting boundaries empowers everyone!Maintain not just a work-life balance but a life in balance – spiritually, emotionally, intellectually and physically. QUOTABLE“I think gratitude is an orientation … It's outside of ourselves, thinking about what we can do for others.” (Robert)“If you're focusing (only) on internal, self-reflective things, you're forgetting about the most important part of humanity, which is to be in relation and connection with and acknowledge the benefits of others.” (Chris)"When we show up as an exhausted, diminished version of ourselves, we're not really helping anyone else.” (Robert)“If you're meeting a**holes every hour of the day, you're probably an a**hole. It's your state of mind. How we feel changes our perceptions in all those interactions with others.” (Robert)“The whole aspect of capacity-building within an organization is learning, evolving and future-oriented.” (Robert)“Leaders are having to wake up and say, ‘You know what? We can't do the growth-at-all-costs model anymore because we forgot about our people.' ” (Chris)“A big piece of organizational emotional capacity is psychological safety.” (Robert)“It requires deep self-awareness and real authenticity to be the type of leader you actually are … If I don't understand my values and why they are my values, I'm showing up as a completely different type of leader.” (Robert)“We make mistakes. We review them. We don't make them again. We focus on the things we control, not the things we don't control.” (Robert)“What's cool is that emotional capacity is how you react to challenging situations. It's your emotional mindset. It comes as resilience, hope, pride, self-confidence, optimism in the face of really difficult circumstances.” (Chris)“When you can assign a list of positive benefits to a negative autobiographical experience and give gratitude to it and make it part of your story, it becomes the best thing that ever happened to you.” (Chris)“Don't allow a focus on external variables … If a sales team lost a deal, it should not be about the competitor's price. It should be about how we showed up, were we prepared, what was the feedback? Things that you can control.” (Robert) “It takes a great level of discernment to look within and acknowledge the things that you can actually control and should change. That takes wisdom.” (Chris) LINKS/FURTHER RESOURCES:Find all of Robert's books at this link.Learn more about the Anatomy of Peace at The Arbinger Institute.Discover Robert's course on expanding core capacities here.Find out more about Alcoholics Anonymous's Serenity Prayer.About "Grateful Processing," a concept developed by Prof. Phillip Watkins of Eastern Washington University. ABOUT OUR GUEST:Robert Glazer is a serial entrepreneur, award-winning executive, bestselling author, and keynote speaker. Founder and Board Chairman of global partnership marketing agency Acceleration Partners, he has significant experience in digital monetization, affiliate & partner marketing, customer acquisition, e-commerce, and direct-to-consumer marketing. He has served as a board member and advisor to many high-growth companies in the e-commerce and marketing verticals. Bob shares his ideas and insights via Friday Forward, a popular weekly inspirational newsletter that reaches more than 300,000 individuals and business leaders across 60+ countries. He is a #1 Wall Street Journal, USA Today, and international bestselling author of five books: Elevate, Friday Forward, Performance Partnerships, Moving to Outomes, and How to Thrive in the Virtual Workplace. He has also been columnist for Inc., Forbes, and Harvard Business Review, and hosts the Elevate Podcast, a top podcast for entrepreneurship in more than 20 countries. FOLLOW ROBERT:WEBSITE | LINKEDIN | INSTAGRAM| PODCAST ABOUT OUR HOST:Chris Schembra is a philosopher, question asker and facilitator. He's a columnist at Rolling Stone magazine, USA Today calls him their "Gratitude Guru" and he's spent the last six years traveling around the world helping people connect in meaningful ways. As the offshoot of his #1 Wall Street Journal bestselling book, "Gratitude Through Hard Times: Finding Positive Benefits Through Our Darkest Hours,"he uses this podcast to blend ancient stoic philosophy and modern-day science to teach how the principles of gratitude can be used to help people get through their hard times. FOLLOW CHRIS:WEBSITE | INSTAGRAM | LINKEDIN | BOOKS
Robert: Well, Andy, it's been fun. Andy: Mm. Mm-hmm. [they hug, Robert kisses him on the lips] Robert: It's been a great year. This week's we're talking about Season 8! We dedicate the episode to one of the most unique seasons of The Office, talking about how the show changed following the departure of Michael Scott, Andy as manager, Robert California, and more. And this is just the beginning of our discussion. Then in the Conference Room we talk about which Christmas Wish we'd ask from Andy before closing with another signature round of trivia! Well, you clearly want the marmalade. Gretchen! I need another marmalade. Support our show and become a member of Scott's Tots on Patreon! For only $5/month, Tots get ad-free episodes plus exclusive access to our monthly Mailbag episodes where we casually pick through every single message/question/comment we receive. We also have Season 2 of our Ted Lasso podcast Biscuits with the Boss available to our Patrons, as well as our White Lotus Christmas Special. Oh, and Tots get access to exclusive channels on our Discord. On top of that, a portion of all show proceeds are donated every month to organizations that help fund education opportunities for minority students. Help us serve the mission that Michael Scott could not. Learn more about your ad choices. Visit megaphone.fm/adchoices
We're repeating a conversation from our first season so you can get to know Bobby Knepper, our sound designer. Bobby was a listener whom we invited to chat with Rafael and Robert, and he then volunteered to make us sound better than we do in real life. In this conversation, we talk about knowing that you're different and not knowing why, emotional labor, growing up without peers, the power of hyperfocus, melting down, and a couple of life hacks. To listen to Bobby's songs, go to https://open.spotify.com/playlist/59VlLUag1hbDtkQLf3oNCg?si=12744afd1f714c7b5:00 the wonders of the internet6:38 Bobby's diagnosis disclosure8:50 seeing ASD as normal, just a difference 9:50 stimming jokes9:55 what makes disclosing difficult: emotional labor12:14 free diagnosis with Vanderbilt University, particularly interested in self-diagnosed adults.Vanderbilt Autism Resource Line - TRIAD Autism Services in Tennessee12:55 nuanced difference between self-diagnosis and official diagnosis13:38 WebMDWebMD13:47 General Anxiety DisorderGeneralized anxiety disorder - Symptoms and causes - Mayo Clinic14:31 Autistic OverloadSensory Overload: Symptoms, Causes, Related Conditions, and More15:30 Introductions16:40 Self-diagnosis & the difficulties of finding someone to do the diagnosis19:28 Autistic experience21:48 what led to Bobby's self-diagnosis at 1627:00 Bobby's system of tracking NT behaviors29:00 Being different and not knowing why29:26 autistic children grow up without peers30:45 When did autism speak its name to you?31:35 The room one kids/RainMan35:45: Bobby “I'm just young for my brain.”36:00 Jimmi comes into the scene/healthy Jimmi break37:25 Pandemic effects on us/love of being alone39:32 hit a wall/meltdown42:42 Big Warm Hug43:02 clip/quote Bobby 43:20 journaling and songwriting about the pain of autism44:05 the pain of not liking who you are is awful47:30 hyperfocus is a powerful tool49:00 what's beautiful about autism49:33 life hack: reading lips52:23 life hack: make music & harmonize with vocal melodies of others; jazz conversation53:22 synesthesia Synesthesia: Definition, Examples, Causes, Symptoms, and Treatment55:50 metaphors57:55 thinking in systems1:01:32 what was it like to let go of resistance to identifying as autistic1:05:05 autism and OCD behaviorsIs There a Link Between OCD and Autism?1:08:03 Robert: It's painful to be working in a bad system.1:10:40 The Green KnightThe Green Knight (2021) - IMDb1:12:50 autistics love to think and learn1:13:55 Documentary about intuition: InnSaei - The power of intuitionWatch InnSaei: The Power in Intuition | Prime Video1:21:32 Curiosity1:24:14 intuition and problem-solving skills1:25:04 having to explain how&
Do you miss out on conversations because you're hard of hearing? Or maybe a friend or a family member is asking you to repeat what you say a lot more often. Hearing loss affects millions of people, especially as we age. And, the vast majority of people who are hard of hearing don't seek help or ever try a hearing aid. Last month, the Food and Drug Administration decided to allow hearing aids to be sold over the counter without an exam or prescription. MPR News host Angela Davis talked with an audiologist and a researcher about how the ruling could make hearing aids less expensive and more accessible. Plus, changes in hearing aid technology and how to make the most of them. Guests: Peggy Nelson is a professor in the Department of Speech-Language-Hearing Sciences at the University of Minnesota. She teaches audiology courses and has researched how to make hearing aids more effective in daily settings. Rachel Allgor is an audiologist with Audiology Concepts, a clinic in Edina. She also uses a hearing aid. The following transcript has been edited for length and clarity. Click the audio player above to listen to their conversation. Angela Davis: Good morning. I'm Angela Davis. And you're listening to MPR news. So glad you could join us today. Now, do you ever miss out on conversations because you're hard of hearing. Or maybe you've noticed that a friend or family member is asking you to repeat what you say a lot more often. Hearing loss affects millions of people, especially as we all age and most people who are hard of hearing don't seek help or ever even try a hearing aid. Now last month, the Food and Drug Administration decided to allow hearing aids to be sold over the counter without an exam or prescription. So today I'm gonna talk about all of this I'm talking with an audiologist and a researcher about how this might make hearing aids less expensive and a lot more accessible. We'll also talk about changes in hearing aid technology and how to make the most of them. And we're taking your phone calls, I want to know your stories. Do you know someone? Is there someone close to you who has hearing loss? How does that impact your life? Do you have hearing loss and how difficult or easy has it been for you to get a hearing aid? I have two guests today. Peggy Nelson is joining us. Peggy is a professor of audiology in the Department of Speech Language Hearing Sciences at the University of Minnesota. She teaches audiology courses and has researched how people can make hearing aids more effective in daily settings. Hello there, Peggy. Peggy Nelson: Good morning. Angela Davis: And here in the studio with me I have Rachel Allgor. Rachel is an audiologist with Audiology Concepts, which is a clinic in Edina. She has a four year clinical doctorate in audiology. And she also uses a hearing aid. Rachel, so glad you could come in and join us today. Rachel Allgor: Yes, thank you. Angela Davis: So Peggy, I'll start with you. Let's hear more about this decision from the FDA. Where did this push for over the counter hearing aids even come from? Peggy Nelson: Yeah, great question. We have been talking about trying to improve the accessibility of hearing devices for people for a decade at least and probably longer than that. And it came with a congressional push from Congress, people who said we really need this for our constituents. There are too many people who are living with hearing loss, who have no hearing aids and we'd like to make that more accessible to them. So for the past several years, we've been working on methods, technology platforms, things that might show promise for direct to consumer hearing aids. Angela Davis: So I have this number from the FDA, nearly 30 million Americans suffer from hearing loss, but only about 20 percent of these people use hearing aids. So what's getting in the way? What's stopping people from choosing to get help? Peggy Nelson: Yeah, isn't that remarkable? I would say there are several things and that we don't know all of the things that are stopping people. Certainly cost is an issue. Absolutely, people cite that probably most frequently. But we also know that people in countries where they're socialized medicine, where there's really no cost to them, there's still only 30 or 40 percent of the people who are getting them and using them. So there are clearly more barriers than just cost. It might be stigma, it might be just the frustration of trying to get to services that are far from where they live, might be some trepidation about the technology, not being willing to try something brand new and being a little fearful of that. And perhaps people themselves don't always realize how much they need it. It's often their friends and their families that are realizing that and they're the ones that are encouraging people to seek help. Angela Davis: And I want to talk more about that. Like how do you have that conversation with someone who you think maybe you should go get their hearing checked, but getting back to the stigma. I think when we think of hearing loss and maybe hearing aids, we think of the an older man with this large thing, you know hanging out of his ear. But hearing aids have really changed. Peggy Nelson: Definitely, we need to change that image and we hope that that's happening. I'm in my 60s, more of us in our 60s have been using earbuds and hearing devices of various kinds for quite a while now. So we're really hoping that that stigma that hearing loss equals aging will change quickly, and that people will be willing to give these new devices a try. Angela Davis: Now, Rachel, you are an audiologist who works in a clinic. So how do you think the availability of over-the-counter hearing aids will affect you and your colleagues and people who may be curious and really need them? Rachel Allgor: Yeah, that's great question. So there's a lot of back and forth right now in the audiology community about how this is going to impact just the profession itself. And honestly, I view it as a good thing. There is an average of seven years before somebody comes into a clinic after realizing that they're having hearing difficulty. What I would hope that this direct-to-consumer OTC bill is doing is lessening that timeframe. And so instead of seven, maybe we can shift it down to three even, so that people can start getting help sooner, in an easier way. Angela Davis: Rachel, you use a hearing aid and tell me how that came about. Because this started as a child for you. Rachel Allgor: It did. So I had a benign tumor in my middle ear when I was born. And it was removed when I was a toddler. I started wearing a hearing aid in second grade. And I was the hearing aid user that wore it much more off than on. Angela Davis: And why was it off? Rachel Allgor: I didn't want to be different, right? Especially as a kid going through things. I didn't want to feel different, I didn't want to look different. And so it wasn't until I was halfway through my audiology degree that I finally started wearing one full time. Angela Davis: You have hearing loss in one ear, but not the other. Is that typical or common? Rachel Allgor: Not as common as somebody who has hearing loss in both ears. Angela Davis: What do you think it's going to do? Because, you know, sometimes I think you hear over the counter you somehow think the quality is not gonna be as good. Rachel Allgor: That is yet to be determined because it is so new. I haven't had a chance to play around with it myself, either. But from what I've read online, from folks who do have hearing loss and have worn hearing aids for a while, and have tried them out, they're pretty favorable. Angela Davis: And Peggy, with over the counter hearing aids, people will need to adjust the hearing aids themselves, you've done some research into that, do you think people are gonna be able to do this on their own? Peggy Nelson: That's right, it's going to be determined. Just as Rachel just said, there are some things we're going to find out over the months to come. Our research that we've done in the lab, we've had, you know, at least 100 people come and try things that suggest people can do it. And they are successful, they can tweak and they can follow the instructions, and they can find settings that they like, and then they use those and they go back to the same settings and they're happy with those, they're pleased with them. But we recognize these are volunteers who are willing to come in for a study and try them. So it's not representative of the people who will buy them from a big box store or online, and may struggle with opening the box and trying to adjust to them. I think that's a big area where we as professionals in the field can try to help people do this. Hearing aids take some adjustment, you don't just put them on and instantaneously things are really different. It does take some time, it takes some effort, it takes some tweaking. And we want to encourage people to really try them, keep trying them, keep tweaking them until they find something they're satisfied with. Angela Davis: And what about the proper fit because ears are all shaped differently in different sizes, what are the options with that? Peggy Nelson: Again, we'll see but probably they will have tips that go down into the ear with a tube that goes up to behind the air. And those tips will probably come in small and medium and large sizes so that they could be exchanged. And actually quite a few users right now are using those kinds of tips. But I think that will be one barrier, will they fit well, will they feel okay. You can imagine trying to wear something all day that just doesn't feel good. Angela Davis: And one more question before we take some phone calls which were already starting to get in. Are they even in stores yet? Because I think they're supposed to come out in mid-October are they out yet? Peggy Nelson: The White House announcement yesterday said next month, so we'll find out in October exactly when they'll be available. Angela Davis: Let's go to Brooklyn Park, where one of our listeners Marika is on the line. Good morning. Marika, what did you want to tell us about hearing aids? Marika: Good morning, Angela and guests. This conversation is so timely. It really resonates with me because I've been struggling with my mother for the last five years to get hearing aids. And it came to a head this summer finally, because I've been telling her and talking about it with our family. But it took her grandchildren standing right next to her, asking to talk with her, to realize that she really had that significant hearing loss. So she went in and she got some hearing aids. She did a trial period and literally came out of that saying it was like the world woke up. She's like, I could literally hear a skateboarder going down the street next to me, and I didn't know how much I was missing. So we're really excited about the steps she's taking. And then she got the pair. And it's the technology that is challenging her it's the app and the phone and learning how to navigate that, she's in her early 80s very independent. And so like we are still navigating that question about should we go into the store? Because I know she's going to need more support. Or do we invest in the higher product and also the connection with the audiologist because of that hesitancy and the adjusting needs. So it's been a journey, and I'm really just curious, how will people get supported if they do the over the counter method? Angela Davis: And you mentioned the app and the phone. Okay. Marika, great phone call. Lots of things to talk about with that. But Rachel, I'll start with you as an as an audiologist, as someone who wears a hearing aid, what do you hear in her story, Marika finally got her mom to get her hearing tested? Rachel Allgor: First, very exciting that we were able to do the hearing test, able to do the trial. And so you can actually hear what you've been missing. Because you don't know what you don't know. And that's the biggest thing when people come into the clinic is oh, I didn't realize I was missing so much. And so that story is familiar to me. Angela Davis: And describe to me what is it like? How would you describe it to someone to be hard of hearing? What is it like to experience the world that may be different than other people? Rachel Allgor: Yeah, it is so person dependent for that. It's not quite like glasses, where things just seem a little fuzzy. It could be that your hearing is fuzzy, but it also could be a distortion that's occurring too. And so a common hearing loss is going to be a high frequency one. When you have a high frequency loss, it's the clarity that we're missing. So then it feels like people are mumbling, all day, every day. Angela Davis: And then also, sometimes sounds that you don't want to hear are really loud and distracting. I've heard that folks will get hearing aids, but then they're hearing everything. Rachel Allgor: Yes, because the brain is suddenly getting reintroduced to sound. And so it has to learn how to filter things out again, which is hard, particularly if it's been years since you've heard it all. Angela Davis: Marika described her mother talking to her grandchildren. And then that's finally what got her to go in to get tested. Is that a story you often hear with as an audiologist helping people through these tasks and getting fitted that while I was because I realized I was missing out on a lot. Rachel Allgor: Yes, that's a very common thing for me to hear. Either they're with their friends or they're with their family. And they realize they're just smiling and nodding through the conversation because they don't catch everything or they're scared or embarrassed to say something wrong. Angela Davis: And Marika, a final question she had was about the technology. She's got her 80-something-year-old mom on the phone using an app. What support is available to help people actually be able to be independent as they have, you know, higher quality hearing aids? Rachel Allgor: Apps have been so helpful to hearing aids for most users, because it gives you a visual of what's going on. So you can see the volume, instead of just pushing a button on the hearing aid. It gives the control back to the patient. And so they can see what's happening, they can know exactly what's happening. Or it can be in the hands of the caregiver so that they can see what's going on too. Angela Davis: Peggy, as you heard Marika's excellent phone call covered a lot of issues. What stands out to you about the story she shared about her mother getting a hearing aid and having the world opened up to her again? Peggy Nelson: Yeah, I was cheering. And I completely agree with Rachel and on what she said yes, it's finally realizing what you're missing. It happens so slowly and so gradually, especially as we age. A friend who recently got hearing aids described getting them as not really hearing better, he said, but hearing fully. He had, you know, better quality of hearing and realizing things that he was missing. I recognize the app can be a challenge. But I recommend that Marika go back to the audiologist and work to simplify things. And perhaps they can use the app just for one or two things and get things set pretty standard on the hearing aid so she doesn't have to use it all the time. Some people on the other hand will want to change things all the time, they'll want to be playing with the app and adjusting this and that. But I think somewhat, it pretty much stays the same, just one or two times when they turn it up or down. And I think that the audiologist can help her simplify that. Angela Davis: But before we get to more of our listeners, let's talk about money. Peggy, how much does a hearing aid cost? If you're going through, you know, if you're not buying it over the counter. Does insurance cover it? Like what what are we talking about in terms of money here? Peggy Nelson: Yeah, hearing aids, a pair of hearing aids will cost thousands. There's a wide range that might be perhaps $2,000 for a pair or perhaps up to $8,000 for a pair, perhaps Rachel's got other information about that. We're hoping that over the counter devices will be priced at under $1,000 a pair. What we've seen in startups and glimpses have been at $800 for a pair or something like that. I imagine, again, there will be a wide range. Angela Davis: And one more question. How about hearing loss in isolation. Does hearing loss make people more isolated? And I know that this is something you looked at in the pandemic. Peggy Nelson: Hearing loss gradually causes more and more isolation, and especially among older people. And so that cuts them off from their family and friends and activities. And it cuts them off from things that would otherwise keep them healthy, they actually become more lonely, more sedentary more, you know, all the things that are bad for us about getting older, the hearing loss can exacerbate that. So we want hearing devices to help people stay active, involved, engaged playing bridge, whatever they love to do. We want the hearing devices to be used in that way, and that keeps us all healthier. And you asked about the pandemic and we did study the isolation of people in the pandemic with hearing loss. And I would say there were two polar different outcomes. Number one, everyone wearing masks is just terrible for a person with hearing loss. It's really frustrating to go out in public. They cannot read lips and it's muffled even more. It's still a problem because we're still masking in quite a few places. But that was just a horrendous response from people with hearing loss of how difficult that was. On the positive side, many people with hearing loss learn to use remote communications, telemedicine, tele-friendship tele-families that had clear signals and even live captioning. And so there are some people with hearing loss who are loathing to go back to in person appointments for things because they were so successful doing that with technology that provided a really nice audio signal and live captioning. Angela Davis: In Stillwater, Nancy is on the phone. Hi, Nancy, thank you for waiting. What did you want to share with us? Nancy: Hi, thanks for having me. I just wanted to comment on that statistic that you mentioned a minute ago about on average people waiting up to seven years, which is kind of an astounding one. And I think I might have been in that category. When in my mid- to late-50s, I realized I had hearing loss. But I think I thought well, I'm at the young end of this or I don't want to wear hearing aids. But what convinced me was my brother-in-law's ear, nose and throat surgeon and he mentioned the point that I think you amplified earlier on your show, the longer you wait, the less effective the hearing aids are going to be that they'll still collect the same information. But by then, when you wait, your brain has already remapped its way around the noise trying to figure it out. And they become less effective over time. And, you know, that really nudged me to get in. And then I, you know, only to learn when I got in that my hearing loss was exactly in the range of my daughter's voice. And she also sings, does vocal performance. And I thought, wow, if I missed that band of time and and missed that going on in the future, I would have missed out on a lot. Angela Davis: Thank you, Nancy, for calling in and sharing that. Rachel, what can you tell us about the longer you wait and how your brain kind of adjust to not being able to hear very well? Rachel Allgor: And so with that, as your brain learns to hear without the full spectrum, it's missing those components. And so those pathways within your brain actually get reprioritized to something else where it is more use, because it's not getting that information anymore. So when you start wearing hearing aids, we're not only having to get used to sound again, but it's actually the brain trying to bring that pathway back to what its original purpose was. Angela Davis: So as an audiologist, walk me through this process. How do you start a hearing test? What happens? Rachel Allgor: First thing we do is a case history. So I'm asking a bunch of questions about you and your life and your lifestyle, trying to figure out right off the bat, okay, what is going on for you? How is this possibly impacting you? Next thing we do is a full blown hearing test. And so I want to see how you're hearing at different pitches. I want to see how you're doing with understanding words, I want to see how you're doing in background noise. Because that's telling me all the information I need to know to make a good recommendation for you. Angela Davis: So what does that look like you put headphones on me or you put me in a room and you play sounds? Rachel Allgor: Typically, you're in some kind of sound-treated room. So it feels soundproof and then headphones go on, you're given a button, or you can just raise your hand. So whenever you hear those beeps, kind of like when you were a kid in elementary school, you'd have a hearing test, very similar premise there for that part of the testing. Angela Davis: And then and then what happens? Rachel Allgor: And then we switch to doing word tests. Because we know that beeps aren't our everyday life. We want to know how you're hearing with words, especially words that you don't know what's coming. Because that gives us a really good snapshot of how you do in just understanding when you're not expecting. Angela Davis: When we talk about aging, what do we know about that? Rachel Allgor: I don't know if Peggy knows a little bit more about this, but we've seen the average age start to drop, especially in kids using earbuds where we're damaging hearing a lot earlier than what we used to see. Angela Davis: Peggy, a researcher, what do we know about aging and hearing loss? Peggy Nelson: It tends to start mostly in our 60s. And then there's a greater proportion in our 70s and 80s. By the time we're in our 80s, probably half of us have hearing loss. But you realize that means half don't have very much hearing loss, too. So we've got some, some pretty healthy older people as well. You can inherit from your parents and grandparents, your susceptibility to noise and other things like that, too. So we should look carefully at our parents and grandparents. Interestingly, we have fewer people that are working in exceptionally noisy environments, like mines, or old time printing presses. But we still have millions of workers in the United States who are working in noisy environments. And so we try to help protect their hearing as well, because they could stay in those careers for 30 or 40 years and that could be very damaging. Angela Davis: As we look to the future, we now have toddlers, children, elementary school, high school kids, wearing earbuds, headphones, listening to music, podcasts, many hours of the day, you have concerns about what these young folks will be confronted with when they're in their 60s and 70s. Peggy Nelson: We're keeping our eye on it. They're not listening at levels that we would call 'breaking the law' as according to the occupational safety and health. For example, they're not listening like a miner or printer would be listening to levels, but we're keeping our eyes on what the effect is. If they're listening for hours per day, for example, at fairly high levels. There's no data yet that say it's a terrible thing. But we'll just have to wait and see because they're not older yet. Rachel Allgor: What I'm usually telling patients is a good rule of thumb is 60 percent or less of the volume on your phone, you're pretty much in the clear. If you're doing 60 percent or more, do it under 60 minutes a day. Angela Davis: In St. Paul, let's talk to Wendy, what's going on with you? Wendy: Hi, I'm calling about one of those genetic hearing issues. It's called auditory processing disorder. I and my son had been diagnosed with this. And it was not easy. In my son, it perhaps delayed his social-emotional learning. And I look back over my life. And it's created social difficulties for me as well, but I've navigated them. My brains adjusted. Hearing aids are a treatment for this, but you have to go to a specialist. I've tried a regular audiologist and they could not adjust the levels correctly. So this is not just for old people. It's also hearing loss in different ways. The genetic kind can affect any age and if someone uses hearing aids, but does not find they're successful, I would urge them to go see a specialist and consider auditory processing disorder. Angela Davis: All right. Thank you, Wendy. And this is a new term for me. What is this? Can it affect all ages? Rachel Allgor: Yeah, it can. And it often shows up when you're younger, because you're struggling in school. So what an auditory processing disorder is, is when the information going into your brain is healthy. And so your ears don't show any form of hearing loss oftentimes. But once it gets into your brain, information scrambles a bit. And so you're not understanding things clearly. Even though on a hearing test, you should be. Angela Davis: Is this rare? Rachel Allgor: It's probably more common than we realize, but testing just isn't prevalent, like what Wendy said. Angela Davis: So what does a hearing aid do? Rachel Allgor: A hearing aid helps amplify just a bit in the regions that are most helpful, especially for speech. And so I am not somebody who specializes in it. I believe there are two, maybe three providers in the cities or the state. Angela Davis: Peggy, anything you could add about auditory processing disorder? Peggy Nelson: I hear the frustration, it's really tricky. And the other thing that a person might try is a system that has a remote microphone where the microphone could be near the teacher or the speaker, and then feed that to the hearing aids directly so that the person with auditory processing is not hearing everything at once. But they can hear more selectively the voice that they need to attend to at the time, but it's a tricky situation very difficult to handle. Angela Davis: Let's go to Onamia and talk with Robert. Hi, Robert, thank you for calling in. And what did you want to tell us? Robert: Good morning. Hi. Yeah, I want to say a few things about over-the-counter hearing aids. I wear two hearing aids. And I got my hearing aids through Medicare at no cost. And about two years ago, the hearing aid for my left ear was damaged and couldn't be repaired. And I was told by my audiologist that I wouldn't be able to replace it until 2024. So it's been, you know, pretty difficult, not having that hearing aid in my left ear. And a few weeks ago, I was in Walmart, and I saw over-the-counter, FDA-approved hearing aid. So I bought one. And I thought I would try it out. And it has a built in battery, it looks almost exactly like my other hearing aid. It's a little bit more bulky, it's a little bit more unsightly, I think, because of the tube that runs between the ear plug and amplifier. Angela Davis: So Robert, you have one of the new over-the-counter hearing aids, and how was it like getting it set up. Because you're just going on directions from the box? Right? Robert: Well, it was really easy. I mean, all I had to do was recharge the battery and put it into my ear. And they do give you like, the one I have has three different ends on the earplugs. But the one that was already in it fits my ear pretty good. And there's just two volume controls on it. One is for a higher volume, and then there's one for lower volume. And so you press the button hear, a little beep. And when you hit to get up to two beeps, that means you've reached the maximum of the volume. So I don't know, it works really good. Angela Davis: Can I ask you how much did it cost? How much did you pay for the this over-the-counter? Robert: Yeah, I paid $90 for it. And so I think for that price, it was a good deal. I see it mainly as something that's temporary. Angela Davis: Because the quality is not the same as the one that you had that you went to a professional to get? Robert: It's pretty close to that quality. But I'd rather have, you know, one from my audiologist rather than the over-the-counter. I mean, I think the over-the-counter works really good. Of course, I can't recommend them for other people. Angela Davis: Thank you, Robert. What are you hearing in his story, Rachel? Rachel Allgor: Yeah, I mean, that one sounds like it's a very simple one. I'm not sure if there was an app component involved, which is involved in all of the newer OTC products. And so there's a difference between a personal sound amplification product. Angela Davis: So there's, there's a range of products that will come out over-the-counter. So some will be much more advanced and some will be more simple. Okay, and Peggy, anything you can add to what he just shared about having over-the-counter ones? It sounds like a more simple one. Peggy Nelson: Yeah. And that was good clarification. I think there will be confusion about the product. So again, we'll wait and see. And I would guess also this was a personal sound amplifying product, but I love his approach of using this temporarily. And that might be hopefully with access, people will try them and even if they only use them for months or a year or short time, whatever it might be. And it brings them into realizing the potential, they think that will be a great thing. Angela Davis: Let's take up more phone calls. In Topeka, Kansas, we have Kate on the phone calling in. Good morning, Kate. Kate: Good morning, Angela. I've known for four years I've lost hearing, I noticed mostly in group settings. And because my mother has dementia that may be related to hearing loss. And my husband's always been a bit of a mumbler. So it's led to a lot of irritability at our house when I make him stand in front of me while he talks. But the audiologist confirmed I have about 20-25% percent loss in both ears, especially in the high tones, as you've described. I lost that clarity, and it feels like everyone's mumbling. But they warned me, both of them, that it probably would only do a little bit of good if I got a hearing aid because the mumbling would just be amplified, as well as all the other noises around me. I'm wondering if these new FDA OTCs will be better, that they will be able to sort out the sound and help me in a way. I'm willing to gamble like Robert's $90. I wasn't willing to gamble $8,000. Angela Davis: So Kate, since you know, she doesn't want a hearing aid that's just gonna make the mumbling louder. She wants something that's going to bring her clarity. So what do we know about the technology that the ability to do that with the over the counter, the ones and the ones that you would get from a professional audiologist? Rachel Allgor: Well, I expect that that clarity piece will be similar. The audiologist fit will have more capabilities, like streaming and directionality, directional microphones that will focus hearing a little better. But I want to clarify one thing about the mumbling and maybe the advice that you got there. If I mumble, the hearing aid will help with that, because it will sharpen the pitches, it will sharpen up the high pitches. And so while it won't be lots louder, and I think that advice that you got was good, it's not going to be night and day, it's not going to be a switch that flips for you and everything's going to be so much better than it was yesterday. But as Rachel said, if you give it time to help your brain relearn those high pitched sounds, within some time, you'll realize things are clearer. It's not just mumbled anymore, it will be clear, it will not knock out all the background noise. The background noise will still be there. It'll still be audible, but the speech itself should become clearer over time. Angela Davis: Rachel, what can you tell us about how a hearing aid can help bring clarity, if someone sounds like they're mumbling? Rachel Allgor: Yeah. And I think it's tricky, especially with this caller. Because she doesn't have a lot of hearing loss. So really low pitches to really high pitches, but she mentioned that she has more of a high pitched hearing loss. And this is where I can see the over-the-counters coming into play a lot more. Because it gives the control in the patient's hand or in the person's hand where you can tweak things and see how it sounds for you. Because I can do that as best I can in the office. But I know my office is not your life. And so that's where I can see some benefit of control. It's a lot less cost and more control in your environments. Angela Davis: I've read that people who are experiencing hearing loss, that often it's children's and women's voices that they have the hardest time hearing. That's the first indicator. Is that true? Rachel Allgor: It is to an extent. Because there's typically higher pitched voices. And so more of their speech sounds are found in those higher frequencies. I think men often project more and kind of have been taught that as a gender. Angela Davis: Let's take another phone call in Minneapolis. Chris is on the phone. Hi, Chris. What did you want to share with us about hearing loss and hearing aids? Chris: Hey, thank you. I'm so grateful to be listening to this excellent conversation on my Bluetooth hearing aids, which I've worn for about two years. Unfortunately, I waited decades to get them. You know, I acquired verbal proficiency pretty early in life, read widely from a young age and also unfortunately, I began abusing my hearing at a fairly young age to and I damaged profoundly the upper range of my hearing in both ears. One thing that I've read and have certainly experienced for myself is the amount of bandwidth it requires for me to process other people's speech. And because of my verbal proficiency, I'm able to sort of reconstruct what people are saying, because people do tend to speak in, you know, fairly standard syntax. So I can kind of assemble a second or two after something is spoken what's being said. I had a boss who, ironically, once said to me, interpolation is 90 percent of meaning. And he had a way of sort of reversing syntax, because he was very well read. And so he could be creative with how he put sentences together. He also had Parkinson's disease. And he spoke very softly, I didn't have hearing aids at that time. And I really struggled to make out what he was saying to me. And the amount of bandwidth that we devote to that really detracts from the ability to just let the sound come into our ears, and allow our cognitive powers to process meaning rather than to try and tease out constructions. And I just think it's really important for people to see hear and to know that. Peggy Nelson: This is something that we're studying. It's not only about repeating and understanding the words and sentences, (it's) about how much effort it takes how much fatigue over the course of the day, how much they are not able to concentrate on two things at once, because of the effort that it takes to, to listen, and we really hope and anticipate that getting hearing devices will reduce that effort, it is something that we're studying as well. So that really hit a lot of notes for me that, that perhaps one of the things we could notice about getting used to new hearing aids is that a person can relax more, can be not quite so tired at the end of the day, to relax and enjoy a conversation, you know, the give and take of a conversation, rather than really having to focus and struggle. I really appreciate that viewpoint. Angela Davis: Let's take a phone call in Minneapolis, Mary's on the phone. Mary, thank you for waiting, what do you want to ask or share with our guests about hearing loss? Mary: Hi, I've heard so many positive things today. And I just want to ask for some advice for the obstinate 80 year old who does not feel like it's something he wants to undertake. He did undertake it once and he didn't like it. But he's become increasingly isolated from friends and family who don't want to sit around with the TV blaring in the background, trying to have a conversation with him. Or even having a phone conversation with him. It's just become so difficult to to kind of continue the relationship when he's not a fully part of a conversation. Angela Davis: Mary, I think you speak for a lot of people with this question. And so Peggy and Rachel helped me with this conversation. One of the words to use how do we have a conversation with someone who is reluctant to get help or doesn't believe that they need help? Peggy, could you begin? Peggy Nelson: Well, one thing I do is ask people directly what's important to you? What do you miss? Or what would you like to see and then try to figure out how that could be achieved, perhaps especially in this case, where he tried something before and didn't like it. And that does happen. Perhaps we need to go to simpler technology. There are some, you know, boxes, to pocket talkers and things that might be a simpler solution that would allow him to have the high-priority conversations that he wants. And then to to say clearly, we miss talking to you. What can we do to try to make it easier? Angela Davis: Rachel, anything you'd add? Rachel Allgor: Yeah, I think it can be really powerful coming from family and friends saying, we miss talking with you. We miss engaging with you. So hitting on that emotional side of things, or like we see that you're not paying attention during dinner anymore, and you missed this part of the conversation, or you missed your grandkids trying to get your attention because they need you. Like we need our grandparents. Angela Davis: And then there's some words that we should not use with people who have hearing loss I have in my notes here. You want to talk about people saying, ‘nevermind.' How does that come into conversation? Rachel Allgor: That comes from asking for repetitions. So as a person with hearing loss, there have been many times in my life where I've had to ask for repetitions. And if people say "oh, nevermind" it is one of the most hurtful things for me to hear that from somebody else. Because I'm genuinely interested. And I want to know what's being said, I just can't figure it out. Even with my hearing aid, I still have trouble sometimes. And so understanding that it's my responsibility to repeat back what I did here, so that you only have to fill in the blanks. And then sometimes it's your responsibility, instead of saying the same thing, rephrase it. Angela Davis: Could you describe what your hearing aid looks like? Rachel Allgor: So I have one that is a speaker in my ear canal itself. And then it has a wire going and sitting to like the main component of the hearing aid behind my ear. I have long hair, it is hidden more. But I have a purple, white and sparkly ear mold also. Because I love having something fun with my hearing aid. Angela Davis: And Peggy in the last 30 seconds here, where do people go? What do you advise folks do or go to get more information about the over the counter hearing aids and hearing aids that you will get from going to see an audiologist, what are some resources? Peggy Nelson: There are some good resources online from the National Institute on Deafness and Other Communication Disorders. We also have the Minnesota Commission for the Deaf, Deafblind, and Hard of Hearing that have resources available, and the Minnesota Academy of Audiology will and the university clinics will as well. We're all discovering this together. And we want to work with people to figure out what's best for them and sometimes it will be stick with your audiologist and go back but sometimes, like some of your callers, they want to give it a try. So let's help them give it a try.
HIGHLIGHTSFinishing the last 20% is harder than getting to the first 80% You require obsession to achieve elite status Your path to success will differ based on your goals Aim for a healthy body, mind, and spiritThink of the journey, not just the end goalStrength comes from stress It's all about training Celebrate all your victoriesQUOTESRobert: It's difficult at first. I think sometimes, you need to go off track to get back on track, if that makes sense." Robert: "You just gotta appreciate the positive more than the negatives of whatever you're trying to be elite at. If you're trying to be an elite football player, if you love football that much, I don't think you're gonna care about the things you got to give up." Kris: "The illusion of being elite, the illusion of being great is, when you think of that, you think of the end goal. People tend to emulate the end result, not the journey." Robert: "It's all training. You're training your mind, you're training your spirit, you're training your body. I started to think about coordination, like people sometimes come in and say oh I'm not very coordinated. And it's like, you never put in the time to build that coordination. You never made the connections in your brain to help your body do what you want it to do. Whenever you're learning a new skill, you're just making new connections in your brain." Robert: “Somebody comes in, they don't have to be older, then can be younger and in pain they're not able to do stuff they used to be able to do and then they break through that barrier. And now they can do something simple like walk around the grocery store and not be out of breath or something like that. Those are really huge wins, those are life-changing wins."Learn more about Robert in the links below: Website: https://believeadultfitness.com/LinkedIn: https://www.linkedin.com/in/robbadstein/Follow Success Fundamentals on the following links below: Website: https://www.successfundamentals.com/YouTube: https://www.youtube.com/channel/UC4XCvuwxnFi5_7C6Ncm12xQLinkedIn: https://www.linkedin.com/company/success-fundamentals™Facebook: https://www.facebook.com/successfundamentalspodcastInstagram: https://instagram.com/successfundamentalspodcast
HIGHLIGHTSFrom pre-Med to Wall StreetThe critical importance of listening Gains and opportunities opened by joining ToastmastersSpeaking is only one part of communicationCompetition can be supportive and nurturingLessons learned after testing positive for COVID-19Time spent with others is our best asset QUOTESRobert: "As valuable it is to speak, probably more important to be a good listener."Robert: "It's not only public speaking that is the value of Toastmasters to me. It's the communication. What Toastmasters has done is to help me to crystallize my thinking, focus my comment, hopefully get rid of a lot of noise that goes on in my head, and deliver a message, whether it's table topics, a formal speech evaluation, something that people will actually remember because the message is clear." Robert: "Motivate/inspire the people who work with and for you, and that's what Toastmasters do. They inspire and motivate others to help them with their journeys that those people might not have been able to do if they relied strictly on their own capabilities. We are the movers, we are the accelerators. "Robert: "Because we are challenging one another to get better, we realize there's really no limit to our ability to improve how we speak, how we listen, and how we can better support one another."Robert: "I came to realize in those 10 days, my situation was not permanent. It felt permanent, while going through it, but I realize it's part of life what we go through, our ups and downs. It's a temporary situation and it will get better. Times will change and we will adapt."Connect with Robert in the link below:LinkedIn: https://www.linkedin.com/in/bobgoodman1/Find out more about Toastmasters, visit https://toastmasters46.org/ and follow District 46 on:Instagram - https://www.instagram.com/toastmasters46/LinkedIn - https://www.linkedin.com/company/toast-masters-district-46Facebook - https://www.facebook.com/TMDistrict46/ Instagram - https://www.instagram.com/toastmasters46/Twitter - https://twitter.com/district46tmPlease rate, review and subscribe!Toastmasters - where leaders are made.
About RobertR2 advocates for Liquibase customers and provides technical architecture leadership. Prior to co-founding Datical (now Liquibase), Robert was a Director at the Austin Technology Incubator. Robert co-founded Phurnace Software in 2005. He invented and created the flagship product, Phurnace Deliver, which provides middleware infrastructure management to multiple Fortune 500 companies.Links: Liquibase: https://www.liquibase.com Liquibase Community: https://www.liquibase.org Liquibase AWS Marketplace: https://aws.amazon.com/marketplace/seller-profile?id=7e70900d-dcb2-4ef6-adab-f64590f4a967 Github: https://github.com/liquibase Twitter: https://twitter.com/liquibase TranscriptAnnouncer: Hello, and welcome to Screaming in the Cloud with your host, Chief Cloud Economist at The Duckbill Group, Corey Quinn. This weekly show features conversations with people doing interesting work in the world of cloud, thoughtful commentary on the state of the technical world, and ridiculous titles for which Corey refuses to apologize. This is Screaming in the Cloud.Corey: It seems like there is a new security breach every day. Are you confident that an old SSH key, or a shared admin account, isn't going to come back and bite you? If not, check out Teleport. Teleport is the easiest, most secure way to access all of your infrastructure. The open source Teleport Access Plane consolidates everything you need for secure access to your Linux and Windows servers—and I assure you there is no third option there. Kubernetes clusters, databases, and internal applications like AWS Management Console, Yankins, GitLab, Grafana, Jupyter Notebooks, and more. Teleport's unique approach is not only more secure, it also improves developer productivity. To learn more visit: goteleport.com. And not, that is not me telling you to go away, it is: goteleport.com. Corey: You know how Git works right?Announcer: Sorta, kinda, not really. Please ask someone else.Corey: That's all of us. Git is how we build things, and Netlify is one of the best ways I've found to build those things quickly for the web. Netlify's Git-based workflows mean you don't have to play slap-and-tickle with integrating arcane nonsense and web hooks, which are themselves about as well understood as Git. Give them a try and see what folks ranging from my fake Twitter for Pets startup, to global Fortune 2000 companies are raving about. If you end up talking to them—because you don't have to; they get why self-service is important—but if you do, be sure to tell them that I sent you and watch all of the blood drain from their faces instantly. You can find them in the AWS marketplace or at www.netlify.com. N-E-T-L-I-F-Y dot com.Corey: Welcome to Screaming in the Cloud. I'm Corey Quinn. This is a promoted episode. What does that mean in practice? Well, it means the company who provides the guest has paid to turn this into a discussion that's much more aligned with the company than it is the individual.Sometimes it works, Sometimes it doesn't, but the key part of that story is I get paid. Why am I bringing this up? Because today's guest is someone I met in person at Monktoberfest, which is the RedMonk conference in Portland, Maine, one of the only reasons to go to Maine, speaking as someone who grew up there. And I spoke there, I met my guest today, and eventually it turned into this, proving that I am the envy of developer advocates everywhere because now I can directly tie me attending one conference to making a fixed sum of money, and right now they're all screaming and tearing off their headphones and closing this episode. But for those of you who are sticking around, thank you. My guest today is the CTO and co-founder of Liquibase. Please welcome Robert Reeves. Robert, thank you for joining me, and suffering the slings and arrows I'm about to hurled directly into your arse, as a warning shot.Robert: [laugh]. Man. Thanks for having me. Corey, I've been looking forward to this for a while. I love hanging out with you.Corey: One of the things I love about the Monktoberfest conference, and frankly, anything that RedMonk gets up to is, forget what's on stage, which is uniformly excellent; forget the people at RedMonk who are wonderful and I aspire to do more work with them in different ways; they're great, but the people that they attract are invariably interesting, they are invariably incredibly diverse in terms of not just demographics, but interests and proclivities. It's just a wonderful group of people, and every time I get the opportunity to spend time with those folks I do, and I've never once regretted it because I get to meet people like you. Snark and cynicism about sponsoring this nonsense aside—for which I do thank you—you've been a fascinating person to talk to you because you're better at a lot of the database-facing things than I am, so I shortcut to instead of forming my own opinions, I just skate off of yours in some cases. You're going to get letters now.Robert: Well, look, it's an occupational hazard, right? Releasing software, it's hard so you have to learn these platforms, and part of it includes the database. But I tell you, you're spot on about Monktoberfest. I left that conference so motivated. Really opened my eyes, certainly injecting empathy into what I do on a day-to-day basis, but it spurred me to action.And there's a lot of programs that we've started at Liquibase that the germination for that seed came from Monktoberfest. And certainly, you know, we were bummed out that it's been canceled two years in a row, but we can't wait to get back and sponsor it. No end of love and affection for that team. They're also really smart and right about a hundred percent of the time.Corey: That's the most amazing part is that they have opinions that generally tend to mirror my own—which, you know—Robert: [laugh].Corey: —confirmation bias is awesome, but they almost never get it wrong. And that is one of the impressive things is when I do it, I'm shooting from the hip and I already have an apology half-written and ready to go, whereas when dealing with them, they do research on this and they don't have the ‘I'm a loud, abrasive shitpostter on Twitter' defense to fall back on to defend opinions. And if they do, I've never seen them do it. They're right, and the fact that I am as aligned with them as I am, you'd think that one of us was cribbing from the other. I assure you that's not the case.But every time Steve O'Grady or Rachel Stephens, or Kelly—I forget her last name; my apologies is all Twitter, but she studied medieval history, I remember that—or James Governor writes something, I'm uniformly looking at this and I feel a sense of dismay, been, “Dammit. I should have written this. It's so well written and it makes such a salient point.” I really envy their ability to be so consistently on point.Robert: Well, they're the only analysts we pay money to. So, we vote with our dollars with that one. [laugh].Corey: Yeah. I'm only an analyst when people have analyst budget. Other than that, I'm whatever the hell you describe me. So, let's talk about that thing you're here to show. You know, that little side project thing you found and are the CTO of.I wasn't super familiar with what Liquibase does until I looked into it and then had this—I got to say, it really pissed me off because I'm looking at it, and it's how did I not know that this existed back when the exact problems that you solve are the things I was careening headlong into? I was actively annoyed. You're also an open-source project, which means that you're effectively making all of your money by giving things away and hoping for gratitude to come back on you in the fullness of time, right?Robert: Well, yeah. There's two things there. They're open-source component, but also, where was this when I was struggling with this problem? So, for the folks that don't know, what Liquibase does is automate database schema change. So, if you need to update a database—I don't care what it is—as part of your application deployment, we can help.Instead of writing a ticket or manually executing a SQL script, or generating a bunch of docs in a NoSQL database, you can have Liquibase help you out with that. And so I was at a conference years ago, at the booth, doing my booth thing, and a managing director of a very large bank came to me, like, “Hey, what do you do?” And saw what we did and got angry, started yelling at me. “Where were you three years ago when I was struggling with this problem?” Like, spitting mad. [laugh]. And I was like, “Dude, we just started”—this was a while ago—it was like, “We just started the company two years ago. We got here as soon as we could.”But I struggled with this problem when I was a release manager. And so I've been doing this for years and years and years—I don't even want to talk about how long—getting bits from dev to test to production, and the database was always, always, always the bottleneck, whether it was things didn't run the same in test as they did, eventually in production, environments weren't in sync. It's just really hard. And we've automated so much stuff, we've automated application deployment, lowercase a compiled bits; we're building things with containers, so everything's in that container. It's not a J2EE app anymore—yay—but we haven't done a damn thing for the database.And what this means is that we have a whole part of our industry, all of our database professionals, that are frankly struggling. I always say we don't sell software Liquibase. We sell piano recitals, date nights, happy hours, all the stuff you want to do but you can't because you're stuck dealing with the database. And that's what we do at Liquibase.Corey: Well, you're talking about database people. That's not how I even do it. I would never call myself that, for very good reason because you know, Route 53 remains the only database I use. But the problem I always had was that, “Great. I'm doing a deployment. Oh, I'm going to put out some changes to some web servers. Okay, what's my rollback?” “Well, we have this other commit we can use.” “Oh, we're going to be making a database schema change. What's your rollback strategy,” “Oh, I've updated my resume and made sure that any personal files I had on my work laptop been backed up somewhere else when I immediately leave the company when we can't roll back.” Because there's not really going to be a company anymore at that point.It's one of those everyone sort of holds their breath and winces when it comes to anything that resembles a schema change—or an ALTER TABLE as we used to call it—because that is the mistakes will show territory and you can hope and plan for things in pre-prod environments, but it's always scary. It's always terrifying because production is not like other things. That's why I always call my staging environment ‘theory' because things work in theory but not in production. So, it's how do you avoid the mess of winding up just creating disasters when you're dealing with the reality of your production environments? So, let's back up here. How do you do it? Because it sounds like something people would love to sell me but doesn't exist.Robert: [laugh]. Well, it's real simple. We have a file, we call it the change log. And this is a ledger. So, databases need to be evolved. You can't drop everything and recreate it from scratch, so you have to apply changes sequentially.And so what Liquibase will do is it connects to the database, and it says, “Hey, what version are you?” It looks at the change log, and we'll see, ehh, “There's ten change sets”—that's what components of a change log, we call them change sets—“There's ten change sets in there and the database is telling me that only five had been executed.” “Oh, great. Well, I'll execute these other five.” Or it asks the database, “Hey, how many have been executed?” And it says, “Ten.”And we've got a couple of meta tables that we have in the database, real simple, ANSI SQL compliant, that store the changes that happen to the database. So, if it's a net new database, say you're running a Docker container with the database in it on your local machine, it's empty, you would run Liquibase, and it says, “Oh, hey. It's got that, you know, new database smell. I can run everything.”And so the interesting thing happens when you start pointing it at an environment that you haven't updated in a while. So, dev and test typically are going to have a lot of releases. And so there's going to be little tiny incremental changes, but when it's time to go to production, Liquibase will catch it up. And so we speak SQL to the database, if it's a NoSQL database, we'll speak their API and make the changes requested. And that's it. It's very simple in how it works.The real complex stuff is when we go a couple of inches deeper, when we start doing things like, well, reverse engineering of your database. How can I get a change log of an existing database? Because nobody starts out using Liquibase for a project. You always do it later.Corey: No, no. It's one of those things where when you're doing a project to see if it works, it's one of those, “Great, I'll run a database in some local Docker container or something just to prove that it works.” And, “Todo: fix this later.” And yeah, that todo becomes load-bearing.Robert: [laugh]. That's scary. And so, you know, we can help, like, reverse engineering an entire database schema, no problem. We also have things called quality checks. So sure, you can test your Liquibase change against an empty database and it will tell you if it's syntactically correct—you'll get an error if you need to fix something—but it doesn't enforce things like corporate standards. “Tables start with T underscore.” “Do not create a foreign key unless those columns have an ID already applied.” And that's what our quality checks does. We used to call it rules, but nobody likes rules, so we call it quality checks now.Corey: How do you avoid the trap of enumerating all the bad things you've seen happen because at some point, it feels like that's what leads to process ossification at large companies where, “Oh, we had this bad thing happen once, like, a disk filled up, so now we have a check that makes sure that all the disks are at least 20, empty.” Et cetera. Great. But you keep stacking those you have thousands and thousands and thousands of those, and even a one-line code change then has to pass through so many different tests to validate that this isn't going to cause the failure mode that happened that one time in a unicorn circumstance. How do you avoid the bloat and the creep of stuff like that?Robert: Well, let's look at what we've learned from automated testing. We certainly want more and more tests. Look, DevOp's algorithm is, “All right, we had a problem here.” [laugh]. Or SRE algorithm, I should say. “We had a problem here. What happened? What are we going to change in the future to make sure this doesn't happen?” Typically, that involves a new standard.Now, ossification occurs when a person has to enforce that standard. And what we should do is seek to have automation, have the machine do it for us. Have the humans come up and identify the problem, find a creative way to look for the issue, and then let the machine enforce it. Ossification happens in large organizations when it's people that are responsible, not the machine. The machines are great at running these things over and over again, and they're never hung over, day after Super Bowl Sunday, their kid doesn't get sick, they don't get sick. But we want humans to look at the things that we need that creative energy, that brain power on. And then the rote drudgery, hand that off to the machine.Corey: Drudgery seems like sort of a job description for a lot of us who spend time doing operation stuff.Robert: [laugh].Corey: It's drudgery and it's boring, punctuated by moments of sheer terror. On some level, you're more or less taking some of the adrenaline high of this job away from people. And you know, when it comes to databases, I'm kind of okay with that as it turns out.Robert: Yeah. Oh, yeah, we want no surprises in database-land. And that is why over the past several decades—can I say several decades since 1979?Corey: Oh, you can s—it's many decades, I'm sorry to burst your bubble on that.Robert: [laugh]. Thank you, Corey. Thank you.Corey: Five, if we're being honest. Go ahead.Robert: So, it has evolved over these many decades where change is the enemy of stability. And so we don't want change, and we want to lock these things down. And our database professionals have become changed from sentinels of data into traffic cops and TSA. And as we all know, some things slip through those. Sometimes we speed, sometimes things get snuck through TSA.And so what we need to do is create a system where it's not the people that are in charge of that; that we can set these policies and have our database professionals do more valuable things, instead of that adrenaline rush of, “Oh, my God,” how about we get the rush of solving a problem and saving the company millions of dollars? How about that rush? How about the rush of taking our old, busted on-prem databases and figure out a way to scale these up in the cloud, and also provide quick dev and test environments for our developer and test friends? These are exciting things. These are more fun, I would argue.Corey: You have a list of reference customers on your website that are awesome. In fact, we share a reference customer in the form of Ticketmaster. And I don't think that they will get too upset if I mention that based upon my work with them, at no point was I left with the impression that they played fast and loose with databases. This was something that they take very seriously because for any company that, you know, sells tickets to things you kind of need an authoritative record of who's bought what, or suddenly you don't really have a ticket-selling business anymore. You also reference customers in the form of UPS, which is important; banks in a variety of different places.Yeah, this is stuff that matters. And you support—from the looks of it—every database people can name except for Route 53. You've got RDS, you've got Redshift, you've got Postgres-squeal, you've got Oracle, Snowflake, Google's Cloud Spanner—lest people think that it winds up being just something from a legacy perspective—Cassandra, et cetera, et cetera, et cetera, CockroachDB. I could go on because you have multiple pages of these things, SAP HANA—whatever the hell that's supposed to be—Yugabyte, and so on, and so forth. And it's like, some of these, like, ‘now you're just making up animals' territory.Robert: Well, that goes back to open-source, you know, you were talking about that earlier. There is no way in hell we could have brought out support for all these database platforms without us being open-source. That is where the community aligns their goals and works to a common end. So, I'll give you an example. So, case in point, recently, let me see Yugabyte, CockroachDB, AWS Redshift, and Google Cloud Spanner.So, these are four folks that reached out to us and said, either A) “Hey, we want Liquibase to support our database,” or B) “We want you to improve the support that's already there.” And so we have what we call—which is a super creative name—the Liquibase test harness, which is just genius because it's an automated way of running a whole suite of tests against an arbitrary database. And that helped us partner with these database vendors very quickly and to identify gaps. And so there's certain things that AWS Redshift—certain objects—that AWS Redshift doesn't support, for all the right reasons. Because it's data warehouse.Okay, great. And so we didn't have to run those tests. But there were other tests that we had to run, so we create a new test for them. They actually wrote some of those tests. Our friends at Yugabyte, CockroachDB, Cloud Spanner, they wrote these extensions and they came to us and partnered with us.The only way this works is with open-source, by being open, by being transparent, and aligning what we want out of life. And so what our friends—our database friends—wanted was they wanted more tooling for their platform. We wanted to support their platform. So, by teaming up, we help the most important person, [laugh] the most important person, and that's the customer. That's it. It was not about, “Oh, money,” and all this other stuff. It was, “This makes our customers' lives easier. So, let's do it. Oop, no brainer.”Corey: There's something to be said for making people's lives easier. I do want to talk about that open-source versus commercial divide. If I Google Liquibase—which, you know, I don't know how typing addresses in browsers works anymore because search engines are so fast—I just type in Liquibase. And the first thing it spits me out to is liquibase.org, which is the Community open-source version. And there's a link there to the Pro paid version and whatnot. And I was just scrolling idly through the comparison chart to see, “Oh, so ‘Community' is just code for shitty and you're holding back advanced features.” But it really doesn't look that way. What's the deal here?Robert: Oh, no. So, Liquibase open-source project started in 2006 and Liquibase the company, the commercial entity, started after that, 2012; 2014, first deal. And so, for—Nathan Voxland started this, and Nathan was struggling. He was working at a company, and he had to have his application—of course—you know, early 2000s, J2EE—support SQL Server and Oracle and he was struggling with it. And so he open-sourced it and added more and more databases.Certainly, as open-source databases grew, obviously he added those: MySQL, Postgres. But we're never going to undo that stuff. There's rollback for free in Liquibase, we're not going to be [laugh] we're not going to be jerks and either A) pull features out or, B) even worse, make Stephen O'Grady's life awful by changing the license [laugh] so he has to write about it. He loves writing about open-source license changes. We're Apache 2.0 and so you can do whatever you want with it.And we believe that the things that make sense for a paying customer, which is database-specific objects, that makes sense. But Liquibase Community, the open-source stuff, that is built so you can go to any database. So, if you have a change log that runs against Oracle, it should be able to run against SQL Server, or MySQL, or Postgres, as long as you don't use platform-specific data types and those sorts of things. And so that's what Community is about. Community is about being able to support any database with the same change log. Pro is about helping you get to that next level of DevOps Nirvana, of reaching those four metrics that Dr. Forsgren tells us are really important.Corey: Oh, yes. You can argue with Nicole Forsgren, but then you're wrong. So, why would you ever do that?Robert: Yeah. Yeah. [laugh]. It's just—it's a sucker's bet. Don't do it. There's a reason why she's got a PhD in CS.Corey: She has been a recurring guest on this show, and I only wish she would come back more often. You and I are fun to talk to, don't get me wrong. We want unbridled intellect that is couched in just a scintillating wit, and someone is great to talk to. Sorry, we're both outclassed.Robert: Yeah, you get entertained with us; you learn with her.Corey: Exactly. And you're still entertained while doing it is the best part.Robert: [laugh]. That's the difference between Community and Pro. Look, at the end of the day, if you're an individual developer just trying to solve a problem and get done and away from the computer and go spend time with your friends and family, yeah, go use Liquibase Community. If it's something that you think can improve the rest of the organization by teaming up and taking advantage of the collaboration features? Yes, sure, let us know. We're happy to help.Corey: Now, if people wanted to become an attorney, but law school was too expensive, out of reach, too much time, et cetera, but they did have a Twitter account, very often, they'll find that they can scratch that itch by arguing online about open-source licenses. So, I want to be very clear—because those people are odious when they email me—that you are licensed under the Apache License. That is a bonafide OSI approved open-source license. It is not everyone except big cloud companies, or service providers, which basically are people dancing around—they mean Amazon. So, let's be clear. One, are you worried about Amazon launching a competitive service with a dumb name? And/or have you really been validated as a product if AWS hasn't attempted and failed to launch a competitor?Robert: [laugh]. Well, I mean, we do have a very large corporation that has embedded Liquibase into one of their flagship products, and that is Oracle. They have embedded Liquibase in SQLcl. We're tickled pink because that means that, one, yes, it does validate Liquibase is the right way to do it, but it also means more people are getting help. Now, for Oracle users, if you're just an Oracle shop, great, have fun. We think it's a great solution. But there's not a lot of those.And so we believe that if you have Liquibase, whether it's open-source or the Pro version, then you're going to be able to support all the databases, and I think that's more important than being tied to a single cloud. Also—this is just my opinion and take it for what it's worth—but if Amazon wanted to do this, well, they're not the only game in town. So, somebody else is going to want to do it, too. And, you know, I would argue even with Amazon's backing that Liquibase is a little stronger brand than anything they would come out with.Corey: This episode is sponsored by our friends at Oracle HeatWave is a new high-performance accelerator for the Oracle MySQL Database Service. Although I insist on calling it “my squirrel.” While MySQL has long been the worlds most popular open source database, shifting from transacting to analytics required way too much overhead and, ya know, work. With HeatWave you can run your OLTP and OLAP, don't ask me to ever say those acronyms again, workloads directly from your MySQL database and eliminate the time consuming data movement and integration work, while also performing 1100X faster than Amazon Aurora, and 2.5X faster than Amazon Redshift, at a third of the cost. My thanks again to Oracle Cloud for sponsoring this ridiculous nonsense. Corey: So, I want to call out though, that on some level, they have already competed with you because one of database that you do not support is DynamoDB. Let's ignore the Route 53 stuff because, okay. But the reason behind that, having worked with it myself, is that, “Oh, how do you do a schema change in DynamoDB?” The answer is that you don't because it doesn't do schemas for one—it is schemaless, which is kind of the point of it—as well as oh, you want to change the primary, or the partition, or the sort key index? Great. You need a new table because those things are immutable.So, they've solved this Gordian Knot just like Alexander the Great did by cutting through it. Like, “Oh, how do you wind up doing this?” “You don't do this. The end.” And that is certainly an approach, but there are scenarios where those were first, NoSQL is not a acceptable answer for some workloads.I know Rick [Horahan 00:26:16] is going to yell at me for that as soon as he hears me, but okay. But there are some for which a relational database is kind of a thing, and you need that. So, Dynamo isn't fit for everything. But there are other workloads where, okay, I'm going to just switch over. I'm going to basically dump all the data and add it to a new table. I can't necessarily afford to do that with anything less than maybe, you know, 20 milliseconds of downtime between table one and table two. And they're obnoxious and difficult ways to do it, but for everything else, you do kind of need to make ALTER TABLE changes from time to time as you go through the build and release process.Robert: Yeah. Well, we certainly have plans for DynamoDB support. We are working our way through all the NoSQLs. Started with Mongo, and—Corey: Well, back that out a second then for me because there's something I'm clearly not grasping because it's my understanding, DynamoDB is schemaless. You can put whatever you want into various arbitrary fields. How would Liquibase work with something like that?Robert: Well, that's something I struggled with. I had the same question. Like, “Dude, really, we're a schema change tool. Why would we work with a schemaless database?” And so what happened was a soon-to-be friend of ours in Europe had reached out to me and said, “I built an extension for MongoDB in Liquibase. Can we open-source this, and can y'all take care of the care and feeding of this?” And I said, “Absolutely. What does it do?” [laugh].And so I looked at it and it turns out that it focuses on collections and generating data for test. So, you're right about schemaless because these are just documents and we're not going to go through every single document and change the structure, we're just going to have the application create a new doc and the new format. Maybe there's a conversion log logic built into the app, who knows. But it's the database professionals that have to apply these collections—you know, indices; that's what they call them in Mongo-land: collections. And so being able to apply these across all environments—dev, test, production—and have consistency, that's important.Now, what was really interesting is that this came from MasterCard. So, this engineer had a consulting business and worked for MasterCard. And they had a problem, and they said, “Hey, can you fix this with Liquibase?” And he said, “Sure, no problem.” And he built it.So, that's why if you go to the MongoDB—the liquibase-mongodb repository in our Liquibase org, you'll see that MasterCard has the copyright on all that code. Still Apache 2.0. But for me, that was the validation we needed to start expanding to other things: Dynamo, Couch. And same—Corey: Oh, yeah. For a lot of contributors, there's a contributor license process you can go through, assign copyright. For everything else, there's MasterCard.Robert: Yeah. Well, we don't do that. Look, you know, we certainly have a code of conduct with our community, but we don't have a signing copyright and that kind of stuff. Because that's baked into Apache 2.0. So, why would I want to take somebody's ability to get credit and magical internet points and increase the rep by taking that away? That's just rude.Corey: The problem I keep smacking myself into is just looking at how the entire database space across the board goes, it feels like it's built on lock-in, it's built on it is super finicky to work with, and it generally feels like, okay, great. You take something like Postgres-squeal or whatever it is you want to run your database on, yeah, you could theoretically move it a bunch of other places, but moving databases is really hard. Back when I was at my last, “Real job,” quote-unquote, years ago, we were late to the game; we migrated the entire site from EC2 Classic into a VPC, and the biggest pain in the ass with all of that was the RDS instance. Because we had to quiesce the database so it would stop taking writes; we would then do snapshot it, shut it down, and then restore a new database from that RDS snapshot.How long does it take, at least in those days? That is left as an experiment for the reader. So, we booked a four hour maintenance window under the fear that would not be enough. It completed in 45 minutes. So okay, there's that. Sparked the thing up and everything else was tested and good to go. And yay. Okay.It took a tremendous amount of planning, a tremendous amount of work, and that wasn't moving it very far. It is the only time I've done a late-night deploy, where not a single thing went wrong. Until I was on the way home and the Uber driver sideswiped a city vehicle. So, there we go—Robert: [laugh].Corey: —that's the one. But everything else was flawless on this because we planned these things out. But imagine moving to a different provider. Oh, forget it. Or imagine moving to a different database engine? That's good. Tell another one.Robert: Well, those are the problems that we want our database professionals to solve. We do not want them to be like janitors at an elementary school, cleaning up developer throw-up with sawdust. The issue that you're describing, that's a one time event. This is something that doesn't happen very often. You need hands on the keyboard, you want people there to look for problems.If you can take these database releases away from those folks and automate them safely—you can have safety and speed—then that frees up their time to do these other herculean tasks, these other feats of strength that they're far better at. There is no silver bullet panacea for database issues. All we're trying to do is take about 70% of DBAs time and free it up to do the fun stuff that you described. There are people that really enjoy that, and we want to free up their time so they can do that. Moving to another platform, going from the data center to the cloud, these sorts of things, this is what we want a human on; we don't want them updating a column three times in a row because dev couldn't get it right. Let's just give them the keys and make sure they stay in their lane.Corey: There's something glorious about being able to do that. I wish that there were more commonly appreciated ways of addressing those pains, rather than, “Oh, we're going to sell you something big and enterprise-y and it's going to add a bunch of process and not work out super well for you.” You integrate with existing CI/CD systems reasonably well, as best I can tell because the nice thing about CI/CD—and by nice I mean awful—is that there is no consensus. Every pipeline you see, in a release engineering process inherently becomes this beautiful bespoke unicorn.Robert: Mm-hm. Yeah. And we have to. We have to integrate with whatever CI/CD they have in place. And we do not want customers to just run Liquibase by itself. We want them to integrate it with whatever is driving that application deployment.We're Switzerland when it comes to databases, and CI/CD. And I certainly have my favorite of those, and it's primarily based on who bought me drinks at the last conference, but we cannot go into somebody's house and start rearranging the furniture. That's just rude. If they're deploying the app a certain way, what we tell that customer is, “Hey, we're just going to have that CI/CD tool call Liquibase to update the database. This should be an atomic unit of deployment.” And it should be hidden from the person that pushes that shiny button or the automation that does it.Corey: I wish that one day that you could automate all of the button pushing, but the thing that always annoyed me in release engineering was the, “Oh, and here's where we stop to have a human press the button.” And I get it. That stuff's scary for some folks, but at the same time, this is the nature of reality. So, you're not going to be able to technology your way around people. At least not successfully and not for very long.Robert: It's about trust. You have to earn that database professional's trust because if something goes wrong, blaming Liquibase doesn't go very far. In that company, they're going to want a person [laugh] who has a badge to—with a throat to choke. And so I've seen this pattern over and over again.And this happened at our first customer. Major, major, big, big, big bank, and this was on the consumer side. They were doing their first production push, and they wanted us ready. Not on the call, but ready if there was an issue they needed to escalate and get us to help them out. And so my VP of Engineering and me, we took it. Great. Got VP of engineering and CTO. Right on.And so Kevin and I, we stayed home, stayed sober [laugh], you know—a lot of places to party in Austin; we fought that temptation—and so we stayed and I'm texting with Kevin, back and forth. “Did you get a call?” “No, I didn't get a call.” It was Friday night. Saturday rolls around. Sunday. “Did you get a—what's going on?” [laugh].Monday, we're like, “Hey. Everything, okay? Did you push to the next weekend?” They're like, “Oh, no. We did. It went great. We forgot to tell you.” [laugh]. But here's what happened. The DBAs push the Liquibase ‘make it go' button, and then they said, “Uh-Oh.” And we're like, “What do you mean, uh-oh?” They said, “Well, something went wrong.” “Well, what went wrong?” “Well, it was too fast.” [laugh]. Something—no way. And so they went through the whole thing—Corey: That was my downtime when I supposed to be compiling.Robert: Yeah. So, they went through the whole thing to verify every single change set. Okay, so that was weekend one. And then they go to weekend two, they do it the same thing. All right, all right. Building trust.By week four, they called a meeting with the release team. And they said, “Hey, process change. We're no longer going to be on these calls. You are going to push the Liquibase button. Now, if you want to integrate it with your CI/CD, go right ahead, but that's not my problem.” Dev—or, the release team is tier one; dev is tier two; we—DBAs—are tier three support, but we'll call you because we'll know something went wrong. And to this day, it's all automated.And so you have to earn trust to get people to give that up. Once they have trust and you really—it's based on empathy. You have to understand how terrible [laugh] they are sometimes treated, and to actively take care of them, realize the problems they're struggling with, and when you earn that trust, then and only then will they allow automation. But it's hard, but it's something you got to do.Corey: You mentioned something a minute ago that I want to focus on a little bit more closely, specifically that you're in Austin. Seems like that's a popular choice lately. You've got companies that are relocating their headquarters there, presumably for tax purposes. Oracle's there, Tesla's there. Great. I mean, from my perspective, terrific because it gets a number of notably annoying CEOs out of my backyard. But what's going on? Why is Austin on this meteoric rise and how'd it get there?Robert: Well, a lot of folks—overnight success, 40 years in the making, I guess. But what a lot of people don't realize is that, one, we had a pretty vibrant tech hub prior to all this. It all started with MCC, Microcomputer Consortium, which in the '80s, we were afraid of the Japanese taking over and so we decided to get a bunch of companies together, and Admiral Bobby Inman who was director planted it in Austin. And that's where it started. You certainly have other folks that have a huge impact, obviously, Michael Dell, Austin Ventures, a whole host of folks that have really leaned in on tech in Austin, but it actually started before that.So, there was a time where Willie Nelson was in Nashville and was just fed up with RCA Records. They would not release his albums because he wanted to change his sound. And so he had some nice friends at Atlantic Records that said, “Willie, we got this. Go to New York, use our studio, cut an album, we'll fix it up.” And so he cut an album called Shotgun Willie, famous for having “Whiskey River” which is what he uses to open and close every show.But that album sucked as far as sales. It's a good album, I like it. But it didn't sell except for one place in America: in Austin, Texas. It sold more copies in Austin than anywhere else. And so Willie was like, “I need to go check this out.”And so he shows up in Austin and sees a bunch of rednecks and hippies hanging out together, really geeking out on music. It was a great vibe. And then he calls, you know, Kris, and Waylon, and Merle, and say, “Come on down.” And so what happened here was a bunch of people really wanted to geek out on this new type of country music, outlaw country. And it started a pattern where people just geek out on stuff they really like.So, same thing with Austin film. You got Robert Rodriguez, you got Richard Linklater, and Slackers, his first movie, that's why I moved to Austin. And I got a job at Les Amis—a coffee shop that's closed—because it had three scenes in that. There was a whole scene of people that just really wanted to make different types of films. And we see that with software, we see that with film, we see it with fashion.And it just seems that Austin is the place where if you're really into something, you're going to find somebody here that really wants to get into it with you, whether it's board gaming, D&D, noise punk, whatever. And that's really comforting. I think it's the community that's just welcoming. And I just hope that we can continue that creativity, that sense of community, and that we don't have large corporations that are coming in and just taking from the system. I hope they inject more.I think Oracle's done a really good job; their new headquarters is gorgeous, they've done some really good things with the city, doing a land swap, I think it was forty acres for nine acres. They coughed up forty for nine. And it was nine acres the city wasn't even using. Great. So, I think they're being good citizens. I think Tesla's been pretty cool with building that factory where it is. I hope more come. I hope they catch what is ever in the water and the breakfast tacos in Austin.Corey: [laugh]. I certainly look forward to this pandemic ending; I can come over and find out for myself. I'm looking forward to it. I always enjoyed my time there, I just wish I got to spend more of it.Robert: How many folks from Duckbill Group are in Austin now?Corey: One at the moment. Tim Banks. And the challenge, of course, is that if you look across the board, there really aren't that many places that have more than one employee. For example, our operations person, Megan, is here in San Francisco and so is Jesse DeRose, our manager of cloud economics. But my business partner is in Portland; we have people scattered all over the country.It's kind of fun having a fully-distributed company. We started this way, back when that was easy. And because all right, travel is easy; we'll just go and visit whenever we need to. But there's no central office, which I think is sort of the dangerous part of full remote because then you have this idea of second-class citizens hanging out in one part of the country and then they go out to lunch together and that's where the real decisions get made. And then you get caught up to speed. It definitely fosters a writing culture.Robert: Yeah. When we went to remote work, our lease was up. We just didn't renew. And now we have expanded hiring outside of Austin, we have folks in the Ukraine, Poland, Brazil, more and more coming. We even have folks that are moving out of Austin to places like Minnesota and Virginia, moving back home where their family is located.And that is wonderful. But we are getting together as a company in January. We're also going to, instead of having an office, we're calling it a ‘Liquibase Lounge.' So, there's a number of retail places that didn't survive, and so we're going to take one of those spots and just make a little hangout place so that people can come in. And we also want to open it up for the community as well.But it's very important—and we learned this from our friends at GitLab and their culture. We really studied how they do it, how they've been successful, and it is an awareness of those lunch meetings where the decisions are made. And it is saying, “Nope, this is great we've had this conversation. We need to have this conversation again. Let's bring other people in.” And that's how we're doing at Liquibase, and so far it seems to work.Corey: I'm looking forward to seeing what happens, once this whole pandemic ends, and how things continue to thrive. We're long past due for a startup center that isn't San Francisco. The whole thing is based on the idea of disruption. “Oh, we're disruptive.” “Yes, we're so disruptive, we've taken a job that can be done from literally anywhere with internet access and created a land crunch in eight square miles, located in an earthquake zone.” Genius, simply genius.Robert: It's a shame that we had to have such a tragedy to happen to fix that.Corey: Isn't that the truth?Robert: It really is. But the toothpaste is out of the tube. You ain't putting that back in. But my bet on the next Tech Hub: Kansas City. That town is cool, it has one hundred percent Google Fiber all throughout, great university. Kauffman Fellows, I believe, is based there, so VC folks are trained there. I believe so; I hope I'm not wrong with that. I know Kauffman Foundation is there. But look, there's something happening in that town. And so if you're a buy low, sell high kind of person, come check us out in Austin. I'm not trying to dissuade anybody from moving to Austin; I'm not one of those people. But if the housing prices [laugh] you don't like them, check out Kansas City, and get that two-gig fiber for peanuts. Well, $75 worth of peanuts.Corey: Robert, I want to thank you for taking the time to speak with me so extensively about Liquibase, about how awesome RedMonk is, about Austin and so many other topics. If people want to learn more, where can they find you?Robert: Well, I think the best place to find us right now is in AWS Marketplace. So—Corey: Now, hand on a second. When you say the best place for anything being the AWS Marketplace, I'm naturally a little suspicious. Tell me more.Robert: [laugh]. Well, best is, you know, it's—[laugh].Corey: It is a place that is there and people can find you through it. All right, then.Robert: I have a list. I have a list. But the first one I'm going to mention is AWS Marketplace. And so that's a really easy way, especially if you're taking advantage of the EDP, Enterprise Discount Program. That's helpful. Burn down those dollars, get a discount, et cetera, et cetera. Now, of course, you can go to liquibase.com, download a trial. Or you can find us on Github, github.com/liquibase. Of course, talking smack to us on Twitter is always appreciated.Corey: And we will, of course, include links to that in the [show notes 00:46:37]. Robert Reeves, CTO and co-founder of Liquibase. I'm Cloud Economist Corey Quinn, and this is Screaming in the Cloud. If you've enjoyed this podcast, please leave a five-star review on your podcast platform of choice along with an angry comment complaining about how Liquibase doesn't support your database engine of choice, which will quickly be rendered obsolete by the open-source community.Corey: If your AWS bill keeps rising and your blood pressure is doing the same, then you need The Duckbill Group. We help companies fix their AWS bill by making it smaller and less horrifying. The Duckbill Group works for you, not AWS. We tailor recommendations to your business and we get to the point. Visit duckbillgroup.com to get started.Announcer: This has been a HumblePod production. Stay humble.
Challenges, obstacles and painful experiences — these are just some of things life throws our way when we least expect them. But no matter where you are in life right now, remember that you can push past the hard times. You can learn how to rise above life’s challenges. And if you feel lost, here’s a little secret: help others. Being of service to other people can help you find strength and a way out of your problems. In this episode, Robert Joseph Cappuccio, widely known as Bobby, joins us to share his inspiring story of defying hardships and helping others. It’s easier to succumb to self-sabotage and addiction. But you have the power to make your experiences an opportunity for change and hope. Bobby also shares the importance of helping others, especially as a business owner and leader. If you want to learn how to rise above trauma and be inspired to become a force of good to the world, then this episode is for you! Get Customised Guidance for Your Genetic Make-Up For our epigenetics health program all about optimising your fitness, lifestyle, nutrition and mind performance to your particular genes, go to https://www.lisatamati.com/page/epigenetics-and-health-coaching/. Customised Online Coaching for Runners CUSTOMISED RUN COACHING PLANS — How to Run Faster, Be Stronger, Run Longer Without Burnout & Injuries Have you struggled to fit in training in your busy life? Maybe you don't know where to start, or perhaps you have done a few races but keep having motivation or injury troubles? Do you want to beat last year’s time or finish at the front of the pack? Want to run your first 5-km or run a 100-miler? Do you want a holistic programme that is personalised & customised to your ability, your goals and your lifestyle? Go to www.runninghotcoaching.com for our online run training coaching. Health Optimisation and Life Coaching If you are struggling with a health issue and need people who look outside the square and are connected to some of the greatest science and health minds in the world, then reach out to us at support@lisatamati.com, we can jump on a call to see if we are a good fit for you. If you have a big challenge ahead, are dealing with adversity or are wanting to take your performance to the next level and want to learn how to increase your mental toughness, emotional resilience, foundational health and more, then contact us at support@lisatamati.com. Order My Books My latest book Relentless chronicles the inspiring journey about how my mother and I defied the odds after an aneurysm left my mum Isobel with massive brain damage at age 74. The medical professionals told me there was absolutely no hope of any quality of life again, but I used every mindset tool, years of research and incredible tenacity to prove them wrong and bring my mother back to full health within 3 years. Get your copy here: https://shop.lisatamati.com/collections/books/products/relentless. For my other two best-selling books Running Hot and Running to Extremes chronicling my ultrarunning adventures and expeditions all around the world, go to https://shop.lisatamati.com/collections/books. Lisa’s Anti-Ageing and Longevity Supplements NMN: Nicotinamide Mononucleotide, a NAD+ precursor Feel Healthier and Younger* Researchers have found that Nicotinamide Adenine Dinucleotide or NAD+, a master regulator of metabolism and a molecule essential for the functionality of all human cells, is being dramatically decreased over time. What is NMN? NMN Bio offers a cutting edge Vitamin B3 derivative named NMN (beta Nicotinamide Mononucleotide) that is capable of boosting the levels of NAD+ in muscle tissue and liver. Take charge of your energy levels, focus, metabolism and overall health so you can live a happy, fulfilling life. Founded by scientists, NMN Bio offers supplements that are of highest purity and rigorously tested by an independent, third party lab. Start your cellular rejuvenation journey today. Support Your Healthy Ageing We offer powerful, third party tested, NAD+ boosting supplements so you can start your healthy ageing journey today. Shop now: https://nmnbio.nz/collections/all NMN (beta Nicotinamide Mononucleotide) 250mg | 30 capsules NMN (beta Nicotinamide Mononucleotide) 500mg | 30 capsules 6 Bottles | NMN (beta Nicotinamide Mononucleotide) 250mg | 30 Capsules 6 Bottles | NMN (beta Nicotinamide Mononucleotide) 500mg | 30 Capsules Quality You Can Trust — NMN Our premium range of anti-ageing nutraceuticals (supplements that combine Mother Nature with cutting edge science) combat the effects of aging, while designed to boost NAD+ levels. Manufactured in an ISO9001 certified facility Boost Your NAD+ Levels — Healthy Ageing: Redefined Cellular Health Energy & Focus Bone Density Skin Elasticity DNA Repair Cardiovascular Health Brain Health Metabolic Health My ‘Fierce’ Sports Jewellery Collection For my gorgeous and inspiring sports jewellery collection ‘Fierce’, go to https://shop.lisatamati.com/collections/lisa-tamati-bespoke-jewellery-collection. Here are three reasons why you should listen to the full episode: Discover how to rise above adversities. Understand the importance of intention and knowing who you serve. Learn the difference between internal and external customers and why you need to start focusing on the former. Resources Gain exclusive access to premium podcast content and bonuses! Become a Pushing the Limits Patron now! Harness the power of NAD and NMN for anti-aging and longevity with NMN Bio. Connect with Bobby: Website | Twitter | Facebook | LinkedIn | Instagram The Self-Help Antidote podcast by Bobby Cappuccio PTA Global The You Project Podcast by Craig Harper The Psychology of Winning: Ten Qualities of a Total Winner by Denis Waitley Episode Highlights [05:49] Bobby’s Childhood Bobby was born with deformities. He was adopted by a man who had cancer. After Bobby’s adoptive father passed, his adoptive mother entered a relationship with a cruel man. Bobby experienced all kinds of abuse throughout his childhood on top of having Tourette’s syndrome. Doctors had to put him on Haldol, which damaged his brain. Yet, Bobby shares that these painful experiences helped him resonate with others and thrive in his industry. [12:48] How Bobby Got to Where He is Today Bobby initially wanted to become a police officer for special victims. He almost passed the written and psychological assessments, but there was an issue because of Tourette syndrome. At this time, he started working at a gym. Bobby worked hard. Eventually, he caught the eye of the gym owner, Mitchell. Mitchell became like a surrogate father and mentor to him. Listen to the full episode to hear how Mitchell shaped Bobby and put him on the path to success! [20:31] Complications from Abuse and Empathy Some adults tried to intercede for Bobby when he was being abused as a kid. However, he avoided their help because he was scared of being harmed further. You can't just leave an abuser — it's difficult, and even simply attempting can hurt you. We should understand that abuse can affect anyone. Confident and intelligent women may be particularly susceptible to abuse because they find themselves in a situation they didn’t expect. [28:58] How Abuse Isolates People Abusers progressively isolate people by creating enemies out of strong alliances. This can make someone lose their sense of self, making them more vulnerable and dependent on their abusers. Assigning fault or blame to those being abused will not help anyone. If anything, that stops people from coming forward. [30:34] Help Others to Help Yourself Bobby learned how to rise above his traumas and negative emotions. His mentor taught him to look beyond himself. It was only by helping others find a way out of their problems that Bobby found a way to help himself too. He started to focus on helping people who were going through something similar to what he went through. [33:32] Focus on the Intention While working as a trainer, Bobby focused less on the transactional side of training and more on the transformational. He wanted to help people find what they need at that moment and give them the support they need. By focusing on his intention, he was able to get high rates of retention. For Bobby, helping others means understanding their goals and wishes. [36:12] Bobby’s Promotion Bobby’s exemplary performance led him to a promotion that he didn’t want. He was scared of disappointing Mitchell. He did poorly in managing his team of trainers, which is when a consultant sat him down and gave him advice. Mitchell also had Bobby stand up and speak in team meetings. You need to know who you work for and who you serve. When your perspective is aligned with your work, you will bring that to every meeting and interaction. Are you taking care of the people you need to be responsible for? Hear how Bobby figured out his answer in the full episode! [43:14] Lessons on Leadership Companies often adopt a top-down mentality where bosses need to be followed. However, a company should not be like this. Companies are made up of people. Your business needs to care for your valuable customers, both internal and external. Treat your team members with the same level of tenacity, sincerity and intention as your external customers. You can accomplish a lot if you hire the right person, set clear expectations and understand each individual’s motivations. Through these, you can develop the team’s capacity and channel it towards a common vision. [51:19] On Recruiting the Right People David Barton hired Bobby to work as his head of training. Bobby asked David what two things Bobby should do to contribute the most to the company. David wanted Bobby to be a connoisseur of talent and to train them, train them and train them again. Bobby brought this mindset throughout his career, and it’s served him well. Don’t be afraid to hire people who are smarter than you. 7 Powerful Quotes from This Episode ‘When you know that there's somewhere you want to go, but you don't know exactly where that is. And you don't have complete confidence in your ability to get there. And what a good guy does is they help you go just as far as you can see.’ ‘We form and calibrate and shape our sense of identity in the context in which we navigate through the world off of one another. And when you're isolated with a distorted sense of reality, and you lose your sense of self, you become highly incapacitated to take action in this situation.’ ‘So I started focusing on things and a mission and people outside of myself. Who's going through something similar to what I have gone through, even if it's not precisely the same situation? How do I help them find their way out? And by helping them find their way out, I found my way up.’ ‘I never saved anyone; you can't change anyone but yourself. But the reason why he called me that is anytime someone would think about joining the gym...I approached it from a transformational perspective.’ ‘And your job is to create and keep your internal customer by serving them with at the very least with the same tenacity, sincerity and intention that you are serving your external customer. If you don't do that, you're going to be shit as a leader.’ ‘I think the only people who don't have impostor syndrome are imposters. Because if you're fraudulent, you wouldn't engage in the level of self-honesty, and humility, and conscientiousness, to go, “Am I fraudulent; is there something that I’m missing?”’ ‘Anything I've ever accomplished, it's totally through other people. It's because I hired people that were a lot smarter than me.’ About Robert Robert Joseph Cappuccio, or Bobby, is a behaviour change coach, author, consultant, speaker and fitness professional. He is a trainer of trainers and at the forefront of the life-altering and ever-evolving industry of coaching. For over two decades, he has been advocating and pushing the industry-wide and individual shift of perspective in development. Behaviour change is rooted in a holistic approach, not just goals to health and fitness. With his vision, he co-founded PTA Global. It has now become a leader in professional fitness development. No matter how successful Bobby seems, it didn't start this way. His childhood was filled with neglect, abuse and traumas that could lead anyone on the path to drinking and addiction. Bobby is no stranger to hardship and challenges, but he uses these experiences to connect and relate to others, using his past hardship as a way to help others. Bobby is also the former head of training and development at David Barton Gym, former director of professional development at the National Academy of Sports Medicine (NASM), content curator for PTontheNet, development consultant for various companies including Hilton Hotels, Virgin Active, Equinox, David Lloyd Leisure and multiple businesses nationally and abroad. With his forward-thinking mindset and work ethic, Bobby champions practical programs that help both corporate and industry personnel, including individuals, get what they truly want. He advocates the process of change mixed in with the mantra of ‘you can be free to play’. Interested in Bobby’s work? You can check out his website and listen to his Self-Help Antidote Podcast! Reach out to Bobby on Twitter, Facebook, LinkedIn and Instagram. Enjoyed This Podcast? If you did, be sure to subscribe and share it with your friends! Post a review and share it! If you enjoyed tuning in, then leave us a review. You can also share this with your family and friends to offer them one way to rise above their trauma. Have any questions? You can contact me through email (support@lisatamati.com) or find me on Facebook, Twitter, Instagram and YouTube. For more episode updates, visit my website. You may also tune in on Apple Podcasts. To pushing the limits, Lisa Full Transcript Welcome to Pushing the Limits, the show that helps you reach your full potential with your host, Lisa Tamati, brought to you by lisatamati.com. Lisa Tamati: Welcome back to Pushing the Limits, your host Lisa Tamati here, and today I have a fantastic guest all the way from America again, this man goes by the name of Bobby Cappuccio. And he is a world-famous fitness professional. He trains a lot of the trainers that are out there. But Bobby has an incredible story that I really want to share with you today. So, Bobby was born with a severe facial deformity. And he also had deformed legs, and he was given up for adoption. His mother couldn't care for him, and he ended up being adopted by another man. But he had a very, very abusive rough childhood. He also developed Tourette Syndrome at the age of nine. In all this adversity you'd think like ‘oh my gosh, what sort of a life is this guy going to live’? But Bobby has had an incredible life. He's a fitness professional, as I said, he's worked in many gyms. He was the founder and co-owner of PTA Global, which does a lot of the professional fitness development. And he has devised his own strategies and ways of educating people. And his programs are just second to none. When I told my business partner, Neil, that I just interviewed Bobby Cappuccio, he's like, ‘Oh, my God, he's a legend in the space.’ So yeah, he was really a bit jealous that I got to speak to him. So I hope you enjoy this interview. It's some rough topics in there. But there's also some really great gems of wisdom. And the funny thing is what Bobby is just absolutely hilarious as well. So I do hope you enjoy it. Before we head over to the show, though, just want to let you know that we've launched a premium membership for the podcast. This is a patron membership so that you can become a VIP member of our tribe, help support the podcast. This podcast has been going now for five and a half years. It's a labour of love, I can tell you. It takes up a huge amount of my time and resources in both getting these world-class gifts for you, and also in study and research so that I can talk really, and interview very well all these crazy, amazing doctors, scientists, elite athletes and performers. So if you want to support us in keeping the show going, and like what we do in the world, and you want to keep those valuable content being able to be put out into the world, we'd love your support. And for that, we're going to give you lots of member, premium member, benefits. So, check it out at patron.lisatamati.com. That’s patron.lisatamati.com. That’s P-A-T-R-O-N dot Lisa Tamati dot com. And I just also wanted to remind you about my new anti-ageing and longevity supplement, NMN. I’ve co-worked together with molecular biologist, Dr. Elena Seranova, to make sure that you get the best quality NMN there is now. I searched all over the world for this stuff, when I learned about it, and researched about it, and how it works and what it does in the body, and there is a huge amount of science on it. A lot of it's up on our website, if you want to do a deep dive into all things NMN and the NAD precursor, then check it out. It's all about longevity. It's all about slowing down the ageing process and even reversing the ageing process. So if that's something that interests you, and you want high performance, you want help with cardiovascular health, with neuro protection, with metabolic disorders, then this is something that you should look into as well. So check that out at nmnbio.nz, that’s nmnbio.nz, and go and check that out. The supplements have been so popular that I haven't been able to keep up with orders. So on some of the orders, there is a bit of a backorder. But bear with me while we will scale up production. But go over and check that out at nmnbio.nz. Right over to the show with Bobby Cappuccio. Lisa: Hi, everyone, and welcome back to Pushing the Limits. Today I have another very, very special guest and I was recently on this gentleman's show and now we're doing a reverse interview. I have Robert Cappuccio with me. Robert, welcome to the show. Robert Cappuccio: Oh, thank you. When you say you had a very special guest, I thought you were bringing someone else on. Lisa: You are a really special guest. Robert: Had a lot of anticipation like who is this person? What a surprise! Lisa: Well, you're a bit of an interesting character. Let's say that, throw that. Robert: Just the microphone. Lisa: No, I'm really, really interested to hear your story and to share your story with my audience, and to give a bit more of a background on you. And share gems of wisdom from your learnings from your life, because you've done some pretty cool stuff. You've had some pretty hard times and I'd like to share those learnings with my audience today. So Robert, whereabouts are you sitting at the moment, whereabouts are you in the States? Robert: Okay, so at the moment, I'm in a place called Normal Heights, which is probably a misnomer. It's not normal at all. But it's a really cool, funky neighbourhood in San Diego. Lisa: San Diego, awesome. And how’s lockdown going over there, and all of that sort of carry on? Robert: Oh, it’s great. I mean, on St. Patty's day, I've got my skull from our own green. I've just had a few whiskies. So far, so good. Lisa: This is a very interesting interview. So can you give us a little bit of background? Because you've had a very interesting, shall we say, difficult upbringing and childhood. And I wanted to perhaps start there and then see where this conversation goes a little. Robert: Is there any place you want to start, in particular? How far back do you want to go? Do you want to start from the very beginning? Lisa: Please go right at the very beginning, because you're intro to your backstory is quite interesting from the beginning, really isn't that? Robert: Okay, so I was born, which is obvious, in Manhattan, and I moved to Brooklyn early. So I was born, rather deformed. I was born with a significant facial deformity. And my lower extremities, my legs, quite never— like, if you saw my legs now, they're great. I have a great pair of legs at this moment. I'm not going to show you that because that would be a little bit rude. But my legs were kind of deformed and contorted. I had to walk with braces for the first couple of years of my life. I was given up for adoption. I'm not exactly sure, I have the paperwork on why I was given up for adoption, but I'm not really certain about the authenticity of that story. And I wasn't adopted for a while. So as an infant, I was parentless and homeless and really not well-tended to. I'm not going to get into why I say that because it's pretty disgusting. And then I was adopted. And then my adoptive father, this is kind of interesting, he had cancer, and he knew during the adoption process that he was probably not going to make it. He wanted to make sure that I found a home because nobody wanted to adopt me. Because when they came in, I was physically deformed. It's like, ‘Oh, this baby’s, it's broken. Something's wrong. Do you have a better baby’? And when he saw that, he thought, ‘Right, I've got to give this kid a home.’ So he passed. He passed when I was two. I didn't know him for more than a few months. And I hardly have any memory of him at all. My mother who adopted me, to be fair, she's developmentally disabled, and so she was a single uom with not a lot of skills, not a lot of prospects, terrified. And she basically, I think she met a guy when I was five, who I don't know if there's a diagnosis for him. He was mentally disturbed. He was a psychopath. I don't know if clinically he’s a psychopath, but that's pretty much how it felt. Lisa: You were a child experiencing this. Yeah. Robert: Yeah, I'm not like, I'm never sure in what direction to go with stuff like this. Never sure what’s valid, what's relevant. I spent my childhood in stressed positions, being woken up in the middle of the night with a pillow over my face, having bones broken consistently, and a series of rape, emotional abuse, physical abuse, and just every sort of trauma. Like imagine when I was nine years old, I was diagnosed, on top of that, with Tourette Syndrome. So I was physically deformed, going through shit like that at home. And then on top of it, I started losing control of my bodily functions. I started exhibiting tics, I started exhibiting obsessive compulsive behaviour. At some point, it was uncontrollable, like lack of control of my impulses, of the things that I would say, vulgarity. At some point, the doctors just thought that perhaps I was Scottish. Lisa: And you’re funny as well. Robert: And they put me on Haldol, which damaged my brain. That and the fact that, it's estimated, I've had at least over a half a dozen major concussions within my childhood — Lisa: From the abuse. Robert: — half a dozen to a dozen massive concussions. Yeah. Lisa: Absolute horrific start into life. Robert: When I was 10, I started binge drinking. And I thought this will help, this is a solution. But you know what? It's not. It's a little bit weird when you start a story off like this, because in some sense, it's not me being delusional, or Pollyanna, because I tend to think that I'm a little bit of a realist, sometimes too much, sometimes to the point of walking a fine edge between being hopeful and being a cynic. But I have to say that a lot of things that I experienced when I was growing up, turned out to be quite beneficial. It’s shaped me in a way and it helped me engage in certain career paths and certain activities that I don't think I really would have sought out, had this stuff not happened. So it's not like me, delusionally trying to create like all silver lining about stuff, it was shit. I understand the severity of what I went through. But I also understand where that led me. And I understand the good fortune that I had of running into certain people that resonated with me, and I resonated with them, largely in part because of my history. I don't think I would have related to these people had I not come from where I came from. Lisa: So you’re talking like people along the way that were, ended up being mentors, or teachers or friends or helping you out and through these horrific situations? Is that what you're meaning, sort of thing that would actually helped you? Because I mean, given a background like that, if you were a complete disaster and drug addict, and whatever, nobody would blame you. You didn't have a good start in life, whatsoever. I mean, look at you now. Obviously you don't have any facial deformities, and you don't exhibit, right now, any of that stuff that actually you were and have been through. So how the hell did you get to where you are today? Because you're a very successful person, you have a very successful and a very strong influence in the world. What, how the heck do you go from being that kid, with brain problems and concussions and Tourette’s and abuse and rape and all of that, to being the person who comes across as one, number one, hilarious, very crazy and very cool? How the heck do you get from there to there? Lisa: Just listening to, I can tell that you're someone who's highly intelligent, perceptive and an amazing judge of humour. So thank you for that. I think a lot of it was quite accidental. So I had thought when I was younger, that I wanted to be a police officer, originally. And I wanted to be involved with special victims, even before that was a TV show. Brilliant show, by the way, one of my favourite shows on TV. But even before that was the TV show, I thought, if I'm going through what I went through, and it's very hard because I had Child Services in New York City, they were called ACS. They were at my house consistently. But the problem is, I believed at a young age that my stepfather was nearly invincible, like nobody could touch him. Lisa: You were powerless against him. Yeah. Robert: And when they came to the house and like, look, I had broken bones, my arm was in a sling. A lot of times, I broke my tibia. They won't take me to the hospital because they thought they would suspect stepdad of doing it. I couldn't even walk. And these people were sitting down, said, ‘Well just tell us what happened.’ And I somehow knew that, at a critical moment, my adopted mother would falter. She would not have my back. She would rescind on everything she says. Lisa: She was frightened too, no doubt. Robert: She was frightened. I don't think she had the emotional or intellectual capacity to deal with the situation. That's all I'll say on that. But I knew once they left, I just knew they couldn't do anything, unless I was all-in. And if anything went wrong, he would kill me. So I would have to just say that, ‘Well, I fell.’ And it’s like, there's no way a fork, like I would go into camp and I would have stab wounds in the shape of a fork. And people are like, ‘What happened?’ And I said, ‘I was walking, and I tripped, and I fell onto a fork that went through my thigh and hit my femur.’ It's like, okay, that's just not possible. But I kind of knew. And I kind of felt like nobody's coming to the rescue. And I thought, if I was a police officer, and I was worked with special victims, maybe I could be the person that I always wished would show up for me. But then, there were issues with that. So I think I got like, out of a possible 100 on the police test. I did fairly well. I think I got 103, there were master credit questions. And I thought, right, yeah, I'm going. And then I took the psychological and by some weird measure, I passed, that seems crazy to me now. It kind of seems problematic. I think they need to revisit that. But then when I took the medical, and with Tourette's, it was kind of like, ‘Ah, yeah.’ It was a sticking point. So I had to petition because otherwise I would be disqualified from the employment police department. And during that time, I started working in the gyms. And when I was working the gyms, I kind of thought, there's no way I'll ever be as intelligent as some of these other trainers here. I'm just going to make up with work ethic what I lack in intellect. I would run around and just tried to do everything I could. I would try to clean all the equipment, make sure that the gym was spotless. But again, kind of like not like having all my wits about me, I would be spraying down a machine with WD-40. And what I didn't account for is, the person who was on the machine next to me, I'd be spraying him in the face with WD-40 when he was exercising. Lisa: They still do that today, by the way. The other day in the gym and the girl next to me, she was blind, and she was just spraying it everywhere. I had to go and shift to the other end of the gym, is that right, cause I don't like that stuff. Robert: I mean, in my defence, the members were very well-lubricated. And so, people would go upstairs, and like there is this fucking trainer just sprayed me in the face. And the owner would say, ‘All right, let me see who this guy is. What do you talk? This doesn’t even make sense? Who hired this guy?’ We kind of had like the old bowl, the pin. And like you could walk up top and look down into the weight room, and there I was just running around. And there was something about someone running around and hustling on the gym floor that made him interested. He's like, ‘Get this kid up into my office. Let me talk to him.’ And that forged a friendship. I spoke to him yesterday, by the way. So we've been friends for like three decades. And the owner of the gym became kind of like a surrogate dad. And he did for me what most guides do and that is when you know that there's somewhere you want to go, but you don't know exactly where that is, and you don't have complete confidence in your ability to get there. And what a good guy does is they help you go just as far as you can see, because when you get there, you'll see further. And that's what Mitchell did for me. And he was different because I have a lot of adults. So I grew up with not only extreme violence in the home, but I grew up in Coney Island. I grew up living on the corner of Shit Street and Depressing. And there was a constant violence outside the home and in school and I got picked on. And I got bullied until I started fighting, and then I got into a lot of fights. And you just have these adults trying to talk to you and it's like, you don't fucking know me. You have no idea where I come from. You can't relate to me. When you were growing up, you had a home, you were being fed. You were kind of safe, don't even pretend to relate to me. And he was this guy, who, he was arrested over a dozen times by age 30, which was not why I chose him as a mentor. But he had gone through some serious shit. And when he came out on the other end of it, he wanted to be somebody other than his history would suggest he was going to be, and he tried harder at life than anybody I had ever met. So one, I could relate to him, I didn't think he was one of these adults who are just full of shit. I was impressed at how hard he tried to be the person he wanted to be. So there was this mutual respect and affinity, instantly. Lisa: Wow. And he had a massive influence. And we all need these great coaches, mentors, guides, surrogate dads, whatever the case may be, to come along, sometimes in our lives. And when they do, how wonderful and special that is, and someone that you could respect because like you say, I've had a wonderful childhood. In comparison to you, it was bloody Disneyland, and so I cannot relate to some of those things. And I have my own little wee dramas, but they were minor in comparison to what you experienced in the world. So how the heck can I really help you out if you're a young kid that I'm trying to influence. And not that you have to go through everything in order to be of help to anybody, but just having that understanding that your view, your worldview is a limited, privileged background. Compared to you, my background is privileged. Robert: Well, I don't think there's any ‘compared to you’. I think a lot of my reaction to adults around me who tried to intercede — one, if your intercession doesn't work, it's going to get me hurt, bad, or it's going to get me killed. There have been times where I was hung out of an 18-storey window by my ankles. Lisa: You have got to be kidding me. Robert: Like grabbing onto the brick on the side of the building. I can't even say terrified. I don't even know if that encapsulates that experience as a kid. But it's like you don't understand what you can walk away from once you feel good about interceding with this poor, unfortunate kid. I cannot walk away from the situation that you're going to create. So it was defensive mechanism, because pain is relative. I mean, like, you go through a divorce, and you lose this love and this promise, and somebody comes along, ‘Oh there are some people in the world who never had love, so you should feel grateful’. You should fuck off because that's disgusting. And that is totally void of context. I don't think somebody's pain needs to compare to another person's pain in order to be relevant. I think that was just my attitude back then because I was protecting my existence. I've really changed that perspective because, like, my existence isn't threatened day to day anymore. Lisa: Thank goodness. Robert: So I have a different take on that. And I understand that these adults were well meaning, because I also had adults around me, who could have probably done something, but did nothing. And I don't even blame them because my stepfather was a terrifying person. And the amount of work and energy, and the way the laws, the structure, and how threatening he was, I don't blame them. And me? I’ll probably go to prison. But I don't blame them for their inaction. Lisa: Yeah, and this is a problem. Just from my own experiences, like I said, this is not even in childhood, this is in young adulthood, being in an abusive relationship. The dynamic of the stuff that's going on there, you're frightened to leave. You know you are going to be in physical danger if you try and leave. So, I've been in that sort of a position but not as a child. But still in a position where people will think, ‘Well, why don't you just go?’ And I’m just like, ‘Have you ever tried to leave someone who's abusive? Because it's a very dangerous thing to do.’ And you sometimes you’re like, just, you can't, if there's children involved, even, then that's even worse. And there's complicated financial matters. And then there's, whatever the case may be or the circumstances that you're facing, it's not cut and dried. And as an adult, as a powerful woman now, I wouldn't let myself be in a position like that. But I wasn't that back then. And you weren't because well, you were a child. See, you're even more. Robert: I just want to comment on that a little bit. And this is not coming from clinical expertise. This is just coming from my own interpretation experience. I think, obviously, that when a child goes through this, you would think, ‘Okay, if this started at age five, what could you have done?’ But a lot of times we do look at, let's say, women who are in severe domestic violence situations, and we say, ‘Well, how could you have done that? How could you have let somebody do that to you’? And I think we need to really examine that perspective. Because powerful, confident, intelligent women might be especially susceptible. Lisa: Apparently, that’s the case. Robert: Because you have a track record, and you have evidence to support that you are capable, and you're intelligent, and you find yourself in a situation that you didn't anticipate. And I think it's easier to gaslight someone like that. Because it's like, ‘How could I have had a lapse — is it me?’ And it creeps up on you, little by little, where you doubt yourself a little bit more, a little bit more, and then you become more controlled and more controlled. And then your perspective on reality becomes more and more distorted. So I think we have to be very careful when an adult finds themselves, yes, in that position, saying, ‘Well, why didn't you just leave? How could you have let yourself very easily?’ It can happen to anyone, especially if you have a strong sense of confidence and you are intelligent, and because it becomes unfathomable to you, how you got into that situation. Lisa: Looking back on my situation, which is years and years ago now, and have no consequences to the gentleman that I was involved with, because I'm sure he's moved on and hopefully, not the same. But the fact that it shifted over many years, and the control shifted, and the more isolated you became. I was living in a foreign country, foreign language, unable to communicate with my family, etc., etc. back then. And you just got more and more isolated, and the behaviour’s become more and more, more radical ways as time goes on. It doesn't stop there. Everybody's always lovely at the beginning. And then, as the power starts to shift in the relationship — and I've listened to a psychologist, I’ve forgotten her name right now, but she was talking about, she works with these highly intelligent, educated women who are going through this and trying to get out of situations where they shouldn't be in. And she said, ‘This is some of the common traits. They're the types of people who want to fix things, they are the types of people who are strong and they will never give up.’ And that is actually to their detriment, in this case. And I'm a very tenacious type of person. So, if I fall in love with someone, which you do at the beginning, then you're like, ‘Well, I'm not giving up on this person. They might need some help, and some, whatever’. And when you're young, you think you can change people, and you can fix them. And it took me a number of years to work out and ‘Hang on a minute, I haven't fixed them, I’ve screwed myself over. And I've lost who I am in the process.’ And you have to rebuild yourself. And like you and like your case is really a quite exceptionally extreme. But like you, you've rebuilt yourself, and you've created this person who is exceptional, resilient, powerful, educated, influential — Robert: And dysfunctional. Lisa: And dysfunctional at the same time. Hey, me, too. Robert: And fucked up in 10 different ways. Lisa: Yeah. Hey, none of us have got it right. As our mutual friend, Craig Harper would say, ‘We're just differing degrees of fucked-up-ness’. Robert: That would be spot on. Lisa: Yeah, yeah, yeah. And totally, some of the most high functioning people that I get to meet, I get to meet some pretty cool people. There's hardly any of them that don't have some area in their life where they've got that fucked-up-ness that's going on, and are working on it, because we're all works in progress. And that's okay. Robert: The thing you said that I really caught is you lost your sense of self, and the isolation. And that is what abusers do, is progressively they start to isolate, and create enemies out of strong alliances and allies. And when you lose your sense of self, and you're so isolated — because as much as we want to be strong and independent, we are highly interdependent, tribal people. We form and calibrate, we shape our sense of identity and the context in which we navigate through the world off of one another. And when you're isolated with a distance sense of reality and you lose your sense of self, you become highly incapacitated to take action in this situation. And you develop, I think what Martin Seligman, called learned helplessness. And I think assigning fault or blame or accusation either to yourself or doing that to somebody else, not only does that not help, it stops people from coming forward. Because it reinforces the mental state that makes them susceptible to perpetual abuse in the first place. Lisa: Yeah, it's so true. So how did you start to turn around? So you meet Mitchell, Mitchell was his name, and he started to be a bit of a guiding light for you and mentor you, and you're in the gym at this phase stage. So, what sort of happened from there on and? So what age were you at this point, like, your teenage years, like teenagers or? Robert: I met Mitchell when I was like 19 years old. And what he allowed me to do, and it wasn't strategies, he allowed me to focus outside of myself. Because every emotion, every strong emotion you're feeling, especially in a painful way, resides within you. So if you feel a sense of despair, or you feel disgust, or loneliness, or isolation, or any type of pain, and you would look around your room and go, ‘Well, where's that located? Where's my despair? I searched my whole desk, I can't find it’. It's not there. It's not in your outer world. It's your inner world. And what he gave me the ability to do is say, ‘Okay. I grew up physically deformed. And despite everything I was going through, my physical deformities were one of the most painful things’. But the irony, more painful than anything else because you could see me out in the shops and go, ‘Okay, this is a person who has been severely physically sexually abused, who's suffered emotional trauma’. You could see that as I walk through the aisles, because you say, ‘Okay, this is someone who doesn't look right. This is someone who —', and I can see the look of disgust on people's face when they saw me physically. And then there’s nowhere to hide, you couldn’t mask that. I started thinking, ‘Well, what about people who feel that about their physical appearance and they don't require surgery? What are they going through? And how do I focus more on them? How do I take a stand for that person? What's the areas of knowledge? What are the insights? What are the resources that I can give these people to be more resourceful in finding a sense of self and finding their own way forward?’ Lisa: Being okay with the way that they are, because it must be just— Robert: People are okay with the way they are, seeing an ideal version of themselves in the future. And engaging the behaviours that helps them eventually bridge that gap, where their future vision, at some point, becomes their current reality. So I started focusing on things and a mission and people outside of myself, who's going through something similar to what I have gone through, even if it's not precisely the same situation? How do I help them find their way out? And by helping them find their way out, I found my way up. Lisa: Wow, it's gold. And that's what you ended up doing then, and within the gym setting, or how did that sort of work out from there? Robert: Well, I became a trainer. And in the beginning, I was like an average trainer. But I became, what Mitchell called, like the person who saved people. I never saved anyone; you can't change anyone but yourself. But the reason why he called me that is, anytime someone would think about joining the gym, if they would sit down with someone, they approached it from, ‘Well, what can we do? Can we give you a couple of extra months? Can we give you a guest pass to invite some —‘. They approached it from a transactional perspective, where when I sat down with these people, I approached it from a transformational perspective. ‘What did you want most? What do you want most in your life in this moment? And what hasn't happened? What missed? What was the disconnect? Where have we failed? What did you need that was not fulfilled in your experience here and how do we give you those resources? How do we support you going forward?’ And it was also like, ‘Look, if you want to leave, we totally respect that. You've given us a chance to help you. And obviously, the fault was ours. I never blamed anyone. But if you had the chance to do it again, what would have made the difference? And give us that opportunity’. It’s like, ‘Oh, this person is like a retention master’. It's not that, my focus wasn't in retention, it was the intention rather, to relate to the individual in front of me. Lisa: I’m hearing about the actual person and their actual situation and their actual wishes and goals, rather than, how can I sweeten the deal so you don't leave? Robert: Precisely, and that had some unintended consequences, because it put me in a bad situation, because I got promoted against my will. And I didn’t want to get promoted. And I thought, ‘I'm just getting a reputation for being somewhat good in my current job. And now they're going to promote it to my level of incompetence. And now I'm going to disappoint Mitchell, he's going to find out this kid's actually an idiot, he's a fraud — ‘I was wrong.’ And the one person who believed in me, I'm going to lose his trust and his faith, and that's going to be damaging.’ So me being promoted into management led to a series of unpredictable events that shaped my entire career. Lisa: Okay, tell us about that. Tell us about it. So you were pushed out of your comfort zone, because you just got a grip on this thing, the crazy worker. Robert: So Mitchell had a consultant, and his name was Ray. His name still is Ray, coincidentally. And he said, ‘Yeah, I think you should promote Bobby, just a small promotion to head trainer. Not like fitness manager, just head trainer’. And when they approached me, it was almost like they told me like, I had to euthanise my pet. It was horrible. I was not excited about this. I was like, ‘Oh, thanks. But no, thanks. I love where I'm at.’ Lisa: Yep. ‘I didn’t want to grow.’ Robert: Well, they had a response to that. They said, ‘There’s two directions you can go in this company, you could go up, or you can go out’. And they fired me that day. Lisa: Wow! Because you wouldn’t go up? Robert: They’re like, ‘You've chosen out. And that's okay. That's your decision’. And I was devastated. Like that my identity is connected to that place. And on my way out the door, Mitchell's like, ‘Come into my office.’ And he’s sitting across from me, and he kind of looked like a very muscular, like an extremely muscular version of Burt Reynolds at the time, which was very intimidating, by the way. And he puts his feet up on the desk, and he's leaning back, and he's eating an apple. He says, ‘You know, I heard a rumour that you're recently unemployed. And so I would imagine, your schedules opened up quite a bit this week. You know, coincidentally, we're interviewing for a head trainer position. You might want to come in and apply because you've got nothing to lose’. What a complete and total cock. And I say that, with love, gratitude, gratitude, and love. So I showed up — Lisa: Knew what you needed. Robert: I remember, I showed up in a wrinkly button-down shirt, that is not properly ironed, which was brought to my attention. And I got the job. And I was the worst manager you've ever met in your life because first of all, my motivation was not to serve my team. My motivation was not to disappoint Mitchell. And that was the wrong place for your head to be in, if you have the audacity to step into a leadership position. Whether you tell yourself you were forced into it or not, fact of the matter is ‘No, I could have chosen unemployment, I would have done something else. I chose this. Your team is your major responsibility.’ And that that perspective has served me in my career, but it well, it's also been problematic. So I had people quitting because for me, I was in the gym at 5am. And I took two-hour breaks during the afternoon and then I was in the gym till 10 o'clock at night, 11 o'clock at night. I expected you to do the same thing. So, I didn't understand the worldview and the needs and the aspirations and the limitations and the people on my team. So people started quitting. I started doing horribly within my position. And then Mitchell brought in another consultant, and he gave me some advice. I didn't take it as advice at the time, but it changed everything. And it changed rapidly. This guy's name is Jamie, I don’t remember his surname. But he sat me down and he said, ‘So I understand you have a little bit of trouble’. Yeah, no shit, man. Really perceptive. ‘So, just tell me, who do you work for?’ So, ‘I work for Mitchell’. He said, ‘No, no, but who do you really work for?’ I thought, ‘Oh. Oh, right. Yeah. The general manager of the gym. Brian, I work for Brian’. So nope, who do you really work for? I thought it must be the fitness manager, Will. So, ‘I work for Will’. He’s like, ‘But who do you work for?’ And now I'm starting to get really irritated. I'm like, yeah, this guy's a bit thick. I don't know how many ways I can explain, I've just pretty much named everybody. Who do you reckon I work for? He said, ‘No, you just named everyone who should be working for you?’ Lisa: Yeah, you got that one down. Robert: ‘Have a single person you work for? Who are your trainers?’ He said, ‘Here, let me help you out. Imagine for a second, all of your trainers got together, and they pooled their life savings. They scraped up every bit of resource that they could to open up a gym. Problem is, they're not very experienced. And if they don't get help, they're going to lose everything. They're going to go out of business. They go out and they hire you as a consultant. In that scenario, who do you think you'd work for?’ I was like, ‘Oh, I'm the one that's thick. I've worked for them’. Because in every interaction you have, it made such a dip because it sounds counterintuitive. But he said, ‘In every meeting and every interaction, whether it's a one-on-one meeting, team meeting, every time you approach someone on the floor to try to help them, or you think you're going to correct them, come from that perspective and deliver it through that lens’. And things started to change rapidly. That was one of two things that changed. The second thing that changed is Mitchell believed, because he would listen to self-help tapes, it inspired him. So he would have me listen to self-help tapes. And he believed that oration in front of a group public speaking was culturally galvanising. And in a massive team meeting where we had three facilities at the time, where he brought in a couple of hundred people for a quarterly meeting. He had me stand up and speak. Oh, man. I know you've done a lot of podcasting and you do a lot of public speaking in front of audiences. You know that experience where you get up to speak but your brain sits right back down? Lisa: Yeah. And you're like, as Craig was saying the other day, ‘It doesn't matter how many times you do it, you're still absolutely pecking yourself.’ Because you want to do a really good job and you go, ‘This is the day I'm going to screw it up. I'm going to screw it up, even though I've done it 10,000 times. And I’ve done a brilliant job. Then it’s coming off.’ Robert: If you’re not nervous in front of an audience, you've got no business being there. That is very disrespectful. I agree with that. I mean, this is coming from, in my opinion, one of the greatest speakers in the world. And I'm not just saying that because Craig's my mate, and he gives me oatmeal every time I come out to Melbourne. I'm saying that because he's just phenomenal and authentic in front of a room. But I had that experience and I'm standing up brainless in front of the room. And as I start to realize that I am choking. I'm getting so nervous. Now this is back in the 1990s, and I was wearing this boat neck muscle shirt that said Gold's Gym, and these pair of workout pants that were called T-Michaels, they were tapered at the ankles, but they ballooned out. You know the ones I’m talking about? And I had a lot of change in my pocket. And all you hear in the room, as my knees were shaking, you can hear the change rattling, which wasn't doing anything for my self-confidence. And just instantly I was like, ‘Right, you're either going to epically fail at your job right here. Or you are going to verbatim with intensity, recite word for word, like everything you remember from Dennis Waitley’s Psychology of Winning track for positive self-determination’. Sorry, Dennis, I did plagiarize a bit. And I said it with passion. Not because I'm passionate, because I knew if I didn't say it with fierce intensity, nothing but a squeak will come out of my mouth, Lisa: And the jingle in the pocket Robert: And the jingle in the pocket. And at the end of that, I got a standing ovation. And that’s not what moved me. Lisa: No? Robert: What moved me was weeks ago, I was clueless in my job. I got this advice from Jamie on, ‘You work for them. They are your responsibility. They are entrusted to you. Don’t treat people like they work for you.’ Now I had this, this situation happened. And my trainers avoided me a month ago when I got promoted. But now they were knocking on my office door, ‘Hey, can I talk to you? Would you help me’? And it just clicked. The key to pulling yourself out of pain and suffering and despair is to focus on lifting up others. Lisa: Being of service. Robert: That was it. I thought I could be good at something. And what I'm good at is not only, it's terrifying before you engage in it, but it's euphoric after, and it can help other people. I can generate value by developing and working through others. Lisa: This is like gold for management and team leaders and people that are in charge of teams and people is, and I see this around me and some of the corporations where get to work and consultants stuff is this was very much this top-down mentality. ‘I'm the boss. You’re doing what I say because I'm the boss’. And that doesn't work. It might work with 19-year-olds who have no idea in the world. Robert: It reeks of inexperience. You think you're the boss because you've had certain qualities, and that's why you got promoted — do what I say. You are a detriment to the company — and I know how many people are fucked off and calling bullshit. I don't care. I mean, not to toot my own horn. Like anything I've ever accomplished, I've learned I have accomplished through hiring the right people and having a team that's better than me. But I’ve been in so many management positions, from the very bottom to the very top of multiple organizations I've consulted all over the world, you are only as good as your team. And to borrow from the late great Peter Drucker, ‘The purpose of a business is to create and keep a customer. And your most valuable customer’s your internal customer, the team that you hire. Because unless you are speaking to every customer, unless you are engaging with every customer complaint, unless you are engaging in every act of customer service on your own —' which means your business is small, which is fine. But if it's a lot, you're not ‘— you could scale that, it is always your team. And your job is to create and keep your internal customer by serving them with, at the very least, with the same tenacity, sincerity and intention that you are serving your external customer. If you don't do that, you're going to be shit as a leader. And honestly, I don't give a fuck what anybody thinks about that. Because I have heard so many opinions from people who are absolute — they've got a ton of bravado, they beat their chest, but they are ineffective. And it's extraordinary what you can accomplish when you know how to be, number one, hire the right person. Number two set expectations clearly — clearly, specifically. Number three, understand what motivates each individual, as an individual person and as a team, and then develop that team's capacity individually and collectively to channel that capability towards the achievement of a common vision, of a common monthly target. Period. Lisa: Wow. So that's just, that’s one whole lot going on in one. Robert: That is leadership in a nutshell. Lisa: Yeah. And this is the tough stuff because it's easier said than done. I mean, I'm trying to scale our businesses and grow teams and stuff. And number one, hiring the right people is a very big minefield. And number two, I've started to realize in my world that there's not enough for me to go around. I can't be in 10 places and 10 seats at once. You're getting overwhelmed. You're trying to help the universe and you're one person, so you're trying to replicate yourself in the team that you have, and provide the structure. And then you also need those people where you're weak, like I'm weak at certain aspects. I'm weak at technology, I'm hopeless at systems. I know my weaknesses. I know my strengths, so. Robert: I resemble that comment. Lisa: Yeah, In trying to get those people where you, that are better than you. Not as good, but better than you. And never to be intimidated because someone is brilliant at something. They're the ones you want on your team, because they are going to help with your deficits. And we've all got deficits and blind spots and things that we're not good over we don't love doing. And then trying to develop those team members so that you're providing them and treating them respectfully, looking after them, educating them. And that takes a lot of time too, and it's really hard as a smallish business that's trying to scale to go from there wearing a thousand hats. And a lot of people out there listening will be in similar boats as ours, like, wearing a hundred hats and trying to do multitasking, getting completely overwhelmed, not quite sure how to scale to that next level, where you've got a great team doing a whole lot of cool stuff. And then realizing the impact that you can have as tenfold or a hundredfold. Robert: Absolutely. And I'm not really a good business person, per se, like I've owned a few businesses myself, I've worked within quite a few businesses. And I think what I'm good at, and this goes back to another person that I worked for shortly after Gold's Gym. So Gold's Gym was sold, that's a whole story you don't need to get into. This is an interesting guy. I was doing consulting, I was just going out and doing public speaking, I had independent clients. And I crossed paths with an individual named David Barton. This is someone you should get on your podcast. Talk about an interesting individual. And David Barton had the one of the most unique and sexy edgy brands in New York City. And that's when you had a lot of competition with other highly unique, sexy, edgy brands. And he was the first person — he coined the phrase, ‘Look better naked,’ it was actually him. That's the guy. It was on the cover of New York Magazine. I mean, he was constantly, like his club in Vogue, at Harper's Bazaar, he ended up hiring me as his head of training. And his company at that time in the 1990s, which is quite the opposite of the mentality, the highest position you could ever achieve in his company was trainer. It was all about the training, and it made a difference culturally, and it made a difference in terms of like we were probably producing more revenue per club and personal training at that point than almost anyone else in the world, with the exception of maybe Harpers in Melbourne. So this is how far me and Craig go back actually. Lisa: Wow. It’s that right. Robert: Yeah, because we had found out about each other just a few years after that. Lisa: Some of that Craig Harper. Robert: Craig Harper, yeah, when he had his gyms. So we were introduced by a guy named Richard Boyd, a mutual friend who's like, you got to meet this guy, because he's doing what you were doing. And it all started when I went into David Barton gym, and I just thought, this is a different world. This is another level. Am I in over my head? So again, it was that doubt, it was that uncertainty. Lisa: The imposter syndrome. Robert: But I did. Yeah, and I think we all have, and I think the only people who don't have imposter syndrome are imposters. Because if you're fraudulent, you wouldn't engage in the level of self-honesty, and humility and conscientiousness, to go ‘Am I fraudulent, is there something that I’m missing’? Only a con artist never considers whether or not they're fraudulent, it's ‘Does that keep you stuck? Or does that help you to get better and more authentic, more sincere?’ So I had the presence of mind to ask David a very important question. And I said, ‘David, if there was like two things, or three things that I can do in this company, exceedingly well, what two or three things would best serve the member, the company as a whole, and of course, my career here with you?’ And David leaned back and he did one of these dozens of things he gave me, literally. And he sat there for — it must have been like five seconds — it felt like an eternity and I'm thinking, ‘Oh my god, that that was the stupidest question I could possibly ask. He probably thinks I should have this whole, like sorted out. After all, he hired me, or am I going to get sacked today?’ And then I was like, ‘I can't get sacked. My house just got ransacked by the FBI’. That was a totally different story. He comes, he leans forward. And he says, ‘Two things. Two things you got to do. Number one,’ and a paraphrase, but it was something very similar to, ‘I want you to be a connoisseur of talent, like a sommelier is a connoisseur of wine. I want you to hire interesting, and great trainers. That's number one.’ And he just sat there again. And I'm like, I think it was a power move. Looking back, it was a power move. Lisa: Using the silence. Robert: What’s number two, David? And he said, ‘Train the shit out of them. And when you're done with that, here's number three, train them again. Number four, train them again. Number five, train them again.’ And that stuck with me. And a year later, I wound up leaving David Barton, and I come back to work with him periodically over the course of many years, and I personally loved the experience every time. We’re still good friends today. And I went to NASM, and I became a presenter, senior presenter, and eventually I became the director of professional development for the National Academy of Sports Medicine. And I brought that with me. And trust me, there was times when I was quite a weirdo, because I thought quite differently than then a team of educators and clinicians. But it helped, and it served me well, and served me throughout my life. So I am shit at so many aspects of business. But I am really good, and probably because I'm very committed to recruiting people with the same level of insight, precision, intuition and sophistication that a sommelier would approach a bottle of wine. Lisa: Oh, I need to talk to you about my business at some point. I need the right people because I keep getting the wrong one. Robert: That, I'm very confident I can help. When it comes to recruiting and selection and hiring and training and development, that is my world. Lisa: That’s your jam. Robert: And because anything I've ever accomplished, it's totally through other people. It's because I hired people that were a lot smarter than me. It's funny because that's another piece of advice I got way back in my Gold Gym days, where one of the consultants was in the room and said, ‘You'll be successful to the degree that you're able and willing to hire people that are more intelligent than you’. And Mitchell quipped, ‘That shouldn’t be too hard for you, Bob’. Okay, yeah. Thanks, Mitchell. Yeah. Lisa: Oh, yeah, nice, friend. You need those ones, don’t you? Hard case ones. Hey, Bobby, this has been a really interesting and I feel like we probably need a part two because we haven't even touched on everything because you've had an incredible career. And I just look at you and how you how far you've come and there must have been so much that you haven't even talked about, have been all the really deep stuff that you went through as a child — Robert: No, I've told you everything. There's nothing else. Lisa: But how the hell did you actually turn your mindset around and how did you fix yourself and get yourself to the point you know where you are today, but I think we've run out of time for today. So, where can people engage with what you do and where can people find you and all of that sort of good stuff? Robert: Okay, well, I just started my own podcast. It's decent. Lisa: Which is awesome because I've been on. Robert: So if you are looking for, like one of the most dynamic, interesting and inspiring podcasts you've ever encountered, go to The You Project by Craig Harper. If you still have time after that, and you're looking for some decent podcast material, go to The Self Help Antidote, that is my podcast. And I'm on Facebook. Social media is not really where I live. It's not where I want to live. It's not where I like to live, but I'm there. I'm on Facebook. I mean the rest of the older generation, yeah, piss off kids. And I'm on Instagram. I'm occasionally on LinkedIn, but not really. I will be on Clubhouse because I got to find the time Lisa: What the hel
You may only know Kellogg’s as the company that makes your favorite cereal. But there is so much more to the company than just delicious treats. Robert Birse is the Head of Global B2B Ecommerce at Kellogg’s, and he has been leading the charge to position Kellogg’s as one of the leaders in creating scalable B2B Ecommerce strategies. On this episode of Up Next in Commerce, Robert explains all the ways that Kellogg’s is upending traditional Ecommerce strategies in order to help customers find greater success. Using technology like A.I. and machine learning, and by developing a platform that all of their customers and partners can use, Kellogg’s has been pushing the ball forward on bringing small and large businesses into the world of Ecommerce and helping them get the most out of their Ecommerce strategies. 3 Takeaways: A brand like Kellogg’s has the power to up-end the typical Ecommerce strategy. Instead of asking how to get customers to buy more, they ask how they can help their customers sell more. In doing so, their customers and partners become more successful, and it’s a win-win for all parties Change management is important because many of the small businesses Kellogg’s works with have to fundamentally change the way they think about doing business.hey have to rely much more on technology than ever before. But the appetite is there because A.I. and predictive analytics are proving to be critical tools in helping businesses determine what to stock and how to look at consumer behavior B2B Ecommerce is still in its infancy, but there is an appetite for innovation across the board from brands to retailers to distributors. They’re eager to test, iterate and experiment with new technologies in order to create better one-to-one engagement at scale For an in-depth look at this episode, check out the full transcript below. Quotes have been edited for clarity and length. --- Up Next in Commerce is brought to you by Salesforce Commerce Cloud. Respond quickly to changing customer needs with flexible Ecommerce connected to marketing, sales, and service. Deliver intelligent commerce experiences your customers can trust, across every channel. Together, we’re ready for what’s next in commerce. Learn more at salesforce.com/commerce --- Stephanie: Welcome to Up Next in Commerce. This is Stephanie Postles, your host from Mission.org. Today I'm very excited, we have Robert Birse on the show, the head of Global B2B & B2B2C E-commerce at Kellogg. Rob, how's it going? Robert: It's going great. Thank you very much, from captivity. Stephanie: Yes, yes. How is life in captivity? Robert: Well, I'm thinking about calling Amnesty International, see if they can get me out of here. Stephanie: Well, we were just talking about what life looks like right now, just us eating lots of Cheese-Its on our bed at home, calling into Zoom calls, or maybe that's just me. Maybe that's not you. Robert: No, I think that's a typical picture across the world right now. Stephanie: Yeah, which is okay. Temporarily, it's okay. So, I saw you have a very long history in E-commerce. I think I saw dating back to even early 2000s, right? Robert: I'm afraid it was in the '90s. Stephanie: Oh nice, okay perfect. Well, I would love to hear a bit about your background and what led you into E-commerce. Robert: Sure. Well, I was working for a catalog distributor, so not a distributor of catalog. We use the catalog as our medium to communicate with our customers who were predominantly engineers in factories across Europe. The business that I was responsible for at the time was a small specialist distributor, and we were struggling a little bit to find our position as E-commerce was starting to take more of a role in the consumer engagement or the customer engagement in our case. So we were on the tube and this was the late '90s, and we took a digital transformation, even though digital still wasn't really a bonafide strategy because it was only emerging. The first task we undertook was to create a digital asset library from all the bromides and things that we'd cumulated to support the catalog production. Robert: So we partnered with a startup in London, a bunch of basically college graduates who were trying to create the first digital content management system. And that was more than 20 years ago. So we did that and we started to work to create a digital presence online, starting with static content and then moving into transactional capabilities. It helped transform that little business into something that had a much greater future. So that was my first introduction to digital and then never looked back since to be honest. Stephanie: Oh, that's great. What kind of transformations has your career seen since the starting point in the '90s to now? And what does your role look like now at Kellogg? Robert: Yeah, I mean, I've used digital disruption and innovation in all the roles I've had since that position in the UK to varying degrees of impact. When I joined Allied, and I moved to Texas, we transformed that business collectively from a couple of hundred million to 600 million in a very short period of time. Just really ensuring that we unified the sales channels with the digital channel. In the early '90s, or early 2000s was very popular to Ring-fence E-com as a separate channel, and I felt that was wrong. So when we moved to the US I tried to ensure that the unification happens, so it was the best one to punch we could possibly give our customers, we're always on capability with the human interaction. I have used that principle throughout my career to build success. Robert: Ultimately all the way to Kelloggs where now, I'm using technology to create value for our customers, changing the paradigm that was always traditional in sales engagement of how do I get my customers to buy more? Now the principle behind our E-commerce strategy from a B2B perspective, is how do we enable our customers to sell more? And then we will be the recipients of the downstream benefit in due course, and that's a big change in the approach. Stephanie: So what did your first, maybe like 90 days look like? When you came to Kellogg's and you saw the lay of the land, what were some of the initial things that you were like, we have to do this, or have to shift this? What did you do? Robert: Well, the train was leaving the station when I joined Kellogg and I decided to embark on a pilot, a B2B pilot, in Brazil of all markets, one of the hardest B2B markets in the world. So it was an interesting challenge to ramp up very quickly. Now, thankfully that we're using Salesforce Commerce Cloud as the technology platform, which I was very familiar with. So that was okay, but getting familiar with our business model in Brazil, which was a direct store delivery model was a different beast for me. And then obviously with Portuguese language challenges, it was an interesting 90 days, but it was certainly a massive. You know the saying, jump in the deep end and [inaudible] and that's where I found myself. Stephanie: Thankfully you're still swimming today, which we all are glad about. So what does your day to day look like now? And how would I think about B2B when it comes to Kellogg's? Because from a consumer perspective, I don't really think about what goes on behind the scenes. I just go to my local whole foods. I find my cereals and my RXbars, and I don't think about how it gets there or how maybe it gets to a smaller Mom-and-pop stops. So how do I think about Kellogg's B2B experience and B2B2C experience? Robert: Well, I hope the consumer will start to see how B2B is impacting the shopper experience, not directly but indirectly. So as part of our mission, we're trying to use technology B2B platforms to create a conduit where we can influence, educate, and inform and enable our retail, especially our independent small retailers. Not a frequency store or space in particular, to be better store owners and to create a better in store experience. As well as use some of the modern engagement tactics, such as social media engagement to bring more food traffic to their store from within their community. Therefore, strengthen their business and providing a jumping off point for them to become more successful in the future. Robert: So the consumer should recognize that when they go to the store, the store has always got the product they're expecting to find in the store, and if that product is displayed in a fashion that's compelling and it's positioned next to other products, they well, that would be the perfect combination. Then B2B commerce, modern B2B commerce is starting to have an impact on the buying experience. So that's what goes on behind the scenes, and that's what our vision is built around. Stephanie: Yeah. That is something I never think about, is this product positioned next to another one to make a better, maybe make me buy more. How do you figure out what products should be next to each other? And how do you work with the store owners to ensure that they abide by those rules? To make sure that, maybe not rules, but it'll also help them sell more as well. So how do you work with the store owners to creating a partnership? Robert: Well, in the past, it was always through traditional sales engagement. The Lucas success has always been a principle behind how we've engaged our retailers in using planograms and driving compliance around these planograms and the science behind them has been well understood, and the discipline has been in place for a long time. However, the cost of serving and maintain that relationship at a cadence that we need to continue has become ever more challenging. So digital is helping to change that paradigm and allowing us to go back to the long tail and really start to help our smaller retailers to really become stronger and more effective in their day to day life. So we see things like AI driving the intelligence around product recommendations for a store type, for instance. Robert: So if you are an independent store owner and you are in a rural environment where you are a 1,000 square feet and two the cash registers, that we would like to be able to cluster you with other retailers just like you, do the analysis and determine what you must stock, what you could stock and what you shouldn't stock. And then ensure that we're talking to the owner operator on a cadence that would allow us to then do more of that and offer and recommend as consumers trends change. So we're always ahead of demand, not buying demand in the long tail. Stephanie: How do you stay ahead of demand? What kind of tools and technologies are you using to ensure that you're able to quickly react to consumer buying behaviors or inventory levels for the store owner? How do you stay ahead of those things? Robert: Well, you're giving me way too much credit to say that we're actually ahead of those things, we're aiming to be ahead of these things. So let's make sure that's completely clear and we're being transparent, there's a lot of work to do here. So what we see is the ability to take all that historic purchasing information, and then combine it with social listening to see what consumers are talking about, then plugging in triggers like weather and other influences on buying patterns and then continue to feed machine learning and AI logic to build a picture that is constantly dynamic and changing so that we can then say to the customer, the retailer, "Hey, this product is starting to decline its popularity so we're recommending you start to reduce the inventory you carry. And by the way, this product is gaining popularity and we're going to drive a marketing campaign in your market to promote it. So now it'll become a hot commodity, please accept this recommendation and capitalize on that demand and it will happen in the coming weeks." That's what we're aiming for. Stephanie: Do you see the partners being ready to accept that and wanting to stock the products that you're recommending? Are they trusting your guidance or has it been an uphill battle when it comes to those recommendations? Robert: Well, first of all, the primary segment we're focused on is that high frequency store, independent retailer, a C-store, a convenience store that kind of customer segment, and they've been incredibly underserved for many years now. So any insight that we've given them so far, and the questions we've asked them about would it just be of interest, they've all unanimously said, this is what we've been asking for years, please help me grow my business. So I think the appetite is definitely there. Stephanie: Yeah, that's amazing. How do you set up platforms and systems for these different businesses? Because I could see each one needing something a little bit different. So how do you scale that model to provide the data to each company in a different way, or each, like you said, store in a different way? Robert: Right. It has to be done without human intervention to start with, we cannot be responsible for building an army to support such endeavor. So at Kellogg we're really focused on a single global platform, one ecosystem of applications that will scale globally across markets and channels and the customer segments within these channels, with a lower cost of ownership as we scale it out. So that's the first guiding principle. The second end is, if a machine can do it, we probably shouldn't do it. So everything is going to be machine driven. And then by rewarding the owner operators to complete their profiles, that allows us to capture information like, is your store rural, suburban, or urban, gives us another great data point to then create more effective costuming. Robert: And then in these clusters, the analytics can be very powerful and the machine can then start to communicate through marketing automation on a cadence that we could never possibly imagine before, and then touch them with relevant content that is absolutely pertinent to their business. So I would make a recommendation to you and your store that you're missing these two products, you should this and if you do stock these, we predict that you will make X number of dollars incrementally every year thereafter. And that's very powerful for comparison. Stephanie: Yeah, no, that's great. Are there any pitfalls or learnings when going about this partnership model and helping the retail stores that you saw along the way that you would find maybe other companies or brands will need to do this, where you're like, "Hey, we ran into this problem along the way, or this was a big hiccup that other people could probably avoid if you listen to this podcast." Any advice around that? Robert: Well, I think it's going to be the same answer that everybody gives, and that's really focused on education, change management. You're asking people to change their habits. So in emerging markets like Brazil, for us high growth markets, there's a full service that the reps provide to date. And so the store owners are accustomed to doing a particular style of business with us, we're asking them to change that and be more responsive from a digital perspective. Now corporate, for all the bad and sadness that's come with corporate, it has been the catalyst for changing the perspective of many retailers to how they should interact with their brands. So that's been that the silver lining of corporate is it's elevated the position of why B2B could be a very important tool in their growth strategy going forward. And that's changed the perspective of consumers considerably. Stephanie: Yeah, that's a good silver lining. So I saw that you also created a mobile app to reach some of the smaller retail clients. Can you tell me a bit about what problem you were facing and why you thought mobile was the best way to solve that problem? Robert: Well, that's a really easy one is the business tool of choice for small business owners. The internet and the mobile device and companies like Kellogg's are now developing solutions, online solutions that years ago would have been financially out of reach. Now they have all these tools that they can run their business, and that's why mobile is so important to us. Stephanie: Got it. Do you ever feel like you're encumbered by trying to meet your partner obligations or that the experiences maybe can't be what you want them to be because of certain obligations you have with partners? Robert: No, I feel more enabled to be honest, because it's a difficult market. The times are always challenging. So anything that might add value to a relationship, I think it goes a long way to creating a winning business scenario. So don't feel there's any barriers, maybe some adoption challenges that those would have been there regardless. So I feel that there's such a large opportunity to use Ecommerce to change our engagement model, that there're enough partners that have put their hand up and will put their hand up to say, "Yeah, I would love to be part of that because I can see that could create competitive advantage for me and alone I can't do it but in partnership with you, I feel that you could guide us and help us aspire to our own digital endeavors going forward." Stephanie: Yeah, completely agree. How do these retail partners keep track of all their other brands? So I'm thinking, if Kellogg's has their website that you would log into and you would look at the recommendations and get your orders and your inventory and all that kind of stuff. How would a retailer keep track of everything else they have in their store too? Is there like a single source that they can rely on or how do they think about that? Robert: So that's a great question, and it's greatly misunderstood. There is no real lifespan for a single application to serve a single brand in a retail environment. Who in their right mind would manage 50 different applications from different brands? So for two different models, I foresee. So in a mature, disciplined distribution based market, such as North America where most of our distribution wholesale partners have a web presence to date with E-commerce capabilities, we will be looking to integrate into that, to improve the experience in that environment. So think about a store within a store concept, and that would be where I would see brands like Kellogg's and others prospering and allowing the retailer to buy across a broad selection of products available from the distributor, but also to technically punch out to reach my Kellogg experience, where they can see their performance plus with their peer group to get the recommendations that we're offering, being informed about trends and product demand and so forth. Robert: And then if they're inclined to confer upon a recommendation we've given them that product order will go back into the distributor environment to be processed in a normal fashion, thereby allowing them to continue to go about buying other products for the store. Now in markets where distribution isn't as well evolved from a digital perspective, then marketplaces become the answer to ensuring that a retailer can go to a marketplace designed for their customer segment, with brands that represent at least 40% of their shelf. So that there's enough for them to do in one execution to not create administration, but to reduce administration in the procurement of product. Stephanie: I got it, that makes sense. How do you think about working with different platforms? You just mentioned marketplaces and I saw when you go on Kellogg's website, you direct people to go on platforms like Amazon and then also CVS and Target. How do you balance working with bigger stores and retail partners, and then also platforms like Amazon within your Kellogg strategy for E-commerce? Robert: Well, there's a lot of room for improvement on both ends, so in the end you're referring to where the large platforms are in play, there's a ton of up side to improve content, to improved recommendations, to really get deeper integration, that we can take all that learning and insight and present it as a more refined offer list dynamic. Obviously the price part architecture element of ensuring that what we're presenting is something that's scalable and profitable for us, as well is a key factor in these relationships at both ends, of course. I would say that they're not mutually exclusive in the sense that, we can operate in two spectrums here. So in the large platform, but also taking that technology and applying it to enable the long tail to prosper. Robert: Monetizing the long tail is actually, a very worthy prize worth unlocking for every CPG company in the world. And I think that's where the glue on your food is to be honest, we do a great job in most cases with our Walmart's, and our Target's and our Amazon's. We don't do a tremendous job today with a smaller, high-frequency stores as an example. Stephanie: Yeah. That long tail does seem really important. How would you advise other CPG brands to engage with those? Like you said, the long tail? Robert: Do you know, I think partnerships are key. The synergistic product from more than one brand that you could curate into a collective offer, there is a lot of power in that. So strengthen in numbers has always been the case. So I think we could really team up better in the industry to make a more powerful proposition to our retailers, that creates greater value, greater economies of scale, and it's easier to adopt. And I think that's what's missing today because everybody is a little nervous about working together, trade secrets and what if the competition find out. But honestly in my entire career, I've always had a hard time just getting our innovation execution done, nevermind, stealing somebody else's in time. So in reality, it will never happen, but there's an insecurity, that's common to human nature, I guess. Stephanie: Yeah, I see the same thing in startup world where people don't want to share their ideas and you're like, "Trust me, I've got my own stuff to work on, I'm not trying to steal your idea and build a whole nother startup on top of the stuff that I'm working on. Don't worry." Robert: So true. Stephanie: Have you seen any successes when it comes to those partnerships that you would advise others to think about it this way, when it comes to letting people lower down their guards and allowing them to see this could have benefit for everyone, any successful case studies there? Robert: No, nothing is mature as a case study yet. We're still very much in the embryonic stage of developing this strategy. You can see it though in play from time to time when we do joint ventures with other brands targeting the consumer, to be honest. We did last year, we did a very exciting campaign with cheeses and house wine, that was the box wine company. Stephanie: Oh, tell me more about that? Robert: Well, this one is very interesting and very simple, it was a box wine. The box had to be extended to contain cheeses. Cheese and wine, as you know, is a perfect combination. I personally was just eager to get my hands on a box and, yeah, that morning it went live at nine o'clock and we sold everything in about 40 seconds, I believe. So none of us got any, so the power- Stephanie: You're still on the wait list. Robert: It's never coming back, I don't think. Stephanie: Oh, no. Robert: We have to recover from the demand. Yeah, cheeses doesn't need much help [inaudible] as I said, we can't make enough to meet consumer demand. That's a great example of when you can join forces and just make the proposition more compelling. So I see that playing out in the B2B space as well, as I said before, together we're stronger. Stephanie: Yeah. How do you think about what partnerships are advantageous to have? It seems like it'd be hard, and I could see a lot of brands maybe partnering randomly, and you're like, "Ah, that's not really even helpful to the consumer." So how would you think about striking up new partnerships in a way that's mutually beneficial to both brands and is good for a longer term strategy? Robert: Well, it depends what your ambition is, of course. So there'll be different solutions for different approaches. I mean, obviously, we wouldn't partner with a Benjamin Moore Paint brand, there's no correlation. So within the food industry taking snacks as an example, the beverage industry is the perfect partner, beer, wine, alcohol, Cheez-It and Pringles, it's a perfect combination. So the same as for cereal, milk and yogurt, it's a perfect combination. So there's definitely groupings of product where you can see which brands aspire to the same vision, it would be critically important as well. So just because the product has synergy doesn't mean that the strategy is there, you can't force a round peg into a square hole. Robert: So my first checkbox criteria would be, is the digital ambition the same? Do both companies, or do three or four companies aspire to own breakfast across all hospitality in the world? Well, if we do, then we've got a common objective. Now, how do we go about it together is the next step. Stephanie: That's great. It seems like the larger brands too, might have to give a little bit more, or provide a little bit more help to the smaller brands, if they're picking someone like ... If you were partnering with a smaller wine company or something, it seems like you might have to be ready to do maybe the 80% of the heavy lifting, because maybe they don't have the resources or the budget. Is that kind of how you're seeing things play out when you pick partners, that sometimes Kellogg's has to do the heavier lifting to create a partnership? Robert: Yeah. Even with partners with some of the bigger brands we're actually willing to do the heavy lifting. We made a decision with our leadership to own our destiny in this space. So it's from top to bottom, and I do see that small startups in an incubator fashion, we would be a great big brother to get products launched. And we have our own startup business within Kellogg's where we're giving grants to products like Leaf Jerky and so forth, which is a different plant-based product that challenges the status quo of what we felt like Jerky was in the past. So yeah, I could see that there could be a market verticals that we would go after, there might be health club awaited before we joined the Kohler, we were talking about RXbars and examples. Robert: So predominantly through health clubs and so forth, why not probiotic yogurts? Why not non-alcohol based beer? So why not the combination? All plays well to the health industry, so there might be some small companies in there that are pioneering excellent alternatives that we would be, I think, more than delighted to partner with them. Stephanie: Yeah. No, that's great. So Kellogg's is over, they've been around for over a 100 years, right? Since 1906, is that correct? Robert: Yeah, it's correct. Stephanie: Okay. Oh, good memory, Stephanie. So with a company that's been around for that long, how do you think about making sure that the company continues to innovate? Like you said, you have a startup within Kellogg's, what do you see within that startup? What kind of products do you see coming out of that? And would you advise a lot of other large companies to also put on their startup hat to compete with these B2C companies that are all popping up everywhere? Robert: Well, change has become the new norm. I mean, taking COVID aside, people want to taste new things, that is my impression, anyway. I think, there's an appetite for new and more challenging flavors and so forth. So in the food industry, I can see that the innovation around our product offers is actually critical for success. But the innovation doesn't stop there though, we have to be more innovative in how we present these products, how we ensure these products create value other than just in flavor, but in health and wellbeing as well. So Kellogg has always been a very health driven business right from its inception, that continues to be an underpinning philosophy of our company. I see a great deal of passion in our business and investment for innovation. It's not just digital, it's all down to food, not innovation kitchens and the chefs we have, they're inspired to really go find new products. Robert: We do a great job of creating an incubator within our business by constantly searching for ideas within our employee base around what we could do with Kellogg products. So I think you look inwards and outwards there's no stone not worth turning over to find out an idea about a new product. Stephanie: Yeah, that makes sense. When you mentioned marketing earlier, it seems like you would have to market to two different audiences. You have to market to your retail partners and then also to the consumers, how do you go about, maybe within your platform where you're selling to retailers, do you market differently than how you do to consumers? Or how do you think about that? Robert: Well, so now you bring up an interesting subject in the sense that direct to consumer, which could in sense be side by side be B2B, does provide you with an awesome channel to test the appeal of new product, and affordable cost if you engineered it appropriately so that you've got something you can stand up and tear it down quite quickly without major investment. So I don't know if you would really want to continually be knocking on the door of your retailers with new products without having some good market data behind it, to say that this will sell. And so testing that product in market that becomes a critical part of the evolution of the go to market strategy. So I see traffic consumer testing being interesting proposition for companies like Kellogg's going forward. Stephanie: Got it. So you test the product with a market first, and then you go to your partners and say, "Hey, a lot of people like this, you should also put this in your store?" Robert: Absolutely, because that's where we get the scale, and then we can then turn on all of our abilities to cross sale and use some of the capabilities we talked to earlier about in the B2B platform, ensuring that our retailers know how to create success with new product. There's another interesting aspect of that too, so if you'd go back to the conversation around the long tail of retail, these companies, these business owners don't have sophisticated inventory management tool. So one of the biggest challenges we're solving for is ensuring that new products, our products we've recommended for that retail when they're placed that they stay. Because we see a lot of occasions where a new product is being placed or our product from the portfolio that they should be adopting, has been taken. Robert: And then a week later has been sold and never replaced because somebody in the evening has just redistributed product on the shelf to complete the look and that position be lost. And so making sure that these products are reordered and reordered again, until they become habitual, their presence is habitual on the shelf is a massive opportunity so it's not about just new product and innovation, it's also about ensuring the stickiness of product they are placing on a shelf. Stephanie: What ways do you engage with your partners to make sure that they, like you say, keep reordering, have you seen any best practices to stay top of mind with these people even if they do excellent and lose a spot in the shelf. They're like, "Oh, hey, this product actually belongs there." How do you go about building those patterns? Robert: Well, there's also technology becoming available from scanning to just constant recognition. So there are solutions coming, they're not particularly affordable today for the segment we've been addressing, which is the high frequency stores segment. So the challenge has been resolved by manpower up until now, and of course, that's not very affordable. It's interesting when you go to markets like India, if you don't show up something else will steal your space. Stephanie: [inaudible 00:32:09]. Robert: I know, so there's a whole bunch of, I must run ... Making sure that you hold onto the shelf space that you've worked so hard to attain. So we're looking at tools like, asking our retailers to take shelfies using the robot cameras and uploading- Stephanie: Shelfie? Tell me more about a shelfie. Robert: So a shelfie is just, the shelf equivalent of your selfie, in the sense that, we're to set challenges for our retailers and say, "Listen, take a shelf of your cereal display." And then we'll match that image to the planet ground that the AI has in its memory, and then give them a score, and that score will then be translated into points, Kellogg points that they can use for purchasing everything from a discount to cleaning services, say for instance, in the future. So one thing happens in this process, is we ask them to do a challenge, before the actually did their pictures there is a pretty good chance they're going to address any gaps on their shelf. So we see it being a little self serving and helping us get a better position in the store, but also then just educating the retail around best practice and reinforcing that practice. So the look of success is getting closer and closer in the package stores within their reach. So that's just one example, I guess. Stephanie: Yeah, no, that's awesome. That's a really fun example. Have you seen the rewards program that you have actually really incentivize these retailers to, like you said, take these shelfies and engage with your brand more? Robert: No, again, you gave far too much justice. I talk with authority, but we're still very much in the theory and the testing, the technology is still catching up, but we see rewards and we have a rewards engine built into our platform to date. We haven't really turned it on to its full force yet, but it will be a cornerstone of our strategy. We're looking at gamification rewards and recognition as being a key driver of behavior going forward, and creating the path to best practice. So it will be a constant in our engagement strategy, so at eight o'clock, nine o'clock at night, we'll be connecting with an owner operator of a store through WhatsApp or email or text to say, listen, we have a challenge for you, and this challenge is worth a 1,000 Kellogg points. If you go and take that shelfie or if you can tell us, answer this question about the new product you recently stocked, did it sell out, did customers come back and repurchase? Did you get any feedback in any shape or fashion about the flavor? What did they think, and reward them for that first party data insight. Robert: Now, all of a sudden you've got this incredible ability to harvest information that could be invaluable to your R and D teams. At the same time, you've got the opportunity to influence best practice and take the customer on a journey, the customer being the retail owner operator on a journey to become better at their craft, which is super exciting to us. Stephanie: No, that's really awesome. It seems like there'd be room to build a community among these store owners, to all do the challenges together and to talk about best practices. Have you all explored that? Robert: We're exploring it. We're definitely exploring it. So it came from, when we looked at one of our customer's segments being a K through 12 schools starting here in North America, there's a lot of schools that are rural. They're isolated, they don't have large school communities to support them, and there's so many challenges that they face from allergies and health and nutrition, taking food and making education subject matter. All of these things we're looking into to say, okay, so our community together would be again stronger. So connect schools that are similar together and then connect schools that are not similar and let them use our product as a teaching aid. So we aspire, this is long away from happening. Robert: So please don't take this as something that's been executed today, but we can see that sometime in the future, we'll create a syllabus around corn and our cornflakes and how it changes the flavor of patterns in Japan compared to Idaho, and then to schools when their kids are having their breakfast, they can share the differences in the sweetness and so forth because the [inaudible 00:36:46], the climate is different so that the plant takes on a different flavor. So that's a subject that you could turn into a syllabus and education and bring kids together. Yeah, it is a very exciting proposition for us and different from anything we've ever done before. Stephanie: Yeah, that's awesome. And I did not know that flavors around the world would be different. So you definitely taught me something brand new here. Robert: Yeah. We've done a few things at Kellogg's in the office in Chicago where they've taken five or six or seven different sources of cornflakes and put them all in independent bowls unmarked, and then tasted them and people were convinced that sugar had been applied and so forth. And it actually hadn't, it was just that the different produce, produce different flavors and it was quite an epiphany for many of the folks tasting them. Stephanie: Yeah, no, that's really interesting. So when it comes to your B2B platform, what are some of the best capabilities that you're using today that maybe you weren't using a year or two ago? Robert: Again, cornerstone of what I'm trying to do with the B2B platform is create efficiency, and so to create efficiency, the first thing I'm trying to tackle is preventing any waste of time as it pertains to identifying a product. So we are integrating scan into the mobile device, using the mobile device camera, quickly scan that barcode it will take you straight to the product in our platform. So no need to key in, no need to type in the barcode or any keywords that are associated, just quick scan within less than a second you're on the product detail page, and you got a path to purchase with one click. You've got a path to understand your performance versus your peer group with one click. And you've got a path to understand how to sell more by accessing the tools that give you the toolkits that will help you do that. So that's, that's one aspect. Robert: The second aspect is to create value around ensuring that big data is conferred into some form of exportable logic that says that, hey, you are not creating the optimal product assortment. Companies, businesses, stores, like you sell these products successfully, and you're missing revenue as a result of not taking them. So here's a recommendation for these products. Here's the stocking quantity that we believe you should take. And here's a revenue projection based on MSRP from the class that you belong to that. That to me is transformational in so many ways. Stephanie: So are you using AI behind the scenes to create a lot of these recommendations? And do you think a lot of brands are also doing this or is there a lot of room for them to adopt to this technology? Robert: Yeah. AI is the key to success. So we've talked about AI for several years now, and it has really not delivered what it says in the box as of yet, but I am a 100% confident we're getting closer and closer all the time. Anybody that's been getting with AI knows that a lot of teaching into the logic that supports the output, but we're definitely getting closer to being able to use it at scale. What I see in the next year to 24 months will be the ability to then turn on that dynamic, self-sustaining logic that continues to morph as it reads more data and continue to present very tailored recommendations to all of our retailers worldwide, simultaneously because the computing power, obviously, continues to scale at an exponential rate. So it doesn't do necessarily what it needs to do today, but the path is now clear, and I think it's just around the corner, to be honest. Stephanie: Yeah, no, I completely agree. Are you all training your own models for AI? Are you relying on a platform to help you with that? How would you recommend another brand or a larger or smaller brands to start adopting this technology or start experimenting with it? Robert: Well, there's a lot of data scientists that they're all better actor than I am for sure. Stephanie: Sure? Robert: Yeah, I'm absolutely positive. So we've been looking outward to smaller businesses, as well as some of our larger partners to use their experience. Because clearly they see the opportunity too, so I would continue to just make sure that you're using a blend of traditional partnerships and innovative new businesses that come up with some left-field idea about how to resolve one of the challenges. Constantly looking for new ideas from the marketplace, from the periphery where there's new startups starting and looking for an agent, they might have a great concept that we can use. I often equate it to something you might see in a Paris fashion show where coming in the the runway is a presentation that could be quite outrageous, but some form of it we'll get to the high street that will be very popular with the consumer. So a really wild idea can really translate and be boiled down to something that can be a game changer in reality. So never assume that it has to be something that's already in place, but to be open to suggestion and I try and work on a daily basis to be that way. Stephanie: Yeah. I think that's a really good lesson too, to look at tangental markets and industries that could also help influence not only new products, but also E-commerce strategies and just like keeping tabs on what other people are doing, especially startups who are moving quickly and experimenting quickly. How do you keep tabs on companies like that stay up to date with what other people are trying? Robert: Well in prior lives, working for brands that were less recognized, it was on me to continue to search and find, and encourage my team to continue to look for these innovations. Working for a brand like Kellogg's, there's a lot of people come calling. So I'm obviously in a fortunate position to be exposed to a lot of these ideas on a day by day basis from various entrepreneurs. I feel that Kellogg's could prosper from taking on the idea so that role has changed. So I'm very fortunate in that regard to be exposed to great ideas across the industry and not just from within the food and beverage industry as an example but from sending an upturn to, you name it aerospace, there's a lot of innovation going on. Stephanie: What is definition of success for E-commerce? What kind of metrics do you look at? What do you think is successful? Robert: Yes. Okay, so none of the traditional metrics are really going to be of any interest. So for me, the success has moved upstream. So when I think about what does success look like from a digital perspective in B2B, it's very much around ensuring that the retailer is selling more products more effectively and more efficiently, and putting more money in their pocket. So if I can look back and say that all the retailers that we supply our products are prospering as a result of our E-commerce engagement, because we're delivering not just the fundamentals of E-commerce, which is about auto management and everything else that comes with it. That's just table stakes, whatever else comes with it, where we create the value through AI recommendations, access to toolkits, marketing campaigns, guidance on how to create the perfect store. If that's translating into more dollars at the point of sale, then that's what success looks like to B2B commerce going forward, in my opinion. Stephanie: Yeah. It seems like that partnership and education is really important in B2B, have you guys seen success with doing that? Robert: Well, again, I wish I had something much more tangible to give you in terms of the successful metrics. This is still ground zero, we're still very much in day one of our B2B engagement. I think you will find that modern B2B is still in day one globally across both industries. So there's still a lot of learning, a lot of testing, a lot of refinement to do, but the appetite is there. When I talk to other brands, they feel the same way about how we can harness technology to create value. The retailers I've talked to they are hungry, and so is our distributor and wholesaler partners too, to participate in this new era of one-on-one engagement at a scale that's affordable and on a cadence that has never been achievable before. Just that combination of menu items is really driving the hunger to get to that point quicker. Robert: I wish I had to go quicker, we're definitely trying to get there quicker, but it just takes time to build. And so ask me again in six or 12 months, and I'll be in a far stronger position to give you a better answer. Stephanie: Oh, you've just invited yourself around two. So with things changing so quickly, are there any new or emerging digital channels that you all are focused on or trying out? Robert: Again, comes back to just watching and keeping an eye on how things are changing, an example would be, for instance, say WhatsApp for instance. So WhatsApp starts life as a messaging tool, becomes incredibly popular worldwide, supplanting email, phone, texting everything. Now WhatsApp is developing your online ordering capability that will potentially change the trajectory of B2B commerce. So we're watching it very, very carefully, but there's a caveat, there's so much low hanging fruit in just doing what we already know, we can do better in B2B commerce. The WhatsApp example would be a very shiny object while we still need to continue to look to shop opportunities, we need to temper our enthusiasm to be distracted, it can be a distraction. We know that there's enough revenue potential just executing our primary mission without chasing rabbits down holes. Robert: I don't want to be the anti-innovator, but there's got to be a balance. So I use three words to caution myself, stop, better and clever. Stop doing things that create no value. Identify what you do well, but do it better. And say Friday afternoon is for the clever things. So Friday afternoons are dedicated to it, but don't let it become all consuming and that's how I approach this. Stephanie: That's great. That's a really good lesson, Friday afternoons with a beer maybe then you're even more creative, right? Robert: Why not? Yeah, certainly, my wine consumption during COVID is gone up tremendously. Stephanie: I think everyone else. So are there any B2B commerce trends that you're excited about that are coming down over the next couple, well, maybe even in the next year? Robert: Well, I just think the fact that the chatter around B2B has climbed exponentially in the last three or four months, is exciting. I'm super excited about what machine learning can do for scale in just enabling us to do the value added services that we've aspire to do, but couldn't execute because of the cost. So these two elements that B2B is becoming a cornerstone of business strategy, and it's not seeming to be as a poor cousin of B2C, B2B can be sexy. We're taking all of the goodness from the user experience and applying it, but then with this logic, that's data driven it's hard to turn down when we recommend products to a particular owner operator that I've got a revenue projection associated with them, that's a hard proposition. Plus we're giving them an award for accepting the recommendation. If that recommendation comes and was close to our prediction, then I think conversion could be a 100% going forward. Robert: Now in digital, we usually have 2% conversion and an action was great, a 100% conversion, wow, that's perfect execution. What does that do to the industry? Truly transformational. Stephanie: Yeah, I completely agree. So when it comes to implementing technology and stuff, because I think, like you said, a lot of people and a lot of platforms are focusing on B2B now, it is a new player to look at where B2C was maybe the sexier area before. How would you advise other companies to think about onboarding new tech technologies and tools in a way that sets them up for longterm success? Robert: Well, first of all, think scrappy. You can't innovate with the mindset of perfection. Large companies, I think suffer more than small companies, of course, there's a procedure and there's an ROI calculation, and there's a certain set of expectations. Especially when you're dealing with technology that can't quite deliver on the initial promise, but you have a fairly competent perspective on it, we'll get there. So you have to be a little ashamed of what you take into market, because quite frankly, in my experience, you see the flaws, whereas the target audience does not. They see something different, something value added, they know it's a work in progress, and they can see it resolves a pain point. It removes all of the inadequacies of what you didn't do as a result of getting to market quicker and testing a reaction. So that would be my recommendation. Feel a little ashamed, to be a little ashamed about what you go to market with initially. Stephanie: So is there anything that we didn't cover that you want to cover before we move on to the lightning round? Robert: Oh, no, I didn't know there was going to be a lightning round. Stephanie: Yes. There's a lightening round. Robert: That's a little scary. Stephanie: Yeah, anything high level, E-commerce trends, the industry that you're like, "Man, I really wish Stephanie asked this question and she just didn't." Robert: No, I don't think so. I think we've covered off the fact that, I think the biggest thing that's missing in the industry is that more collaboration. I think collaboration is going to be a game changer in terms of driving success. So that's what I'm seeking to build through networking and working with other brands to try and find some common ground we can explore in. So if anybody is interested, please reach out to me and I'll be happy to partner. Stephanie: Yeah. I completely agree. That's great. All right. So the lightning round brought to you by Salesforce Commerce Cloud is where I ask a question and you have one minute or less to answer. Are you ready, Rob? Robert: No. Okay, I am. Stephanie: All right. You're ready. What's up next in your cereal bowl? Robert: Oh my God. No, Scott's, it should be porridge, but it isn't. I like porridge, I'm a diehard Frosties guy. I don't know, there's not a bad time in a day to consume Frosties, so that's what's always in my cereal bowl. Stephanie: I agree. It's a delicious choice. What's up next on your Netflix queue? Robert: Netflix, I just finished watching Altered Carbon and it was a book that I'd read, three books I'd read many, many years ago. And it was actually a really good rendition of the novel. So I thought it's Sci-fi is very forward looking, it's probably what you'd expect me to watch, but I thought I enjoyed that series. Stephanie: Yeah, that sounds great. What's up next on your podcast list or audible? Robert: Yeah, so podcast, during COVID, I mean, I listen to a lot of podcasts, especially at nighttime and I've started to rediscover Vinyl. So I've become a bit of a pseudo audio file or want to be, at least I fought the big stuff, but I'm working my way into. So I started to listen to Vinyl's audio file podcasts, which have been fantastically interesting, but suddenly they're talking about technology I can't afford or justify. My wife keeps a very close eye on me, so sorry- Stephanie: Oh, man, so rude of her. Robert: I know terrible, isn't? But logical, she saves me from myself. Stephanie: That's good. Yeah, that's really fun. Well, if you were to have a guest on a podcast of your own, so if you were to have The Robert's podcast and you want to bring on your first guest, who would you bring and why? Robert: Oh, that's easy. That's easy. I am a big soccer fan from the UK. And one of my idols is Alex Ferguson. I would love him to be my first case on a podcast. He has such great insight into leadership, management, the stories he has. He would be, there's an entire encyclopedia of subjects we could discuss, and he's an idol of mine. Stephanie: That'd be a fun one. I would listen to your podcast. All right. The last hard question. What one thing will have the biggest impact on E-commerce in the next year? Robert: One thing, I think, changing the culture within companies to really embrace innovation, not to necessarily wipe the investment and make a net positive operating gain in the short term but to be more risk orientated. I see a lot of challenges around investment strategies and payback periods and so forth, and it really does slow down our ability to go to market. So if we can get to a point where there's an acceptable investment tolerance, and that will obviously vary by company size and profitability, then I'd like to see more about an entrepreneurial approach to taking that startup fund internally, and going to market with it, improving success or a failure. In Kellogg's we've done a tremendous job recently of celebrating failures. Robert: We've even have an award, for the peace of the award for failure. So it's a transformation that's underway, but we still have to get more comfortable with capital investment that can be used to experiment rather than the business case that supports it longterm, which will come, that will come when we determine what the metrics are or what the levers that work that can be expanded upon and so forth. So that's what I'm looking for. Stephanie: I love it. You are a lightning round expert, so nice job. Well, it's been a blast having you on the show, where can people learn more about you and Kellogg's? Robert: Well, they can see my profile on LinkedIn, obviously, I'm not a big social media user today. So reach out to me through LinkedIn and I'll be happy to engage. Stephanie: Awesome. Thanks for coming on the show, Rob, it's been a blast and we will have to bring you back since we have an invitation now for round two, we'll have to bring you back in the future. Robert: That was a mistake, wasn't it? Stephanie: No mistake, we'll have even more fun then. Robert: I look forward to it. Thank you very much for having me on. It's a great pleasure. Stephanie: Thanks.
In our sixth See It to Be It podcast interview, Amy C. Waninger speaks with Robert Cartwright Jr., a division manager of Bridgestone Retail Operations in the Northeast Region, about all things risk management. Robert is highly skilled and knowledgeable in risk management and is a very well-respected mentor and leader in the space. Additionally, he serves as chair of the Diversity and Inclusion Advisory Council of RIMS. They talk a bit about how he got into the field, and Robert explains to us how risk management intersects with just about everything.These discussions highlight professional role models in a variety of industries, and our goal is to draw attention to the vast array of possibilities available to emerging and aspiring professionals, with particular attention paid to support black and brown professionals.Connect with Robert on LinkedIn and Twitter!Find out more about RIMS - they're on Instagram, Twitter, Facebook, and LinkedIn.Visit our website!TRANSCRIPTZach: What's up, y'all? It's Zach with Living Corporate. Now, look, every now and then we try to mix it up for y'all, 'cause--so look, dependency and consistency is really important, but even within those lanes of consistency, you gotta have a little bit of variety, you know what I mean? You don't come home and just eat the same thing every day, or even if you do--you know, you got a meal prep thing--maybe sometimes you put a little red sauce. Maybe sometimes you put a little green sauce. You know, you gotta just, you know, mix it up from time to time. Maybe sometimes you grill it. Maybe sometimes you saute. Maybe sometimes you rotisserie. You gotta just--am I hungry? Yes, I'm hungry, y'all. My bad. Listen, check it out. We have another entry for y'all from our See It to Be It series. Amy C. Waninger, CEO of Lead at Any Level as well as the author of Network Beyond Bias, she's actually been a member of the team for a while now, so shout-out to you, Amy. Yes, thank you very much for all of your work here. And part of her work has been in driving this series called See It to Be It, and the purpose of the series is to actually highlight black and brown professionals in these prestigious roles, like, within industries that maybe we--and when I say we I mean black and brown folks, I see y'all--may not even know exist or envision ourselves in, hence the name of the series, right? So check this out. We're gonna go ahead and transition from here. The next thing you're gonna hear is an interview with Amy C. Waninger and a super dope professional. I know y'all are gonna love it. Catch y'all next time. Peace.Amy: Robert, thank you so much for joining me today. How are you?Robert: I'm doing great, Amy. How are you doing today?Amy: I'm doing quite well. I was hoping that you could tell me a little bit of how you got involved in risk management and what about it appealed to you.Robert: Okay. Wow, so I have to go back a little bit, because risk management was not a field that I had even thought about, because my background is actually HR, and I managed a couple of plants, manufacturing plants, and when I took over one plant--it was in Philadelphia, and they also made me head of plant operations, and the first issue I encountered was an OSHA citation. It was about $160,000, and it kind of threw me into the field of what is this all about and what are we looking at. So I didn't understand the term risk--and this is in the early 90s when this occurred--and I think it was more of a thing of, you know, the exposure or the things that we had to figure out with how we're going to manage that. So one of the things that the owner asked me to do was to look more into what that was all about, and so that was my first exposure to what risk management was. Now, going on another eight years, and then at this point now I'm working for Bridgestone. I was overseeing part of their [work comp?] program, and as I was moving further along with that I got exposed to, from the insurance side and the claims side of things, the exposures and the risks associated with it, and so I wanted to learn more about it, so I looked it up on Yahoo. That was before Google. Yahoo was a big search engine back then, so I'm dating myself, but Yahoo was a search engine, and it talked about risk management organizations, and I wanted to find out more about it. They directed me to Risk and Insurance Management Society, and they had a local chapter in the greater Philadelphia area, and I went to their meetings, and that's when I started to really learn more about all of the elements that involve risk management. It is a vast operation, and a lot of things that are done, especially from the RIMS perspective, is more volunteer-based. So there's a lot of volunteers that were trying to put together risk management programs for their communities and their communities spread across the world. So that was my first exposure to risk management. The other thing I found that was very interesting is that it was so interconnected with business, and a lot of times businesses are siloed. You have operations doing one thing and HR is doing something else, and, you know, finance is doing something else, you know? They're all kind of siloed, where risk management was really trying to be the gatekeeper for all of those and trying to put them all together and say they're all elements of exposure that will harm the company. We need to find ways to do a better job with that. So I think the short answer to that is that I kind of researched and fell into risk management. It wasn't a career that I chose. The career chose me, and so here I am 35, 36 years later, and just really being an advocate for risk management.Amy: That's fantastic. Did you go through any formal training for this or did you really just research this on your own and kind of pull from these different disciplines?Robert: Yeah. So I did get my CRM, my Certified Risk Manager designation. So I went through those five principles of risk management, risk finance, risk factors, risk analysis and things like that. It kind of gave you a basis of what risk management was for, and that really was I think the biggest education that I got, because I didn't know anything about it, and that was really the exposure. So I did that. I got my certification that way and started to bring some of that information back into my company, but at the same time I was getting more and more involved with the risk management organization, the RIMS orgnization, and so with the local chapter I was able to really kind of build a very robust program that was gonna benefit the community that we were serving, and then I found that it was on a global level, so I started to get involved in other committees and other counsels that handle other parts of what risk management is, and I had the opportunity to serve as their global president last year. So it was a crowning achievement to my career thus far.Amy: That is an amazing story, and it's exciting to me to hear how many people really fall in love with a career path or even get exposed to a career path through associations, because I think a lot of folks--because I didn't know about associations, and I think that's true of a lot of people, especially if you're first-generation in the professional workplace or a first-generation college student. You know, you may not realize that these associations are even out there and that they're a wonderful way to explore different career possibilities and network with people, find out what they like about their job, what they would change about their job if they could, and really get exposure to a lot of different disciplines along the way.Robert: Absolutely.Amy: So what's been the biggest surprise to you about risk management that you weren't expecting when you decided to take the leap?Robert: Well, let's see, I think the biggest thing I found was that I think the connectivity of it is a universal language, and I think going to the convention, to the annual conferences, that was a big thing for me, seeing so many people kind of doing the same thing. Then I realized I wasn't on an island by myself. Handling the issues that we were having in my company, sharing some of the best practices, the peer-to-peer connections, and then the networking aspect where the first time you go you don't know a lot of people. The second time you know a few more. They introduce you to some people. And after about three, four years, all of a sudden it's like a family gathering all over again. You're seeing people you hadn't seen before. They're gonna introduce you to more people, and so your network just gets bigger and bigger every year.Amy: That's fantastic. So what do you think the future holds for talent needs in risk management? Do you see this as something that's going to be--that there will be more jobs in this field, or do you see it as something that maybe artificial intelligence will be taking over? You know, are you going to be working with machines and robots in the future, or do you need more people in this space?Robert: Interesting thing about that, and this is one thing I've been championing. I've been talking about the 21st century version of risk management. The 21st century version of risk management is a person who bought insurance to protect any liabilities for the company. That was the basis for risk management, an insurance person and the person who bought the insurance, and the person who set up the policies and [?]. It has since expanded into a multi-dimensional I guess job description, because IT falls under risk management. HR falls under risk management. Finance falls under risk management. Safety falls under risk management. Audit falls under risk management. So all of these disciplines, any business, anything that a business is associated with, has an element of risk, and so the 21st century risk manager is not gonna look at things so much as "How much insurance do we need to have in order to cover our loss?" They have to look at risk management now from the aspect of saying "What are we gonna do to save the company money by putting processes and procedures in place to stop and mitigate the losses that we have?" Or, and here's the challenge for the 21st century risk manager, the unknown unknowns, the things you don't even know that you don't see. Yes, the company is doing great. We've had a three-year positive trend of losses and things that are happening in that regard, but what else is going to happen around the corner that we don't know about? That's what the future of risk management is. So in a visualization of risk management, that is very key, it's very critical. The next generation, we're looking to them to help lead us in that regard. So my push and my passion has been for 21st century risk managers, they're the ones who understand technology, AI, blockchain. All of the things that are out there that are coming on the horizon. You still need people to manage that level of risk, whether you're working with machines or whether you're working with AI, which is being done right now in the insurance field. AI is now writing insurance policies. So there's a lot of things that still need the people side to drive that and to understand and to direct AI to do those things, and I think my exposure this past year having traveled around the world a little bit has shown me that around the world there are a lot of things that are happening in spaces that we haven't even touched here in the United States. There's a need for people to understand how we can fix these problems. So I talk to college students now and I say, "Do you want to be a risk manager? Here is your job. Find the process solutions and problems." You say when you go into a company and say, "We don't really know what's going on." You're new to the organization and you start asking questions. Before you start asking questions about "Why are we doing it this way?" Ask yourself that question and come up with the answer. When you go into the next meeting and you ask that question, "Well, why are we doing it this way?" And they say, "Well, we've been doing it this way for 20 years and it's working, why?" When you come up with an answer or a solution that they didn't see, then you're the risk manager. All of a sudden now you're the problem solver. You're the one who's gonna help them save money, be relevant, and be able to take that company and move forward with it. The other thing I'll say is that the future of risk management is critically tied in with strategic thinking, because we are raising a group of students now who are getting risk management degrees. They didn't have that when I went to college. That just–that doesn’t exist. And so now people are coming out of college with risk management degrees, or they’re taking things that are tied in with that – actuarial, underwriting, or even on the broker side. Those are all things that they need to know in order to help their company go forward. So I tell people go into a company, and it doesn’t matter if–’cause there’s not a lot of risk management jobs that you can get right out of college. There’s not a lot of entry-level jobs that are like that. There's some companies that have risk management positions that they don't know what they call it. They'll put you into a different category, but it's really dealing with risk management. The thing I say to them is understand the mission and vision of your organization. Find out what that is, because that's your basis. That is your starting point to have a conversation with anybody in your company. Once you understand what the mission and vision is--becuase everybody's connected to it. They have to be. That's the basis of the company. So when you look at that, that's your catalyst to move forward. So yeah, 2020--risk management, oh, there's development in the 21st century. So Amy, here's another point to the whole thing. Persons like myself who have been in this industry 35, 40 years, for the next 10 years, there's a statistic that says 400,000 of us are gonna be sun-setting off into other pursuits. Who's filling that gap? So there's a need, a drastic need, for people to fill that gap who, in my opinion, know technology, have grown up on technology, know digital technology, they live, eat, sleep, breathe it. They're the folks that we need to have to understand how to take this to the next level, because there are things that aren't even regulated right now. We're talking about AI. Let's talk about drones. Let's talk about autonomous vehicles. There's no legislation for that. They're still trying to figure it out. So who's gonna figure this out? So there's definitely a need for that.Amy: Perfect. And what you're bringing up is the intersection of private sector initiatives, you know, public sector initiatives. There are community implications for this beyond the companies, beyond the legislators, but, you know, just really in small towns and cities and in terms of education. You know, schools need to be prepared for this. One of the things I love about the insurance industry as a whole is that it intersects every other part of the economy, and risk management is a little bit broader even than insurance in that it intersects all of these things but it also overlays them in a way that maybe some other disciplines don't. So I like the advice about if you're a strategic thinker this is a great place for you.Robert: Exactly. Well, you know, most organizations righ tnow, their focus is on strategic thinking. They're looking at leaders who can put them in a position to be more successful. Anybody can write a policy and can say that we're protected, but what does that really mean, and what did it really mean to the organization? Do you need a $10 million writer? Who knows? But that's the person who needs to examine that and find out what it is that they really need. And what are they doing to prevent the incidents or the issues that are happening? What are they looking at so far as other methods and means of making the company more successful without an expense? So I kind of look at--a friend of mine used the expression, "Loss prevention is profit retention," and a lot of times you don't think about it from that perspective, but that's really what it is after you put the elements in place.Amy: Is brand preservation, reputation, does that fall under the risk management umbrella as well? Robert: Absolutely.Amy: And I'm thinking specifically about some of the companies that we've heard about in the news lately where they have not--they've clearly not had diversity among their decision-makers, and they've made horrible, horrible mistakes in the marketplace--and very hurtful mistakes--in terms of how they've treated their workers, how they've treated their consumers, how they've established their brand. Do you see marketing as being maybe a primary stakeholder or maybe a future primary stakeholder in this work?Robert: I would say absolutely so. And to your point, we've seen a lot of things where even in marketing we're advertising that they've taken some polarizing images under the guise of "Oh, we didn't know it was offensive," but at the same time it bought them publicity. So there's, like, a double-edged sword with that. There's an ethical component I think to everything I think that most people are missing, and the ethical thing is not that it's the right thing to do, it's doing the right thing, and doing the right thing means you have a responsibility to your shareholders and to your public, where a lot of times people will focus on their rights. "We have a right to advertise this." "We have a right to market this." "We have a right to display this." And they don't look at the responsibility as the other side of that. So to answer your question, marketing, yes, that's a very big issue, and there's a risk management process that's tied in with that, because the thing you have to look at is if we market the wrong thing, how does it impact the bottom line of the organization? Nike did something just recently with a person who the NFL did not really want to be involved with. It was something that was controversial, kind of brought people's attention to something, but at the same time there was a backlash behind it too. But I think one of the--when you talk about marketing, one of the commercials for the Super Bowl was the one where "you call it crazy," and it talked about women and how they were "crazy to do that," women wanting to play sports or wanting to run in a marathon or, you know, she wanted to do these things, but she's too emotional or she's--and they're talking about all these things and--hold on, if that's the case, just show them what crazy is. Great advertisement, right? But the reality is that people still don't understand that that level of diversity is what is needed because women are the buying power. I mean, you have women as 60 or 70% of the buying power of this country. You're not going to cater to that? So the funny thing I found just in my travels is that now the hotels I've been staying at--I've noticed this in the last eight, ten, twelve years--are using more and more comforters and duvets and things like that. They didn't have that before. Why? Because there are more women travelers. Women want more comfort, and so they distinctly designed that to say "Well, we're adding more comfort to your stay." Everything is designed around comfort now. I don't mind it. So yeah, I don't think I would have asked for that because, you know, if I have a sheet I'm okay, but a duvet is kind of nice to have, you know? But there are a lot of things that if you don't include the population of which you're serving, you're missing out on a big part of humanity and what risk management is all about. Amy: Absolutely. To your point about hotels, if I go to a hotel and there's not enough counter space for my makeup, I don't stay there again, and the reason I don't is because I know that there were not women involved in the design of those hotel rooms, because no woman would design a bathroom where she didn't have a place to put her makeup. And so it's like, clearly you didn't want me bad enough to invite me back, so.Robert: So if you feel that way and you just happen to share casually with a friend who shares with another friend, now you have people where there's--and business people are not going to a certain chain. There's a reputational risk that they didn't even realize. So then the people who are marketing and saying, "We want to drive more revenue," or things about growth and sustainability, "We want to drive more revenue, and we know that men like to travel and do this." If you're missing that side of demographics, like you said, that becomes this whole silent killer. The next thing you know, boom, [?].Amy: Yeah, you'll spend millions of dollars renovating your property. You better make sure you get all the stakeholders in the room before you cut that check and before it's finished, because then it's too late. So I was wondering if you could tell us a little bit about--you've already alluded to RIMS, but I know you're doing some more work in RIMS about future talent and diversifying talent in risk management, but what are some--so we'll just start there. What are some of the things that RIMS is doing to engage a different kind of workforce maybe than risk management has seen in the past?Robert: Right. So I think one of the things that--timing is always everything, right? And I am the first African-American president of this organization. So we've been in existence for about 67 years, so [?].Amy: Congratulations.Robert: Thank you, thank you. That was a milestone in itself. And I reflect back on a time when they asked me to be on the global board, and the person who called me was a friend of mine, but he was also involved in that whole process of selecting the next person that comes on. And first I thought he was kidding with me. I said "Yeah, whatever. You don't have any diversity on the board, so." And then we're going around and around and I said, "Okay, so is this, like, a backdoor deal?" And he says, "Robert, you can't get into the back door with this organization. You can only get in the front, and it's only by the way of what you do and your merits and leadership and things like that." I was like, "Well, okay, so--how did that even happen?" So as time goes on, and so now as a president, as I was thinking about my presidency and what I wanted to do, my thing was about legacy, and my thing focused on the fact of we need to know where we came from to know where we're going. If we're talking about risk management being relevant, yes, we need to understand our past, but we also need to understand the future and where we're going. Diversity is important. If you don't have diversity, then you're not gonna be relevant. Society is dictating that, they're insisting on it. I saw that in my travels around the world, where they're importing diversity, they're importing the talent, because they want to have what that is. Companies here in the United States are global. The majority of the big companies have a global presence, and if they don't include the type of marketing, like you said, as a woman, that doesn't have space for your cosmetics, then you're losing out on that part of it. So when I think about--what I wanted to expand on as president was diversity and inclusion, that it needed to be something where we get past the conversation of this as it's now something that we talk about. I want to get it to the point where it needs to be a verb. And so we took that, RIMS took that perspective, and we constructed a task force to delve into whether this was something that as an organization we wanted to be involved with, and I'm pleased to say that the board of directors created a new council, a diversity and inclusion advisory council, that was launched this year, and I was asked to be chair of that council. So we've got international presidents. We've got women, men. We've got the LGBTQ corner covered. We have every element covered when we talk about so far as what we want to do as an organization, 'cause we have to walk that talk in my opinion. So as a result of that it becomes more of a thing where we say "What is the next step?" So what RIMS is gonna look at, we're gonna dive into this using the collective firepower of the people on this council, and some of the people on this council are already in that field, from a global level to a local level to an international level. As a matter of fact, my vice chair is from New Zealand, just to kind of give you a perspective that way. But she brings another perspective to that. So what we want to do is we want to take this and say, "Okay, how do we help the next generation understand what this is? How do we help risk managers understand what that is?" As a part of the risk management discipline, D&I, or a diverse group, is a must. It can't be something that we just continue to talk about, but I'm really excited about this. There's just so much. You know, Amy, when I started my presidency, people were reaching out to me, and the first group that reached out was Women of Color, and they asked me to speak to their group, and from there I spoke to the National African-American Insurance Association, and then there was a Latin organization that asked me to speak to them. So there was an influx of people who were coming in, and for the first time RIMS decided that we wanted to have a D&I meeting at our conference in San Antonio last year. It was set up for about 100, 150 people. I'm standing in front 'cause myself and another person were speaking. People were filling in, and they were filling in, and then they were bringing more chairs in, and they filled all the chairs they brought in, and the last count was about 250 people that were crammed into that room over something that we thought might be a good idea, and that I think was a catalyst for us to say "Okay, you know what? We need to take this thing even further." So I'm honored to be able to lead this council going forward, but I just think that there's so much that's already been done that no one knows about. That's the second part. A lot of organizations are out there that are doing things that no one knows about, and I think from the inclusive part we can't just say it's the big organizations who are doing these things. There are other groups that are doing things as well. Let's bring them to the party and have them included as well. We need to hear their voice.Amy: Absolutely. It sounds like, with a response like that, that there was some pent-up demand and that people were excited to have an opportunity to learn more and to participate in this and even to see, you know, the head of the organization be a history maker. That's exciting to me, that other groups said "Oh, wow. You made history. Come talk to us." I think that's phenomenal.Robert: It is. Last year would have been a whirlwind without that, because I wanted to make that as my platform. It became almost double what I would normally have done or what a president would normally have done, and so, you know, everything is about opportunity, right? So right place, right time, right people, and you have to have a passion for it, and I believe in it. I firmly believe in it, because if you don't--I mean, I have found in my experience that if you don't have a different perspective outside of your own or people who look like you, then you're gonna be doing the same thing that you've always done and thinking that you're successful. Patting yourself on the back, "Yeah, we did a great job." Did you really? Who did you compare yourself to? Who did you ask? So, you know, when I bring my significant other into a situation, I say "What do you think about this?" and get her perspective, and "Man, that's something I didn't even see." So I think that's the benefit, yeah.Amy: So you've obviously done a lot of work to help people feel included in your organization. When do you feel included? Robert: I think that's kind of hard to define, because on the surface people can say, "Yeah, we invited you to the meeting. We need you to prepare a report." I think when you become included is when you're part of the decision-making, and when someone says "What do you think?" outside of the normal group or the people who are called on. I've found that for me, when I have a meeting, when I have a lot of folks or a lot of different groups in the room, I try to make sure that every voice is heard. That's not how it happens in real life. What happens in real life is that--and my daughters have already attested to this, 'cause I've asked them, and they're all professionals. They're all in that business world. One's in defense, one's in pharmaceuticals, and the other one's a nurse. And it's the same thing. The great ideas that they got get shot down because it wasn't their idea, but then someone else picks it up and all of a sudden it's their idea. So I think the inclusiveness is when somebody says "What do you think?" And they take your idea and say "Okay, well, why don't you run with it? Why don't you lead this project?" So the duty of RIMS as an organization is that that's exactly what they do, which is exactly why I'm here today, because every time I kept saying "How come we're doing it this way?" They'd say "Well, what would you do differently?" I'd say "Well, we should do that." "Oh, great. Why don't you lead that project?" And so I ended up leading projects and then becoming treasurer and secretary and vice president and president of the local chapter, and then you get onto a committee and "Why don't you do this?" And now you're on the board. "Why don't you do this?" And then you're president. So that's the thing right there. So in my company itself there's still a long way to go. I think in big companies, because there's such a culture that exists and that culture is a thing you need to understand, and that's what I tell a lot of young people. If you're going to walk into an organization, you need to understand their culture. Figure out what their culture is first. Understand the culture. Understand the language you need to speak, and by that I mean that there's certain expressions that opens everyone's ears. There's certain things that happen that everybody says "Hm, okay. That's pretty interesting." And it doesn't mean that you have to assimilate, it doesn't mean that you have to change who you are. It just means you have to understand the language. Now, you have to bring your spin to it, because as a woman you're gonna bring a different perspective. As a minority, you're gonna bring a different perspective. As an LGBTQ person, you're gonna bring a different perspective. Those are needed, and so I think that my drive for D&I now is to highlight the value of all of those different values, but it's a mandatory thing. Right now we're creating positions, but I don't see the action that needs to be behind it enough where it comes a norm where it's like--okay, let me use history as an example. Back in the 30s and 40s, a secretary was a man. It was not a field for women. Now when you talk about a secretary, they don't want to use the word secretary. It's an office manager, but it's mostly women. So we see the trend has changed, and so now people don't even blink twice when you say a secretary or an office manager. "Oh, yeah, of course it was a woman." So that's where we need to be when we talk about a diverse workforce. It needs to be something where we're not trying to put a checkmark and just saying "We checked the box. We have this person. We've hired a black man, a black woman, a gay person, or a lesbian or a trans person, and they're now on our group," but are they inclusive? Are they inclusive? Are they part of the group? And are they accepted for their voice? And I think that's a critical thing. The second part to the inclusion is that it also has to be inclusive of thought. We have five generations in the workplace right now. There's no inclusion of thought 'cause the younger person that comes in, they could have some great ideas, "Yeah, yeah, yeah. Okay, Robert. That's great, that's great, and we'll hear from you later." So therefore they have all this energy, you psyche them all up, you told them "Run with this project," they come back and they get slapped down. So after a while you stifle that growth, you stifle that creativity, and I think that the whole generational issue is another problem that we've got. We've got to be able to bridge that gap. So when I talk about diversity and inclusion, I'm thinking about diversity of thought, I'm thinking about inclusion of thought. That's a critical piece as well.Amy: Absolutely. Robert Cartwright Jr., thank you so much for you time today. Thank you for making history and for sharing that with us.Robert: Thank you, Amy. Appreciate it.
Guests: Amanda Hickman: @amandabee | GitHub Amberley Romo: @amberleyjohanna | GitHub | Blog In this episode, Amanda Hickman and Amberley Romo talk about how they paired up to get the safety pin, spool of thread, and the knitting yarn and needles emojis approved by the Unicode Committee so that now they are available for use worldwide. They also talk about how their two path crossed, how you can pitch and get involved in making your own emojis, and detail their quest to get a regular sewing needle approved as well. Resources: Unicode Technical Committee Draft Emoji Candidates The Unicode Consortium Members Sewing-Emoji Repo Proposal for Sewing NEEDLE AND THREAD Emoji This show was produced by Mandy Moore, aka @therubyrep of DevReps, LLC. Transcript: ROBERT: Hello, everyone. Welcome to Episode 112 of The Frontside Podcast. I'm Robert DeLuca, a software developer here at the Frontside and I'll be your episode host. With me as co-host is Charles Lowell. Hey, Charles. CHARLES: Hello, Robert. Good morning. ROBERT: Good morning. This is an exciting podcast. Today, we're going to be discussing writing a proposal to the Unicode Committee, getting it accepted and rejected. This is basically making emojis which I think is really awesome. We have two guests today who have an amazing story, Amanda Hickman and Amberley Romo. Thank you both for joining us. You two have an amazing story that I would really love to dive into and we're going to do that today. It's about basically creating your own emoji and getting that accepted so everybody can use that and I think that's super, super cool, something that I've always kind of wanted to do as a joke and it seems like that's kind of where your stories began, so you two want to jump in and start telling? I think Amanda has a great beginning to this. AMANDA: Sure. I mean, hi and thanks for having me. I don't know where to begin and really for me, this starts with learning to sew my own clothes which is an incredibly exasperating and frustrating process that involves a lot of ripping stitches back out and starting over and Instagram was a really big part of me finding patterns and finding other people who are sewing their own clothes and learning from the process. I wanted to be able to post stuff on Instagram and it started to drive me absolutely crazy, that there's emojis for wrenches and nuts and hammers and there are no textile emoji. The best I could find was scissors which is great because cutting patterns is a place where I spend a lot of time procrastinating but that was it. I knew a woman, Jennifer 8 Lee or Jenny who had led a campaign to get the dumpling emoji into the Unicode character set. I knew she'd succeeded in that but I didn't really know much more about how that had worked. I started thinking I'm going write a sewing emoji. I can do this. I can lead this campaign. I started researching it and actually reached out to Jenny and I discovered that she has created an entire organization called... What was that called? She's created an entire organization called Emojination, where she supports people who want to develop emoji proposals. CHARLES: Before you actually found the support system, you actually made the decision that you were going to do this and you found it. You know, from my perspective, I kind of see emoji is this thing that is static, it's there, it's something that we use but the idea that I, as an individual, could actually contribute to that. I probably, having come to that fork in the road would have said, "Nah, it's just it is what it is and I can't change it." What was the process in your mind to actually say, "You know what? I'm actually going to see if I can have some effect over this process?" AMANDA: It definitely started with a lot of anger and being just consistently frustrated but I knew that someone else had already done this. It was sort of on my radar that it was actually possible to change the emoji character set. I think that if I didn't know Jenny's story and it turned out I didn't know Jenny story at all but I thought I knew Jenny story but if I didn't know that basic thing that that somebody I knew who was a mere mortal like me had gone to the Emoji Subcommittee of the Unicode Consortium and petition them to add a dumpling emoji, I am sure that I wouldn't bother. But I knew from talking to her that there was basically a process and that there were a format that they want proposal in and it's possible to write them a proposal. I knew that much just because I knew Jenny. I think at that point, when I started thinking about this, the Emoji 9 -- I should be more of an expert on that actually, on emoji releases but a new release of emoji had come out. There were a bunch of things in that release and it got a little bit of traction on Twitter. I knew that the Unicode Consortium had just announced a whole new slate of emoji, so I also was generally aware that there was some kind of process by which emoji were getting released and expanded and updated. ROBERT: That's interesting. Do you know when that started? Because it seems like Apple started to add more emojis around like iOS 7 or something but it was pretty static for a while right? Or am I wrong? AMANDA: I actually am tempted to look this up but the other piece that is not irrelevant here is that at the time, I was working at a news organization called BuzzFeed that you may have heard of -- ROBERT: Maybe, I don't know. It sounds kind of familiar. AMANDA: I do feel like people kind of know who they are. I was surrounded by emoji all the time: in BuzzFeed, in internet native of the highest order and we had to use emoji all the time and I had to figure out how to get emoji into blog post which I didn't really know how to do before that. I can put them on my phone but that was it. I was immersed in emoji already. I knew that there was a project called Emojipedia, that was a whole kind of encyclopedia of emoji. One of my colleagues at BuzzFeed, a woman named Nicole Nguyen had written a really great article about the variation in the dance emoji. If you look at the dance emoji, one of the icons that some devices use is this kind of woman with her skirt flipping out behind her that looks like she's probably dancing a tango and then one of the icons that other character sets use and other devices use is a sort of round, yellow lumping figure with a rose in its mouth that you sort of want to hug but it's definitely not to impress you with its tango skill. She had written this whole article about how funny it was that you might send someone this very cute dumpling man with [inaudible] and what they would see was sexy tango woman. I think there was some discussion, it was around that time also that Apple replaced the gun emoji with a water gun. There was some discussion of the direction that the various emoji's face. One of the things that I learned around that time was that every device manufacturer produces their own character set that's native to their devices and they look very different. That means that there's a really big difference between putting a kind of like frustrated face with a gun pointing at it, which I don't really think of it as very funny but that sort of like, "I'm going to shoot myself" is very different from pointing the gun the other way which is very much like, "I'm shooting someone else," so these distinctions, what it means that the gun emoji can point two different ways when it gets used was also a conversation that was happening. None of that answers your question, though which is when did the kind of rapid expanse of emoji start to happen. ROBERT: I feel like the story is setting in the place there, though because it seems like there's a little bit of tension there that we're all kind of diverging here a little bit and it's sort of driving back towards maybe standardization. AMANDA: There's actually, as far as I know, no real move toward standardization but the Unicode Consortium has this committee that actually has representatives from definitely Apple and Microsoft and Google and I forget who else on the consortium. Jenny 8 Lee is now on the consortium and she's on the Emoji Subcommittee but they actually do get together and debate the merits of adding additional emoji, whether they're going to be representative. One of the criteria is longevity and I tend to think of this as the pager problem. There is indeed a pager emoji and I think that the Unicode Consortium wants to avoid approving a pager emoji because that was definitely a short-lived device. CHARLES: Right. I'm surprised that it actually made it. Emoji must be older than most people realize. AMANDA: My understanding is that very early Japanese computers had lots emoji. There's a lot of different Japanese holidays that are represented in emoji, a lot of Japanese food as well are represented in emoji, so if you look through the foods, there's a handful of things that haven't added recently but a lot of the original emoji definitely covered Japanese cuisine very well. ROBERT: I definitely remember when I got my first iPhone that could install iPhone OS 2, you would install an app from the App Store that then would allow you to go toggle on the emoji keyboard but you had to install an app to do it and that's kind of where the revolution started, for me at least. I remember everybody starting to sending these things around. AMANDA: But if you look at Emojipedia, which has a nice kind of rundown of historical versions of the Unicodes, back in 1999, they added what I think of as the interrobang, which is the exclamation/question mark together and a couple of different Syriac crosses. Over the years, the committee has added a whole series of wording icons and flags that all make sense but then, it is around, I would say 2014, 2015 that you start to get the zipper mouth and rolling your eyes and nerd face and all of the things that are used in conversation now -- the unicorn face. ROBERT: My regular emojis. AMANDA: Exactly. CHARLES: It certainly seems like the push to put more textile emoji ought to clear the hurdle for longevity, seeing there's kind of like, what? Several millennia of history there? And just kind of how tightly woven -- pun intended -- those things are into the human experience, right? AMANDA: Definitely. Although technically, there's still no weaving emojis. CHARLES: There's no loom? AMANDA: There's no loom and I think that a loom would be pretty hard to represent in a little 8-bit graphic but -- CHARLES: What are the constraints around? Because ultimately, we've already kind of touched on that the emoji themselves, their abstract representations and there are a couple of examples like the dancing one where the representation can vary quite widely. How do they put constraints around the representation versus the abstract concept? AMANDA: You don't have to provide a graphic but it definitely kind of smooths the path if you do and it has to be something that's representable in that little bitty square that you get. It has to be something representable in a letter-size square. If it's not something that you can clearly see at that size, it's not going to be approved. If it's not something you can clearly illustrate at that size in a way that's clearly distinct from any other emoji and also that's clearly distinct from anything else of that image could be, it's not going to be approved. Being able to actually represented in that little bitty size and I don't know... One of sort of sad fact of having ultimately worked with Emojination on the approval process is that we were assigned an illustrator and she did some illustrations for us and I never had to look at what the constraints were for the illustration because it wasn't my problem. ROBERT: Sometimes, that's really nice. AMANDA: Yes, it's very nice. I ended up doing a lot of research. What made me really sad and I don't want to jump too far ahead but one of things that made me really sad is we proposed the slate and the one thing that didn't get approved was the sewing needle and it also didn't get rejected, so it's in the sort of strange nether space. That's kind of stuck in purgatory right now. I did all this research and learned that the oldest known sewing needle is a Neanderthal needle so it predates Homo sapiens and it's 50,000 years old. CHARLES: Yeah. Not having a sewing needle just seem absurd. AMANDA: Yeah. We have been sewing with needles since before we were actually human being. ROBERT: That's a strong case. AMANDA: Yes, that's what I thought. If I sort go back to my narrative arc, I wanted to do a sewing needle and started researching it a little bit -- CHARLES: Sorry to keep you interrupting but that's literally the one that started this whole journey. AMANDA: Yes, I wanted a sewing needle and I really wanted a sewing needle. I did a little research and then I reach out to Jenny and to ask her if she had any advice. She said, "You should join my Slack," and I was like, "Oh, okay. That's the kind of advice." She and I talked about it and she said that she thought that it made more sense to propose a kind of bundle of textile emoji and I decided to do that. She and I talked it through and I think the original was probably something closer to knitting than yarn but we said knitting, a safety pin, thread and needle were the ones that kind of made the most sense. I set about writing these four proposals and one of the things that they asked for was frequently requested. One other thing that I will say about the proposal format is that they have this outline structure that is grammatically very wonky. They ask you to assert the images distinctiveness and they also ask you to demonstrate that it is frequently requested. I found a couple of really interesting resources. One, Emojipedia which is this sort of encyclopedia of emoji images and history maintains a list of the top emoji requests. I actually don't know how they generate that list or who's requesting that and where but I think it's things that they get emailed about and things people request in other contexts and sewing and knitting, I've done on that list and I started compiling it in 2016. ROBERT: To be a part of the proposal process, to show that it is requested, without that resource, you just start scouring Facebook and Twitter and history and shouting to people like, "I really want this emoji. Why it didn't exist?" That seems pretty hard. AMANDA: Actually our proposals all have Twitter screen shots of people grousing about the absence of knitting emoji and yarn emoji and sewing emoji. I know that Emojipedia, they do a bunch of research so they go out and look at based what people are grousing about on Twitter. They look at places where people are publicly saying like, "It's crazy that there's no X emoji," and that's part of their process for deciding what kinds of emojis people are asking for. Their research was one resource but we took screenshots of people saying that they needed a safety pin emoji and that was part of making the case. One of the things that I found as I was doing that research was that, I guess at this point it was almost two years ago, when the character set that included the dumpling emoji came out, there was a bunch of grousing from people saying, "Why is there not a yarn emoji?" There was a writing campaign that I think Lion Brand had adopted. Lion Brand yarn had put in this tweet saying like, "Everyone should complain. We needed a yarn emoji," but it doesn't matter how much you yell on Twitter. If you don't actually write a proposal, you're not going to get anywhere. I had been told that the Emoji Subcommittee, they're really disinclined to accept proposals that had a corporate sponsor, so they weren't going to create a yarn emoji because Lion Brand yarns wanted them to create a yarn emoji. ROBERT: Right, so it was like counter-peer proposal. AMANDA: Right. But as I was digging around the other thing I found was this woman in... I actually don't know if you're in Dallas or Austin but I found Amberley, who also put a post on Twitter and had started a petition, asking people to sign her petition for a yarn emoji proposal or a knitting emoji. I don't remember if it was a yarn emoji or a knitting emoji but I found her petition and reached out to her to ask if she was interested in co-authoring the proposal with me because she had clearly done the work. She actually had figured out how the system worked at that point. I think she knew who she was petitioning, at least. I reached out to Amberley and we worked together to refine our proposal and figure out what exactly we wanted to request. I think there were a bunch of things that were on the original list like knitting needles, yarn and needles. I think crocheting would have been on the original list. We were sort of trying to figure out what was the right set of requests that actually made sense. ROBERT: So then, this is where Amberley stories comes in and it is interesting too because she has entirely different angle for this. Maybe not entirely different but different than outright. This kind of ties back to the word software podcast mostly. It kind of ties back to the software aspect, right? AMBERLEY: Yeah. I think, really they're kind of separate stories on parallel tracks. My motivation was also two-fold like Amanda's was, where I started knitting in 2013 and I had a really good group of nerd friends with a little yarn shop up in DC, like a stitch and ditch group -- ROBERT: I love it. AMBERLEY: It was a constant sort of like, where's the insert emoji here, like where's the yarn emoji? Where's the knitting emoji? And we would sort of sarcastically use the spaghetti emoji because it was the most visually similar but that was something that was in the back of my mind but it teaches you a lot about yourself too because I was like, "Oh, this is like fiber art, not really an emoji. It's kind of technical, like on a tech space," and I didn't really connect that it was relevant or that I might have any power to change it. It just didn't occur to me at the time. ROBERT: Interesting. I feel like a lot of people are in that similar situation or maybe not situation, even though you can make change on this. AMBERLEY: Right, so my brain didn't even make it like, "Why isn't this a thing? let me look at how to make the thing." When that happened for me, Amanda mentioned using emoji and everything in the BuzzFeed space. I love how you explained BuzzFeed a while ago, it's my favorite description of BuzzFeed I ever heard. Something similar that happened for me was I was a software developer and in 2016, the Yarn package manager was released and that kind of turned something on in my head. That was like I'm seeing all these software engineers now be like, "Where's the yarn emoji?" and I'm like, "Welcome to the club." ROBERT: "Do you want to join our Slack? We can complain together." AMBERLEY: Right. It has been like a pretty decent amount of time, I'm semi-seriously ranting and complaining to my coworkers who were primarily male software engineers. I remember I went to [inaudible] in the Frost Bank Tower after work and was just like, "I'm going to figure out how this happens," and I spent a couple hours at the coffee shop. I found the Unicode site and I found their proposal process and their structure for the proposal and everything and I just started doing the research and drafting up a proposal specifically for yarn. Maybe it was a bit naive of me but to me it was like, "Okay, here's the process. I follow the process. Cool." I mean, you have to make a case and it has to be compelling and has to be well-written and it has to be supported and all that and that to me it was like, "Okay, there's a process. At the same time, I did read about the dumpling emoji but I didn't connect it to Emojination and they had started the Kickstarter. We should talk about this later but I think the sort of idea the issue of representation on the committee and who gets to define language is really interesting but I saw that they had done the Kickstarter and there was a campaign aspect to it, so I ended up just building up this simple site so that if anyone Google, they would find yarn emoji. It's still up at YarnEmoji.com and that was how Amanda found me. I got this random email, I sort of like had this burst of energy and I did all the research and I wrote the draft, sort of piecemeal, filling out the different sections of the way they have it outlined on the Unicode site and then I feel like a month or two went by and I had kind of not looked at it for a bit and then, I get this random email from this website that I almost forgot about. It was like, "Hey, I'm working on this series of proposals. If you're working on knitting or yarn or whatever, maybe we could work together," and I was like, "Well, that's sweet." Then she opened up this whole world to me. There's this whole Emojination organization, sort of 100% devoted to democratizing the process of language formation through creating emojis and so then, I got really into that. My primary motivator was yarn. CHARLES: So what's the status of the yarn spool, those emoji right now? AMBERLEY: The yarn, the spool of thread and the safety pin, they're all approved emoji for the 2018 released. Amanda and I are actually at the end. Amanda, a couple of months ago when I saw someone used the spool thread emoji for a Twitter thread -- you know how people will be like all caps thread and have a thread of tweets -- I saw someone do that just out of the blue. I was like, "Oh, my God. Is it out?" and the thing about these individual vendors, it sort of gets released piecemeal, so at the time Twitter have I think released their versions of this series of new emoji but others hadn't. CHARLES: How does that work? Because you think the Twitter would be kind of device depending on what browser you're using, like if you're on a Windows or a Mac or a Linux Box, right? ROBERT: -- Emoji set, right? I know Facebook does this too. AMBERLEY: I'm painfully aware that Facebook does it because I can't use the crossed finger emoji on Facebook because it actually gives me nightmares. ROBERT: I have to go look at this now. AMBERLEY: Because it's so creepy-looking. CHARLES: Okay. Also like Slack, for example is another. It's like a software-provided emoji set. AMANDA: Right. AMBERLEY: I'm not totally sure that Slack actually adheres to the standard Unicode set. I think it's kind of its own thing but I might be wrong about that. AMANDA: Sorry, Slack definitely supports the full Unicode set. They also have a bunch of emoji that they've added that aren't part of the set. AMBERLEY: Slack emojis? AMANDA: Yes. CHARLES: Yeah and then every Slack also has its kind of local Slack emoji. AMBERLEY: Right. CHARLES: But how does that work with --? ROBERT: Okay, this crossed-finger Facebook emoji is... yes, I agree with you, Amberley. AMBERLEY: Thank you. I had yet to find someone who disagrees with me about that. AMANDA: I have never seen it before and I'm now like, "What is going on?" CHARLES: Yeah, so how does it work if a vendor like Twitter is using a different emoji set? How does that work with cut and paste, like if I want to copy the content of one tweet into something else? Are they using an image there? AMANDA: They're using an image. I think it's doesn't happen as much anymore but for a long time, I would often get texts from people and the text message would have that little box with a little code point in it and you were like -- AMBERLEY: More like an alien thing? AMANDA: Yeah. Definitely, if you don't have the emoji character set that includes the glyph that you're looking at, you're going to get that little box that has a description of the code point and I think what's happening is that Twitter is using JavaScript or generally programming. There were air quotes but you can't see. Twitter is using their software to sub in their emoji glyph whenever someone enters that code point. Even if you don't have the most up to date Unicode on your computer, you can still see those in Twitter. If I copy and paste it into a text editor on my computer, what I'm going to see is my little box that says '01F9F5' in it but if I get it into Twitter, it shows up. I can see them on Twitter but I can't see them anywhere else. AMBERLEY: Damn, you really have the code point memorized? AMANDA: No, I -- CHARLES: Oh, man. I was really hoping -- AMBERLEY: Oh, man. ROBERT: You live and breathe it. AMANDA: No, I'm not that compulsive. AMBERLEY: We definitely have our emojis on our Twitter bios, though. AMANDA: Absolutely. ROBERT: If you see Amanda's bio, it's pretty great. AMANDA: They started showing up on Twitter and I think that somebody in Emojination probably told me they were out and that was when I first started using them. Amberley might have actually seen it. It sounds like you just saw it in the wild, which is kind of amazing. AMBERLEY: I saw it in the wild with this tweet thread and yeah, it's just [inaudible]. I was like, "Amanda, is it out?" CHARLES: Yeah, I feel like I saw that same usage too, although I obviously did not connect any dots. AMANDA: This last week, October 2nd -- I'm also looking things up. I'm just going to come to the fact that I am on a computer looking things up so I can fact check myself -- after they actually released their emoji glyph set, so by now any updated iOS device should have the full 2018 emoji, which in addition to a kind of amazing chunky yarn and safety pin, there's also a bunch of stuff. There's a broom and a laundry basket. There's a bunch of really basic, kind of household stuff that certainly belongs in the character set alongside wrenches and hammers. AMBERLEY: I think one of the big ones too for this year was the hijab? AMANDA: No, the hijab actually came out with a dumpling. Hijab has been available -- AMBERLEY: It's been up, okay. ROBERT: So did it come with iOS 12 or 12.1? I don't know for sure. I just know -- AMANDA: I'm looking at it and it's 12.1. I really feel that I should be ashamed that I have used the internet and search for this. AMBERLEY: I would say, I have no idea what their release numbers are. AMANDA: [inaudible] as it appeared for the first time in iOS for 2018 with today's release of the iOS 12.1, Beta 2 for developers. ROBERT: That is amazing. Do you get some kind of satisfaction -- like you have to, right? -- from people using the emoji and it's starting to make its way out there? AMANDA: So much. Oh, my God, yeah. AMBERLEY: I didn't really expect it, like saying that random tweet using this spool of thread for a tweet thread. I just thought and I just got so psyched. For me, I'm a knitter. I have knitter friends and it started with yarn and then really, Amanda and through Amanda, Jenny really sort of broadened my idea of what it all really meant. To think someone using it in the wild for a totally different application than I had ever thought of was like, "That's legit." AMANDA: I definitely have a sewing emoji search in my tweet deck and sometimes, when I'm feeling I need a little self-validation, I'll go look over there and find people who are saying things like, "Why is there no sewing emoji?" and I'll just reply with all the sewing emoji, like it is part of my work in this life to make sure that not only do they exist but people know about them. ROBERT: That is awesome. I would do the same thing, though to be honest. You'll be proud of that. AMANDA: Totally. ROBERT: Were there any hitches in the proposal process? I know we're kind of alluded to it but the thing that you started off one thing, Amanda didn't make it. Right? AMANDA: I know. ROBERT: So how did that process happen from you two meet each other and then going through the actual committee and the review process and then being accepted. What would that mean? AMANDA: The process is actually incredibly opaque. We wrote this whole proposal, a bunch of people edited it, which is one of the other nice things about collaborating with Emojination. There was a bunch of people who are just really excited about emoji and the kind of language making that Amberley was talking about. There's a whole bunch of people who just jumped in and gave us copy edits and feedback, which was super helpful and then, there was a deadline and we submitted it to the committee and it actually shows up in the Unicode register which is also a very official kind of document register. I was a little excited about that too but then they have their meeting. They first have a meeting and there's like a rough pass and the Emoji Subcommittee makes formal recommendations to the Unicode Consortium and then the consortium votes to accept or reject the Emoji Subcommittee's recommendations. It's a very long process but unless you're going and checking the document file and meeting minutes from the Unicode Consortium meetings, you'll never going to know that it happen. AMBERLEY: -- You know someone connected through there because one of the things in our first pass, it wasn't that it was rejected. It was that we needed to modify something. We do have art for knitting needles with yarn because at one point, I think we weren't totally sure that a ball of yarn would be visually distinct enough in this emoji size to look like yarn and so, we had put it with sort of knit piece on knitting needles. AMANDA: Oh, that's right. There was a tease of a little bit of knitted fabric. AMBERLEY: Right and I think that, probably through Jenny or the people actually in the room, the feedback I remember is that there is a crocheter in the room who was like, "Yeah, why isn't there a yarn emoji but knitting needle?" so there was a little bit of like that was how I think we ended up from knitting needles with a fiber piece to ball of yarn, maybe. AMANDA: I think that sounds right. I'm actually sure of that. It's just all coincide with my recollection. There were some things that they had questions about and that happened really fast because I feel like we had a couple of days and they have stuck to our guns and said, "No, we're only interested in knitted bit of fabric." Also, we worked with an illustrator and went back and forth with her because the initial piece that she had illustrated, I feel like the knitting needles were crossing in a way. That was not how knitting works and so, there was a little bit of back and forth around that as well. But then once they decided that the they like the thread, yarn and safety pin, we're going to move to the next stage. I actually had to go back and look at the minutes to find out that the two reasons that they didn't move the sewing needle on to the next stage is when they thought it was adequately represented by the thread, which I wholeheartedly disagree with and they thought it wasn't visually distinctive. That's so much harder because a sewing needle, which is really just a very fine piece of metal with an eye at the end, you get down to a really small size and it is maybe a little hard to know what you're looking at. But I think there's such a big difference between the static object which is the spool or the thread which represents a lot of things and is important and the needle, which is the active tool that you use to do the making, to do the mending, to do the cobbling. CHARLES: Yeah. I'm surprised that it almost isn't reversed when certainly in my mind, which I think is more culturally important in terms of the number of places which it appears, it's definitely the needle as being kind of... Yeah. AMANDA: Yeah and I think that the thread and yarn, they're important and I think that the decision to have a ball of yarn rather than a bit of knitting makes sense because there's a lot of things that you can use a ball of yarn that aren't just knitting and they think that -- AMBERLEY: And it's the first step too that doesn't exclude anyone in the fiber art community. AMANDA: But there's so many things like in sutures and closing wounds, you're not using a little spool of cotton thread for that or polyester thread and stuff like embroidery and beadwork, you might be using thread or fiber of some sort that started on a spool but you might not. Embroidery floss was not sold in a spool and there's all these places where we use needles and all kinds of different size and you don't always use thread. Sometimes, you're using yarn. Sometimes, you're using leather cord. Sometimes, you're using new bits of, I would say Yucca. You're using plant fibers to do baskets and in all of these different practices, that process of hooking it through the eye and sewing it is how it's actually made. It still sort of mystifies me why they haven't accepted it but they also didn't reject it, which is really interesting. I don't know how many other emoji are sort of sitting in this weird nether space because sometimes they just reject them outright. I think there was a proposal for a coin that they just said no. ROBERT: They were a like, "A coin?" That would be [inaudible]. AMANDA: Oh, God. ROBERT: They have to add one for every -- AMANDA: [inaudible]. CHARLES: Literally, the pager of 2017. AMANDA: Exactly. CHARLES: So what recourse is now available to you all and to us, by extension, to get the sewing needle? AMANDA: I'm actually working on a revised proposal and I've been trying to figure out what are all the arguments that I'm missing for why sewing and the needle are not adequately represented by the thread and yarn. A bunch of things that a friend of my named, Mari who's half-Japanese, half-American but lives in Guatemala and does all this kind of arts in textile work, pointed out that there's a whole holiday in Japan devoted to bringing your broken needles and thanking them for their service. I thought that was really cool. I've been trying to formulate what are all of the arguments for the necessity of both a needle and a spool. If anybody has interesting ways to phrase that, I would love for arguments. CHARLES: Yeah but it's hard to imagine the arguments is just anything being more compelling than the arguments the you just laid out that you named about seven context: shoemaking, medicine, different fibers where the needle operates completely and totally independent of the thread. It's looming so large in kind of our collective conscious like holidays, being dedicated to them, except I think the Cro-Magnon pager, which is made out of stone, I believe, the being the artifact that pre-dates... AMANDA: There's the idiom landscape as well. Things like finding a needle in a haystack, that has a very specific meaning -- ROBERT: And for puns. I've been resisting saying a pun this whole time. AMANDA: Oh, share your pun with us. AMBERLEY: Yeah, you have to say it. ROBERT: Well, you could say that trying to get this through the committee is like threading a needle. Butchered but -- AMANDA: There's a biblical quote about getting into heaven -- a camel through the eye of a needle. I forget actually how it... CHARLES: To thread a camel through the eye of a needle than for a rich man to get into heaven. AMANDA: Exactly and there's this sort of do-re-mi, saw, a needle pulling thread. There are all these places where it's about the needle and somebody had -- CHARLES: It's primarily ancient. AMANDA: I know. CHARLES: It is the prime actor. Maybe, this is a good segue into kind of talking about the makeup of the committee and the decision making process and these kind of what seem like very clear arguments might not be received as such. AMANDA: I certainly don't want to say anything bad about anybody on the committee. CHARLES: No, no, I don't think that there's anything bad. I think that being receptive to things which are familiar to us versus with things that aren't is a very natural human thing and it can be interesting to see that at work and at play. AMANDA: The Unicode Consortium is also evaluating all of these requests for whole language glyphs sets. Lots of languages and lots of character sets that are kind of obvious, like there has to be a sort of like character set like there has to be an Arabic character set but there are a lot of languages that have been left out of that because they're very small minority languages or they are historical languages, where the actual writing is no longer written the same way but there's historical reasons to be able to represent those characters. One of the reasons why the Emoji Subcommittee cares about what gets into the formal character set is that everybody has to accommodate it and there's already been, I think some grousing. People start to moan and groan about how there's too many emoji, then it's too hard to find things. CHARLES: And there's no take backs. AMANDA: There's no take backs. You can't undo it. The committee is made up of representatives from a lot of tech companies primarily, although there's a couple of other kind of odd additional folks on there. I do try to find the committee list and I can find it right now. AMBERLEY: I have it from Emojination. I don't know if it's up to date but Oracle, IBM, Microsoft, Adobe, Apple, Google, Facebook, Shopify and Netflix. The other voting members -- ROBERT: Shopify? AMBERLEY: Yeah, right? The others being the German software company, SAP and the Chinese telecom company, Huawei and the Government of Oman. AMANDA: Yeah, the Government of Oman is a fascinating one. I don't think they're the ones that are biting us on this. Especially for those tech companies, every time the emoji character set adds 10 or 12 emoji, they don't have to accommodate it on their devices. They have to put illustrators on it, they have to deal with everyone saying that the crossed fingers emoji in Facebook looks like I-don't-even-know-what. AMBERLEY: Hey, Amanda. AMANDA: It's all your fault. There's a whole process and there's non-trivial work associated with every single new emoji, so wanting to put the brakes on a little bit and be intentional about where and when they apply that work, it doesn't seem crazy to me. I just want them to approve the thing that I want. AMBERLEY: I like the way that Emojination captures it. I looked at their website earlier and actually, they take it down but their goal quote "Emojination wants to make emoji approval an inclusive representative process." There has to be a process. There's overhead involved but looking at the makeup of the decision makers are not a trivial question. CHARLES: Right. This is a great example like [inaudible] metaphor but these little artifacts, these emojis are literally being woven to the fabric of a global culture and certainly, everybody uses them and they become part of the collective subconscious. It does seem like very important to be democratic in some way. It sounds like there is a process but making sure that everyone has a stake. AMBERLEY: Yeah. ROBERT: What was the reason that they gave for not accepting the needle and thread? Was it like a soft no? You said it's like just hanging out, not really rejected but not accepted. We're going to drop a link in the show notes for the proposal and your GitHub and everything. I'm looking at the PDF that was put together and it seems like it was all a package deal like we talked about. How do they just draw or they just take like a lawyer would, just like draw or cross it out like, "Well, no but we'll take the other ones." AMANDA: Yes, basically. What they did is they need to discuss and I don't know how long they've been meeting but they need to discuss all of the proposals that have been supplied by a particular deadline and -- ROBERT: That sounds painful. AMANDA: Yeah, I mean, it's -- ROBERT: Just imagine the power of thinking about emojis. AMANDA: One of the things that they rejected, I think because there's the smiling poo face. Somebody wanted a frowning poo face and they rejected that. There's a bunch of things that actually do get rejected. I don't know if they've been really care about a smiling poo face versus a frowning poo face. ROBERT: What about an angry one? AMANDA: We got all the feelings of poo. ROBERT: We got important work to do here. AMANDA: But they go through when they're trying to figure out. I think to some degree, you want to get them when they're not tired but I think the status that it's listed right now is committee pushback, so they've set it aside until we have some concerns. We're not going to reject it outright but we're not really sure why this isn't adequately represented. Then their most recent meeting, they just kind of passed on reconsidering it, which is fine because I think I was traveling and my proposal is not done. I really want to make sure that I have consolidated every imaginable argument in one place so -- ROBERT: And make it strong as possible. AMANDA: Yeah. If people want to help the other thing that would be amazing is any and all idioms that you can think of, especially ones that are not in English or European languages, idioms in Central European languages, idioms in Asian languages that refer to needles, either translations of the kind of classic, 'finding a needle in a haystack,' but also any idioms that are kind of unusual and specific to a culture outside of what I have experience with would be amazing for making the case, so this is an international need. ROBERT: Do they need any specific or actionable feedback or do they just say, "We're going to push back on this. We're just not quite sure?" AMANDA: The two things that we're in the minutes -- there are minutes and they publish the minutes to Unicode.org -- were it was not visually distinct, which is not totally crazy. We actually worked with an illustrator to get a different image. The first image was almost at 90 degrees. It was kind of straight up and down and it is a little hard to see and the second is -- ROBERT: Especially, because it's thin. AMANDA: The second image is actually a kind of stylized needle because it's fairly a little fatter and the eye is bigger but it's much more distinctively a needle. I'm hoping that that will also convince them but you have to be able to tell at a very small size that it's a needle. The other thing that they said was that sewing was already represented by the thread, that we didn't need thread and needle but it was literally one line in the minutes that referenced that and then it sort of like, "Did you have somebody in the room or not?" and so, if there is somebody on the committee who is willing to tell you really what their concerns were, then you have some sense of what they're looking for and why they're pushing back. When you can very much see in the earliest emoji character sets that I have a hammer and I have a wrench and I use them but there's these very conventionally male tools. We have all of the kind of office supplies but all of homemaking and housekeeping and textile production, none of them were there until very, very recently. I think it does reflect the gender of the people who've been making these tools, that sewing and knitting weren't important enough as human practices to be included in this glyph set. AMBERLEY: I guess, that's non-trivial to mention because that wasn't an argument that I made in my original yarn draft and Amanda and Jenny sort of pushing to open it up to this whole slate of craft emoji. I didn't realize until they brought that up. I took a stroll through pretty much the whole slate of emoji and you can count on almost one hand the number that represented the creative endeavors or sort of more traditionally known as creative things like camera or painting palette and stuff like that. It was extremely limited. AMANDA: I think they have stuff like that. I think there's a few different variations on the camera and then there's painting palette and that's it. AMBERLEY: Oh, there's the theater mask. AMANDA: Oh, that's right. There is the theater, the happy and sad -- AMBERLEY: And I don't know it exactly and I haven't read the minutes like Amanda has but I think and I hope that that was a particularly compelling piece of that argument. AMANDA: I think they definitely heard it. AMBERLEY: Yeah. CHARLES: Opening it up then, what else is coming in the way of craft? It sounds like this is historical but these pieces are being filled in not only with the work that you all are doing but by other emoji which you're appearing. AMANDA: Yes. CHARLES: And are you in contact with other people who are kind of associated with maybe craft and textiles and other kind of what you're labeling historically creative spaces? AMANDA: I don't think there are anymore with a possible exception. Someone's working on a vinyl record proposal which I think is great. CHARLES: Yeah, that's awesome. ROBERT: Antiquated, though. AMANDA: Maybe not, I don't know. AMBERLEY: Take a stroll through the Emojination Slack and people discussed that. AMANDA: Yeah. If you click at Emojination.org, the whole Airtable database is on there. There's not a lot of other creative ones. A friend of mine got really bent out of shape about the lack of alliums and wrote a whole slate proposal for leeks and scallions and garlic and onions. ROBERT: Oh, there is a garlic one, right? AMANDA: No. I mean, there is -- AMBERLEY: Actually, I'm looking at the Unicode page for current emoji candidates. They first get listed as... I forget the exact order. They become draft candidates and then provisional candidates or vice versa but I don't see any pending further creative ones but garlic and onion are on there. AMANDA: Yes. ROBERT: That makes my Italian a little happy. AMANDA: I think there's some prosthesis, the mechanical leg and the mechanical arm, a guide dog -- AMBERLEY: Ear with hearing aid, service dog. AMANDA: Yeah, there's a good chunk of interesting things that have been left out. I guess they've been approved by the subcommittee but are still waiting on final approval by the Unicode Consortium. ROBERT: Okay. What are the next steps that we can do to help push the thread and needle proposal through it. You mentioned a couple things like coming up with idioms that are in different languages and whatnot but how can we contact you and push this effort and help? AMANDA: That's such a good question. I don't even know. I mean, I am Amanda@velociraptor.info and you're totally welcome to email me if you want to help with this and I will -- ROBERT: That's a great domain, by the way. AMANDA: Unfortunately, there's no information about velociraptors anywhere on that site. ROBERT: That's the way it should be. AMANDA: But also, if you're excited about working on emoji proposals, Emojination is an incredibly great resource and folks there, including me actually will help you identify things that are on other people's wish lists that you could work on if you just want to work on something and we'll help you refine your proposal if you know what you want and we'll help you figure out whether it's worth putting the time in or not and how to make it compelling. You can definitely check out Emojination.org. I think there's a path to get on to the Slack from there. AMBERLEY: Oh, yeah. The Slack and the Airtable. AMANDA: Yeah. ROBERT: It sounds like there's a whole community that was born out of this, where everybody is trying to help each other and collaborate and get their shared ideas across. AMANDA: Definitely and there's a woman, Melissa Thermidor who is fantastic, who actually is a social media coordinator. It's her actual title but she works for the National Health Service in the UK and was tasked with getting a whole series of health-related emoji passed. There's a bunch of things that she's -- AMBERLEY: Is she's the one doing blood. AMANDA: She's doing blood. AMBERLEY: That's a good one. AMANDA: Because there's a lot of really important health reasons why you need to be able to talk about blood and getting blood and blood borne illnesses and -- AMBERLEY: That one was listed on the emoji candidate page or blood donation medicine administration. AMANDA: Yeah. ROBERT: That's really interesting, so she works for the government, right? and that was part of her job to do that? AMANDA: Yes. ROBERT: That's awesome, actually. I love that. AMANDA: Yeah, I think the drop of blood, the bandage and the stethoscope are the three that are in the current iteration, which is interesting because the existing medical emoji were the pill and that gruesome syringe with a little drops of fluid flying off of it, which do not do a lot to encourage people to go to the doctor. ROBERT: No, not at all. AMANDA: So a few more, we're welcoming medical emoji. ROBERT: You have a GitHub. Is that where you're still doing for the follow up and the prep work for the sewing emoji? AMANDA: Yeah, that's probably the best place. I do have a Google Docs somewhere but that's probably a better place to connect even than my ridiculous Velociraptor email. The GitHub -- ROBERT: But it's still awesome. AMANDA: It is awesome. I won't lie. I'm very proud of it. I am AmandaBee -- like the Bumble Bee -- on GitHub and the sewing emoji, the original proposals are there and I will make sure that there is information about how to plug into the revised needle proposal there as well. You guys are a tech podcast, so if people want to just submit suggestions as issues on that repository, that's awesome. We'll totally take suggestions that way. ROBERT: That would be pretty rad. Well, I appreciate you two being on the podcast. I love hearing your stories and how it ended up converging in parallel tracks but it end up achieving the same goal. Still unfinished, right? Let's see if we can help push this over the finish line and get it done because I would really like to see a needle. I could definitely use that in many of my conversations already now, making all kinds of puns. Thank you, Amanda for coming on and sharing your story. AMANDA: Thanks for having me. ROBERT: And thank you, Amberley for also coming on and sharing your story. This was super awesome. AMBERLEY: Yeah and thank you for connecting us to finally have a voice conversation. AMANDA: I know. It's great to actually talk to you, Amberley. CHARLES: Oh, wow, this is the first time that you actually talked in audio? AMANDA & AMBERLEY: Yeah. ROBERT: We're making things happen here. The next thing we have to do is get this proposal through and accepted. AMANDA: Yes. CHARLES: You've converted two new faithful sewing and needle partisans here and I'm in. AMANDA: Awesome. ROBERT: I know you've already gotten, what? Three through accepted? AMANDA: Yeah. ROBERT: We talked about that, it's got to be really awesome. I think I want to try and jump in and get that same satisfaction because a lot of people use emojis. AMANDA: Exactly. CHARLES: It definitely makes me think like you look at every single emoji and there's definitely a story. Especially for the ones that have been added more recently, there's a lot of work that goes into every single pixel. That represents a lot of human time, which I'm sure you all know, so thank you. AMANDA: Thanks for having us on. AMBERLEY: Yeah, thank you guys. ROBERT: Cool. That is the podcast. We are Frontside. We build UI that you can stick your future on. I really love this podcast because it wasn't necessarily technical but had a lot of interesting conversation about how to work with a proposal and probably make a bigger impact than any of us with software, just because the sheer reach that emojis have are insane and the fact that you can influence this process is new to me and really cool, so I hope a lot of other people learn from that too. If you have any feedback that you would like to give us on the podcast, we're always open to receive feedback. We have our doors and ears open, so if you like to send an email at Contact@Frontside.io or shoot us a tweet or DM us at @TheFrontside on Twitter. We'd love to hear it. Thank you, Mandy for producing the podcast. She always does an amazing job with it. You can follow her on Twitter at @TheRubyRep. Thanks and have a good one.
In this episode, Robert, Charles, and Wil talk about the whys and hows of accessibility, as well as what makes single page applications special, why they are they harder for accessibility, and frameworks that can do this for you. Resources: #SkyQ app on #iOS from a #VoiceOver user's Perspective Rob's Routing Doc Wil's PR Single Page Apps routers are broken Greater Than Code Episode #92: A11y Ally with Rob DeLuca This show was produced by Mandy Moore, aka @therubyrep of DevReps, LLC. Transcript: ROBERT: Hello everyone. Welcome to The Frontside Podcast. This is Episode 111. I'm Robert DeLuca, a software developer here at the Frontside and I'll be your episode host. Today, we're going to be discussing accessibility in single page apps. With me as co-hosts are Charles Lowell. Hey, Charles. CHARLES: What is up Robert? ROBERT: And Wil Wilsman. Hey, Wil. WIL: Yo, yo, yo, yo. ROBERT: Sounds like we're ready to drop a disc track. We're not going to be dissing anybody here. We're going to be talking about helpful things with accessibility in single page apps. Before we get into the nitty-gritty of accessibility in single page apps because we're getting into some deep stuff, I think I want to cover a lot of 'how' because I know accessibility things are usually about why you should be doing it and then they touch on things like, "You should be using alt attributes for your images," but for single page apps, I think we need to go further. CHARLES: It always ends up like, "Then draw the rest of the accessibility owl." ROBERT: Yeah, here's your two circles and the alt-tags are your circles and then the rest of the freaking owl is focus management and everything else that comes with it. Before we get there, what is accessibility? I guess, if we trim the giant umbrella down a little bit from everything that is accessibility that can be physical space things, like wheelchair accessible ramps or things like that, what about just technology? WIL: People need assistive tech to interact with technology such as switches or keyboards and obviously screen reader is a big one but when it comes to the software itself, you could even talk about colors and people who are color blind, so red might not be red to everybody. ROBERT: Speaking from experience there? WIL: Yeah. I'm colorblind. Red is brown to me. CHARLES: Things like hearing and all of it, right? It really is like just designing it in such a way that it can be used by as many people as possible. ROBERT: Right. WIL: And that includes your mom who may not be the best with technology but she still needs to pay your bills online or something. ROBERT: Exactly, yeah and in for context to listeners that might not know, my mom is 100% blind, so it's kind of where it comes from. CHARLES: But my mom is not but she has all kinds of problems. WIL: Yeah, same with my mom. CHARLES: That also falls under the category of accessibility, right? ROBERT: Absolutely. CHARLES: Right, accounting for age and culture. ROBERT: We're blending into the why of accessibility, which is perfect. One of the things that it's such a good segue because what people are starting to realize and I think why accessibility is really starting to catch wind and get some traction is because a lot of people that grew up in the technology age were open in using technology a lot. Our parents probably did not use technology heavily. That's definitely the case for my dad. He still has a flip phone and he says, he's a low tech man living in a high tech world and just refuses to pick up technology but those are the people that just didn't use technology. But now we have a lot of people that grew up with technology and use a lot and they're aging into more disabilities and they're going to need that accessibility, which I think is really interesting to think about because that's a lot of buying power if you're just going to start moving in that needs in accessibility, right? CHARLES: That's true. I know I may need glasses pretty soon, so colors and fonts were going to be heck a lot more to me in the next five years than they have over the last 20. ROBERT: Yup, exactly and that's going to be huge for that and that's one piece of the why, so what are the other reasons that you'd pick up accessibility other than people saying that it's morally correct. I don't like starting off conversations for accessibility because it's the thing that you should be doing. WIL: I think it goes even to my user experience like power users that don't like using the mice or mouse. That's me. I really prefer to just use my keyboard for everything. When the new Firefox browser came out and I couldn't navigate through the menus the way I was used to, I went back to Chrome. ROBERT: That's interesting. CHARLES: I still have not found a good workflow for navigating tabs with the keyboard without just kind of twisting my wrist all out of shape. You have to share that with me but again, that's another thing. That's an impediment that sits between me and the application, that actually -- ROBERT: Which is really interesting, you're getting into a keyboard navigation and focus management, which is really the crux of accessibility for screen reader users and switch users. CHARLES: What I'm hearing is that in this case, including good keyboard and focus management in your application, e.g. making it accessible to screen readers, you at the same time, enabling your power users. I think a great point is that by introducing these very low friction workflows, you're actually going to be enabling other parts of your customer base and not just catering to one, that there are ripple effects throughout your system. ROBERT: It may set it for everyone. WIL: Yeah, not only people who need it but people who don't know they need it. ROBERT: Yes, exactly. Think about the WCAG spec as user experience guidelines. They're not telling you how to implement a thing specifically for a screen reader. They're telling you how to implement it in a way that works for everyone, regardless of what ailment they have. It could be a temporary ailment. It could be a permanent ailment, where they have to use a screen reader or any kind of ailment that you can think of. They're not considering just one use case. It's a broad thing that shows how you can make your application better for everyone. I think that's a better way to look at the WCAG spec than I need to read through this and make sure that this auto complete works for a screen reader. If you look at the guidelines, they're not telling you just first screen reader. They're telling you how to make it work for a switch, someone who is colorblind or who is using a dictation software. I kind of tend to look at that as UX guideline, which really helps me build a better app overall because when you nail down that user flow, everyone benefits from it because it's pretty well thought out at that point. CHARLES: I like that too and I think that thinking of it as user experience and making sure that you have a complete user experience is a good way to think about it because it kind of separates the concerns of, "I've got HTML but is my application really HTML or is it a set of workflows and the data over which those workflows operate?" It really forces you to think my application is not a set of React opponents or web components or Ember components or what have you but really, there's a deep structure to it and it makes you kind of shine a light on that deep structure and try to map its surface. Then, if you really, really know it and you capture it, then you can represent it in any medium. I think it's just a win not just for one niche group of users but also for all of our users and then also for your future users that you don't have because your application is designed better and is going to work. Who knows? Maybe there's some new interface or some new medium, some new device that comes out that hasn't even been invented yet. But if you really have a strong internal representation of what your application is, you're going to be able to be the first to move to that market. ROBERT: Right and like I said earlier, people are starting to aid in the needing accessibility thing. If you need a dollar to justify it, that's going to be a big reason coming up. As a part of the new WCAG 2.1 spec, there is a zoom. I forget what this access criteria number is but the new criteria says your app basically needs to be responsive. That kind of maps directly to what you said earlier, Charles which is like you're going to need glasses soon and fonts and being able to zoom. It's going to be really important. We see that just pop up everywhere. To give a counter example of not just for accessibility like you need it for glasses but the other side of that could be like when we give demos on low resolution projectors or screencast or anything, when we zoom the screen, the apps just still be usable and you should still be able to demo it and that's just something that you have both sides to that, where accessibility kind of works out for everybody. People on the call probably don't need glasses but to see that tiny screen that's being shared, you should be able to assume that. CHARLES: Right. I'm just kind of restating what you said but I want to make sure to call it out explicitly because it was a definitely an aha moment for me, that you basically if you build yourself an accessible website, you build it so that it works on projectors and mobile devices too, so you kind of killed two birds with one stone and you don't have to make a special effort because zooming in the screen is tantamount to viewing it on a phone or viewing it on a tablet. WIL: Yeah, we mentioned it earlier about accessibility and physical space and one of those things is being able to access something from anywhere no matter the device that person is using. ROBERT: Yes. That's a lot of the 'why' of accessibility and I think we did a pretty good job of staying away from the more argument because morally we don't know if it's the right thing to do but a lot of the times it's not in front of you, it's hard to do and I want to make sure that you don't feel bad if you're not building accessibility in your apps. It's not easy. I don't sort of like people get up and say that, "Accessibility is easy. Just do this," because it's not -- WIL: If it was easy, everybody would do it. ROBERT: Exactly. I always come back to accessibility being just like UX -- user experience -- because if it were easy, everybody would have a really great user experience too. It's a hard thing to boil down and to simplify it, right? CHARLES: Right and like every other aspect, the kind of nonfunctional requirement, I say nonfunctional requirement that's a little bit of a contradiction terms but it becomes very hard if you haven't done it from the beginning. But if you didn't start with an accessible app, you weren't thinking about that or you inherited the app or it just wasn't on your radar for whatever reason. If you got a codebase that's two years old, going back and trying to make it accessible, it was extremely hard. It's expensive, expensive, expense. WIL: Yeah, it's going to cost more in terms of money and time to added it after the fact. ROBERT: Exactly. I spent a year on helping on Visa Checkout and there were some accessibility considered in the designs but a lot of the time my feedback wasn't just like, "Yeah, sprinkle some ARIA attributes on there and you're good." It was like, "Do we really need a carousel here to represent your list of carts because it's really hard to navigate around that?" A lot of the times, it ends up boiling up to is this the best way we can represent this data? Is this the best way we can navigate and build this user flow? A lot of times -- CHARLES: And if the answer is no, it's so painful, right? ROBERT: Yeah, exactly, so all that work that was put into building that carousel and all the components that built that carousel together is thrown out because it's just not a pattern that should be used there. Doing after the fact is really hard and really expensive and usually ends up in refactoring anyways. CHARLES: I just want to point that out because a lot of people find themselves in that situation, where they're staring down at a pretty big cost. Now, the reasons why your app may not be accessible or many and good and you shouldn't feel bad, if you're finally in that situation. ROBERT: I gave a talk at Nodevember a couple of years ago called Accessibility Debt and it's just like any technical debt. Your apps going to have it. It's okay. Don't get beat up about it, especially if anybody is trying to beat you up over it, don't listen to them. It really is just like any other kind of technical form of technical debt. It's something that you'll have to deal with and it is just something you have to work through. It's not world ending. It's just another problem to work through. What are some things like everybody usually talks about like the things you can do, the basics for making your app more accessible like using all its attributes and instead of doing a div with an on-click handler, just use a button or don't overuse ARIA attributes. Are there any other things that I missed there like the basics of accessibility? WIL: The biggest is the HTML structure. Screen readers and other assistive tech were built with the standards in mind, so if you're doing nonstandard things like putting divs in H1 and adding ARIA attributes within there, you're not going to have a great time. ROBERT: Right or splattering ARIA roles all over the place, probably not a good idea. That will be harder to debug. Also fun fact, ARIA roles, while you can implement directly to the spec, you may still have bugs across the different screen reader combinations or assistive tech combinations, so that's fine. CHARLES: Keep it super simple is what I'm hearing, like use semantic markup. If you're going to introduce a custom button, still make sure that it's a button. ROBERT: Use the platform. CHARLES: Yeah, use the platform. Don't fight the platform. Probably the best example of that is people implementing their own select boxes. That's the classic example. ROBERT: Wil and I, our lives has centered around that for a little while. It's so true. Usually, it's the first thing people go to grab to reimplement because selects are just ugly. I think Firefox has the ability for you to style select options now like you can change the color and the font but you can't style that. The pop up that comes, usually that's the system dialogue, which a lot of designers don't really like. That's usually the first thing that people go to implement and that's usually actually the first thing that stop somebody from signing up. A lot of sign up forms that I see, if your date of birth is in a select format, that probably will hinder somebody that uses assistive tech from signing up. CHARLES: Yeah. You just basically bounced that entire person. The thing is people don't appreciate the cost. This gets into the whole concept of accessibility that is how much money would that person or those group of people have actually brought into your site versus the cost that you spent redoing that select box. You might be thinking, "It only took this developer actually two weeks," but when you actually look at the actual cost over the course of your application, you're not factoring that into the decision to go with custom select box. Just in our experience, it's just the truly low cost option per quality of experience, that tradeoff there is almost invariably going with platforms select, right? ROBERT: Yeah. Your secret sauce and the best UX that you're going to provide is not going to be nicely styled select box and seriously, a battle that I had to fight a lot was if you really want to implement a custom widget, decide if this is what you want to spend your time on because custom widgets aren't just quick and easy things you implement. You're not going to implement the select that's fully accessible across all the AT combos in a couple of days. CHARLES: It's a lot of work. ROBERT: Yeah. You're going to fall down on a huge rabbit hole. CHARLES: Yeah. It is just you're committing to that work over the lifetime of your application. ROBERT: Exactly, if you can maintain that now. If you implement custom check boxes and custom radios and custom input that of content edible for some reason, I think -- WIL: I think what I see is like custom date pickers -- ROBERT: Oh, I just had a rant about that. CHARLES: Date pickers are hard and there's not really a good option. You just have to open your eyes to the true cost. ROBERT: Right, exactly. That's what I always try to explain, just like you have ownership over this now and you now have to maintain this and you can't regress. CHARLES: Right and if you do regress, it's your neck that gets choked. ROBERT: Yes. A good way to put it. We've talked a lot about things that are just general accessibility but nothing specific to single page apps. I do want to say like a lot of other things that people recommend is like if you're using React, use like the JSX ES1 plugin to help you analyze if you're writing any JSX that might not be accessible or use like HTML_CodeSniffer or aXe to statically analyze the DOM that you have. Those tools are great. I'd see a lot of people [inaudible] those things as like, "Look, this automated checkers says I'm inaccessible so I'm inaccessible," and that's not the case, especially in a single page apps. You can have 100% passing automated checkers but your app also could be 100% broken and why is that? WIL: I don't know. ROBERT: I'm wobbling the router question here. WIL: Yes. I guess that would just be due to routing. In single page applications, they handle their own routing, whereas static web sites and whatnot, the routing is handled despite URLs and the browser and reloading pages. ROBERT: Right. There are probably other major differences between single page apps but the biggest thing is the routing is managed by the client, the JavaScript and on a server-rendered page, you click a link, it's going to rerender the entire page for that next page and the screen reader and the browser know exactly what to do with that, to put the focus back to the top of the page and start working through the page for you. But with single page apps, you're just replacing a piece of the DOM and the screen reader has no idea of what's going on. An automated checker cannot check for this. They cannot tell you if your routes are accessible. The reason I'm bringing this up is because this has never talked about. I don't see in accessibility talks and this is the thing that actually is most broken and makes your app pretty much unusable to anybody that's using assistive tech. There's ways that people if they're savvy can navigate around it but if they don't know what's going on, they're going to think, "All right, I pressed this button and nothing happened, so I'm just going to leave now because it's not working." CHARLES: There's a great video that you point to me, I believe a guy from the UK who has recorded a bunch of his experiences using websites and apps -- ROBERT: Yes, I want to dig it up and put it in the show notes. CHARLES: Yeah. Those are great to watch because you'll really get it. ROBERT: Yeah and that's a really unique case because he's really savvy. I believe, I could be wrong but I think he might have said that he definitely work in tech somehow -- CHARLES: Right. He knows the workarounds and he knows these things but in some of the cases it's like, "If I didn't work in tech, there's no way that I would be able to use this website." ROBERT: Yeah. This is kind of the crux of like if you ever listen to anybody that is an accessibility consultant, they'll say, "You will never ever be able to automate accessibility," and this why I tie accessibility so much to user experience, would you ever have a user experience test that can tell you in a binary fashion? Yes or no, that your app has a great user experience? No, because it's pretty subjective. CHARLES: Of how does your users feel? right? ROBERT: Yeah. CHARLES: You can rate, "My users feel great." ROBERT: Accessibility is like that because there's a lot of context that you have to carry around. It's all about context. When I transition from this page, the next thing does the user have enough context of where they're coming from to where they're going to be able to operate on that page. Is there enough information to achieve the task they want? That is pretty much the crux of why there is no binary yes or no for that because it's contextual. It varies from person to person but you do your best to make sure that that works and that you provide enough information to do something. That's kind of a single page app as a crux. This is why we have a philosophy of testing as a whole. We don't test components individually because again, you can make all of your components individually accessible there but as a whole, they might not work together because you're not providing enough context on an entire page. We did this in one of the apps that we work on, which is open source, so we can link to the PR that Wil wrote for this and I wrote an entire routing documentation around our philosophy and the different things that we tried. How did we manage the focus in that application? I'm kind of just going to lob it over to you Wil since you did the work. Do you want to give context of the holdings and how that all kind of came together? WIL: Yes. One of the features of the app is these panels. It's like this three panel system. When you click an item in a list, a third panel pops up and this goes back to the context thing where if you're using a keyboard, you can't see the screen. You click an item in a list, how do you know that third panel popped up? The solution isn't for a component. The component can't be responsible for this. The list can't focus the item. It opens or vice versa, so this is definitely an application concern, where we needed to check against the route and see whether or not, the pane is opening or was already open or wasn't open before and when this pane opens for the first time, it will just focus it and that gives a lot of the context that the user needs when they click it, like they click an item in the list, it focuses this third pane and they're on a third pane. ROBERT: Right. We didn't even just focus on the entire div. We focused on the heading of the thing that you selected. WIL: Yeah because focusing the div, it might read something off but not all the time. The main thing we're focusing on that third pane opens is the heading to let them know that the item you click, you are now on that page and reading that heading. This is the same thing that would happen if you loaded up that page statically and the screen readers would usually just focus on that first heading. ROBERT: Right. That helped a lot. For a little bit more context, the middle pane is like kind of a master detail thing going on here and in the middle pane there that we have, it's an infinite scrolling list. You have different things there and one of them is like a package. If you select the package and without the focus management and focusing on that heading, you would have to go through every single package that's in that list which could be a thousand of them before you actually get over to the pane that you just opened because source order. You have to go through each one of those. WIL: And it's the same thing is true for power users, not just screen readers. It's like if they want to use tab once that pane open, they have to tab through the entire list. ROBERT: Exactly. It wasn't keyboard accessible and it made it really hard to navigate around with a keyboard because the focus just wasn't being managed. There was a lot of work that we did there. I want to focus on the routing situation there because if you can't navigate around with a keyboard in your single page app, like you click a link and it's not selecting the next thing that should be focused and you provide the right amount of context, your app probably won't be usable without a lot of trial and error to a user, which depending on what your product is, they may not have a lot of patience for trial and error, right? WIL: Yeah. ROBERT: It's really important to try and nail down the routing situation and there are some frameworks and things out there that can do it. In the app that we're talking about, it's React app and we use React router but we don't actually really hook into the router to handle that and that's because React router doesn't provide very much information. WIL: Yeah. You can think of React router as more of an outlet system, where your routes can render anything, anywhere on the page. That's kind of dangers of accessibility and that's kind of the reason that React router can't handle accessible things very well because at any point, the route can just change the button on the page to look like something else. CHARLES: Yeah. It just pop in and pop out. There's no deeper model, right? There's not -- WIL: Yeah, there's no tree. CHARLES: Right, there's the internal state -- WIL: Like a component tree, yeah. CHARLES: The internal state of what is happening is completely opaque. You can only analyze the second and third order effects of the React tree. ROBERT: Right and especially if you have nested route components, it's really hard to determine. One of the things that I've seen people do is focus on mount, which is a very naive approach because what if you have three nested routes, they're all going to focus on mount and the last one that mounts wins and that's a focus for which nobody wins. CHARLES: You all tried that, right? ROBERT: Yes. That's part of the document that I wrote up. We tried three different approaches and we ended up landing on something because we were using React router that was more of like an application state thing, so we were checking props because we knew what the user flow was. We knew what the user, when they come to this page is trying to accomplish, so we're able to kind of figure out from where they came from or where they're going through props and focus the right things for them. WIL: One of the examples, like we talked about the third pane opening and focusing the heading inside but what you know what happens when you close that third pane, you kind of lose contexts again, so we have to focus the previous list item that was active because if you focus back at the top of the list, they've essentially lost their place and the list of results. In that case, we couldn't use on mount. That list item is already mounted. We have to listen to props and we have to look at the route through these props to determine if that third pane was open. If it just closed and if an item in the list is active, it should have focus. It's a lot of logic going on. You have to really understand your app in order to make it a very good accessible app. You can't just sprinkle in ARIA attributes and focus on mount everywhere and think it'll work fine because you're accessible. You have to really know the flow. CHARLES: Right. All those signposts point towards having a deeper application state, a deeper understanding of your application than just the render tree. At that point, it's too late and so by that, I'm definitely lobbying a Reach/Ember router. WIL: Yes. We talked a lot about the React router and we can't really be too accessible with it but to create a React router to go out and there is now Reach router. Robert, have you heard any good things about that? You're the accessibility expert here. ROBERT: I haven't played with it myself, so [audio glitch] things that were lost from the React router three to four transition, I think and also, it's actually accessible routing which is nice because it comes out of the box and you know how to implement it. I haven't played with it. I know Gatsby has implemented that for their V2, that's their default router now, which makes me really happy because a lot of static sites that were being built with Gatsby were very inaccessible and broken which made me sad but now, they're not with V2. I haven't played with Reach router but one of the things that I think it provides which was missing from React router was transition hooks. It has a concept of like where you're going from and to for your routes, which really helps figure out what you need to focus. The one thing I will say about Reach router and I'm sure it's got to be configurable somewhere but I haven't really looked and the demos that I saw, they were just focusing the div of the content that's being rendered, like it kind of just wraps with a generic div or the tabindex="-1" and then focuses it. If you have a lot of content that's inside of that div, it probably will be confusing but at least, it manages the focus somewhere. If you're now off in a no man's land, you have no idea what's going on, at least it focuses that. But if you want to really nail the experience to be better, I would recommend trying to figure out what you should focus inside of that route that you just transition to, what is the best thing. That's for React. There are other things out there for other frameworks, like I am on Ember accessibility team that's out there and we have Ember A11y, which just provide you a focusing outlet for you to be able to just drop in your app and then when the route changes, it does the same thing. It focuses the wrapping div of that outlet that was just rendered. I want to emphasize more in talking about e-holdings work that we did that we were focusing the heading because that told you exactly where you're at and what package you're on or what thing you're on. You know the name of it and now you know how you can go and navigate through that. CHARLES: But it's conceivable, so how would you do that with the Ember router? Would you just introduce some way to delegate down to a particular component? Like when I'm rendered into an outlet, it focus on this component? ROBERT: That would be interesting. I actually don't know. It's been a long time since I've messed around with the Ember router and Ember accessibility. It's definitely a great first step and that's where it kind of came from. I think there needs probably some work done to help implement on what you want to focus. That's kind of where I was going with when we were first exploring the React router stuff and e-holdings was I wanted to have this like high order component that knew of your routing tree and it knew where you're coming from or where you're going. Then from there, it would just tell you, this is the route that we're going to and there's need to be focus management done, like if this prop exists, then you can pick inside of that component that what you want to focus. It leaves it up to the implementor of what they need to focus but it could be probably just like a fallback to the general div because that's not bad. It's a good first step. There needs to be a little bit of work there to get that done probably. CHARLES: Yeah. But it is worth pointing out that by starting from a position of having an externalized application state via the route structure, in an Ember application, you're starting 95% of the way there. An Ember application, at any point, you know where you are and during your transition, you know where you're starting and where you're going to end up and you know when you leave and you know when you got there. ROBERT: Yeah. Having an Ember route pivot handler there, like where you're pivoting from and to is just so nice and it kind of made it click together a lot easier. CHARLES: Right. Reach router looks interesting but as I understand, it's still couched in React components and it feels to me like this is a problem that ought to be solved, that ought to be framework agnostic. Because if I use something like Reach or I use some other routing library for another framework, some other tool might come out that I want to use and I shouldn't be locked in -- ROBERT: Right like what if I really like Redux little router, then I have to make a choice between Redux state that I like or accessibility. CHARLES: Exactly and that feels like a false dichotomy to me. What I would want to be looking for is a platform independent or a framework independent routing library that really just helps you represent your application state and the concrete state in which your application is in at any moment and then, also be able to represent the transitions between those states fully and completely. Then if you have that, you could embed that into any framework. ROBERT: Right. That would be really nice to have. Just like pull it off the shelf and help you out there. CHARLES: If anybody is listening who wants something to do for the next 18 months, no one will thank you for 18 months but you had to get on that. We'll give you lots of thanks then. ROBERT: [inaudible] compare with you. That would be awesome. CHARLES: I would love to be part of that. ROBERT: Yeah, that would be awesome. To kind of tie back to other things, I don't know too much about Angular but I'm sure there are solutions out there to help with Angular. I know Marcy Sutton used to do a lot of work in the Angular world, so I'm sure there's something out there that helps with that. I just don't know off the top of my head right now. I wrote a Medium 'think piece'... No, I wrote a little medium blog post about how all of single page out for routers are broken. I was pleasantly surprised by Vue. Vue brings its own router and their router has a concept of before each, so before each route transition you can run some code and that really helped with implementing the live, the announcer pattern where you use ARIA live to announce something but even beyond there, if you wanted to dig in there, you could probably figure out where you're transitioning from and to and give that next route some kind of attribute that says, "This needs to be focused. Figure out what you need to focus there and inside that route, you can focus wherever you want." I thought that was a really awesome. That's kind of the crux of what I was missing from React router. I wanted the concept of knowing where I'm coming from or where I'm going and I would help with everything but unfortunately, that kind of doesn't exists because they're just components. For better or for worse, they're just components. CHARLES: The world is so much more than just components. ROBERT: Yeah, a little bit off topic, I think it's kind of funny how React kind of just shoved everything into the Vue layer, just to make it all a component. CHARLES: Yeah, it's very easy. ROBERT: Yeah, until it's not. CHARLES: Yeah, exactly. It's easy but it's not simple. ROBERT: That's a lot of talking about how routes need to be done and what you can kind of do to manage focus. It's really about managing the context and how you can provide the most contexts. For somebody to operate on that information, can they complete this thing? What can you do to make sure that you've done this properly? What steps can you take to make sure that you actually are accessible and that your routes work? WIL: Manually testing those screen reader is probably the biggest thing, you know? CHARLES: Yeah. I think the biggest thing is really watching someone who uses assistive tech on a regular basis use your application and then trying to use it yourself. WIL: Yeah. ROBERT: Right. Yeah, I'll definitely -- CHARLES: If you can get a little bit of this yourself but then it's kind of like someone who is never used a mouse before and trying to learn something new. What really helps is seeing someone who's good at it and see how their expectations are either being met or not being met. ROBERT: Yeah, it's definitely the best way. If you can find somebody that actually relies on assistive tech, there's nothing that beats that kind of feedback. If they get to your app and they're really confused, I see some people that just dismiss it because they just don't understand. That is the best feedback you can actually get. If they don't understand what's going on, you have -- CHARLES: That's on you. ROBERT: Yeah, that is going to be what happens for everybody that uses that. Well, maybe not everybody because everybody has different experiences but it's probably going to be a thing that pops up everywhere. But if you don't have access to people that are actually using assistive tech regularly and are pros at it, WebAIM provides really great tutorials for how to use a screen reader. If you're using a Mac, you have a screen reader built in and you can use that called VoiceOver. If you ever want to turn it on or turn it off, its command F5. WIL: You might have to have that shortcut enabled, though. ROBERT: Really? I'm pretty sure it's quite default. WIL: I thought I had to enable mine but I could be wrong. ROBERT: It's interesting. CHARLES: Yeah. They got great tutorial too. It's like it notices the first time you turn it on, so it tries to help you navigate bullet lists and select boxes and input fields and check boxes and all kinds of good stuff. ROBERT: Yeah. It gives you a little bit of a boot camp but WebAIM also helps with specific to website and stuff because one of the things that we ran into while working on the e-holdings project is they're transitioning from a native app to a web app and there were just things that you can do on a native app that you cannot do on a web app. Just keep that in mind also when you're testing, there's just things that will behave differently. Like you're not going to have a lot of crazy key shortcut commands like you're not going to press command F to get to the search box if your app has a prominent search box because that is going to clobber a bunch of other assistive tech key commands. WebAIM is really a good help with giving you the tutorial of how to test a web app and many different screen readers, so they have it for JAWS, they have it for NVDA, they have it for VoiceOver iOS, they have it for TalkBack, which is the Android screen reader. There's a lot of really good resources there for you to start using as screen reader and test with your app. I highly recommend using it with a screen off. You gain a lot of context by looking ahead of your cursor and -- CHARLES: Yeah. It's true. ROBERT: -- The example that I usually give to people is like, "I worked on Visa Checkout. I went through that checkout flow pretty much every day for a year and eight months in, even then turning off the screen, I was still lost." Even though I knew what each screen was and what each component was there, I would find myself confused of like, what just happened and it's because sometimes, you'll get into something like you have a dropdown that sets the focus inside the dropdown and then the dropdown disappears from the DOM and your focuses in nowhere. You're like, "What is going? what am I doing. I don't even know where I'm at," and I turn the screen back on and I'm like, "Oh, now, I know what's going on." CHARLES: Right. It really is a lot like interacting with your application as though you were interacting with Siri or Alexa but with a keyboard instead, instead of voice commands. That's an excellent point. We would understand if where would Amazon be if Alexa couldn't successfully navigate those situations. The counterpoint or even the flip side of that is if you model your web application in such a way that it can handle that type of serial interaction, instead of the highly parallel environment to being able to perceive huge amounts of information concurrently, like you can on a screen, if that were effectively serialized, that means you could represent your application through nothing but voice commands. ROBERT: Yeah. Did you provide enough context for me to build this mental map is really what I'm going on to? CHARLES: Yup. ROBERT: Which I always thought was really interesting because I always wanted to know how my mom visualizes what a website looks like because it's wildly different than any of us. She's never been able to see what a website looks like. Does it look like a bunch of nodes and graphs and webs connecting to each other and how things pieced together? It's just a different way. But it's not only about screen readers, right? You can use a keyboard to navigate and that's definitely what we did with e-holdings is like can we tab through this [audio glitch] list, hit enter and go into the detail record, edit it, close it and go back and edit another one. Is that something that we can do with just a keyboard, not even a screen reader? WIL: And with the keyboard, we're not talking about shortcuts to hit edit. We're talking about like tabbing over and hitting enter like people with accessibility issues would have to do. ROBERT: Right and that's kind of a good segue into creating use cases. If you want to know if your app actually works, if your screen reader users or if your keyword users or if your dictation users are going to be able to navigate this app, create use cases. Things like actual user flows like how would somebody actually going to use this app? What task are they going want to complete? In that case, e-holding was like an electronic holdings management system for libraries. They probably want to get in there, add a couple of books or whatever you might have to their library and get out. A use case could be like, "Can I search for this thing? I'm going to search for something specific. I'm going to go through the list, find the thing that I want. I'm going to add it, close the pane, go back and then remove one thing and can they complete that flow successfully without running into any issues or any blockers or any showstoppers." I can tell you before we did the routing management stuff, you would hit search and that was it. There was nothing else that you could do. CHARLES: Yeah. They wouldn't even announce that anything can happen. ROBERT: Exactly. WIL: Yeah, and with these librarians, it's not necessarily a matter of they can't see the screen. It's just that they don't use the mouse because they're power users. ROBERT: Right. They don't have any disabilities but that was essential to the workflow. CHARLES: Yeah, exactly. Do that change. You just lowered the activation energy of that workflow by... What? three orders of magnitude? WIL: Yeah, at least. ROBERT: Let me click here right now. I can tab, now I can tab. Right now, let me click here and now I can tab, I can tab, I can tab. It's not as nice as just being able to completely do it through a keyboard. Through us making it super keyboard accessible, that also became super screen reader accessible and the people who use dictation were able to work through and get through the app and use it now, which was really cool. It really helps when you go for those things and create use cases to really figure out how a user is actually going to work through this app. That's the best way. Just get right through it. With Visa Checkout, we're like, "Can somebody buy something?" or if they don't have an account, can they sign up and buy? those were some of the use cases that we had because it turns out, those are actually pretty important to the business. That all have been said, you also can test your components for accessibility individually because even at a smaller level, some of your components might have to manage focus. The best one I can think of is models. When you open a model, you should trap the focus inside of that model and you should be able to hit escape to close the model and when you close the model, it should go back to what triggered the model to be opened. These are all things that are individual that can be tested also. But just because your components are individually accessible, it does not mean your application as a whole was accessible either. I don't want to paint the picture like, you don't have to care about your components accessibility individually because you do. It really does help but I think a lot of people miss the whole of the application, rather than individual with components. CHARLES: Right. The components are the individual stitches but you have to follow the thread throughout the entire garment. ROBERT: Right, exactly. CHARLES: Man, what I really want to do is I want to find out how your mom visualizes website navigation and use that as a visualization technique. ROBERT: That might be a fun webcast or something. CHARLES: Yeah and then see like could we actually use it as a tool because I have to imagine, it's probably pretty simple. It's much simpler than what we think of when we think of a website because it has to be really condensed down to its essence. ROBERT: Right. Yeah and [inaudible] users, they're not dumb. They have different ways. They know the gotchas. They know things that happen. They know there are different ways of getting trolled like my mom knows about focus jumping and she gets irritated what happens but she knows generally of what to do and it depends on her patience level. Like if it's focused jumping, she's like, "I don't need to use this thing. See you," and it's just not worth the frustration but there's different ways to navigate around like if you're a real power user, you might be able to recognize like the routing is inaccessible and you can navigate by headings or by regions or different landmarks. There's many different ways for users to navigate but to use those different navigation methods, you need to have a real strong coherent document structure. Your H1s have to actually be H1s and you have to have some things that they can navigate around to kind of work around those things. It's interesting and basically, do everything you can to help those situations. If you can provide semantic markup and give it a proper structure. If you can do the focus management, it's going to help everybody. It really will. I did see when we went through the use cases and defining those things, we actually learned a little bit more about our product because we had to put ourselves in a different seat and think about it because you get real close to it. You go through that same flow nine million times and you pick up real power user things that you can do like, "I'll work on that. I got this. I'll click this button. All right, we're good." Somebody that's going through it for the first time and you put yourself in that seat, it kind of opens your eyes a little bit and makes the experience better for everyone. I think that's kind of the underlying tone there. That's the message. WIL: Yeah, accessibility makes things better for everybody. ROBERT: That was a lot of content thrown at you there. We covered what is accessibility and why you'd want to do that and then kind of like more the basics things and how automated tools are really helpful and they can help you pick out things like using improper roles and nested things but they're not going to be able to tell you if your application is truly accessible or not and never will, unless we get something like a headless screen reader, where you can write automated tests for in that fashion but you're not to get something that will just run over you app and go, "Yup, you're good." CHARLES: Even so, it's a matter of user experience and that's not something you can get a thumbs up or a thumbs down to. When you as a user, it comes with application, you know when you see it but I would say until we have androids that accurately simulate human beings, I don't think we're going to actually have automated testing. ROBERT: Yeah. There's a joke for accessibility consultants. It's like if you put four accessibility consultants in a room and tell them to give you an alt attribute for an image, you'll get four different alts. We talked about the automated checkers, right? They'll not going to get everything for you and we talked about single page apps specifically in the routing and how we handled the routing in a React app and then how you can probably do it in an Angular app and how you can do it in an Ember app and Vue and different methods of how you can kind of attack that. We're definitely giving the link to the document that I wrote and the PR so you kind of see the real 'how' of how we did it because that would probably be helpful. I think there was a lot of good information there, so I would like to thank both Charles and Wil for being awesome co-host on this and -- WIL: Thanks for being an awesome host. CHARLES: Yeah, thanks for being an awesome host. I should say, you're welcome. ROBERT: I tried, I tried. We are The Frontside. We do accessibility consulting and training. If that's anything that your team needs help with, we're more than happy to jump on a call with you to kind of figure out what your needs are and what you need to do. If you need a WCAG support statement, if you need to audit, if you just need to figure out what's the next steps for you to even do, we're more than happy to help you sort through that. To reach out for that, you can contact us at Contact@Frontside.io or Sales@Frontside.io or Info@Frontside.io. You can contact us at any different ways and we'll be more than happy to help you. As always, thank you Mandy for producing the podcast. You're awesome and the next episode, what we're going to have is also still accessibility related and I'm really excited about this. It's about writing a proposal to the Unicode Committee and getting it accepted so basically, writing a proposal to get an emoji added and that's with Amberley and Amanda. They wrote three or four Unicode specs and actually got them accepted for, I believe it was sign language and deafness. That's really cool and I'm super excited for that because they'd be the first people that I've ever talked to that have actually created an emoji and gotten it accepted. WIL: Yeah, it's pretty cool. CHARLES: Yeah, that must feel great. ROBERT: Yeah, it's going to be awesome. That's our next episode. If you have any ideas or comments or anything, you can tweet us at @TheFrontside on Twitter or you can contact us through any of the emails that I talked about earlier. We're always open to hearing feedback. Thanks for listening. Take it easy, everyone.
Robert - It is Well 9-9-18 by Rock Hill First Church of the Nazarene
In this episode, Kristian Freeman tells us about ByteConf React: why he decided to start the conference, unique challenges of putting an online conference together, what he expects in terms of viewership and his hope for sponsors, and supporting speakers who haven't recorded videos or maybe haven't ever even given a talk before. ByteConf will take place on Friday, August 31, 2018! Grab your ticket! References: Twitter Facebook Twitch This show was produced by Mandy Moore, aka @therubyrep of DevReps, LLC. TRANSCRIPT: ROBERT: Hello, everyone. Welcome to Episode #108 of The Frontside Podcast. I'm Robert De Luca, the president here at Frontside and I'll be your episode host. Today, we're going to be discussing ByteConf, which is an online stream conference with Kristian Freeman. Kristian is a developer at Product Hunt. With me today as co-host is Wil Wilsman who is a software developer here at The Frontside. Before we jump into the discussion, I would like to make a little announcement. I'm going to be speaking at ByteConf and JSConf for BigTest. If you're interested in hearing about the next generation of UI testing for single page apps, you don't want to check that one out, I think. Without further ado, let's just jump into it. Hey Kristian, how are you doing? KRISTIAN: Hey. Thank you for having me. It's a pleasure to be here. ROBERT: You recently just moved to Austin and you moved from LA. How's that thing going? KRISTIAN: It's actually going really good. We packed all our stuff up and drove all the way across the US. I guess that's not really across the whole US but it was a good move. I've been here for about two weeks or so and I'm really happy with it so far. I have a full office and recording space now, so it's glorious. I can actually sprawl out and have mikes and all kinds of other gear out. I'm very excited. WIL: Nice. Now, what is it you do at Product Hunt? KRISTIAN: I'm a software developer there, kind of full stack engineer. Product Hunt is architected basically as a Rails app in the backend and then, a React app in the frontend, so I'm doing React obviously and GraphQL stuff and then Rails on the backend. It's been really cool. It's a really neat product and there's a really cool community there as well, so I'm been very happy with the transition. I've been there since the beginning of the year, so February or so. ROBERT: That's awesome. Are those projects split so it's like the React app separate from the Rails apps or is it like a monolith? KRISTIAN: It's a good question. I am not sure if it's planned to be split up eventually but as it stands right now, it's actually all one big application. We just have kind of that classic frontend folder where everything is dropped in and that's React related. We have some interesting stuff around server side rendering and things like that. All of that stuff was kind of there before I started working at Product Hunt but it's been really interesting coming from my previous gig where it was just very straightforward Ruby on Rails and then React like it's a totally separate thing, like they weren't really related at all as working on a couple of different projects. Coming to this, it has been really interesting. It kind of gives me a better sense of what Rails projects might look like in 2018, if that makes sense. ROBERT: Right, yeah. Are you using like the webpacker gem? KRISTIAN: I don't. I mean, it's not old really, in terms of web projects overall than in terms of like a Rails app. It's still running on an older version. I think we're pretty homegrown set up. We're not using webpacker. We kind of set things up and run them as like two different processes and stuff like that. It's been really interesting. There is a bit of onboarding stuff that it took me a while because I came from doing, like I said, kind of standard Rail stuff and I would say that they are really kind of pushing what you can do with half Rails, half React set up. There's a bit of time of me kind of flailing around and figuring out what was going on but it's been really cool. I definitely feel like I leveled up in my understanding of how all that stuff can fit together over the last couple of months or so. ROBERT: That's awesome. You're running a conference, right? You're running an online-only conference for free and streamed on Twitch. That's pretty bold thing, right? That's a new concept. How do that come together? I guess before we even discuss that, what is ByteConf? KRISTIAN: I'll start with the synopsis of what it is and I can talk a little bit about history. It's actually a conference series. I have other events planned and the first of those is ByteConf React, which Robert is speaking at. It's a React in JavaScript conference that is streamed on twitch. If listeners aren't familiar with Twitch, it's a live streaming platform. Kind of the primary use for it is for gaming. There's a lot of people who will stream themselves playing like Fortnight or whatever other things. I usually just watch Fortnight. It is primarily for gaming and in the last couple of years, they've started doing this separate section called the creative section, where there is non-gaming stuff. I've watched people paint. I've watched people play guitar or take song requests on the stream and all kinds of interesting stuff. What I can say is the idea for the conference wasn't a thing that I just came up with on the spot. I actually attended a really small conference that was streamed on Twitch. It was a game development conference. I wish I could remember what it was called but it was really interesting. There wasn't too many people in the stream but I was impressed with the way that it was put together, especially for a topic like game development, which is I would say, I kind of took a stab at it last year and I found it to be pretty difficult to get into and fairly opaque in terms of understanding how to get started and then make that progression into a career. I watched it and I enjoyed the format of the conference but I didn't really get learned too much from it because it was just too kind of complicated, I think unless you already were in the field. I started thinking about that and I thought it was a really interesting model and I felt like web development in particular, would be a really neat way to approach that format because web development has, I think a reputation if you want to get into programming. I don't know if I would say, entirely approachable. There's still a learning curve and there is a lot of work that you have to put into it too to get like junior dev role somewhere but I thought it was really interesting. I thought it would be interesting to take that format and apply it. My background, besides doing straightforward full stack engineering, I've done some courses for Pluralsight. I've done some in-person technical training, so I had a background in teaching and I felt like it would be an interesting just to try it and see what would happen. So far, we're a couple of weeks out from the conference and honestly it's been pretty wild how many people are excited about the conference. I don't think I've ever done a project on my own, like a side project that has had people that just tweeting about it without me prompting it or anything like that. I saw something on YouTube today like a Spanish YouTuber who does tech news and he was talking about the conference. I don't know Spanish. I was curious and wanted to see what he's talking about but I couldn't really understand what he's saying but I saw the logo and I was like, "What? This is crazy." I'm really excited about it and I'm sure we'll kind of get into this but there's some really interesting implications and ways that this format, I think it will be a different approach to the usual tech conference format. I'm really excited about it and I think it's going to be really neat. ROBERT: It's awesome that it's free and available for anybody at any time. KRISTIAN: Right and a part of that, I think when I started thinking about it like, "Can I make it free? What are the implications of that?" I think that the main thing is that when it comes to running a conference, getting the location or whatever, I would say is probably by far, the most expensive component of that. For me, I'm a remote developer and there's a lot of people that I talk to day-to-day. I think a lot of kind of my audience and people that I know online are also working remotely, so for the conference to just be online, it wasn't too crazy of an idea for me because most of the interactions I've done in development stuff like that have been through the context of remote work. But also, for people who aren't remote workers, who are getting into the field or even just have a small interest in web development, I think it removes some barriers of being able to access this kind of stuff. You know, if we can look back at the future and say, "This sounds very ambitious," but kind of a democratizing force of anyone can view this content and get access to it regardless of their skill level or economic level or things like that. WIL: I frequent trips sometimes and I know this is obviously, a free conference but are you expecting any donations? KRISTIAN: That's a good question. That's kind of one of those things I haven't really figured out the best way to do yet. In Twitch, I think there's the concept like 'Bits.' Is that what they're called? They're like microdonations. I genuinely don't know how that's going to work out. I know the plan is to take the talks after the fact and get any kind of additional slides and stuff like that. We're doing a couple of pre-conference events that I can talk about. I guess I should plug those as well before we wrap up but the way that that's going to work, I am not quite sure because I would like to sell the packages after the fact and actually, being able to pay the speakers. But in terms of little of bits and stuff like that, I'm not actually sure. I'm genuinely curious how that's going to work out. I don't know if people will do that. I guess it just kind of depends on the audience. ROBERT: -- In my talk now. KRISTIAN: Yeah, give me Bits please. ROBERT: "I intended to write, don't move to the next slide." KRISTIAN: Yeah. I use Twitch every once in a while. I said, I generally just watch like one game on Twitch but I don't watch Twitch all day, every day. I think it'll be interesting to see because this is probably a different audience than, say the average Twitch user. It'll be really interesting to see how that shakes out. I don't really have a great answer for you there. WIL: Do you have any guests like a number of people that are going to be attending? I see on the ByteConf site, there are 1500 subscribers. KRISTIAN: That's a good question. I guess I can talk about this stuff that we have planned before the conference. We've been building an audience for really, it hasn't been that long. It's been like four or five months since I announced it. We're using kind of dogfooding a thing that I've worked on a Project Hunt, which is this Ship product, which is for collecting emails and sending out newsletters and stuff like that. ROBERT: I saw that get announced not too long ago. KRISTIAN: Yeah, it's really cool. I'm really happy with the product and they have some built-in promotional tools on the site, which is pretty neat. But we have, I think like 1500 people on the mailing list. I think, we have, the last I checked, about like 4200 followers on Twitter. It's hard to convert that like how many people are actually going to attend. What we are doing and this is like A, because I think it be interesting and B, to kind of gauge this, hopefully as best we can. We're going to be doing some preconference like 'Ask me anything' interviews with some of the speakers and I'm hoping I can get a better sense of how many people will actually start attending any of the events that happen. The way the Twitch works is you can follow and subscribe. You'll get a notification when a channel goes live. The first time that we go live will be tomorrow, actually and so, we'll see how many people will turn out and it should be interesting. But in terms of actual numbers, I genuinely am not sure. I would hope that a lot of people who are on the mailing list will be there but it's been pretty neat. I've already been hearing of people who are trying to setup like in-person events, viewing parties and stuff like that. I've tried to help coordinate that as best I can without taking over the limited amount of time I have before the conference actually happens. Also, people in Europe and vastly in different time zones are actually kind of grilling me about, "When can I watch this? Will you do every broadcast so I can actually attend this because I don't want to see the conference at two in the morning," and I'm like, "Yeah, I know. I understand that." We're kind of figuring out those details as well. Like I said, I very much consider this like the MVP of a longer term event series so I'm excited. I think it will end up building something that a lot of people will attend multiple times and hopefully, we can expose people to new stuff as that happens. ROBERT: You mentioned that somebody in Europe like wanting to know like, "When I can watch this?" which actually makes me wonder like that's one of the unique challenges that you have for an online-only conference because no one's going to be asking that question if the conference is in... I don't know, LA, right? Everybody knows where it's going to be because it's all co-located, so what are some other unique challenges that come with running an online conference? KRISTIAN: That's a great question. We don't have the explicit location and time that it starts to kind of point people to. In some ways, it's a positive thing. We have a lot of people who can attend that normally wouldn't be able to. They're excluded by price, location and stuff like that but there are some things that you, I think kind of give up when you do the online format instead. One of those is just being there at the conference and running into people that may be you know or having sponsors with booths set up, where you can make a connection in that way. Some of that, we're trying to solve by building an active community. We have a Discord server that we started a couple of weeks ago, where people are chatting about this kind of stuff. I really think of it as like there's probably many ways to solve this problem and I'm trying a couple of different ways to see what sticks. Building a community where people can continue to talk before the conference, obviously they already are doing that and then continue after the fact and build the kind of connections and relationships and community that would maybe happen organically or at least, have a chance to happen organically in an actual physical conference. Some of the stuff, I genuinely still trying to figure it out like how best to give people the sense that they are welcomed and I guess, kind of feel like they're part of a community of developers. I remember when I started the conference, one of the first things I thought about was when I first went to a conference in San Francisco that Heroku put on and I remember being there, I was very, very junior as a developer and I remember sitting there being like, "Whoa. This is probably the first time I've ever been in a room with a bunch of other hundreds and hundreds of developers," and it was real interesting. It's one of the first times that I was like, "I actually am for real, doing this. This is pretty cool." I'm trying to figure and imagine and we'll iterate on this in the future like how best to give people that experience. Maybe that means doing a couple of physical ByteConf events. I'm thinking about that definitely but also, how do we keep the original idea of the format but also, how people feel like they're part of a community. It's very much a work in progress. WIL: I could see a future where you have a physical, smaller conference but you still stream it on Twitch and everybody could still attend. KRISTIAN: Exactly, yeah. I think that's probably the format. ROBERT: That'd be rad. KRISTIAN: One of the things that I thought would be interesting would be to do some kind of and actually, I think about this before when I moved out to Austin, like doing some kind of West Coast tour where we go up the West Coast and do events, maybe every a couple of nights in a really small format. The same kind of conferencing they have people from that area, come and give a talk but still stream that on Twitch. It's kind of a hybrid approach that the people who are already part of the community can still attend but for people who want that physical experience, they can do that as well. ROBERT: That's awesome and if you did that, then you wouldn't necessarily lose the whole way track. One of the things that I really love about attending conference is like the talks are great but I usually always find those online afterwards. But what I can't find online afterwards is the communication and the talk that I have with people that are there. That's an interesting challenge to have, maybe you could have... I don't know, like not to tell you how or what to do, maybe like a channel in the Discord for a Hallway Track channel or something that encourages conversation, maybe outside of but in connection with the talk. But I would just say, maybe that's just one of the tradeoffs that you're willing to have for an online-only conference. There are a plethora of things that you just shed by not having it out at a physical location, like a bunch of cost for one and AV setup and worrying about people connecting and getting and presenting properly -- KRISTIAN: Via conference Wi-Fi. If they have problems, that will be their house Wi-Fi. ROBERT: Yeah, exactly. KRISTIAN: I totally agree. I think it's not the worst problem to have because we're in a lot of ways kind of simplifying and really, it's the kind of thing that we can iterate on over time. When I was talking about the European time zone thing, I may be sounded like I was bothered by people reaching out or whatever. It's actually quite the opposite. It's really exciting and I have actively kind of sought feedback out and been like, "How can I do this better? How can I communicate this decision or that decision?" or even help me make this decision so that it's best that I do whatever works best for the community and I expect that will, as the community grows, just be more and more a factor. I think that's the kind of thing that tying up like the Hallway Track or something like that. I'm confident that people will have opinions on that and they'll say like, "This is what would work for me best to feel like I'm part of this community," and we're going to definitely try those things and iterate on them. It's not the worst problem to have because there is really nowhere to go but up, in terms of how we do it well and stuff like that. ROBERT: Good problems to have. KRISTIAN: Yeah, exactly. ROBERT: All the talks are prerecorded, right? What have you done or have you done anything to help support people who haven't recorded a video for speakers? What are you doing to kind of ease speakers into this new style? KRISTIAN: Yeah, it's interesting because in terms of a speaking lineup, there is clearly, some people who have experience both as conference speakers, also in particular in this format. It's basically recording like a Screencast. It's more or less the same thing. It's slightly a different format, maybe condensed to a shorter, like an hour talk. There are some people: Kentcdodds, Tracy Lee, they're two of our keynote speakers, I guess you could say. They have a ton of experience. They're pretty much giving talks regularly all the time, so for them, this is this is no biggie. But there are a couple of people I've tried to, like in terms of once we got our CFP, our call-for-paper, we were accepting talks submissions and also getting information about the speakers themselves like, "What is your experience of speaking at conferences? Do you have any experience speaking at conferences?" What I thought would be in the spirit of the conference itself and kind of our ideals and even, I would say like the ethics of how we think about this kind of stuff, I do actually think about it in that term. We want to have speakers that represent that. You know, bringing anyone from any experience level, in any location and stuff like that and having them be able to attend the conference and also speak at the conference. There's a couple people that just don't have a ton of experience speaking at conferences or even keep doing this kind of Screencast format and so, for those people like kind of the silly one, I've just been reaching out to them like, "If you need any help on the stuff, let me know. I've done this a couple of times, at least the Screencast part of it, I have a ton of experience with them, so if you need help, let me know of that." Also, if someone needed it, we bought them a mike and a webcam and we sent it to them and be like, "Don't need to worry about that because that's potentially --" ROBERT: Woah, that's awesome. KRISTIAN: Yeah. That can be like an economic kind of thing to make people feel uncomfortable, like maybe, you can't afford a mike or something like that but we will cover you and no strings attached. That kind of stuff, I think is really important. I think, the kind of the main thing is we just want people to feel comfortable. There is no reason that because someone hasn't given a talk at a conference before, there's no reason they can't start. Everyone has something interesting to say, I think and everyone's experiences is really interesting and brings a perspective. Especially in the conference format, I think it will bring a perspective that you're not used to seeing at a conference. Not to say that the kind of perspective of people who are super experienced and things like that. As a developer, as a conference speaker, that's obviously really useful but it's also useful to see things from the perspective of someone who is just getting into the industry. I think that being able to amplify those voices is really interesting and exciting to me. I'm sure there's probably ways that we could do this better in the future but for now, it's been just kind of like supporting them whenever they need it and trying to be encouraging and then any kind of small things like buying a make or something, we can provide that. ROBERT: That's awesome. There are some tradeoffs you could make always with anything but it's almost, I want to say better, to give your first conference talk or one of your first conference talk in this way. I know I was really excited about it when I first heard about it because I get pretty nervous getting up in front of people. At JSConf, I don't know how many people. It kind of gives me anxiety but with ByteConf, it's pre-recorded so I have the ability to go back and polish everything that I want and I can remove those odds and things like, "Oh, wait. That didn't quite slow right. Let me fix that real quick," or, "I didn't really like what I said there. I can go back and fix it." It does come with the added complexity of like, "Now, I have to go and cut it together and make sure that there's this whole post-production aspect of it," but it makes me feel a lot better because I feel that I can deliver something that I feel really good about and I know because I've watched it six times and gone over it with a fine-tooth comb, you know? KRISTIAN: Right. One of the things that I am hoping that we can do in the future is in terms of the editing and stuff like that. If someone feels comfortable like really fine-tuning their talk and stuff like that and giving almost a finished product to us, we're happy to obviously accept that but for people who just don't have that ability or needs some help in refining, I don't want to say the quality of their talk but just kind of the delivery of it, we can definitely help with that. In terms of refining, say you're going to give the talk again in your case, I think it's really interesting also. We're trying to coordinate as with as many of the speakers as we can, kind of like time zone permitting and things like that, having them in the 'attending the conference,' or 'viewing the conference,' and also being available in the Twitch chat and not necessarily having an interview there but maybe, if something comes up or someone is like, "I don't get what this slide means," or something like that and that's both an opportunity for, we're not going to like pause the talk or anything but the speaker can be there to clarify and add that additional, I guess dimension of understanding of what's going on in the talk. I think it's actually really interesting. I'm really curious to see how it turned out. WIL: Yeah, I'm curious too because I [inaudible] with Twitch sometimes and most videos, like you mentioned before, you want like some small conference and it was a very small chat and a lot of Twitch, for me is interacting with the person that I'm watching, through the chat. It's interesting to me that it'll be pre-recorded but the speakers are still going to be interacting through the chat, so it's going to be real cool to see. KRISTIAN: Yeah, I'm trying to -- ROBERT: I'm pretty excited about that. KRISTIAN: Yeah and I hope that you would be interested in being mixed. I'm sure people will have questions about that kind of stuff. I've already talked to a couple of speakers and I'm trying to reach out individually and see how many people can be there for that because it's really interesting. In your case, if there's enough people to say like, "This part kind of confused me," or, "You lost me here," that's an opportunity for you to refine the talk and get really explicit timed feedback. I think if someone came to you after, say your JSConf talk and was like, "You know, there's this part that I don't really understand," like you don't have the immediate understanding of literally, at what point in the talk are they exactly talking about. I think that will be really interesting. That's -- ROBERT: That's absolutely could be bigger. KRISTIAN: Yeah and I'm trying to figure out the best way to do this. If you've ever been in Twitch chat before, it can get a little rowdy and I'm trying to figure out the best way to manage that because I have literally zero tolerance for whatever kind of the most toxic of Twitch chat as I have zero tolerance for that in the conference. I'm trying to figure out the best way to make that happen. But if you're a speaker and especially, it's your first time ever giving a talk or something, if you get that kind of feedback, hopefully it's delivered in a way that doesn't suck and we're going to try and mediate that as best as we can. That's a great opportunity for really effective improvement on your presentation style and stuff like that, so I'm really excited about that. ROBERT: It's actually interesting to think about is what kind of trolls you might run into and -- KRISTIAN: And you have people who are like, "Vue is better..." ROBERT: Yeah or any kind of cross-trolling that might happen. That'd be interesting to see how that plays out and how you might enforce that code of conduct. KRISTIAN: We definitely do have a code of conduct in Discord and so far, I'm happy that we haven't had to enforce that in any way or there hasn't been anyone that has brought the quality of the chat down. I've seen people answering questions about different open source projects and stuff like that. I think, Robert you wrote up a solution to someone's problem in the TypeScript channel or something. Did I see that? ROBERT: Yeah. KRISTIAN: Yeah, stuff like that is really cool. ROBERT: Someone who was asking how to do radio buttons in React and I was like, "I'll just write a quick code chain box example that kind of showing this." KRISTIAN: Yeah and if I could pick one long term goal of where I want to see the conference in the community in a year or two, I want to be able to scale that up to, say like 10x or 100x the amount of people but still keep that quality of conversation. I think that is really looking at producing a conference. That part, honestly isn't the most complicated part. It's if you can use Adobe Premiere, you can pretty much make a pre-recorded conference work. It's keeping that quality and making people feel like they are a community, especially for people who know that they want to be a web developer, maybe they have no idea where to go or how to start. If people can join the ByteConf community and feel like this is a good place, that you can call this place home, I guess online and learn in that way. That's kind of the larger goal. The conference is just one aspect of getting there. WIL: This is all very exciting. I'm looking forward to attending. KRISTIAN: Yeah. I am really looking forward to it as well. It's pretty wild that it's August, that it's actually happening soon. I'm really excited. It's going to be sweet. ROBERT: Yeah and I'm seriously working on my talk right now, to try and get it together. The cool thing that I found about that, I'm talking about BigTest and Wil is a person that's writing BigTest and he's the mastermind behind it. It'd be great to have him in there and answering any questions alongside with me as the talk goes on. I didn't even consider it before you said it. It is really powerful because I'm going to be introducing something that might be foreign to a lot of people, this testing style and how you do it in single page apps. There will be a question and I know I won't be able to cover everything and hit all the bases and make sure that's not confusing because it is a complicated topic. I'm going to do my best but the added benefit of me being able to clarify things on the spot is kind of mind blowing there. KRISTIAN: It's huge and I'm trying to figure out the best way to archive that kind of dimension of the conference. I'm really interested to see it tomorrow. We're doing an 'Ask me anything,' but I'll plug that at the end. It's going to be an interesting to see what the kind of ratio, like signal-to-noise is in the chat and if it's good, especially at the conference itself, if people are asking really good questions and that kind of stuff and the speakers are responding, that is a really valuable thing to try and save. I'm trying to figure out how to do that as well, even save the most requested questions or maybe the most detailed answers that the speakers have and making that available in some way, I think it would be really valuable to people. WIL: Yeah, for sure. ROBERT: The other thing I just have some of thought of too, with all this being pre-recorded, you are able to schedule this out pretty well. At a normal conference, if somebody had a 45-minute slide and they finished in, say 30, the conference organizers will then have to go and figure out what they're going to do with that spare time but with all pre-recorded, you can just kind of spot it together and have a plan going forward. KRISTIAN: I think most of the talks, I've kind of ask people to keep them around 45, 50 minutes and we'll have some space between the talks for people to continue to ask questions in the chat or I can plug things like the Discord server in those spaces and sponsorship infos and stuff like that. But I'm also constantly thinking of these little formatic conference allows so many different little things to be tested. One thing we're thinking about doing is like at noon, there's going to be a break, kind of a lunch break, but ideally and I need to start thinking this out, getting some lightning talk style things from people who submitted a talk and didn't get accepted or something that and those are -- ROBERT: Would those be live? KRISTIAN: That's a good question. ROBERT: Or pre-recorded? KRISTIAN: That's a great question. I think the thing with live is that I would have to figure out how to get people to hop onto the stream. That might be possible but I'm not quite sure. I think we'll probably do pre-recorded, kind of across the board for this one but there's all of these little opportunities to do interesting things with the format. One thing that, I will take you on kind of a journey here like where my mind goes and I think about stuff like this over the last year or two. This is going to seem like such a tangent but I'll tie it up, I promise. Over the last year or two, actually longer, it's probably the last couple of years, I was really into Anthony Bourdain and all of his shows and I was really interested in, again this is going to sound really bizarre but I was interested in taking that idea and applying it to conferences. For say, the keynote speakers, I was thinking like it would be cool actually to go and meet them wherever they're working and stuff like that and introduce them in that format and maybe even sit down with them and do an interview or do some kind of live coding with them and have that available as a bonus material to the conference itself. Maybe air some of it in-between talks as part of the preface for their talk. There's all these kind of interesting things. I think that one thing that always kind of bothered me about the developer world is, I guess I always feel like it's really hard to visualize how to get started as a developer and then what is the day in the life of a developer and what do you actually do. I think I've been really interested in this idea of giving people a holistic view of how to get into this industry and to show people. At least in my opinion, there is a lot of hype and maybe, not intentional but it makes a scene a lot more difficult than it really is. That takes a lot of time but there are a lot of people who probably have been, whether that's kind of the Steve Job's worship of tech people or this other thing that no one can be like them unless you're whatever, if that makes sense. Basically, everyone in this industry is just a normal person. Maybe, there are some crazy personalities out there who are really dominating or stuff like that but for the most part, I think especially in the web developer world, everyone is, at least in my perspective, very welcoming and just like normal people and I want the aspect of the community to be letting people into that world and say like, "This is not as impenetrable as you may think," and there's a lot of different ways to -- ROBERT: Amplify the kindness and amplify the welcoming. KRISTIAN: Exactly, yeah. ROBERT: I like it. You did mention like around lunch time, there would be a break. At other conference, they usually cater lunch. Is there anything offered for that or is it like go on and find your own lunch? KRISTIAN: That's actually a really interesting question. No, there isn't anything planned but now, I wonder if I should find a company that's like... Is that DoorDash? Is that grocery delivery, is that restaurant delivery? You know what I'm talking about like -- ROBERT: Restaurant delivery. KRISTIAN: -- Or something like that. It'd be cool to have a coupon like if they're React, they might want to sponsor the conference. That would be interesting. That's a super -- WIL: -- Delivery fee. KRISTIAN: Yeah, that would be super cool. ROBERT: It might be too late for that now since we're a couple of weeks out but some of those companies do used React or in the future, for the future of ByteConf series, like if it's a SwiftConf and I know you've mentioned that before, you might be able to be like, "We're doing a Swift online conference. You guys use Swift. Do you want to sponsor?" KRISTIAN: Yeah. I think there are so many opportunities to do really cool things. That's a really cool idea. I haven't thought about that before. I'm going to write that down. That's a very cool idea. ROBERT: Could you tell I've been thinking about like a ByteConf accessibility conference? Because I have. KRISTIAN: Yeah. Let's do it. For real, that would be sweet. The format, we can tweak it in so many ways. It's like a full-day conference plan but there's definitely the opportunity to do really small form, like just an evening or something like that, where you get a couple of people together. The way that I visualize it in the future is there are these longer conferences but also, it just be really neat to do kind of continuous -- WIL: Online meetup essentially. KRISTIAN: Yeah, like broadcasting. I don't want to say like a TV channel but like this place that we're going to be airing new stuff to the people who are working on and we're going to be airing old talks from conference and stuff like that and giving people a space to constantly be learning. ROBERT: You can do like a nightly techcast. "Tonight, in JavaScript news, there are 15 new frameworks." KRISTIAN: Yeah. The thing is like with Twitch, they've done a lot of tools recently that I've become kind of aware of as I'm trying to figure out the best way to broadcast the conference. They have a lot of stuff around scheduling and stuff now that actually gives us the opportunity to basically run, maybe not nightly but weekly or monthly thing without having to explicitly setup... I don't know if either of you've ever done Twitch streaming but you have this broadcast software that you have to run on your computer and stuff like that. They're working on tools to remove that aspect of it and really just make it almost like a YouTube competitor in some ways and maybe like a more live aspect. That's stuff is really interesting to me because that totally fits in with the kind of aspect of what we want to do but there's all kinds of other opportunities too. I know there are a growing number of people who are doing live programming streams and it would be really cool to be able to share our audience -- ROBERT: Coordinate that? KRISTIAN: -- And stuff like that, so I'm trying to figure that out as well. ROBERT: Are you familiar with the Ember community at all? KRISTIAN: I was familiar with the Ember community a couple years ago. It's actually is what I learned before I learned React but I think I'm pretty out of date now. ROBERT: One of the team members here at Frontside, Taras, he started something similar like that two years ago called Global Ember Meetup and it was just an online meetup that would happen at night and people would come on and give their talks. It was actually really cool because there's a lot of engagement from all across the world, which was super neat. I would love to see that idea to continue live on. KRISTIAN: I know for our mailing list, we have a sense of where people are located and this is the nature to advertise and stuff because I think our most of our audience is still in the US, Canada, UK and stuff like that but there is growing numbers of places like Africa and South America and stuff like that, where I'm not as exposed to that community but I would to make it available to all of those people. I genuinely just haven't been exposed to those communities as much and I would both like to understand the unique problems of being a web developer in those areas and also, do my best to adapt the format of the conference and stuff to those groups. I imagine that people are really excited about it but I think after the conferences, really one of a lot of the interesting stuff happens because we can take a look back and say, what could we have done better to include all kinds of groups that are historically disenfranchised from attending this kind of stuff, if that makes sense. ROBERT: Even for me, I really want to go to conferences that are in Europe but that's a big investment. It's like breaking down those barriers. I'm pretty privileged in that regard but for somebody that isn't, even just attending a conference inside the States or somewhere that even kind of close for them, just the price of the conference ticket puts them out, so I'm really excited about this idea. Why not leverage the web and make everybody available to learn in conferences and have access to that community. KRISTIAN: Yeah. I think I actually saw that Facebook just announced. They're doing another React Conference and it was interesting speaking of ticket prices, I think a lot of you were saying it was super expensive. I don't know what the exact number was, maybe you know but I actually had some people tweet like, "This is why I'm excited for my ByteConf," and I was like, "What?" WIL: That's awesome. ROBERT: I don't know what their prices but when Facebook throws ReactConf, you have to enter into a lottery. You wouldn't even actually get a chance to buy a ticket. You have to enter a chance into winning a ticket for you to buy. KRISTIAN: Yeah and that kind of stuff, I mean that won't get too deep into my politics in general but generally, that's the kind of thing that I am extremely allergic to. Even the idea of having a lottery and stuff like that, there's a lot of people who, to make the decision and say they have the opportunity to attend the conference, like if they say they get a lottery email like you have a ticket, there are some people who will be able to swing that on the spot and say, "I want to buy a ticket and start to book my flights and stuff or whatever," but there's a lot of people who that's going to be a thing they need to plan for a really long time. They don't have the opportunity to wait on the email and say, "Yes, I can go to this to what I'm being paid." That's just a different dimension of financial and I think the ticket was like $600 or something, maybe $700. It was expensive but there are much more expensive conferences. Especially, if you don't work at a company that covers your conference costs, like I am fortunate to the both places I've been at for a longer period of time like say, two plus years, have both sponsored conferences, they allowed any of their employees to go to conferences with some budget in the thousands of dollars every year and for someone to pay that, say they want to get into web development, that's a huge financial burden if you're working minimum wage or something like that. I feel like I sounds I just came down very hard on the React Conference but it's fine. It's cool that they're going to get really cool speakers and stuff like that but I think it's something. ROBERT: It's the job position of online-only versus co-located, right? There's talk there. KRISTIAN: Yeah and we talked earlier, maybe there's a hybrid approach of doing ByteConf physically, I think the one thing I will never compromise on in terms of how we put on the conference is like if we're going to do a physical thing, it needs to still be available for people who can't attend it. I think even at this point, the first conference hasn't quite happened yet but I do strongly believe that's already in the DNA of the idea and kind of ideals of the conferences I want to allow people to always attend, whatever we're doing, regardless of their situation. WIL: That's huge. I never attended a conference until last year when the company I'm currently working for, Frontside, paid for it. Before this, I had never been to a conference. It's awesome to see, they're like free [inaudible] by now. KRISTIAN: The conference I talked about earlier, the San Francisco one, I just straight up put that on a credit card, like I could not afford it. I did it because I guess I felt like -- ROBERT: That thing -- KRISTIAN: Yeah, exactly but there are people who just straight up can't do that. By that point, I was interning at a web development place but I still was basically getting paid like minimum wage. It was like under paid but I did it because I felt like it would be an investment. I didn't actually get a job from any one of that conference or anything like that, so who can say what the actual value of that was but it was important kind of in a motivational way but I don't ever want people to go into debt to go to ByteConf. That sucks. There's no way I'll allows them to do that. ROBERT: Yeah, because it's not only the conference ticket. Depending on what conference you're going to, I've seen as low as $150 and as high as $2000, just for the conference tickets and then you have to get your hotel for a week and fly out there and food. It quickly turns into a really expensive endeavor. KRISTIAN: It is in a lot of ways. I think for people who are fortunate in tech, it's somewhat of a vacation because you get to go somewhere. Usually, the tech conferences, I think are held in pretty cool locations, unless it's some kind of indie conf that doesn't have a lot of sponsorships or something like that. I went to a conference a couple of years ago that was at Disney World and it was very much a vacation. I went to the conference and I had a lot of fun. It was an Elixir Conference. I learned a lot of stuff there but after the conference was done, I went to like... I'm trying to think what it is called. It's like Downtown Disney, basically or whatever, so I went like -- ROBERT: Oh, they renamed it to Disney Springs. KRISTIAN: Oh, really? Disney Springs, wow. That sounds very -- ROBERT: Yeah, I [inaudible] for two years. KRISTIAN: Actually that does sound right. Coming from LA, I used to go Disneyland all the time. Even if the conference is just on a hotel or whatever, usually the area around it is pretty nice but that definitely limits a lot of people, unless you're fortunate enough to be making a tech salary or have a company that will cover that conference budget for you. ROBERT: We're sending two people to JSConf Hawaii. We were able to snag the early bird tickets which are so much cheaper. Then I was shocked that the hotel cost on Waikiki Beach was cheaper than my Portland hotel, so I'm actually super jealous and it was a super awesome vacation on the beach in Hawaii for less than what probably took for me to get to Portland. KRISTIAN: Is that where JSConf is? It's just in Portland? ROBERT: That's JSConf Hawaii. Portland was Chain React, so shout out to React Native Conference. The JSConf US one is in San Diego which is coming up in two weeks. Oh, my God. KRISTIAN: Nice. If you are a conference speaker and stuff, I think you get some stuff cover. I don't know. Every conference is different or whatever, so if you go in that format, if you go to conferences as a speaker, I think it's a little bit different situation but I can think of a lot of times that I looked at a conference and there's been a couple of talks that I found interesting but just the amount of money that I would spend to see one or two talks that really interested me, it wasn't worth it. ROBERT: At least ByteConf kind of shed that and absolutely drops the barrier of entry of to nothing. I mean, nothing mean you have to have an internet connection. KRISTIAN: Yeah but there's still a couple of things. This is why I'm trying to deal the rebroadcasting and making it available after the fact is there are some people who still can't take a day off and watch a full seven or eight-hour conference, so it's important to make it available after the fact too. I think I mentioned, I want to sell the conference talks with the slides and with the bonus materials and stuff after the fact. There's people that are actual, like practicing React developers who would feel fine paying like $30 for those or something and that way, we can hopefully, ideally, I hope I'm not totally speaking out of this to make totally go wrong but ideally, pay the speakers to some degree. That's another kind of aspect of it that I eventually would to do well in the future. But like you said, lowering the barrier to entry to literally as close to zero as we can get is what's really important to me. Then they feel everything else, we can work back up to something, putting on the really big conference events that a lot of other people are doing but still keep those ideals that we had from the first place. ROBERT: I love it. ByteConf sounds super awesome. I'm very excited to be selected to be a part of it. I really appreciate that. Is there anything else that you want to plug about ByteConf? KRISTIAN: Yeah. A couple of things, tomorrow depending on when this comes out, August 10th at 5 PM PST, we have our first 'Ask me anything' with Kyle Shevlin, who is a speaker at ByteConf React this year. It's just going to be Twitch.tv/ByteConf. If you're on the mailing list or you're in the Discord server or stuff like that, you probably already know about this but I will obviously tweet about it as well. A couple of other things. The 24th of August, we're actually doing and this hasn't been announced yet. This is the first time I'm talking about it. ROBERT: You heard it here first. KRISTIAN: Yay! We got an 'Ask me anything' with Kentcdodds, one of our keynote speakers. I'm very excited about that. That hasn't been announced yet but I imagine that's going to be really cool. I think people are going to be very into that. Finally of course, the conference itself. ByteConf React is August 31st. It's one day, starts at 9 AM PST. You should join the mailing list and follow us on Twitter. It's just at @ByteConf. You'll see a link to the mailing list there as well and you'll get some more information there but it starts at 9 AM. On Twitch, it's Twitch.tv/ByteConf. That's all you need to do to attend. I would love for people to follow us on Twitter and join the mailing list but if you are allergic to following the people on Twitter or getting emails, you don't have to do any of that. You can just find us that day on Twitch. We have some more things that we're probably going to announce as kind of preconference events in between now and then but those are kind of the two or I guess three, main things. Thank you for having me on. It's been really awesome. I think it's maybe the first time I've talked about the bigger picture stuff with the conference so it's been really cool to get to talk about that. I'm excited for your talk as well. I think it's going to be really neat. ROBERT: Awesome. Thank you for coming on. Like I said, I'm really excited for ByteConf. When I saw this pop up as an idea, I was all over it. I think I actually submitted the CFP before you officially announced that there was CFP. I'm like, "I'm in it. I'm going for it." KRISTIAN: One more thing, I think I didn't mention just kind of organically is that all of the CFP submissions are actually reviewed by people in the community. I'm really proud to say that the talks they have selected, including Robert's were generally, because people were just super interested in them. I think that's going to really show when we air the conference. People are going to be really excited about this stuff. It's going to be super cool. I'm beyond hyped. I'm extremely nervous, extremely hyped and it's going to be great. WIL: I'll also going to say that if you have an Amazon Prime account, you get a free Twitch subscription, so you can go ahead and subscribe to ByteConf on Twitch. KRISTIAN: Yes. That is very true. I should do a better job of plugging that. Oh, one more thing. I guess I should be a good podcast guest and also say like, if you want to follow me on Twitter, my name is Kristian Freeman, it's at @imkmf on Twitter. For the most part, I just tweet about ByteConf stuff and Product Hunt stuff and then get mad about politics sometimes but I should do a better job of plugging my stuff. Again, thank you for having me on this. This has been really, really great and I'm looking forward to seeing you both at the conference. ROBERT: Cool. Thank you Kristian. This is a great conversation. I'm really excited about it. We are the Frontside. We build software that you can stake your future on. If your team needs any help with single page app testing, accessibility especially in single page apps, I'm really, really open to helping anybody. If you or your team need help in that or leveling up, be sure to reach out. We're open to pair. We're open to start a new engagement, anything that kind of helps you and your team to move forward, we're super interested in. As always, you can reach out to us Info@Frontside.io for any feedback on the podcast and thank you Mandy for producing our podcast. Thanks everyone. Have a good day. WIL: Yup. Thanks guys. See you at ByteConf.
Special Guests: Brian Douglas and Bex Warner of GitHub. In this episode, the panelists talk about automating GitHub with Probot. The origins of Probot are discussed, as well as making GitHub apps with the GitHub API, automating workflows with Probot, must-have Probots for every repo, and GitHub's V4 GraphQL API. References: Microstates README Probot github.com/integrations/slack github.com/marketplace/pull-reminders platform.github.community/c/integrations probot.github.io/apps/unfurl-links/ probot.github.io/docs/deployment/ probot.github.io/docs/extensions/#scheduler probot.github.io/community This show was produced by Mandy Moore, aka @therubyrep of DevReps, LLC. TRANSCRIPT: ROBERT: Hello everyone and welcome to Episode 105 of The Frontside Podcast. I'm Robert DeLuca, the director of open source here at the Frontside and I'll be your episode host. Today, we're going to be discussing automating GitHub with Probot with Brian Douglas and Bex Warner. I'm really excited about this topic. The idea of automating GitHub workflows with bots is amazing. This is something that I've been wishing the GitHub have the platform support for since I even started using GitHub for open source. Just being able to have a bot to take care of certain things like somebody doesn't leave enough of a PR description and they open up a PR, you can have a bot that just responds to it and saying, "Can you provide more information?" It's pretty awesome. With me as co-host today is Charles Lowell, who is also a developer here at the Frontside. Hey, Charles. CHARLES: Hey, Robert. ROBERT: Before we get into the discussion, I like to make a tiny little announcement. We've been building a composable and an immutable state container called Microstates. I'm sure Charles can talk about this more at length, then we will in the next podcast episode -- 106, but I would like to make a small announcement that Taras who is an awesome developer here just wrapped up a month's worth of work, creating a new ReadMe to describe the vision of Microstates and what you can do with them and everything about Microstates. If you're interested in that, I highly recommend checking out the ReadMe. I'll drop a link in the show notes for you that are interested. CHARLES: If I can add, it really is [inaudible] because it isn't like any other state management solution out there. ROBERT: No, absolutely not. I've been building something with it in React Native over the weekend of the 4th of July and it's amazing. But enough about that, you'll hear about that next episode. For this episode, I want to talk about Probot with Brian and Bex. Hi are you two doing? BRIAN: I'm well. BEX: I'm good. Thanks for having us. ROBERT: No, thank you for joining. This is really exciting. Like I said in the intro, I've been really excited about this project. I do a good amount of open source, I would say and this has been really helpful in all of our repos. We have, I think like 78 open source repos on the Frontside. We have Microstates, like we just talked about and Big Test and all of those repos use some combination of Probots that people have built and it's really nice, especially with the new Checks API that has just come out. You can integrate Probot into that, right? BEX: Yes. I, actually am currently working on shifting one of our bots from using the commits Statuses API to the Checks API. ROBERT: That's awesome. Before we go too deep into it because I want to come back to that because that sounds really cool and what the integration of that is like and what changes because I'm not even really that familiar with it. I just know it was released. I kind of want to go from the beginning here. Where did Probot come from and can we get a little bit of a history for everybody that might not know what Probot is? BEX: Sure. Probot originally started out as this simple idea to make GitHub scriptable. The original idea was you have a single file in your repository that would be like a JavaScript file and it would essentially spell out how the bot would act on your repository and the goal was to make GitHub apps accessible to people because if you ever look through our GitHub apps documentation, I think it can be a little tough to get started. There's, honestly, a lot of nonsense that you have to go through in order to get set up. For one thing, the way our GitHub app authentication works is it requires a JSON web token followed by using that JSON web token to request an installation access token and that process would be really tough for new people to get started. ROBERT: Yeah, it sounds like it. BEX: Yeah, so Probot was created to abstract all of that away and handle all of that authentication automatically and simply leave you with the payload that you get from listening on web token events and in authenticated GitHub client to make authenticated API requests while authenticating as an app. ROBERT: Cool, so that's where it started like a flat JavaScript file in the root but today, you use like EMO files and a .GitHub folder. How do that kind of progress? BEX: Originally, their use case was much simpler and it quickly became clear that a single JavaScript file in the GitHub repo was not scriptable enough and not easy enough to understand. The goal was to make like an API that could make that JavaScript file really, really easy to customize for every API of GitHub and it quickly became clear that that was not really a feasible thing to do. as time went on, it turned into this way to build Node JS applications and essentially, what the configuration files you're referring to are the way in which we make it customizable because right now, there's no way to be officially supported GitHub apps channels to pass secrets because it means you're a [inaudible] and the owners of GitHub apps, so that was just a way to kind of stop that problem. ROBERT: Gotcha, okay. BEX: The actual code for GitHub apps still lives in a Node JS module basically and the configuration file just specifies how that module runs. ROBERT: Right, so they're deployed like Heroku instances, if you want, like anywhere you can host a node app. BEX: Yup. Heroku, Now, yeah. ROBERT: Interesting. BRIAN: As a reason to that, some explorations of doing serverless deployments for Probot, I think there's a couple of issues of them. I'm not sure if anybody's shipped anything like the way they at but it's pretty much it's possible to. BEX: Just a week ago, we even released a new version in which we update our core from Node JS to TypeScript and now that things are typed, we have big plans for serverless. ROBERT: Nice. That's awesome, so then you'll be able to deploy to a Lambda and off to [inaudible]. BEX: Exactly. CHARLES: Can I actually interject here, as kind of a person who doesn't really know the relationship between GitHub apps and the GitHub marketplace and what exactly a Probot is before we hear the origin story. I would love to hear a very high level view of how this ecosystem fits together. BRIAN: I think a lot of people are pretty familiar with interacting with the GitHub API and OAuth integrations. I think I've just spent a lot of time at different companies previously to GitHub, just like making calls, either to cURL or through Node JS or more recently, [inaudible]. GitHub apps itself are a way to take all the things that you had to do to make an integration to GitHub much easier. It has a lot of cool things like OAuth, scopings, so you no longer have ask for all your repos ask access whenever someone logs in with GitHub and the connection between like, "Now have gone from OAuth to Now to GitHub apps," there was a lot of, as Bex mentioned earlier, ceremony that happens to getting set up with GitHub apps and integrations that Probot is like this tool to speed up the process of getting to the point where you just want to script some automation or some sort of workflow and it gives you all that bullet play for you. I don't know if that was a good high level for you Charles. CHARLES: Yeah. I've kind of witnessed this second hand with Robert installing a bunch of things here, so let's use an example, like you did some sort of automation on our repos, Robert, where when someone files a ticket, there's this workflow that automatically adds a triage label, so that we know that this thing hasn't even been dealt with, so we really need to address that issue. It doesn't need to be as a high priority. It doesn't need to be closed as a duplicate of something. One of the different aspects that you described there, how do they fit in terms of serving this workflow onto the end user? Or was that a good example, even? BRIAN: One of the cool thing about GitHub apps and what Probot does for you is that normally, if you want to add a label to an issue, either you Charles or Robert, would have to be admin or maintainer on the team for the Frontside and you could add labels. But somebody who opens up an issue, doesn't have that ability to have write access to your content, which is adding a label. What a GitHub app does, it actually takes a spot as if you would have another user on your platform, instead of creating a dummy account or a dummy user. Probot is basically building a bot for you to then, give you the ability to add that issue. That's sort of workflow that normally would have to happen through an actual real human could not happen through a bot without taking up a spot of like, "I guess, I probably shouldn't speak so ignorant about our platform and what we actually pay for nowadays for GitHub," but I know we used to have like a limited amount of seats for organization, like that seat no longer has now taken up and now, it could be just be used a bot can do something that normally us would take. ROBERT: Right. You no longer have to create a user to do these things. BRIAN: Correct. BEX: [inaudible] within GitHub. It's sort of built in a way that apps can take a lot of power in your repositories. CHARLES: So then, what is the relationship between Probot and an app? BEX: Probot is essentially the framework for building an app. You can definitely make the equivalent of any Probot app outside of Probot. It abstracts away all of, basically, the horrible parts and leave the easy part. CHARLES: Now, I think I'm ready to participate in this discussion. ROBERT: That was perfect, though. That's a great intro because I actually didn't have a total grasp or understanding of the relationship between GitHub apps and Probots. That's really good. BEX: Yeah. Additionally, going back a second. You mentioned the marketplace before. One thing to note that is that there actually are several Probot apps on the marketplace right now. The marketplace is essentially the home for any larger, usually third-party companies that have made apps and Probot is essentially supporting some of those. ROBERT: Interesting, so then my question would then be, do you know anybody selling their Probots. Does the marketplace charge? I'm going to assume it does. BEX: Yes. ROBERT: Okay. Is there anybody charging for their Probot? BEX: Yes. There is a quite a few, in-fact, charging for it. Recently, a pretty popular example is the GitHub Slack integration, which is if you open new issues, you can have them appear in your Slack channel. That whole application was recently rewritten by GitHub. It was previously owned by Slack and that was built on top of Probot. CHARLES: And I actually remember, we upgraded to that version. It's actually way, way, way better. BEX: I'm glad you feel that way. CHARLES: I didn't know the story behind there. I was like, "Oh, I just got a lot of... Awesome," you know? Although I don't know what's the costing. BEX: Yeah, I think that integration is actually free, so that wasn't the best example. I think it's for open source projects, at the very least. BRIAN: Brandon, one of the maintainers for the Slack integration and work at GitHub, also did a really cool talk at the SlackDev Conference a couple of weeks ago, so if you're interested what were the behind the scenes. That integration is all open source as well, so if you have request or you have features that you would like to add to the Slack integration, you can pop into the repo that hopefully will show up on the show notes because I'm not sure if it's like GitHub/Slack, but I guess we'll find that out in the show notes later on. BEX: It's Integration/Slack. BRIAN: But for an example of a paid app of a non-third party, we're not talking like Travis or Circle or another one with the big names but rather, a solo dev created. It's Pull Reminders, which is on the marketplace as of today and essentially, this gives you reminders of your pull quest, so you can actually ping inside the comments and tell Pull Reminders to say, "Tell me about the pull request like next week because it's Friday and I don't have time to look at this." ROBERT: That's awesome. I've also seen the one that's kind of related, that is like you can set your out of office at GitHub, which is actually kind of a neat concept. BEX: Was that the one where we are already changing that profile photos to have the overlay or the one where is just auto-replying to messages because I've seen a couple of -- ROBERT: I think, it's just auto-replies. BEX: Okay. CHARLES: So, it can change like your profile pictures and really, not just related to repo and history related activities but everything? BEX: Anything that you can access via the GitHub API, you can almost access via GitHub apps. There's a list of end points that I specifically enable for GitHub apps because there's something such as delete a repository that there's basically, a very few circumstances under which you want to give that permission to an app. Also, to things very specific like your profile or your personal page. About a year ago, there was an official internal audit of all of the API endpoints because there are lots of inconsistencies over what was and what wasn't enabled for GitHub apps, so they went there and kind of decided, what endpoints should be enabled and what endpoints actually get enabled. Now, that list is much longer than it was a year ago. Now, it's much more comprehensive. ROBERT: That's awesome and is this for the Rest API and the GraphQL API? BEX: Yes. Probot does support both. The Rest API is the one that specifically had all of these endpoints audited. The GraphQL, since it's a bit newer, we sort of built those and more. ROBERT: Cool. I really like working with the GraphQL API with GitHub. It makes it easier than trying to do a bunch of Rest calls. BRIAN: Yeah, there's a community form, it's like a discourse form that the API team actually manages and sort of pipes in there. Again, going back to like, if there's not something in the Slack integration that you would like to have, the form, that community is actually in there, if there's something not in the GraphQL API, that you would like to see. No promises on shipping it within an x amount of time but if enough people are requesting it obviously, there's going to be some resources [inaudible] at. ROBERT: What do you mean? We're doing open source. It has to be done yesterday. BRIAN: Yeah, exactly. And that form is at Platform.GitHub.Community, just a URL to get there. ROBERT: Awesome, that will be helpful to look through and get some recommendations in there. One of my favorite things I was going to say about the new integration for Slack and GitHub is the fact that I can highlight line numbers, paste that linked in and then it just expands it and the chat in Slack. That is so nice and I use it all the time. BEX: Yeah, I love that they built that feature. Actually, the original feature that was built on GitHub to allow those line expansions in the first place, like on GitHub itself, was actually built last summer by some folks who were also a part of my intern class at GitHub last year. ROBERT: Hey, intern power. That's awesome. BEX: Yeah. ROBERT: Everyone there is doing amazing work. I'm also following along with somebody that is also an intern and it's building a weekly digest program. BEX: Oh, yeah. That's actually a Google Summer of Code student. ROBERT: Oh, interesting. BEX: So, being sponsored through Google Summer of Code by Probot as an open source support. ROBERT: Is there anything more to unpack there? That sounds really interesting. BEX: Essentially, we submitted an application for Google Summer of Code because we thought it'd be a cool way to get more people, more students, a mentorship opportunity for the maintainers, basically and we were honestly overwhelmed. We got like almost 100 applications and it ended up being a huge of a deal but we're -- ROBERT: That's a great problem. BEX: Yeah, definitely a good problem but we were really happy. We, initially wanted to accept more students but Google limited us to only two students, so we have two Google Summer of Code students working on projects and one team of women from Rails Girls Summer of Code working on Probot. ROBERT: That would be awesome. What do they working on? BEX: I'm not sure yet. They actually just started a couple of days ago but the other Google Summer of Code student is working on a background checks API to eventually do sentiment analysis of comment history of someone new to your repository. ROBERT: That's interesting. That sounds like there will be some machine learning in there. I might just throwing out buzzwords? BEX: Most likely, I think they're just using some sentiment analysis API, like the perspective API. I don't think they're actually doing that themselves. ROBERT: Okay. CHARLES: Actually, I have a couple questions. Back on the subject of Probot. How does this square with the classic mode of integration because there was a lot out there? I think the first one that I remember that stuck in my mind was like Travis and I don't know if there had to be like a special relationship between the Travis developers and the GitHub developers, that's like, they was able to make that integration happen so many years ago. I don't know how that happened. I just remember it popped up and I was like, "Woah. This is incredible," and we see kind of the integrations gets more and more rich. For someone who's got, like you mentioned a couple of the big names, is the idea that eventually those would be able to be completely supported is GitHub apps or is it they're always going to be kind of a separate track for kind of the really deep integrations? BRIAN: I wasn't around when Travis first integrated with Lyft GitHub and I think that's a really cool integration and I know they have a very nice sized team that's able to do that. I think if we zoom back out like Probot, the way to get started with Probot is that we have the CLI command, which is to create Probot app. I believe it was intentionally copied off of create React app and the cool thing about create React app and create Probot app is that they abstract all the ceremony and boilerplate to get started really quickly. It was like, what developers or smaller teams can get started with integrating with GitHub apps. I highly doubt that Travis is going to rewrite their entire application with something like create Probot app but they're definitely going to be moving towards the new API calls, which would have been like GitHub apps. Part of the Checks API that we had launched at the end of May, Travis had blog post on how their integration with the Checks API works. They're making, though they have a lot of what Legacy endpoints and a lot of Legacy integrations in the way they integrate with GitHub, they are actively moving towards a GitHub app. I don't know if I could actually comment on their status of where they are today, to be honest but actively, we want all new apps and new integrations to follow the model of being a GitHub app, so that way, out of the box, you have access to all the newer features. You have all the access to all the newer GraphQL endpoints, if you want to use GraphQL and that way, we can serve one market, as opposed to everybody who had a GitHub integration from five or six years ago, that was all piecemeal together and sort of duct tape, like we run move away from duct tape everything together. CHARLES: I see. BEX: I definitely agree that I don't think Travis is going to switch to using Probot anytime soon and I don't think most of the large companies will be doing that but I do think, there will be shift towards GitHub apps in general. For those companies that don't already have the buildings of the GitHub app started, I think that Probot could be, in time to free some of them. BRIAN: In addition to that too, Travis and Circle and all the CI integrations, they're doing a really good job. I think the cool thing about GitHub apps is what you take away all that ceremony of getting your checks to work, now we can start opening up the door of like what's the next sort of CICD thing like? There's another term or another, I guess category of applications that can now be built to improve GitHub. CHARLES: The most amazing thing about having a great platform is the apps that you don't foresee, like it just come completely out of left field and you're like, "Woah. I can't believe that's actually a possibility now." When you have started to see some of those, some Probot or GitHub apps, you're like, "Man, I didn't see that coming. That's awesome." BEX: A hundred percent. I think it's the most exciting part of Probot because I think GitHub as a platform, we all know GitHub is the largest developer platform in the world and I think the idea that developers can build on top of this platform is the most exciting idea right now. I have honestly already seen apps that really excites me. The other day, I saw this app that was definitely not near completion but it was essentially updating and issue a comment box over and over and taking response through like checking a box and then listening on that common edit, in order to specify your coffee order. ROBERT: Woah. BEX: I was like, "Do you want an ice coffee or regular? Do you want milk or sugar and cream?" and it was going one at a time. It didn't actually order you your coffee at the end but it was super exciting to watch that. You're just editing the comment. I had never seen that before. ROBERT: That's pretty slick and that's taking the API pretty far. I'm sure there were some parsing in there and each Webhook response are like, "Was this box edited or not." That interesting. CHARLES: Yeah. Actually, now that we're having this discussion is kind of like changing my mind a little bit. Robert and I were actually talking yesterday about trying to standardize on our release management and our plan was basically to have some software that was going to run inside of our CI provider and have kind of a shared library, just a little ntm package that was shared by all of our repos but I'm thinking now, man, we should really explore doing this as a GitHub app. ROBERT: Yes, please. I've had three ideas that I really want to build out as a Probot. I'm just going to list them off and then we can build them all together and take equity and you know. I'm kidding. But the two that really excite me, that I kind of want to do is one concept that we work on this open source project for our clients and if somebody from the outside that doesn't have commit bits to be able to push to master, it would be really cool if we had a Probot that after it had an approved on the PR, from the maintainer, that the person that open the PR could then tell a Probot say, "This is approved by somebody that manages this project. Can we merge?" and then the Probot would then actually merge. I don't know if that's possible. That's something that I definitely wanted to explore. Then the other one, which is less cool, would just be like if we have a couple branches on some of our projects that we want to continue and we're not ready to put it back into master but we want to continuously run the test suite against it, so the idea there would be to have a Probot that would watch for changes on master and rebase as needed and continue to run the test suite and see where you're at. Those are the two things that I'm really excited about to do with Probot but I just want to automate everything with GitHub now. CHARLES: Right. BEX: Yeah, definitely, that first idea was actually pretty viable. I'm curious to know like how you actually get those commit links -- is that what you called it? ROBERT: Commit bits are more like commit permissions, I guess. BEX: Oh, I see. ROBERT: An outside contributor. CHARLES: Yeah, we want to push responsibility to the person who is the maintainer who can approve it but actually, the way we do it at Frontside is the person who actually is making the change is responsible for merging it. Once you get approval, you still have to hit the go button and that's just going to make sure that you're taking responsibility for saying it's done but that doesn't work for open source because people coming off the internet are going to have the right to push but we would like to give it to them, maybe via an app, if there is a maintainer who's approved it. BEX: Yeah. That's definitely something you can do. I've seen quite a few apps that, essentially add outside collaborators to the repo. Are you familiar with the... I forgot what it is called, like the all contributor section, where you cite everyone in your repo and everything and who's worked on it. There was a GitHub app that would add someone automatically after they merge their first change. CHARLES: That's awesome. ROBERT: I may have seen that on React State Museum but I'm not sure. It's a repo that we've contributed to and it has all the contributors at the bottom. It seemingly just kind of popped up there. BRIAN: There's an app that, I would like to mention too that I'm pretty excited about, that it sounds trivial too and it's almost similar... Not similar but it's sort of related to what you were talking about, Rob, with your first app, which is the WIP bot, which is the work-in-progress bot. This is a pattern of whenever I open a PR and I might not ready for a merge but I want to share my code so I can get feedback earlier on, I'll type in WIP so that append to my title of my PR. What this engineer did was every time you do WIP, it's going to go into the GitHub API and actually block the PR for merging, which is a feature available to GitHub. It's nested in your settings but the cool thing about this it actually blocks the PR for merging, so you don't have to worry about getting your, sort of like show and tell code merging the master without being ready. ROBERT: That's one of the first bots that I installed on all of our repos and then you can correct me if I'm wrong, it didn't always have the ability to block the PR from being merged but with the new Checks API, is that something that was introduced? BEX: Not exactly. The way that blocking of merging works is if you set it as the required status, so you can install any sort of CI on your account and have it not being required and ignore it whenever you feel like it, so it's really up to you to make it required. Otherwise, it just isn't checked and that's true for anyone who uses the Statuses or the Checks API. ROBERT: Okay, so that's a Statuses API. Okay, sorry. BEX: Yes. ROBERT: Also, the cool thing about that that I noticed when that was rolled out was I was now able to pick and choose and use workflows on Circle CI and each workflow is broken out as a different status check. I am now required like linting and the build and the test have to pass for these browsers before it can merge, which is really cool to be able to pick and choose. BEX: Yeah. It's awesome. I know personally on some of my repos, I have a few checks that I just don't require because I know I have to make them pass. ROBERT: Yeah. Speaking specifically about the work-in-progress bot, do you know how that works? It's open source, so I am sure I can go look. I think we want to go make a PR. We had some back and forth about this, Charles. CHARLES: I actually just [inaudible] we disagree. ROBERT: Yes. Charles opened a PR and one of his first commits in the PR had work in progress and the title had work in progress and we have this this Probot on our website and it was a blog post. You know, you make a couple more commits and you're further down, you move the work in progress in the title but the PR were still blocked because the first commit on a PR have work in progress in it. I think if it's the most recent commit or if it's in your PR title with work in progress, it should block but otherwise, it should not and Charles feels differently. CHARLES: I have about six commits and the very first one have WIP in the title or in the commit message and it blocked the whole thing but I kind of felt like it actually made me go back and I had to squash it down to two commits because I actually feel that your commit history should tell the story of the development, not like it should an absolute one-to-one journal of what happens but what you are intending. I actually felt that it could help me out because there's six commits that we're kind of all over the place and just kind of slapdash together have made me kind of go back, rethink it and tell a coherent story. I think it did me a service but it was not obvious. I definitely agree with that but I was like, "Why? Why were you still blocking?" ROBERT: Do I really [inaudible] admin privileges? BEX: I would say, I am friends with the creator of the web app. His name is Gregory Mantis and he is actually got a huge work in progress PR shifting work in progress over to using the Checks API and one of the features that he's using with the Checks API is essentially this mark as now work in progress button that will add the special line, like feel free to merge or something like that into your original PR description at the bottom. If that is there, the work in progress app will no longer be blocking. It's essentially like a hard override and honestly, that's the power at the Checks API versus the Statuses API. That's really exciting. ROBERT: Because I have seen the work in progress bot to get into a weird state, where I did remove the work in progress from the title but it didn't quite update and I'm still blocked. It's okay for me because I have admin privileges but other people on the team maybe not and they might be blocked from something that's actually work in progress. It's a lot like that hard override will be probably pretty helpful. BEX: Yeah, definitely. I think sometimes, there's some confusion with that just because of the way what perks work on GitHub and the way our pages are rendered, that you may need to refresh the page before you actually see it take effect. ROBERT: Right, yeah. Overall though, I love that bot. I go weekly, probably to the Probot apps listing and just go shopping. BEX: Wow. I'm actually the person who approves all the Probot apps to the listings so that's pretty motivating there. ROBERT: It's really nice. I am not even joking when I say shopping, I go through and I open up a bunch of tabs, I read through them, "Oh, this could be useful," that kind of thing. BEX: The first app you mentioned, which was like the one that requests more info is actually one that I built, so that was kind of funny. I guess you got that from the Probot apps too. ROBERT: Yup. That one, we definitely use on a couple of our organizations and repos. It has yelled at me a couple of times because of a blank PR. BEX: It yells at me all the time. I think I get yelled at more than people who are actually doing it wrong. ROBERT: I'm a little embarrassed like, "I should do better. I need to set an example." BEX: Definitely. ROBERT: Cool. I'm curious what both of your favorite Probot app is. This ought to be interesting. BRIAN: The app that I'm really impressed with so far, that I actually only use on a junk project at the moment, is the weekly digest one and it's mainly because I built something for this in my previous role at the company but then we shift it, which is basically go through every single repo. I worked at a company called Netlify previously and we had way too many repos to maintain... Oh, sorry, to keep track of and I was moving further and further away from the backend at the time so I was unable to keep up to date with all that was changing. I built a Lambda to watch Webhooks and then give me a digest of what was shipped like issues and PRs closed. It was way over-engineered and I never actually shipped that to actually make it work. But then the weekly digesting came out maybe a couple of weeks ago and it blew me away because I was like, "This is exactly what I needed," and I was trying to make it overly complicated through like a Lambda and like a bunch of Webhooks and this person, with only a few weeks, has the scaffolding of what I needed. That's the one thing I'm pretty excited about. It was already mentioned earlier too, as well. BEX: I guess, I would say one of my favorite ones is the unfurl a link app. I think that one it so simple but so nice. I don't know. I think having that unfurl link preview is just beautiful. Essentially what it does is it listens on issue comment creation or pull request comment creation or issues your pull request or whatever and read through the text or whatever was that issue or pull request and looks for links and then, essentially unfurls them so you can get a really nice preview of what you're going to. I think that's really beautiful and just so simple. ROBERT: Yeah. I love that one too. I have that added to all of our repos. BEX: It's so much nicer. Why would you not unfurl your links when you could unfurl your links? ROBERT: Exactly. CHARLES: I actually have a question. I think it's been touched on, probably at least twice throughout the conversation. I want to actually create a Probot, how do I actually go about deploying it? What does that look like? What does it look like to deploy and maintain it? BEX: We have a page on our docs about deployment and essentially the TL;DR is you can deploy it on any normal cloud hosting service that you wanted to deploy it. There are a few things you need to specify. For example, GitHub gives you a private key that you need to create your JWT and that private key means to be passed into your hosting service however you do that and then, there's a few bits of information that need to be pass in. We have pretty intense docs about it. Honestly, I'm not a deployment person. I usually try to let other people do that and I have never had a problem going through our docs and just getting it working immediately. BRIAN: It's also mentioned that there are examples like Heroku and Now and a couple of other ones. If you have a service that you already like, it's possible it's already in the docs, like steps to how to get that deployed. BEX: Yup and any other services are more than welcome to be added to the docs. Pull request are welcome. ROBERT: Sweet. It sounds like we need to set up a hack date to create a Probot, Charles. CHARLES: Seriously, my mind is brewing. ROBERT: I guess it's not directly related to GraphQL but there's something that I've always wanted to build. For prior history to everybody [inaudible], then the podcast, Brian and I used to work at a company called IZEA and one of the things that we built and I worked on a lot was we would create a collect metrics on people's social accounts that they're connected and do that and graph it over time. This idea came from when I was building up that feature all the way back in 2013, I want to graph the change in GitHub stars. Is there an API available for me to see like weekly GitHub stars or is that something that I still have to manually store and track? BEX: There's definitely an API endpoint to get the amount of stars and I don't see why you couldn't just do that on weekly basis and compare but I don't think there's any track that change API. ROBERT: Gotcha, like a history of it. I could do this by just stealing and looking at what the weekly digest Probot is doing because there is a change in stars section in there. I was just curious if there was now an API that was available. BRIAN: Yeah, that's more unlikely. I'm going to say no without looking at all the reference documentation. I think as far as that database, it's something you'd probably have to collect on your own but it's also a good candidate for a GitHub app, where you build a service that you can actually track stars once you've installed it and then if you want to monetize it, you can actually pay for private repo or whatever stuff like that, if you wanted to. But it sounds like a great opportunity to see this in the GitHub/Probot listings. BEX: I actually just look this app really quick in our docs because I was curious but apparently, you can receive the star creation timestamps. That could be doable through timestamp usage. ROBERT: Oh, and then I just kind of loop through back and build your graph in there. BEX: Yeah. ROBERT: Interesting. All right. Well, [inaudible] I was going to do today. BEX: Yeah. But I think it's exciting to bot the weekly digest and then what you could extract from that into stargazing is that Probot scheduler, which is essentially this all Probot extension we made that triggers a Webhook on a scheduled time period because right now, the way GitHub apps works are so centered around Webhooks. It can be difficult to find a way to trigger an action on something outside of a Webhook, like on a schedule basis. ROBERT: Yeah, that would be really helpful. I can definitely see how that would be a problem, if it's very, very central to reacting to Webhooks and events that happen on the system. BEX: Exactly. ROBERT: You're just hoping that somebody comes through and creates an event at a specific time. CHARLES: Can I ask you a question about, it's definitely on topic of extending GitHub but currently, just a question about, where the line is between what you can and cannot extend? You mentioned, for example in the rewrite of the WIP bot, being able to throw out a big button that says override this merge. Are there any plans to be able to actually extend the UI in novel ways? Everything there right now is happening with API calls, with I assume, UI elements that are related but the UI elements are static. If someone wants to put a novel piece of the UI, that button is going to require an extension of the GitHub UI by GitHub itself. Are there any plans to be able to, I know it's a dangerous waters, perhaps at a limited fashion at first but maybe more so, add different interactions and the actual application. BEX: I think this is actually the most exciting future of GitHub as a platform. In the past, GitHub APIs have only specifically supporting things that you can do through the command line or you can do through GitHub's UI itself. The Checks API introduced the very first non-integration specific UI element essentially and the merge button that I was referring to in WIP is exactly that. It's essentially this button that you can change the text of it to be whatever you want and you can listen on that action and then you can do as an integration or an app, anything that you want based on that. I think that's the most exciting direction for GitHub. Because if you look at Slack, Slack is a platform that has sort of really impressive integrations in that response. Your apps on Slack can really do all of these things, use custom UI elements, so I think the most exciting features for GitHub as a platform is all of this customization and giving the power to the apps. ROBERT: Yeah, that sounds an awesome way to be able to extend GitHub without having to try and throw the feature on to GitHub developers. BEX: Exactly. I feel that a lot of the struggle right now is that there aren't these nice ways of communicating via apps because I feel lot of the apps and bots end up just commenting on issues and pull requests and taking up a ton of screen real estate as a result and I just think that that's not the way that bot should ideally interact with the GitHub platform. They should have their own space to exist and that's the feature I'm most excited for. CHARLES: Yeah. I can think of having like progress bars for CI checks and your various appointments. It's too exciting. I'm glad. That's definitely the response I was hoping to hear. BEX: Yeah. We're excited for it too. ROBERT: Basically, you all have a massive community of a bunch of developers that would want to do this and are willing to get their hands dirty on it. Enabling that community is probably the root of all Probot is about. That's super awesome. BEX: Yup. CHARLES: That's a good place to end, because gosh, it's going to be so exciting to have the millions of developers on the planet, just like surgeon to the APIs that you're developing. BRIAN: One thing to add to that too, about the whole million developers, there's a number that's been thrown out from Stack Overflow and also, some other people who are saying like there's 50 million developers, there's 24 million developers. As far as GitHub, our public user number is 28 million, the cool thing about Probot and GitHub apps is that there's a good chance that all those people that are using GitHub today are not actually developers. They're like PMs or designers and what's really cool about this, like having interactions with that kind of platform in this way is that you can now enable all the non-developers to be able to interact with your GitHub repos and start bringing more designers and PMs onto to the GitHub platform to interact with the developers. ROBERT: That is an interesting point. That is awesome and something that I'm always looking for is a different ways to collaborate with non-developers on my team because... I don't know, developers tend to think everything is always centered around code but it's not. The shifting at work that are awesome, needs a lot of collaboration from non-devs and non-dev skills. That would be really interesting to see. I'm excited for that to play out. BRIAN: Yeah. There's a blog post that was published a month ago, I think about where the design team, design system teams rather, built the integration to Figma to update their icons effectively. I just posted that in the chat to look into but they also built this as a Probot app as well. ROBERT: That is awesome. BEX: Yeah, that one is super exciting. You would have the app comment, the diff between what the old icon versus what the new icon look like and it's just such a beautiful design change to be able to see that shift. ROBERT: Man, I'm happy that this is happening. The future seems super bright. Where can we direct people to get resources to contribute, to get involved and start really going at this? BEX: Basically, Probot.GitHub.io has all the Probot stuff, /app has all the listings for apps you can install today, /docs is where the docs are, if you want to get started and hopefully from there, we link up to the necessary things that you need to do. BRIAN: Also, what I mentioned too via Probot Slack channel, there's a Slack channel as well and they do a weekly call. I think, it's weekly or bi-weekly call to actually chat with the Probot community. If you have questions, you can actually bring your questions to the team. BEX: Yeah, we call it 'Office Hours' and it's once a week and it's under our community page, where we also have a link to our Slack. We have a link to another podcast we run and basically, how to get involved in the Probot community. ROBERT: Those are really helpful resources. I do remember seeing that Office Hours. It's on Thursdays, right? BEX: Yes. ROBERT: I was going to drop in for one and then, I actually forgot. Actually, it might be going on as we talk right now in this podcast. BEX: It starts in half an hour, I think. ROBERT: That's awesome. Cool. Well, thank you Brian and Bex for having a conversation about Probot. This is really awesome. Is there anything that you would like to plug for yourselves? How people can get in contact with you? BRIAN: Yeah, I am BdougieYO on Twitter. Everything you need to know about me is there and I am happy to say hello. I'm also helping with the GitHub developer program, which is sort of getting a soon-to-be announced rebranding. If you go to Develop.GitHub.com/Program and you want to have more conversation about the API and GitHub apps on the GitHub side, you can go there to sign up. BEX: And I am HiImBexo on Twitter. You can ping me in any Probot stuff. I'd be happy to look at any Probot code. I've been looking at it for a while now so I'm happy to do that. ROBERT: That's awesome. Thank you all for having a conversation with us. This was really fun. I'm so excited about everything you can do with Probot. This is a really fun project. I'm happy that this is happening and I will make a Probot in the future. CHARLES: I'm looking forward too. Robert has been excited for quite some time and he definitely talks a lot about it and now, I have some insight as to what -- ROBERT: It's happening, I'm telling you. Well. Thank you for being here and we are the Frontside. We build UI that you can stake your future on. We are specializing in JavaScript. We can build anything that you want throw at us. We do functional programming, React testing, Vue, anything in JavaScript, we specialize in. As always if you want to suggest anything for us to have on the podcast or talk about, you can reach out to us at Contact@Frontside.io and like I teased earlier in the podcast, next episode is going to be all about Microstates, the immutable and functional state container, composable model system that we've been building, it's controls as a brainchild for the past two years. That is next episode and I'm really excited about that. It's a really fun API and expressive to build models with. Thank you, Mandy for producing our podcast and we'll see you next episode.
In this episode, Michael Jackson of React Training and Rob DeLuca and Taras Mankovski of The Frontside talk about what is a component, and what a component is specifically in the context of React. They also discuss when it stops being a component and becomes something larger, how it has changed the way we develop UI, and thoughts on container and presentational components being synonyms for controller and view. References The Tweet that started it all Wil Wilsman: Does my application work in real life? Do you have opinions on this show? Want to hear about a specific topic in the future? Reach out to us at contact@frontside.io or on Twitter at @thefrontside. This show was produced by Mandy Moore, aka @therubyrep of DevReps, LLC. TRANSCRIPT: ROBERT: Hello, everyone. Welcome to Episode 103 of The Frontside Podcast. I'm Robert DeLuca, a developer here at the Frontside and I'll be today's episode host. We're going to be discussing what is a React component or what is a component with Michael Jackson. I'm pretty excited about this topic, a sort of off from a tweet that I sent out after a long workday, when it is something being called "component" because it was built with React components but it was more like a mini application? Then Michael replied to my tweet, as they're happening and he said, "What is your definition of a component?" which is exactly what we're going to be discussing today. I thought that was a really great question. With me, as a co-host is Taras Mankovski. TARAS: Hello, hello. I'm also a developer at Frontside. ROBERT: Before we get into the discussion, I would like to make a little announcement. We've been working on building a suite of testing tools to make acceptance testing JavaScript apps like React or Vue or Ember or anything else kind of JavaScript, fast and easy to maintain over the past few months. We call it BigTest. If you follow me on Twitter, I'm kind of loud about it. I love this project that we were working and one of my coworkers just published a blog post, giving an introduction to acceptance testing on React applications with BigTest. If that sounds interesting to you, you should check it out. We'll leave a link in the show notes. Now, let's jump right into it. Hi, Michael. How are you doing? MICHAEL: Hi Robert, I'm doing well. Thank you for inviting me to be on the podcast. ROBERT: Oh, no. Thank you for joining. I feel like this going to be really fun conversation. We went back and forth on Twitter a little bit and I was like, "You know what? This serves really well like a free flowing conversation." MICHAEL: Yeah, it's something I really like to talk about, specifically, when we're talking about components or when we're talking about React components. I think there's a lot stuff there to discuss and I think that React, specifically has really, at least defined that word for me. When you were talking about your mini application, I was like, "Oh, yeah. That's cool," and to me, that's kind of what these components have the potential to be, what these React components have the potential to be. It's kind of like almost these miniature applications that you stitched together to make a bigger one. ROBERT: Yeah, that's really cool. I was frustrated at the end of that day, just because that had so much logic crammed into it and you can kind of see that come through in the tweet but I'm not going to lie. After I sent that tweet, I was a little disappointed with myself because it came off a little bit like flangy but I guess we could just kind of jump right into defining what is a component. MICHAEL: When I saw your tweet, I was like, "Oh, you know like --" and of course, I don't know the component that you're looking at. It could have been terrible. Totally, it could have been terrible. I'm totally willing to believe that it was not a good component. But writing React is hard, especially writing good React is actually hard. At first, I thought it was easy but I think it's easy to solve your immediate problems but to write React to that is generic enough to solve lots of different problems, I think it's actually very, very hard and it's something that I've spent the last couple years learning. Anyway, that's kind of a tangent. But regardless of the component that you were looking at, the way that I've tend to think about these components is we used to have a model for thinking about how to build frontend applications -- ROBERT: Like MVC? MICHAEL: MVC, that's the one. That's the one that talking about. You have, here's your model, here's your view, here's your controller. You know, there are separate logical entities and lots of times, those even live in separate files on the file system and we keep them sort of separate and spaced out. As far as I can tell, that's a sort of paradigm. I learned it in school. By the time universities catch up with industry is at least, like twenty years, so it's probably something that was invented back in the 60s or 70s. ROBERT: I think it was like the 80s because Charles talks about it a lot and sort of Taras, actually because we're building something that's like a composable model, just like the Vue of React is a composable view, its components. I think it's interesting because I was listening to the Changelog Podcast and it sounds like you worked with Ember for a while. MICHAEL: I did, yeah. ROBERT: I forget, which podcast that was but we can find it and we'll link it to the show notes but I thought that was really interesting that you also came... Oh, maybe not came from Ember. You had experience with for, at least a couple years and that's where I came from. That's kind of where that tweet came from and was like, "Man, I don't like what happened to the word component," because when I think of component, it's like something that is encapsulated in a small piece of UI. But I'm okay with letting go of that. MICHAEL: Well, yes. Ember came out of something called SproutCore, which actually originated at Apple. Tom Dale used to be a developer at Apple. I'm sure you all know all of this but just for some sort of back story for others who might not. Apple was a place where MVC was really, really big. The whole Cocoa frameworks. They're all very much like, here's your controller, here's your view, core data has all of your models, that kind of thing. It's a software development philosophy that goes back a long time and has deep roots and I'm not here to suggest that because it's old it's bad, because lots of old things are actually very, very nice and good, especially in programming. We're starting to see a resurgence of functional programming ideas, for example, which have been around forever, since at least, the 60s or even earlier than that. It's not necessarily that I think that because it's old, that it's bad. I don't. ROBERT: Right, right. MICHAEL: But the thing that I do see in these React components is they kind of go very much against the grain. If you had, for example your model, your view and your controller as these vertical silos, just imagine turning that whole thing on its side and then cutting a slices of that, so that each of your React components has elements of MVC in it. They're all sort of mixed together. I run a training company called React Training and whenever I'm doing one of my training workshops, the way that I talk about it is a component is able to encapsulate three things: markup, which is the view essentially; state, which is essentially your data or your model; and behavior, which is essentially the controller, so what happens when the user is interacting with the view and clicking on the buttons? What do we do in response to the user input? You've got all three of those MVC elements in the React component. In fact, I've been meaning to kind of coin the term for a while. Instead of MVC, I call it MSB -- markup, state and behavior. ROBERT: You heard it here first. MICHAEL: That's right, here on The Frontside Podcast, we're coining new terms. ROBERT: That's pretty great. I guess coining off of that, is it fair to say that MVC kind of still lives on, except it's now in React? Or it's kind of more sliced up into smaller, more digestible pieces? We can always come back to this composability element, right? Would you say like really React would made it possible to compose many little MVC apps? MICHAEL: Yeah, exactly. The thing that people really, really love about MVC, I think you still have it in React. MVC, the thing that people always come back to is the separation of concerns. Let's just say, "I don't want everything sort of mingled together. I want it to be very clear. What is my model? What is my controller? And what is my view?" The cool thing about a React component is if you look at it, you still have very clear separation within the single component. You have a very clear separation of all three of those concerns: your state lives in an object called 'this.state,' then your view is whatever you return from your render method. That's in a completely separate spot, since still in the same component and then your behavior or your controller usually has its own method, so you can inline those in your render method or you can pull them out if this is how you'd like to do it. You can pull them out into instance methods. You can still have kind of that separation of the concerns within a single component. I think to your point, the React component model is all about composition, so this is kind of a term that we've actually adopted in other areas in technology. It's sort of just coming to frontend. The idea is you've probably heard of a service-oriented architecture for design in backend systems. These servers over here are application servers, these are database servers, here's our caching tier, here's our Ingress or LoadBalancer and maybe, you stitch them all together on the backend into one coherent system. You know, here's our storage and our image-resizing services. You stitch them all together on the backend into one coherent system but it benefits you to not build them all as one part of sort of monolith. We've got a lot of benefits from the decoupling. For one, if one piece of the system fails, the whole thing doesn't go down, so you can like swap it out or upgrade it and replace it with something else. I feel like that is kind of a similar idea to what is going on the frontend with these React components. ROBERT: Oh, microservice components. MICHAEL: Yeah, exactly. Each component is kind of like you said. It could be like a miniature application and it could be totally self-sufficient and I could drop it onto a page and it could just do its own thing or what I could do is I could take that app, that component and I could drop it into a larger app that can speak to it and can communicate state to it via the props that it sees and then can get state back out of it via these callbacks. I kind of view it as like all of these miniature systems that they can either be completely encapsulated and self-governing on their own or you can take them and compose them with a larger app. ROBERT: That's really interesting. I guess what is a component specifically in the context of a React. I guess, we kind of just answered that, that you can bundle all these things together, right? Does that make sense? MICHAEL: Yeah. The beautiful thing about this composition model is you can have all three of those things in the same component: markup, state and behavior. You can have all three of them right there, encapsulated in one component or once you discover more advanced patterns with React, you can actually make it so that a component only has two of the three or one of the three. ROBERT: And then it kind of like passes callbacks or props or state around? MICHAEL: Exactly. It can essentially delegate the responsibilities for handling the other pieces that it misses to other components around it. There's a pattern that I kind of coined last year called render props. ROBERT: Oh, yes. I remember hearing this on Changelog Podcast. I was actually one of the people that at first thought it literally was a prop name render. MICHAEL: Well, I mean it's not a bad way to think about it. It could be a prop name render. ROBERT: But then I found out it actually is a prop that you send JSX too and render whatever is there. MICHAEL: Yeah, exactly, a prop that you used to render stuff. It's the way that I describe it. When you think about it, any component, for example that accepts a render prop is really just delegating it's rendering to some other function. It can contain the two pieces: the state and the behavior, but then it can sort of delegate this third piece, which is the markup and say, "You know what? I don't really care about, specifically what I have to render." I don't have an opinion about that. You just give me a function and I'll give you my state and possibly, some behavior callbacks and then you can tell me what to render. I'm like a component that I have two of those three pieces. I don't have the markup, you just give me a function, that I will call when I need the markup. ROBERT: That's really powerful. MICHAEL: Yeah, exactly. I can have all three in one place or I can also with this component model, just delegate one piece or even two pieces, using these kinds of patterns to other components, so it's really nice. ROBERT: I'm always have to come back to this because this is where I kind of cut my teeth in the frontend world. I feel like render props are very similar to the yield pattern in Ember, where you can yield out a component and place it anywhere inside that template block. I think it's really similar. Because we have a large base of Ember developers that listen and they needed a draw like a parallel, I would say that's almost a parallel. I might be off on that. Taras, would you agree with that? TARAS: Yeah, it's very similar. There is one little 'gotcha' with render props in React, which I think Ember deals with a little bit more gracefully. I do use React all the time now. I use it much more often than I use Ember but -- ROBERT: Same. TARAS: Yeah and I'm kind of curious, Michael if you would think about this. Because there are certain things that, for example, JSX does, like one of the attributes of using render prop is that you want to pass stable functions, like something that is actually defined in init hook, so you're not necessarily recreating a new identity for this function every time that you pass into the render prop. Is that right? I think for someone who is might not be familiar with this, it's a little bit counterintuitive because it just kind of like, you just pass something and then you later realize, "Actually, I can't really do that because now your components were rendering over and over again." I'm curious like where can we kind of innovate in that? Because in Ember world, for example, it's really safe to use render props. If you're delegating to the context to do the rendering, you can very easily pass a block of template into the component and then the component will know how to render that in a performant way. My experience with render props in React was that the pattern in Ember is it's a very common behavior to delegate to the context of how the children of a component are rendered. This is the primary purpose of the yield in Ember and this is used by a lot of the components to provide APIs, so essentially, you're yielding, you're sending into the children function behavior that you want the developer to use while consuming your component. The parallel with React is that you would have, essentially a function, like you have a children render prop, which is a function that receives so that when a component is rendering the children render prop, it's passing some data into that function and it's invoking the children function and it's passing to it some data and then that data is being used inside of the children render function. Now, this mechanism works really well in Ember because Ember is using its own templating engine, so it manages every placeholder in the entire template as being passed into the component. It knows exactly what has changed in the function. Looking at that, the value just passing through component as a whole thing. It's actually managing each individual spot where the dynamic elements needs to be rendered. What that does is it allows it to manage the entire children function so you don't need to worry about stabilizing the render props. You don't need to assign them. Because there's also other challenges that kind of arise when you have to move the actual function that you pass into children. You have to move into the body of the actual component. Your ability to compose the state that is within the render function is kind of limit because you now have kind of broken up into different places. I'm a little bit curious what are your thoughts about this? And if there's any innovation that's going to require or improvements that will require in the way that React handles render props. ROBERT: I definitely remember seeing some tweets from you, Michael about this, like very recently. MICHAEL: Yeah, just yesterday in fact, I was talking about this on my Twitter. First of all, thanks for the question, Taras. I appreciate it. I think you kind of nailed it with the difference between Ember and for example, just JSX -- Handlebars, really and JSX is that Handlebars is not JavaScript. Handlebars is a language of its own, really. As the implementers of that language, the Ember team or the Handlebars team has complete control over how things work. For example, when functions are allocated. If they have a yield block, for example, that yield block does not have access to things like JavaScript Scope. It really is just a block within the templating language and so, they can decide when they're implementing that language. They can say, "We're only going to ever allocate one function for this yield block." JSX on the other hand, it really is just sort of some syntax sugar over JavaScript, which is nice lots of times because you can use things like JavaScript functions scope. You can do things like refactor it, like you would any other piece of JavaScript and pull that function out into its own variable or something like that. In a lot of ways, it's more flexible but with that flexibility comes this extra concern of what happens with the prop passing and it's a real concern but I don't think it's as big of a problem as most people have heard or might think it is. The real problem, the root of the problem is that if you have a pure component in React, the pure component is optimization tool in React, if you find that your component really is a pure component of just a pure function of its props and state, and that it will never render anything different, if it receives the exact same props and state, you can declare that that component is a pure component. Instead of just a regular component, it's now a pure component and so, it will actually opt out of the render cycle if it receives the exact same props and state on subsequent render. By exact same, what I mean is like identity triple -- ROBERT: Yeah. MICHAEL: -- Same. That's an optimization tool that you can use in React to say for example, maybe I've got a component and for some reason, it's always receiving the exact same props and it's rendering a lot. I can say, "You know what, React? Don't even waste your time re-rendering this component and doing the reconciliation around it and everything like that. If it receives the exact same props, don't even waste your time. This is a pure component. It received the same props. It's going to render the exact same stuff as it rendered last time, so it will completely opt out of the render cycle," so React won't even call the render method, won't even bother doing the reconciliation for that component or its descendants. It's actually a really, really nice way to get a little performance boost in that situation. ROBERT: Interesting. Does that mean, rather than passing some JSX that returns out an anonymous function, you would rather have like a pure component over that? MICHAEL: All it really means is that when you identify a place in your app where this is happening, instead of extending React component, you can extend React.PureComponent and now you component opts out of the render cycle. ROBERT: Gotcha. Because I see a lot in React applications, it will just return some JSX out of anonymous function, kind of think, Taras was getting at, when each re-render happens, it's recreating a new function and all of it were done inside of it, from the JSX because it's just a new function that's being bound each time. I think my takeaway from that and correct me if I'm wrong, is don't pass JSX and an anonymous function or I guess, from your tweets yesterday, that's kind of a premature optimization. Maybe, not pass as anonymous function but pass as pure component. MICHAEL: I hadn't yet gotten to directly addressing Taras's concern but the idea is -- ROBERT: -- Jumping the gun. MICHAEL: Yeah, it's fine. If you do have a pure component, that is when you're going to have a problem with this render prop pattern because you can't pass a render prop to a pure component. They just don't go together. Well, sorry. I should actually qualify that. You can pass around a prop to pure component but you need to make sure that it is always the exact same function, otherwise why are you making this thing a pure component, so there's a little bit of a problem there. I actually wrote the documentation on React's website on render props and there's a little caveat section where I discuss how you could get around this, you could convert it into an instance method or something else but then the concern at this point and this is why I said it's not such a huge problem because we're getting very, very specific now. Let's assume that we've got a pure component that is the child that we want to render and it accepts a render prop and that render prop depends on state and/or some sort of scope that it needs in the render method. Now, we've got a problem because we need to generate a new function in the render method and the fact that we're generating a new function and passing it to a pure component means that we are essentially negating all the benefits of extending pure component in the first place. First of all, in order to experience the problem, you have to get very, very specific and it's not easy to actually get into a point where the problem manifests itself. But then for the second part, fixing the problem is actually not tricky, so the way that you would fix this issue, there's a couple of ways to fix it. The most common way, I think to fix it would be to just say that pure component, let's just move that down one level and we'll put it inside the render method of the component that takes the render prop. The component that takes the render prop is no longer pure but the pure component has dropped down one level and we can still get all of the benefits of a pure component and again, its whole descendant tree lives underneath it. ROBERT: That make sense. MICHAEL: So, we can still get all the benefits of having a pure component, while still being able to use the pattern. But again, just getting back to what we were saying at the beginning. The render props is just one example of an advanced pattern that actually lets you delegate one of these three pieces to somewhere else. It's just one pattern. It's not like there are others as well. ROBERT: Yeah, so getting back to what is a component, is there ever a line that's drawn, like when does it stop becoming a component and it becomes something larger. MICHAEL: It's actually interesting because for a long time, we didn't have a component model on the web and I think -- ROBERT: It's very true. MICHAEL: -- still, like we mix to all three things together in our jQuery code. It was just like there was some state mixed in with some markup, mixed in with some behavior. It was all kind of mixed into one place. ROBERT: Nice plate of spaghetti. MICHAEL: Yeah, exactly. As soon React came along and actually gave us a real component model that really worked where we could actually identify these pieces, then all of a sudden, everything is a component and you really can make if you want, like if you really wanted to, you could make your entire application out of components. It could just even behavior stuff like, "I want to fetch some data," that could be a component or, "I want to listen to the window scroll or the window size," that could be another component. "I want to render an image or a bit of text or do some measuring or I want to do some parsing of some data or something like that," all of this stuff could be represented as components if you wanted it to. Of course, you can still extract those functions out into their own bag of utility methods and lots of times when I write a React Apple, I have a little bag of utils and I'll go and reach in there and grab those as I need them. But for the most part, most of my React apps are just components all the way down, so there's not much that I can't do with a component. The cool thing about that is what do you get when you have components, where you get reusability and sharability. I can make a component and I can just share it with you, Robert. I could say, "You want a component for listening to the windows size? Here you go. Here's the components. Got to render --" ROBERT: Drop it in. MICHAEL: "-- It will give you the size when you need it," so that ability to share code is, I think super important. ROBERT: Yeah, I think so too and it really helps you build applications rapidly because you can just start dropping these little components that are contained in composable throughout your entire app. I guess, I'm still clinging onto like there is maybe a line that is drawn and I think from the React community, there were a couple of terms coined called the container component and the presentational component, in which I immensely mapped those to basically being synonyms for controller and view. It's like the container components is kind of like a controller, like it delegates the view... Or decorates the view, not delegates. And the presentational component is just like we're talking earlier -- pure component. It's just taking props and rendering that. Is that fair to say? MICHAEL: Yeah. As far as I can tell, that's a pattern that was first talked about by the redux community, specifically I think Dan is the first to discuss that that pattern and it's a pattern that I think can work well. I haven't ever found it to be especially useful in my code but I can see how other people could like it for their code. I really just think it has to do with how your brain works. If you prefer structuring things like that, if you prefer like the vast majority of your components to just be these little view layers and then your main container components to hold all of the logic, I want fault you for that. I'd say, that's fine you can build your app like that. But I do think that when you're thinking about components like that, you are thinking about the much less like these miniature applications. Basically, in my opinion it's kind of a false separation. It's a separation that doesn't really need to exist because essentially, the thing that I really love about these components is you have encapsulation. You encapsulate everything. As soon as you adopt this pattern of containers and essentially, just these presentational leaf nodes, they're not as useful on their own. They just encapsulate some of the rendering logic. ROBERT: That's very true and they're not reusable. I mean, it's very, very hard to make those reusable. MICHAEL: Well, yeah. Most of the time, they're designed to be used with a very specific container. It is like, "Why couldn't we just put that in a container." Like I said, I really don't fault anybody for using them. It's just not how my brain works. I tend to think more about components as if they were these miniature applications and they're going to be useful on their own for the most part. One place where I have started to do that, the fourth thing that your components can encapsulate is style information, which is really just kind of the markup but it's the fourth thing and I think that I've really started to employ that kind of pattern when styling comes in. But it's not for this separation of containers and leaf nodes. It's just because I would like to encapsulate some of the styles down at a lower level or be able to reuse some of the styles down at a lower level, so that's when I'll typically start breaking up one of my components into multiple kind of tightly-coupled components but it's just for the sake of the styling, not really in any of the control flow or the logic. ROBERT: Right. When I first got into doing React, I was first like a little befuddled and then, I fell in love. I was like head over heels. When I hear about separation of concerns, it's always talked about like we need to separate HTML, JavaScript and CSS. They're all different things. They just need to be separate. I understand that. I kind of come from there but for me, my personal opinion is coming from the context of single-page apps, there is no feature that you can ship without the three. I don't think there is a complete feature that exists. Sure, there's edge cases that's like a blanket statement but I think those lines of separation is way more blurred these days and I think that's what React just unlocked. That's kind of where all of this is sort of rolling downhill and it's not a train. It's really powerful to be able to encapsulate all of those things together and then just think of your UI as these components. That's why we call them components. They componentized. Like when I have a butt-in and I drop it on the page, I don't want to have to go and make sure that I have the right class that's wired up in some other file. I can just drop the button in there and it's going to do its thing. I can pass the props, it'll change it, that's fine. It lives within itself. MICHAEL: Yeah, I would say you're absolutely right. You can't ship anything meaningful without having, at least some styling in there, unless you're shipping very, very basic behavioral style components. It's kind of one piece, I think like the React components are able to encapsulate their own styles but there's no, I guess officially recommended way to do it, which is where I think React get some of the critique, like some people come in and say like, "There are a million different ways to do styling in React and therefore, React is supposed to something like --" I guess, yeah, some of the other frontend frameworks have like, "This is how you do styling in our framework." ROBERT: Right, like the lack of convention. MICHAEL: Yeah, exactly. It's a blessing and a curse, though. If there's a lack of convention, it's harder for newcomers to know exactly what to do. ROBERT: Yeah, or like what's best for their use case. MICHAEL: Yeah, exactly but then on the other side, it's kind of a blessing because people are free to experiment and they don't have to feel like if they're experimenting, they're going sort of against the grain of what the community has already accepted to be the answer. I think that freedom to get out there and experiment is really valuable as well. ROBERT: You can see but I'm nodding. TARAS: I'm just curious what your thoughts were. This Suspense API is something that's... React kind of lead the way with components and now, the changes that are coming in with Suspense API coming in and it'd be great, if you can, are you able to explain a little bit about what it does for people that are not familiar and I'm curious what your thoughts about it. MICHAEL: Yeah, for sure. The Suspense API, I think is actually, with regards to what we've been talking about, with the encapsulation of markup, state and behavior and possibly styles, I think the Suspense API is kind of the React teams attempt to sort of encapsulate or generalize, at least one more thing, which is asynchronous behavior. The truth is, the most common async behavior that we know of, that most people are familiar with is a fetch, a data fetch -- you go and fetch some data. But there are others, there are things like loading of images and animations and navigation and things like that, where you have some time that passes in between when you initiate an operation and when you're actually able to render as a result of completing that operation. How do we manage or how do we generalize that and how do we think about it? The Suspense API is basically a way to declaratively say, "I need this async operation to be done." Let's just use the example of a fetch. I need this fetch. I need to have fetched this data in order to render this view and don't even attempt to render this view, unless the data has been fetched. Before the async API or Suspense, as they're calling it, you would basically have to manage this asynchronous behavior yourself. You would basically have to say, "Go and do the fetch," and while we're doing the fetch, maybe I'll set a loading flag in my state and say, "Loading is true," and then when the fetch gets back, I'll say, "Loading is false," and then I'll render. Maybe, while loading is true, I'll show like a spinner or some loading dots or something. What the Suspense API allows us to do or what they're hoping to do, again it's all very like... I don't know if I made this clear. It's still very, very, very, very early days for this API and I don't actually know when it'll be ready. But anyway, the idea is to be able to say -- ROBERT: Would you say the Suspense is killing the community? MICHAEL: The suspense around suspense. ROBERT: A terrible pun. MICHAEL: Anyway, the API is basically just a more declarative way to indicate where this asynchronous stuff is happening and give React sort of clues, if you will, to say, "There's some asynchronous stuff happening here, just so you know." That has many applications in the real world. Let's say for example, you were navigating in a master detail view and you're tapping down the master view and loading these detail views, if you tap a master view and you haven't yet loaded the information for the detail view, instead of sliding to the detail and showing the data still loading there in the detail view, you might want to show some sort of loading indicator while you're still in the master view. Then, if it's taking a while to load, they can actually select something else from the master view and in that case, you would cancel the old fetch and start another fetch. It's just supposed to make things like that, kind of feel a little bit more fluid and a little bit more intuitive to the programmer, so you don't have to think so hard about managing a lot of that complexity in your own head. ROBERT: Yeah. By the way, I love the mobile first language that you used. You tapped here, you tapped here, that slides in. MICHAEL: Yeah, for sure. It's all we're building these days. ROBERT: Yeah, it's very true. TARAS: It's interesting because the Suspense API, you wouldn't really imagine it to be within the scope of a view in a traditional sense, to [inaudible] but considering the scope of a component in React, it makes sense but I think people might not imagine as being something that would become part of core, potentially in React. I'm curious like what do you think other areas of React and I'm glad that the scope of components in React is so broad because it kind of opens up this question to be pretty much anything in React ecosystem. But is there an area of React building or the aspects of applications that you would like to see an improvement in or some kind of a change or something that hasn't seen the right amount of innovation in the same way that we've seen in other areas? MICHAEL: Basically, is there a place where I would like to see the React ecosystem improve? TARAS: Yes. MICHAEL: I know this goes kind of contrary to what I just said but I would like to see a little bit more cohesiveness. I feel like in some ways, the freedom is good but I also feel like in some ways, for the last couple of years, we've been just sort of like rehashing the exact same old problems again and again because React really made everything else so easy, like a lot of the stuff that was hard about building web apps, just got really easy when React came along. I'm not saying that because I have React training company. Of course, my livelihood right now depends on React but honestly, if it wasn't for React, I think I probably would have quit and done something else because it was actually getting really, really difficult for me. I was trying to build an app in Ember before I started with React and I just couldn't do it, you know? I just couldn't get the level of polish that I wanted in my app and get all the bugs out and get it working exactly how I want it to. It frustrated me, actually that I've spent a lot of time. I spent about 18 months, about $100,000 of my own money, just down the drain trying to build this app, trying to get it out the door and I wasn't able to finish it off. At the end of the day, I really started to question like, "Was it me? Do I just suck? Am I not a great developer? Is that the problem?" You really have to start asking ourselves hard questions like that when you put everything you have into something and it doesn't work out and then React came along and I was like, "I was just using the wrong tools." The tools were the problem. It wasn't me. There is a different way to think about this about building stuff. I thought the way that I was doing it was the only way that existed to build things but it turns out, it's not. I used to not understand what were people talking about when they were talking about functional programming or what do they talk about when they're talking about composition, solving problems with composition, instead of inheritance. I didn't even understand what that meant. But all I knew is really smart people would say stuff like that and I was like, "What are you talking about?" Now I feel like, because of React, I've gotten it. Again, to get back to your question, Taras, React made a lot of the stuff that we used to worry about, that we used to think about. It made it easy and so, we could build amazing things now a lot more easily. But now, for the last couple of years, I feel like we've just been sort of rehashing a lot of the same stuff. I would really like to see us, as a community sort of tackle the next level problems. I think the React Suspense stuff is definitely getting there. That's a problem that I really don't see anybody else sort of address, which is how do I make it easy to deal with the fact that applications by their nature -- these networked applications -- are asynchronous. How do I deal with that in a declarative way? That's why I'm encouraged by that work because I do think that it's kind of one of the more forward thinking things right now that's going on in the React community but I would like to see us in general, sort of like get past talking about styling and get past talking about service and rendering and move on. ROBERT: Right and I'm going to assume you have this really unique experience since you do a lot of trainings. I follow you on Twitter and it's just always talking about where you're flying to and who you're training, so the things have to come up there where you see these things in pattern over pattern over pattern. MICHAEL: Yeah, exactly. I see like a lot of and this again, gets back to Taras's question. I train a lot of people who are very new to React and I see people who are new to React, they really don't have a ton to go on besides just like blog posts and Medium pieces and podcast like this one and who am I? A lot of people in their React community don't even know or care who I am. It's like, "There's a guy out here who are saying stuff about React. Maybe I should listen to him. Maybe I should listen to somebody else," and it's confusing. It's confusing, I feel like, for people who are just getting into React. It's confusing. Like I said, experimentation is good but I guess, I wish the experience of coming to React was a little bit more like the experience of coming to Vue because -- ROBERT: Oh, like it was a beaten path. MICHAEL: Exactly. I don't actually think there's not a whole lot about the Vue technology that is compelling to me and let's not dig on it. It's just -- ROBERT: A personal preference? MICHAEL: Yeah, exactly, just preference but I do think the thing that is very compelling about the Vue experience is just the cohesiveness of it all. You go to Vue and there's like a way to do server-side rendering with data fetching and styling and -- ROBERT: They have a CLI and -- MICHAEL: And a CLI and a component and all these stuff. Yeah, and a router built right in. Anyway, I think that's a way that the React community could improve. I don't know if that'll ever happen because the React community at heart is artists and hackers and those people are traditionally very reluctant to be corralled and like I said, it's a blessing but I think from the perspective of people who are new to the community, it does tend to cause some confusion. TARAS: I want to add to what Michael is saying. What's interesting and I'm sure Michael sees this in his training but the kind of people that use React is very diverse. There's this kind of original group or there's kind of mentality that prompted the early adopters of React and now, we're seeing these companies that are traditionally enterprise-y with MSE backgrounds and coming into React. It's really interesting to see all this kind of worlds collide and then see what's happening as a result. It's definitely interesting on what's going on now. ROBERT: This is an excellent stopping point. I really agree. I come from Ember background so I would like to see a little bit more convention but I think it's okay. It would be nice to see that. Thank you, Michael for coming on. Is there anything that you would like to give a quick plug for and where people can reach you? MICHAEL: If you want to support the work we're doing, you can sign up for one of our upcoming workshops. We've got one right now on ReactTraining.com. We've got a workshop coming up, actually in my hometown of Carlsbad. You can come out here in July and hang out with us and do some React training. We got a really awesome host here who's right here in town. We're doing some React training workshops on July 25th through 27th, I think and then, other ways that you can support what we're doing is publish in all my open source code at GitHub.com/ReactTraining or you can follow us on Twitter at Twitter.com/ReactTraining or at my personal account at @MJackson -- Michael Jackson. ROBERT: Awesome. I really appreciate you taking the time to come on. MICHAEL: Yeah, thank you so much. It's been a pleasure. ROBERT: This is a great talk. Cool. Thank you everybody for listening. We are The Frontside and we build UI that you can stick your feature on. If you would like to give us feedback, you can always reach out to us on Twitter at @TheFrontside or you could email us at Contact@Frontside.io. We're always looking for any new topics or things you would like to talk about or things that are interesting to you. As always, thank you Mandy for producing our podcast. It's @therubyrep on Twitter and on June 28th, we're going to have Chris Martin on to discuss blockchain development.
In this episode, Harry Kaplanian of EBSCO joins the show to talk about the FOLIO project: a community collaboration to develop an open source Library Services Platform (LSP) designed for innovation. He discusses the why behind the the decision made to embark on this project, the benefits it brings to the market, and what makes it different from current offerings and other open source projects. Harry also shares where he sees FOLIO going in the future, challenging and unexpected outcomes of making the choice to go open source, and advice for other businesses that are considering embarking on a similar journey today. Do you have opinions on this show? Want to hear about a specific topic in the future? Reach out to us at contact@frontside.io or on Twitter at @thefrontside. This show was produced by Mandy Moore, aka @therubyrep of DevReps, LLC. TRANSCRIPT CHARLES: Hello everybody and welcome to The Frontside Podcast Episode 102. My name is Charles Lowell. I'm a founder and developer here at The Frontside and I'm going to be today's host. So today, we're going to be talking about the business of open source with Harry Kaplanian. Harry's someone that we've had the pleasure of working with over the past year and collaborating with on a very unique project, which we are going to get into later. With me is Robert DeLuca. Hey, Robert. ROBERT: Hello. CHARLES: And before we start out today, we just wanted to take care of some quick news. Just so you know, we released BigTest React. This is actually something that grew out of the work that we've been doing with Harry. It's a set of React helpers to acceptance test your React applications so that you can make sure that you know that your application is actually working on actual browsers in actual life. So, that's exciting. You can go check it out at BigTestJS.io. And with that said, let's get on with the project. So first if all, welcome, Harry. HARRY: Thank you. CHARLES: I teased this in the intro, but we'll go ahead and say it outright. The project that we've been working on with you and with EBSCO is a project called FOLIO. And it's one of the more unique projects we've ever had the pleasure of working on. So, maybe you could just give us a brief overview of what exactly FOLIO is and how it came to be. HARRY: Sure. So, FOLIO I think can best be described as an open source platform for services. Our focus has always been the library market and so, currently this platform exists in the library space. That said, there's nothing about this platform that is library-specific. It can actually be used anywhere, anytime, for anything. The platform itself, all communication occurs basically via HTTP. It's microservice-based. It's language-agnostic. And it is really the core of what we're building. However of course, a platform on its own is not very useful. And at least for right now, libraries are overall expecting to get to a point in terms of features, functionality, apps, and services that are being built. So FOLIO can actually take over the enterprise-wide day-to-day operations of what it takes to actually run a library. CHARLES: And these are libraries like university libraries, the Library of Congress, the library at Alexandria. I mean really, when you think of library, like library [3:00 inaudible]. HARRY: Yes. However, we decided to focus on a particular market, at least initially or I guess a subset of the library market. And so, that subset we've actually chosen to focus on is the academic library market. And so, really mainly colleges and universities all around the world. That said, there is no reason why others can't use this software. And it is all open source. So, if any changes are ever needed, modifications or additional applications are needed to support those additional markets, that can certainly happen at any time. CHARLES: Historically, it's a very complex problem, right? There is a lot that goes on at these libraries. But historically, the software that's driving it has not been open source. HARRY: That is correct. So, it's sort of an interesting history. And I guess you're leading into what I think was maybe your second question [Chuckles] which was: What are the circumstances or the thinking that lead to the creation of a project such as this? And really, libraries have been pretty much operating the same way, to be honest, for probably about the last 40 years. And I'm sure we either all know or have heard, most libraries are facing shrinking budgets. They're really challenged in terms of space and storage requirements. And just in general, users have changed dramatically in the last 40 years, the last 20 years, maybe even the last 10 years. Most people don't really ever expect to walk into a library and actually conduct research anymore. They expect that to happen elsewhere. And so, in many ways, they're really facing what amounts to Google and others, because that's where people expect to go. The vendors that typically created the systems and software that supported these libraries, the day-to-day operations over the years, many of them have consolidated. And there are just actually very few options left. These are really old, monolithic systems. They were built initially with the best intent. And for the first couple of years, many features and functionalities were added. But over time, these systems grew to be so large. There really was never any one person anymore that fully understood it. They find themselves in situations where if they add a little feature here or modify something there, it breaks something somewhere else within the system. And so really, they've gotten to a point where libraries have generated lists of features and functionality that they need that are frankly years long. And the vendors just can't deliver any of it. They just don't have the ability anymore. The systems are too old. In addition, really they're sort of building these walled gardens where they really try to take over all the day-to-day operations of the library but are actually starting to try and expand out in other areas of the university as well. And as they do this, they really tend to lock the system down. They're not really open to integration with other systems or other vendors. And they really see it as they are the one company you should go to that can completely manage and operate everything that goes on in your library. And when we talk about innovation in these systems, really they've been operating the same way, as I mentioned earlier, for the last 40 years. Really, the only major, major innovations is there's maybe one company now that's offering these services on the cloud. One size fits all. And the real issue there is, all of these libraries we talked to, all of them see themselves as being unique in some certain and specific way or sometimes multiple ways. All of them believe they're bringing something special to the world in terms of knowledge, research, understanding and learning. And they tend to cater or specialize often to the institution they're a part of. And so for example, if a library belongs to a medical school, of course their collections are tailored that way. A lot of their workflows and operations tailor to students that conduct research in that field. And oftentimes, even to a hospital that may be associated as well. And this will oftentimes be very different from what might exist for example in an engineering library. And so, for most of them, they look around at what's available to them. Not only has nothing changed, not only has there been no innovation, but on top of it, they're forced to choose essentially a single system. And that's not really getting them what they want or where they want to be. So I, as well as some others, spent quite a bit of time looking around at the market and trying to assess and understand all of this. And one of the things we felt was, as we look at all of this, really we're living in a world, these libraries are living in a world of closed systems, lack of transparency, lack of change, lack of innovation. How do we change that? How do we spark that innovation? And it seemed like what we really need is some sort of an ecosystem, a sustainable ecosystem or really, openness and transparency. And it seems like the only way to get that really is open source. And in fact, we actually conducted a survey and out of that survey, 100% of the libraries we spoke to really believe in open source. And when you think about it… ROBERT: Whoa. HARRY: Open source really in many ways aligns itself really nicely with the mission of the library, right? The library is there to not only promote learning but to make sure information and knowledge that normally you may not have access to is accessible to everyone. They're really leveling the playing field. And that really is a really nice analogy for what open source is doing in the marketplace as well. And so, this seemed like really, and at least, an initial ideal path to head down. And so, we did. CHARLES: Yeah. And so, you did. And I'm curious to explore more about that decisions. Because – now this is a little bit of a dated quote – but Steve Balmer, when he was the head of Microsoft, called open source communistic and un-American, then how do you reconcile that? Because obviously you represent a business that ultimately needs to be profitable and is engaging in this in order to make a profit. And so, where does the balance lie and how do you reconcile that? And obviously you all perceive this as a strong business move. And so, yeah, how do you balance those two concerns? HARRY: I think from our perspective, we looked at it as if a single vendor or maybe a group of two or three vendors end up locking up the entire market with systems that operate the entire library that are not open and they're not willing to integrate with other systems and services that exist out there, in essence that's an attack on what is the basis of our business as a company. We provide services and we provide content that libraries use and ingest and make available to their users. And essentially, it looks like they're trying to lock us out. And how does that really help in terms of creating an open and fair marketplace where people get to make choice? It doesn't. And so, what can we do to disrupt that? And building a system that allows everyone to play at least puts us on a level playing field where if an organization or a library chooses to adopt it, we're now back in a very competitive situation where really, the vendor or the organization or the individual that provides the services that best fit that library's needs wins. And that's what we really want to happen. And so, that's in essence how we win. We believe we offer better services than most others in the industry, if not everyone else in the industry. We think there's a sizable percentage of the market that truly believes that. And we just need to make sure that the mechanisms or the systems are in place that allow us to compete in that manner. And in the end, if what we end up with is a platform that allows 3, 5, 10, or 20 companies to actually compete in a reasonable manner fairly, really it's the customer in the end that wins. It's these libraries and it's the users and everyone else conducting research. ROBERT: So, I'm still kind of reeling from 100% of libraries said that they would like to have an open source platform. How many did you survey? HARRY: So to be truthful, it wasn't a large number. ROBERT: That's still insane to me. [Laughs] HARRY: Right. We focused on, however, surveying different segments of I guess really representation within the library. So, the people that do the work, the middle managers, and then really, the folks at the director level that are really responsible for running and organizing a library. ROBERT: The ones that will experience that pain of being locked in, right? HARRY: Right, right. And trying to get decision-makers at many different levels. And we tried to also cover both very small libraries to very large, enormous libraries as well. And all of them saw a benefit. One of the pieces where things sort of maybe went in the other direction as far as the statistics are concerned, if you ask them though “How many are willing to adopt open source?” the numbers aren't quite the same. In fact, they're rather dramatic. And so, at that point it's roughly about 33% said they'd be willing to adopt. CHARLES: So, why is that? HARRY: So, we asked. And interesting question. And what most of them came back and stated was, “Well, we love the idea of open source. We fully support it. We're willing to do what we can to help it and make sure this happens. However, we ourselves don't believe we've got the staffing, the resourcing, or the knowledge to host this ourselves.” And so, this leads to another really interesting thought or idea as far as open source is concerned, is so this really implies that there really needs to be sort of an ecosystem of organizations that are providing these types of services. And to be honest, the faster we can make that happen, the better off the market is. Libraries are now getting to choose vendors that they get to get their services from, which is rather interesting. Because for the first time, not only do they get to choose the vendor but if they're not happy with the vendor, they should be able to switch vendors but keep the software and the data the same. Today, in the library market, if a library chooses to switch vendors, that means essentially they're completely starting over in their library. They completely have to migrate to a fully new system which means enormous amounts of training, enormous amounts of data transfer, and all the pain that goes along with it. I had a librarian tell me once, “The next time we migrate to a fully new system, I either want to die or retire.” I just want [14:30 inaudible]. ROBERT: Man, that sounds painful. HARRY: That's how painful it was. CHARLES: Yeah, wow. Because the complexity intrinsic to these systems, it does, it boggles the mind sometimes. Just even the little slices of the ecosystem in which we're operating, there's just a lot at play there. ROBERT: Yeah. Like trying to work with other vendors and be agnostic so anybody can adopt these things that we're building. And since we had that vendor lock-in, it's hard for you to adapt the two systems, because they were built in complete silos. So, trying to merge that is an interesting challenge. HARRY: And I think everything I'm saying here, I'm talking about it from the library perspective. But if you look at other industries, I don't think it's really any different. If you look at any of the enterprise-wide management systems that are used in corporate organizations today, most of these corporate entities will stick with the system they chose for a very long time. Because it's incredibly painful, it's disruptive, and it's expensive to switch from one system to another. And so, the idea of you're not happy with a vendor and hey, I can go to somewhere else and maybe keep the system I have in place is really kind of interesting. And even better, if the vendor's not able to provide some of those features that I need but for the most part I like the system, wouldn't it be great if I can hire someone to do that work and to have those pieces built for me? And those are some of the things that open source offers. CHARLES: Right, right. So now, I understand that for example to kind of put a concrete bow on this, [Chuckles] to move away from abstraction of what it means and provide an example, so we have this open source platform, this FOLIO platform. Which if I'm a library, I could in-house, I could either use it on premises on my own servers or I could run them on AWS or I could run them on Google Cloud – there are all these different deployment options and some libraries are doing that, but that's something that they might not want to do. So, I understand that EBSCO is actually going to be for example one of the services that y'all are going to be offering around FOLIO, is actually hosting the platform so that the overhead of managing all of the servers and provisioning accounts and doing all that stuff is going to be taken care of for you. So, I can just sign up. HARRY: Yes. So, that really fed into the results of the survey. For those libraries or organizations that felt they couldn't do it themselves, where would they go? And who could provide those services? So, we're absolutely going into the business of providing these services for libraries that choose to. But at the same time, we're really strongly encouraging other vendors and organizations to provide these services as well. Because for instance, you may represent a series of libraries in let's say Hungary. You may have a vendor there you enjoy working with in the past. It's provided great services for you. There really ought to be no reason why you should not choose that vendor to provide those services for you. And again, it's an open system. There's nothing there that's excluding me and the organization I work for to provide additional services, to provide content or what have you. It's an open system. And so, we should strongly encourage that. And the reality is, if we're going to have a disruption in the market, it seems we can either have one organization or one company trying to usher this disruption along. But what if we could get 10? Or what if we could get 20? Or more companies out there ushering this disruption along simultaneously worldwide. It feels like we've got a lot more of a disruption happening in that case. And so, that's what we're strongly encouraging. CHARLES: Right. But at the same time, I can see it from if I were considering making a play like this, one of the things that would worry me is, “Okay, so we're going to disrupt the market by allowing a large tent where lots of vendors could compete.” But then, I immediately experience fear of, “Well then, how do I differentiate myself?” Because ultimately I want to be competitive. How do I make it so that I'm not a commodity in this new market? HARRY: So really, I think that's key for any vendor that chooses to compete in a market like this. Do you believe as an organization you have not only what's needed to compete but those key differentiators that at least a certain segment of the market would be interested in you and the services you offer? We believe we do. Another company that just recently announced that they're going to be supporting FOLIO and providing services around it is a company called ByWater Solutions. They've actually been in another segment of the library market for many years providing services to libraries as well. Longstanding, actually, with open source codebases. And so, this very much appeals to them. They believe… ROBERT: Oh, interesting. HARRY: They have a niche that they can provide and they are going to be doing that. And we strongly encourage it. What's again great about it is if they set up a library with FOLIO, they're not building the walled garden. They're building or providing the open platform that we can connect our services to. So in many ways, yeah there are some areas we're going to compete. But there are actually many areas that we're also going to be complementary. And I think that's what's really, really interesting to us. CHARLES: So, it sounds like you're also counting on just by having the ecosystem in place and having this sea as it were filling the ocean to enable trade, one of the bets too is that you're going to open lines of business that weren't even possible before. HARRY: Correct. So, another way to look at it – we've got our iPhones or Android devices. Apple built a platform is really what that phone is. When it was released, you could make voice calls. You could do some simple text messaging, some basic email, and I'm sure there are a couple other of things in there that I've forgotten. I do not believe that Apple had any idea that they'd actually be able to create a marketplace that had hundreds of thousands of people and vendors providing features and functionality for that platform. I am pretty sure no one at Apple had ever imagined the guitar tuner would be released. I don't know, a compass app, flashlight apps, whatever. You name it. And not only that, as a user of that platform, you're not happy with the standard email app? Well you know what? I can get a different one. In fact, I've got a choice of many and I can find the one that suits me best. And that's fine. It's an open marketplace. And so, with FOLIO today, we're in early stages. We're building out that platform. We're building out some of the basic functionality for that library that they need to operate as a library. But once this gets released, it's at that point when we believe the more interesting things are going to happen where we build a cataloging app for FOLIO. Well, we know already that there's other organizations that are starting to look at and think about, “You know what? We've got a whole other way or a whole other interest in terms of how we'd like to support those workflows on the FOLIO platform.” Or even better, librarians starting to think about, “Hey, if I've got this open platform just like Apple does, this means I now have the option to build features and functionality that take me where I want to be five years from now, 10 years from now. And I've never had that ability on the existing systems that we use today.” And so, one of the other I think advantages or benefits that something like FOLIO or a platform like this brings to the market is the ability to create that marketplace very much like Apple has done and Google has done with Android as well. ROBERT: So, we're pretty far in, but you mentioned FOLIO a couple of times. Do we want to unpack what FOLIO actually means? HARRY: Yes. FOLIO actually stands for the Future Of Libraries Is Open. ROBERT: Right there in the name. I love it. HARRY: Absolutely. CHARLES: So, we've talked about this platform. We've talked about this marketplace. We've talked about the business incentive of why you would want to do this, why it makes a lot of sense. Clearly, this takes an enormous investment. So, we think, I think, a lot of people think of open source as a bunch of wild developers running around. ROBERT: Pushing commits wherever they want. CHARLES: Pushing out code and doing stuff. And then it kind of organically grows into something that someone then picks up. ROBERT: And then you burn out. CHARLES: Yeah. [Chuckles] But that's I think a lot of people's experience with open source. But an initiative like this takes a staggering investment both in terms of capital resources but also in terms of will, in terms of management, and putting all these enormous forces in motion. There's developing the software, developing the awareness, and I think right now there are hundreds if not thousands of people working on this right now. How do you even go from zero to 6,000 like that? And I'm not talking about people. I'm talking about velocity. [Laughs] HARRY: Right. Early on, when we were conducting research, market research, one of the things we did, we spent some time looking at what we believed were successful open source projects. And I think what was interesting was in many cases it took a single individual or a company to actually create what amounts to that first piece, that first core building block that others could start to expand upon. And very often, they literally just created it themselves, made it available out there as open source, and basically told the world, “Here. Have at it. Have fun. Do with this whatever you wish.” So, we actually thought we'd like to do that. However, building a system on this scale is not that easy. Understanding the operations of a library day-to-day is not that simple. We need help. And so, what we decided early on was: could we kick off and start this project while at the same time [25:42 inaudible] that community as early as possible? To get people excited, interested, and to get this project in a place where we're not the only contributors, where there are many others contributing as well. And when I say ‘contribute' I don't necessarily mean software developers. But that is certainly one aspect of it. But one of the key pieces of building software is gaining access to subject matter experts as well. And it's absolutely key and critical. And so, our goal of course was to build this community, have that community start to provide that in-depth knowledge, those subject matter experts that we need so we can determine what it is we need to build, how we need to build it, and really go from there. And by including those people as early as possible, I think one of the things we find that happens with this project which is really sort of incredible is the excitement that starts to build. The word of mouth advertising, marketing, as librarians, libraries, vendors and individuals start to talk to others and really spread the word about this project. In many ways, it starts to compound or snowball and build on itself. But that was really challenging. And it was really actually kind of slow going in the beginning. Because we started with nothing. And one of the issues you face is, “Well, you want me to contribute my time to this project, yet I see nothing.” Right now it's just a dream. And so, one of those early, early issues was, “Can we build a team small enough, focused enough, where we can start to build some of the basic, basic, basic core pieces, to really prove to the world that this project is real? This project is actually moving forward and this project is actually delivering.” And now that we're in a state where people can actually see working software, the excitement is just starting to expand and compound rapidly. And we see it everywhere. CHARLES: So, do you find libraries or people in the target market, there's that key point where they start to feel empowered? It's real and then the thing that I think that you're going for is to have the realization dawn that not only is it real, I can put my hands on the wheel and I could control my destiny. And I can contribute now because there's this critical mass. ROBERT: You have the power to make change, which never existed in the library world before. HARRY: Or at least, not in this specific area. Because to be truthful, I think libraries as a whole believe they're making change around the world all the time. But it's really related to content. But this is actually making changes in the actual operations of the library. And they are actually empowered to get involved, to contribute, and to help us get this done. And it seems to really resonate with folks. Because it's something they haven't been able to do previously. And it seems genuinely exciting. And we announced this really, well the market learned that this was happening I'd say a little over two years ago. Maybe more like two and a half years ago. And it was sort of a gentle drip in terms of a roll out. People started to learn because we started talking to them. There was no real active marketing going on. But of course, those people started to talk to other people. And so, it happened. And when we were able to provide those first demonstrations, no matter how rudimentary it was, that's when things seemed to really kick into a much higher gear where people started talking to each other. Librarians started talking to each other and say, “Hey, this is real. This is exciting.” ROBERT: It's not vaporware. HARRY: And this is happening. Right. It's not vaporware. And we need to get involved. And so, they have. CHARLES: Yeah. And the energy and involvement just in the course of the time that we've been a part of the project is apparent. Every kind of gathering is larger and the diversity of topics that are discussed is increasing. And yeah, the conversations have burned from “What can we do with it?” to the last time the project got together as a group, it had much more of a conference-y feel. And the topics being discussed were like, “How do we actually deploy this to our real systems?” Which has been fantastic to see. And so, just to actually feel the traction is just, it's so gratifying. So, I guess one of the questions that is on my mind is – so you mentioned that you had been at this for about two and a half years. What is in your mind the most pleasant, unexpected outcome of this project that you didn't foresee two and a half years ago that you're experiencing now? HARRY: So, I think one of the one's that's surprising is I've never actually personally been involved in an open source project before. And I think one of the fears constantly working for organizations that really have been closed source – in fact, I've been that my adult working life – and you sort of walk into this with some [trepidation]. Because oh my gosh, everything I'm doing, everything I say, everything that gets documented is going to be out in the open for everyone to see? Including competition and everyone else? And I have to say, one of the most interesting things, or one of my favorite pieces here, is: it is so freeing. It's a release. It's actually amazing to not care about what your competition or anyone is doing or thinking. And it's even more amazing whenever you've got a question and someone's out there asking you for access to documentation, you can simply point them to the website, to the URL and say, “It's there. It's all there. Anything you want is there. Go take a look.” I think that's pretty amazing. The other one of course are the relationships between many, many different people who I've just never really been – or I never would have had the chance to work with before. And really hearing all these different perspectives and points of view as far as what people think are right, correct, or what we should be doing – it's great to see. And it's great to see this wildfire word of mouth message that seems to be moving everywhere. We're hearing back from people not just in North America, not just from the EU, but from the Middle East, from South and Central America. There's really just people interested everywhere. And it's amazing to me, because I don't think I spoke to anyone over there. So, it's happening. And that's just an exciting thing to see. CHARLES: Yeah, yeah. ROBERT: It's really cool that open source can connect you with the rest of the world like that. It's just so powerful. HARRY: It does. And it's an amazing thing. ROBERT: And the amount of collaboration that happens, I've never experienced it in any other way. It's really cool. [Chuckles] I don't know how else to put it. It's just, it's almost mind-blowing that you are able to across timezones, across the world, collaborate with somebody on something that you both feel passionate about and you're pushing it forward in an open manner. HARRY: Right. And it's also amazing when you have these meetings and there's people you've been collaborating with for months if not a year or more. And getting to meet them face-to-face for the first time. That's really a pretty amazing experience. ROBERT: Yeah. And it's pretty awesome. At our last gathering that we had at WolfCon, I had the absolute pleasure of chatting up a bunch of different librarians. And hearing their experiences and what they're looking for out of an experience, it's just really cool to be able to talk to those people and see how they work and help build this into the platform that they're wanting to use. HARRY: Right, right. CHARLES: Yeah. I would say on the whole, there's been a lot of those wonderful, unexpected outcomes. Were there any that presented a particular challenge or wasn't quite so much a walk along the path of roses? HARRY: So, you know I think the biggest one is – I mentioned earlier we embarked on this project a little differently versus what we saw as normally successful open source projects, right? We did not have that core, beautiful, shiny object to unleash onto the world and let them know, “Hey, have at it.” And so, it wasn't so hard in terms of getting interest. But what's been hard is the amount of interest has generated enormous numbers of organizations that are interested in contributing to the project. Which also implies then that now, not only are they coming to us asking us, “Hey, how can we help? What can we do here?” but then there's a certain aspect, because this is a first version of, “How do you manage the building and construction of that very first version of this software project when the reality of the matter is, you're not really responsible for most everyone working on the project?” And how do you get everyone aligned and organized? How do you get everyone onto that same path along with those same milestones that we've all agreed on? And even worse, how do you get agreement on those milestones so we can all walk that same path and deliver that first version? And so, I get asked sometimes by folks that are involved in other open source projects, “How do you handle this situation? Or how do you manage all the work that goes on?” And when we tell them, it's kind of surprising because it's not what they're used to seeing. And a lot of it is because of the way we started, the interest that was generated early on, and the fact that we did not have an initial version. And I don't want that to sound like, “Oh, this is a huge problem,” or, “If I were to do it again, I would not do it this way again.” I in fact would do it this way again. I think there are a lot of benefits and it's been a great and interesting way to go. It's just the management aspects of it are definitely challenging. And I think more than maybe we had initially anticipated. Going into this next time, though, I definitely know what I'm facing and I'll be prepared. CHARLES: Yeah. So with that in mind, given that you've been through this, do you have any advice to offer someone who might be considering embarking on a similar journey? And undertaking a similar Herculean task. HARRY: Well, I think you'll find it's harder than you think. And be sure to plan for that. But I guess at the same time, I think my biggest advice or my best advice would be: you need to keep an open mind. And when I mean an open mind, you need to be open to other thoughts and ideas. And I think you need to put yourself in the perspective of what if you were one of these other people that are working on the project or trying to contribute to this project? What are the things that you're doing or rather the things that you're doing now, the way you're acting, the way you're reacting, how does that look to others on the project? Because you're not the only one contributing. You're not the only organization contributing. And are the things you're doing reflecting badly in terms of others' perception or optics as to what this looks like as an open source project? And I think for me and others, there was a huge learning experience. Because your first thought is, “I'm going to tackle this like any other software project,” and it's not. It's not like that at all. CHARLES: I think that's… ROBERT: That makes sense. CHARLES: Yes, that makes sense. That's excellent. That's excellent advice. And I think that's one of the things that makes open source so powerful, is because there's that aspect just baked into it from the get go, you have to be mindful of a bunch of different perspectives. And that ultimately results in a solution that's going to be workable for a bunch of different perspectives, that's going to be flexible to accommodate for all the different use cases that all the different participants in the community might bring to the table. HARRY: And you have to be very mindful of how your actions are perceived. Because normally, your actions are perceived by the company you work for, what tends to have a particular culture. But on an open source project, you're actually dealing with many different cultures. CHARLES: Yes. HARRY: And so, that's a tight line that you have to walk. CHARLES: That was a powerful note to end on. Thank you everybody for listening. We are The Frontside and we build software that you can stake your future on. If you want to get in touch with us, continue the conversation, you can reach out to us on Twitter at @TheFrontside or drop us an email at contact@frontside.io. Thank you so much Harry, for being on the show today and talking to us about FOLIO. HARRY: And thank you very much for having me. This has been great. CHARLES: And if you want to, if there's something that you want to learn about or a topic that you want to discuss, please, please let us know. We always are open for your feedback, especially when it comes for things that you would want to hear. And if you want to get involved or learn more about the FOLIO platform, you can just head on over to FOLIO.org. There are resources for librarians, developers, and anyone who is curious about becoming a community member. Thanks as always to Mandy, our producer. And we've got a really great podcast coming up on the 14th of June. We're going to have Michael Jackson on the podcast to talk about separations of concerns in React. So again, thank you Robert. Thank you Harry. And we'll see you all next time.
Robert Jackson: @rwjblue | rwjblue.com Show Notes: 01:00 - Build Tooling in JavaScript 02:19 - Ember and Babel 07:14 - Deciding on Features 11:46 - Class 13:29 - Workflow 14:39 - Payload Size 15:24 - Config Targets 17:18 - Source Maps 25:05 - Ember Decorators, Objects and ES6 Classes 36:07 - What's next and when can we get it?! Resources: Babel.js esperanto Ember CLI Targets
Saron Yitbarek: @saronyitbarek | CodeNewbie | Codeland Conference Show Notes: 00:32 - Codeland Conference and The Conference Experience 08:06 - Impostor Syndrome 15:32 - The CodeNewbie Community and Growing Junior Developers 20:06 - Dev Job Red Flags and Should-be Basic Requirements Resources: Codeland Volunteer Form The CodeNewbie Podcast Episode 60: Impostor Syndrome with Alicia Liu Alicia Liu: Overcoming Impostor Syndrome: Or How I Learned to Stop Worrying and Love Coding Alicia Liu: Impostor Syndrome Is Not Just a Confidence Problem: The dangers of becoming a buzz word CodeNewbie TwitterChat Transcript: JEFFREY: Hello everyone. This is Episode 63 of The Frontside Podcast. I'm Jeffrey Cherewaty, developer here at The Frontside. With me is Robert De Luca, also a developer at The Frontside. ROBERT: Hello, hello. JEFFREY: Our guest today is Saron Yitbarek. She's the founder of CodeNewbies and host of The CodeNewbies Podcast. Hi, Saron. SARON: Hey, how is it going? JEFFREY: Great. ROBERT: Pretty good. JEFFREY: You have a big event coming up, the Codeland Conference. Why don't you tell us a little bit about what's going on there? SARON: Yeah, I'm so excited for Codeland. It is our first CodeNewbie conference. I've done a good amount of speaking at different tech conferences all over the world for a few years now. Ever since the first one I went to, I thought, "We really need one for junior people, for folks who are just getting started," so I kept a running list of everything I hate about conferences and the things that I like about conferences. This is my chance to put it all to the test. It's a two-day conference, single-track and the idea is really to get people excited about all the things they can do with code, especially for our community. The two types of jobs we generally hear about are working in a really, really small startup or working in a really big tech company like a Microsoft or a Google. But we don't hear about working at the hospital or working at the library or the many nonprofits who need technical help. The idea is to bring in people from all different backgrounds, walks of life, solving different problems and showing how code can be a really, really great tool for that JEFFREY: What are some of the things from previous conferences that you really like that you're bringing in Codeland? SARON: I like that you started positive. That's a good start. JEFFREY: We'll go for negative later. SARON: Yeah. [Laughs] Save the best for last. The stuff that I really like about conferences is the community part. It's being able to see a bunch of Twitter avatars come to life for the first time and being able to sit and talk. I feel like conferences are the only place where I can network without feeling gross and without feeling like I'm networking. I feel like I'm genuinely having real relationships and conversations. I think it's because we are going through this experience together and I can say, "Oh, did you hear that talk on this and that? It was so cool." It's a very organic way to start a relationship. That's probably one of my favorite things about conferences. ROBERT: There's a lot of ability in there for small talk about anything because there's so much going on. You could pick anything that you want and you're all experiencing the same thing and you're all kind of vulnerable. I love conferences for that reason. SARON: Yes, exactly and a lot of times, you're in a new city for the first time, you're staying in the same hotel, you're eating the same food. There's so many created and forced points of connection there for you so you can pick anything and start a conversation. ROBERT: Yeah, I really like that. I'm looking at the website right now and I see inspiring talks and it doesn't look like they're all exactly technology specific so I like to see the city life and health. That's super interesting. I want to hear a little bit more about that. SARON: Sure. I wanted to pick topics that are generally not covered as much in tech. Also, I didn't want to start from the technology. I think that a lot of people our community are very excited about the possibilities of tech and what they can do with it. We hear a lot of stories of people who say, "You know, I see this problem in my neighborhood. I see this problem in my community. I see this problem at work and I think that code is a really great way to solve it and to put together these solutions that I have in my head." The way that we're working -- and that's another thing -- you are working very, very closely with all of our speakers and we're starting from the problem space. We're starting from the users and then we end up in a place where the technology becomes the solution. I think that when you start at that more common, human, empathetic element, I think you are much more likely to bring people in, who may not feel as comfortable with the tech because the way we've kind of organized and thought through stuff is focusing on the problems that all humans and all of us can relate to and then saying, "One way we can solve that and address that is through JavaScript or leaf letter," whatever that tool is. ROBERT: That sounds really cool. Is there going to be conference talks that are centered around like how to have proper work-life balance, for example to filling to that health or how I've configured my editor to help with... I don't know, like ergonomics for my hand because I was getting carpal tunnel on my left hand because I was using control too much, that kind of stuff. That sounds really cool. SARON: Yeah, that's actually a really good idea. That would make a really great talk but that's what Day 2 is for. The one thing that I've seen a lot in my own conference experience is I'll watch a talk, I'll listen to a talk and it'll be so inspiring and exciting. But then I go home and it's over and I'm back to my daily grind and all of that energy and positivity just kind of goes away. What we wanted to do was have that first day be focused on all these ideas and projects and the second day transition into what do we do about them. We have a block of workshops from things like crafting your portfolio, to doing really well on a technical interview so really getting your hands dirty and trying out some of those skills. Then we have handouts for people who come in and talk about how they contribute to open source. We do have one actually on work-life balance and learning to code and how you do that so making sure that we leave people with really practical advice and action items and next steps so they feel empowered to go out and be awesome developers. ROBERT: This is awesome. The conference is kind of structured almost like a workshop in a way to where like Day 1, you're going to come in and hear a bunch of things that are going to get you all riled up and inspired and then Day 2, it's like, "This is how we go and implement that." SARON: Yeah. I want to credit Duane O'Brien from PayPal who forced me to think very, very hard about the conference experience. When I first pitched him on this I said, "Hey, I want to do a conference for CodeNewbies," and I have kind of a disconnected list of topics that I wanted to talk about and do address and he said, "You really need to sit down and to think through what is the UX or the experience," like what's the user story. I go to CodeNewbie as a new developer so that I can structure it so it feels like one really cohesive experience. I sat down for many hours and really thought through, "How do I want people to feel? Where do I want them to get excited, to get to work, to be interactive and really participate?" Putting a lot of time into that has really shaped this conference. ROBERT: That is really cool. To be clear this conference is happening in April. SARON: Yep. April 21 and 22 in New York City. ROBERT: Awesome. I think this is really cool. Conferences are awesome but when it was my first conference ever, I just felt overwhelmed because you walk past the cliques of people -- I don't want to say cliques but you see the groups of people that have been there and done it and you're like, "How do I break into that?" If the conference is kind of filled with everybody like that, giving your first conference talk could be a lot easier, just like breaking into the community and talking to people could be a lot easier so I think this whole idea of running a conference for newbies is A+, honestly. SARON: Thank you. ROBERT: I wish this was around whenever I was within the very beginnings of my career. That's really cool. Is there anything, anybody on the outside can do to get involved and help like volunteer? SARON: We have a bunch of volunteer's spots to help out at the day of the conference. I'm really excited because a lot of people who've stepped up are people who aren't necessarily the right attendees. There are folks who have years of experience who just want to wait to join in and do something and help out. We have volunteer spots and I'm happy to include that in the show notes. I can send a link to that. Then we also have a section during our workshop. We have like an optional community coding session where if you don't want to do any specific workshops, you can just bring your laptop and just socialize and code and work on your own stuff. If anyone is interested in the New York City area in participating or just being like a floating, technical mentor of sorts, those are the two ways to get involve. ROBERT: That's really cool. JEFFREY: New Yorkers, get on that. ROBERT: One of the things that I hear you like to talk about and it kind of fits in perfectly with this is this Impostor Syndrome. I think this'll really help with Impostor Syndrome. One of the foundational goals for this is to help people come to grips with that and deal with it better, I guess or peel the onion back on what Impostor Syndrome is. JEFFREY: Let's start there, let's start with what is Impostor Syndrome. Why don't you give your best definition of it? SARON: Sure. I was really excited the very first time I heard about Impostor Syndrome, I think it was maybe four or five years ago and I said, "Oh, my God. That explains so much of my life," and when I really dug into it though, it was slightly different than the way that I initially understood it. The official academic definition of Impostor Syndrome is a way to describe the phenomenon where I have a lot of accomplishments, I'm ten years into my career, I have all these accolades, I'm the CTO senior or whatever of this and that, and even though I have all these very tangible, very real accomplishments and proof of how awesome I am, I have trouble internalizing that. I can't look at that and go, "Oh, I am awesome." I look at that and go, "Ah, that's cute but I'm still not quite there yet." I think that in our community, when we talk about Impostor Syndrome, that's not really what we mean. I think we are describing what happens to everyone when they're learning something for the first time where they say, "Oh, I'm not getting this as fast as I think I should. I know a little bit but I won't know nearly enough to belong." It's really the sense of belonging that we have classified as Impostor Syndrome. We actually had a guest, Alicia Liu on our podcast, I think it was about a year ago, talk about it and it was interesting because the first time that she blogged about it a few years ago, it went viral. Everyone's like, "Yeah, it's totally how I feel," and then she wrote another blog post a couple years later that said, "No, no, no, everybody. That's not what Impostor Syndrome is. You're not impostor. You're actually just a beginner, you're just new, you feel like you don't know what you're doing because you probably don't, which is fine." It's totally fine to not know what you're doing. But the definition of Impostor Syndrome for me has definitely shifted a little bit over the years. ROBERT: It's interesting that the textbook definition and what we kind of experience in the industry are at odds, in a way because the textbook words like you have this well-accomplished person that has done a lot and they don't feel like they're good enough for what they're doing. Then what we have is just like, everybody in the programming community is trying to fit in and they're always trying to learn new things and always feeling like they're not getting it fast enough. I think that's an industry-wide problem. JEFFREY: I kind of always feel like a beginner because everything's changing in our industry so fast, all the time so there's always this disconnect between, "Well, I may have done some things and I may have accomplished some things along the way but I'm still beginner whatever this new tech is," Actually, everyone else is too. It's nice to be reminded of the fact that to be around other engineers who are experiencing that too that we're all in this together and we're all new at this. Nobody is quite expert level at this particular tech stack or this particular way of thinking it. We're all figuring it out as a community. SARON: Yeah. One of my favorite talks that Scott Hanselman does is this really awesome talk about a little bit about his background in JavaScript and the evolution of JavaScript frameworks and he has this whole section where he goes through a list of this really impressive resume and all the stuff that he knows how to do and he deeply understands. But at the end of it he goes, "All of that is completely irrelevant because of Heroku." [Laughter] SARON: None of that matters. ROBERT: "Now, I need to go learn something else." SARON: Yeah, exactly. For me sitting in the audience I was like, "Yes! Heroku," because I'm thinking, "If that's how this guy feels, he's been doing it for so much longer than I have, I have a chance at this." ROBERT: I feel like I send the 'I don't know what I'm doing dog' meme to someone, at least once a week. At least. [Laughter] ROBERT: I feel this often. I think it can be interpreted to the world is changing so much. But I think it's a little different for people that are experienced in the industry versus people that feel who are brand new because, I think when you're brand new, it feels so new and I don't know... uninviting maybe for the Impostor Syndrome? Whereas you get older -- not older -- you get more experience and you become one with the Impostor Syndrome like somebody asked you to do something that you don't know and you're like, "Urgh! Yeah, sure. I'll do it. I'll figure it out somehow," and then go on your way but you still feel that feeling. But when you're a newbie, it's overwhelming almost. Do you know any tactics that kind of help that? I actually have no clue besides like pairing and trying to bring this new person into the programming world and telling them like, "This is kind of how it is." SARON: I think that community is a great way to solve that. When I first learned to code, I taught myself for a few months. I did all the free and relatively cheap online resources and it was so frustrating because it was my first time being in a world where I was in a semi-permanent state of failure until something finally worked and then I got to celebrate that for two seconds. Then we moved on to the next feature, the next bug, the next whatever. Being in this cycle, this vicious cycle of constant failure and having so little time spent, actually enjoying the wins was so different. It was really hard not to internalize that. Especially in my world where my family has no idea what coding is. They still don't really get what I do. I said, "It has something to do with computers and podcasting." My mom is actually going to come up for Codeland and I'm so excited because she can finally see what it is that I'm doing all day. ROBERT: That is awesome. SARON: Yeah. She texted me and she's like, "Yeah, let's bring your family and your friends and your dad can come," and I'm like, "Mom, that's not what this is." [Laughter] SARON: But yeah, your family doesn't really get what you're doing, your friends. If you're not coming from the tech world, if you're transitioning, they have no idea what you're doing so it's super, super lonely and it's really hard to explain. When I transitioned from that into enrolling in a boot camp and doing that for three months, all of a sudden, I had 40, 45 people who were with me every single day for eight to twelve hours at times, who knew exactly what I was going through and who understood everything that sucked about it and everything that was awesome about it. Just knowing that it wasn't me -- I was not the problem, the code was the problem and the journey is the problem -- just changed everything and that's really why I started CodeNewbie to say coding boot camps can be an awesome experience but for a lot of people, they're not accessible. It's three months at least without a job, it's between $12,000 and $17,000 and because there's not always a credit programs, you can't necessarily get like a student loan the way you can for a college. For a lot of reasons, there are really high barriers. I wanted to make it a little bit easier for people to find a support system who are going on that journey. That's what really started CodeNewbie and we did that through the CodeNewbie Twitter chats that we do every Wednesday at 9PM Eastern Time and we do that every single week for an hour, really as an excuse to say, "We're all going to hang out at this place." As long as you have an internet connection, you can join and find friends and find people who know exactly where you're going through and that's really been, for me a huge, huge help. JEFFREY: What kinds of positive experiences and stories have come out of that community? Have you seen actual great change happened through that? SARON: Yeah, definitely. We've had people get internships, we've had people get jobs, we've had people just find out that other people in their neighborhood are also learning to code. I've seen a lot of like, "I see you're in Portland. I'm in Portland too. Oh, my God." A lot of that and then they meet up in person and they pair. We've seen a lot of mentors and mentees pair up through CodeNewbie so it's just been a really great jumping off point for a lot of folks to find those connections and opportunities that run with it. JEFFREY: Through Codeland and through CodeNewbie, one of the goals is to connect junior engineers into their community. What kinds of roles and ways to connect do junior engineers have through the opportunities like this? SARON: A lot of folks are finding internships and apprenticeships and some junior roles. I think what I'm really excited for with our community is the growing number of junior positions that are popping up. If you see the list of the companies, GitHub is the one, I think of top of mine who have started creating like a hybrid coding and community roles for junior people to get their foot in the door, to start to get some real experience under their belt before going for something a little bit more coding, have a little more full time. I think at GitHub they're calling it like a... Oh, I'm going to mess it up. It's not a community manager but it's something around like a community manager position. What I really like about these hybrid roles is the fact that a lot of folks in our community who are transitioning into code have very, very valid, very awesome real world job experience. It's just not technical experience. They've done a lot of sales, they've done some design, they've done marketing, they've done a lot of community building, they've done a lot of customer service, really empathy-centric jobs and roles. With these hybrid positions, they're able to leverage that background a lot for those really awesome communication skills, while also getting a little bit more comfortable in transitioning into a more code-heavy, tech-related position. One thing that I hope happens and frankly, I think just needs to happen, given the high demand for developers is more of these hybrid roles, more of these entry-level junior developer roles. I know that there are apprenticeships and internships that have always existed for computer science degree students that are now transitioning and being a little bit more open to career transitioners as well as people who are students. I'm definitely seeing a lot of shifts in the industry and I hope to see more of that. I hope that more of these awesome people who are really just so excited and so passionate and eyes wide open and very teachable. I think it's one of the things that senior people are really excited about working with our community is knowing that we are very open to being taught, we don't have best practices, we don't have bad habits yet so we're really moldable in that way so I'm really hoping to see that trend to continue where there are more learning positions and also more full time entry-level positions in software. JEFFREY: That's excellent. I hadn't heard of many examples of the kind of hybrid role but I'm thinking back to previous job I had where there was a very large customer service department and several members of that team are like, "We want to start developing." Like they're playing around with code and there definitely could have been an opportunity for them to maybe 75% of their job is the customer service work and what they've been trained to do. Then the other part of their job is like, "Let's start leveling you up and let's start teaching you some things and giving you an opportunity to play and learn." That's an awesome opportunity. SARON: Yeah and that's the thing too is a lot of this is already happening on informal basis. I've heard definitely my fair share of stories and we've actually interviewed people in the podcast who said, "I started in customer service. I started in accounting. I started in this totally unrelated part of my company and then I raise my hand and I said, 'I want this coding stuff.' I started shadowing developers and just going to hang around the engineering team enough that they eventually let me do some documentation work or look at some bugs. Then I slowly transition into a developer position." A lot of this has been happening very organically but I think the more we can systematize it, the more we can formalize that process, the more accessible it becomes for people who just didn't know that they could raise their hand and create those opportunities for themselves. I think the more people do it and the more we can really put rules and structure around programs like that, the more we can bring more people in. ROBERT: That sounds really cool. I have a question. We know what the good situation would be for a newbie to get into. Are there any things that you could advise people that might be looking for the first dev job like anything that are red flags to avoid? SARON: There are so many red flags. That's a good one -- ROBERT: Because I wish I had this when I was starting out. SARON: Yeah. I think one of the hardest parts about being a junior person is just not knowing what it means to be a good developer. It's one of those things when senior people tweet and write blog posts and things about how incompetent they feel a lot of the times and how they feel like they just don't know enough. On the one side, it's really comforting and it's validating but on the other side, for me at least, it makes me panic a little bit because I'm thinking, "Holy crap. If you don't feel like you're good, then how would I ever be good? How would I even know what good is if I'm working towards that?" I think one of the things to look out for is a company that actually has put some thought into what it means to be a good developer? What are best practices? I know this is super subjective and a lot of times it's just based on the product of the company and the values of that space but I think for a junior developer, if you walk into a place where people are so busy running and trying to catch up or trying to keep up that they aren't able to look back and go, "Oh, you're on the right path," or "You're making progress," it's going to be, at the very least frustrating for you and worst case scenario, it'll be impossible for you to grow and really develop and progress in a way that's going to make you happy and fulfilled for your career. I think one of the red flags is -- not so much of a red flag, it's more of one of things to look out for are companies that have tech blogs, that have a podcast, that have really good documentation, that have style guides, that have a mentorship programs, that do brown bag lunches, things like that really show that the companies put a lot of thought into what they value on their engineering team and are much more likely to help you grow in your career. JEFFREY: So that it's more likely that they will have room for you to grow instead of, "Hey, we need some cheap labor." ROBERT: Yeah, exactly and that's the thing. As career transitioners, people who are not used to tech salaries, it's super easy to undervalue yourself. It's very, very easy to say, "I'm just coming from a job that paid $25,000 or $30,000 a year. Yeah, I'll take a $40,000 dev job. That's so much better than what I'm doing." It's like a 50% increase. It's really easy to sell yourself short. I think when you look at a company and see the structure and the thought they put into growth, I think they're much more likely to really invest in you, as opposed to taking advantage of the fact that you're just more than happy to be there. ROBERT: Yeah, I love that. One of the things that Brandon told me when I first started here and I was worried about failing was we didn't invest in Rob the developer, we invested in Rob the person. That was something that really stuck with me that helped like it harkens back to the Impostor Syndrome, it definitely helped with me except being that failures will happen and if I do fail, it's okay because I'm in a space that allows that. Maybe something that a newbie would look out for is software teams that have good process, not shipping broken tests to production or things like that. But also managers that are there to help you and to be there for you and take you on one-on-ones and give you good feedback. I guess, it really just boils down to having a good support structure. SARON: That's the kind of thing that can be hard to evaluate until you're actually there on the team. When you're in the interview, it's like dating. You put on your best outfit, you put on some lipstick, you get your hair done and who knows what you really look like on Wednesday night at midnight, right? [Laughter] JEFFREY: That's when I made my best. I don't know about you. [Laughter] SARON: Some questions that have really helped me out or asking how do you support more junior people. You specifically asking like, "Do you have an education stipend? Do you have a conference stipend? Do you have books? What are the perks?" A lot of times, it can be really straightforward to evaluate. How much they care about your development as a person, if you just look at the perks that they offer? I really love when there is an education thing, when there is a book thing, when they pay for you to go to conferences because that really tells me that you care, not just about getting the most out of my time with you but you really care about my development as a person, as a developer. Those are really good signs. Then I think there are things like when you brought up testing -- that was one of my basic requirements when I was interviewing a few years ago -- and was saying like, "Do you have tests? Why don't you have tests, if you don't?" I've had a lot of answers and they were like, "We didn't really see the point," or, "We just don't do that here." Those are not good reasons to not have test. ROBERT: No. Those are very bad. If you could see the faces we just made, we're like, "Ahhh! No!" Especially for a newbie jumping in, that is your safety net because you read the assertions and you can understand what the code is supposed to do. SARON: Yeah. Same thing with documentation like how much time they spend on documentation? If the answer is, "We don't do that," then the whys are what really become important. If the why is simply, "We're stretched too thin. We're trying to fix that by hiring people like you where we can now focus on documentation," that's a much better answer than, "Ahh! We just don't really need it. We don't see the point." I think when we can ask the people who are looking for jobs, when we can ask the companies more why questions and really get a sense of the way they make their decisions, I think that can be very telling in what type of environment you're getting into. JEFFREY: I add in there. One more thing for junior engineers to look for is vulnerability from future employers that they're willing to own up to their mistakes and talk about their failures. You know that you as a junior person, I also have the ability to do that. You're going to fail. It's going to happen. But if it's an accepted thing and a thing that the company knows how to deal with and talk about and embrace and turn around into successes, then that's a very good thing. All right, thanks for joining us, Saron. Everyone check out CodelandConf.com. That's coming up in April. That's all for The Frontside Podcast. Thanks for joining us.
Marcy Sutton: @marcysutton | marcysutton.com | Deque Systems Show Notes: 01:07 - Deque Systems 01:54 - Accessibility Tool Integration and Testing 05:26 - Configuration and Success Criteria 07:04 - What is accessibility? WCAG 09:22 - Spurring Adoption of Accessibility 12:09 - The Accessibility Matrix 16:56 - Accessibility-First Development 18:12 - WCAG and ARIA Roles 24:57 - Test Automation vs Human Interaction 28:56 - Empathy Building 30:45 - Porting to the Web 35:57 - Accessibility in Single-page Apps and Focus Management Resources: axe-core aXe aXe Developer Tools WCAG (Web Content Accessibility Guidelines) Web Accessibility for Designers WAI-ARIA Authoring Practices 1.1 First rule of ARIA use Access Works: Usability and Accessibility Training Marcy Sutton: Notes On Client-Rendered Accessibility a11y on Slack Transcript: CHARLES: Hello everybody. Welcome to The Frontside Podcast Episode 61. My name is Charles Lowell. I'm a developer here at The Frontside. With me also is Mr Robert De Luca, a developer at The Frontside and today we have with us, Marcy Sutton who is going to be talking with us a little bit about accessibility, both in the large and the small. Welcome, Marcy. MARCY: Good morning, everyone. Happy to be here. CHARLES: I know, I understand you're actually calling us from the parking lot of a ski area. MARCY: I am at the legendary Mount Baker ski area outside of Bellingham, Washington where we have the winter that is just going on and on and on and getting after it on the last few days of my birthday vacation. ROBERT: Oh, wait. Happy birthday. CHARLES: Yeah, happy birthday. ROBERT: Happy belated or happy birthday. MARCY: Yeah, it was Sunday so still on that shiny birthday week. CHARLES: Well, thank you for getting with us on your vacation and on your birthday but doing a little bit of work, you actually work at Deque Labs. What is it that you guys do over there and what's your particular area of interest and work there? MARCY: Deque is an accessibility company. We have people who work on products and services for accessibility. We help people avoid lawsuits and make their websites and mobile apps more accessible to people with disabilities. My slice of that work is on the product team, where I work on browser extensions, APIs for developers. Basically to make it so you don't have to write every single accessibility tool or test yourself. You can pull in these APIs and get some of that experience that Deque has built up for years and years and years, which was part of the reason I went to work there was to learn from them. We make tools that make it easy for you to make use of that knowledge in your applications. ROBERT: That's awesome. It's like a base JavaScript library that can be ported anywhere, like to browser extensions. I know we use it in Ember accessibility testing. That's really cool. That's where I've gone for the way I write JavaScript. It's in a base library so everybody can use it and it's even more awesome that it's testing and like wrapping tooling around accessibility because I know a lot of developer-minded people want to see like a failed built. CHARLES: Yes, what does that experience look like? I mean, coming from someone who's never even heard of these tools, how would I integrate them into my project and what would change about my workflow? What information would it surface? MARCY: The best place and the reason I work on these products is that I saw projects go out the door broken a lot of times, when working in agencies or maybe testing isn't part of your methodology. Personally in my career, I just knew there had to be a better way. I got into software testing and the more I learned about it, the more I thought that it was sustainable, you could pull in other APIs to help you write better tests. I went to work on axe-core, which is the JavaScript library that we've talked about a second ago. That really is bottling up all of these accessibility tests that you can automate some of the accessibility checks for things like if your HTML markup is in a good state and you're using attributes correctly. Basically, saving you from having to write all of those little microtests, some of which can be sort of complicated. It's all about getting test coverage for the automated things that we can actually test for. CHARLES: You described a pretty wide-ranging coverage. How do you go about actually implementing that into your CI process? Do you just install the axe-core? Do you have to load up your browser and then pointed it out? What does that look like? MARCY: Ideally, you would already have a test suite and you could just pull in the test harness. There's all different versions of aXe. There's versions in JavaScript and in Node. The core thing that you need to test is get your app running in a browser, whether it's a headless browser or could be a mounted browser but we need those actual DOM browser APIs to check things like color contrast. We need to be sort of coupled to the DOMs so that we can run our full set of tests, which is a distinction from, say some shallow rendering that you might be doing in React testing or something like that. For accessibility tests, we need an actual DOM so you could get axe-core on npm and then pull it into your project and then you basically either require or import it, depending on what your stack looks like in JavaScript. Then you have access to all of these tests. It's pretty useful since our ecosystem has evolved to cover things like npm. I've found that it works pretty well. ROBERT: That is pretty neat. You require it into your test and then you visit a page that's fully rendered and then you do aXe check, like you call a method that runs all these checks? MARCY: Exactly. You would call axe.run and then you configure it to run, either specific tests or just one test. One of the tricks that has been helpful to know is that if you disable the color contrast rule, you don't need quite as many of the DOM APIs so it will run faster in things like JSDOM, which doesn't implement the entire browser APIs. But you could call axe.run, either in your unit tests or more likely it would be in your integration tests because you'd already have a browser instance, either through Selenium-WebDriver or karma-chrome-launcher or something like that. Then you basically call axe.run, passing a callback function and then it will return to you at set of JSON results and then you can do things with those. ROBERT: When you call run, can you pass options of what you want to check? Can you filter out things that you know might -- because I imagine like if you put this into an existing app that's been going for a while, I imagine you're going to get a bunch of fails and it might be overwhelming. Is there a way to peel a back like an onion and start working at it that way? MARCY: Yes. You can get pretty specific with our API. The GitHub for axe-core has our entire API configuration. You can get pretty specific. You can filter by tags. I imagined we're going to talk a little bit more about what WCAG is but there's a set of standards that you can break accessibility down into things that you can actually assert that they are either accessible or not. There's all different kinds of what we call success criteria. All of our rules are mapped to these actual guidelines and standards because that means that our tests are helping you solve things that are actually helpful so you could filter by the different levels. Maybe you want to configure it with custom rules. We have some additional products for that. You can get pretty specific with what you want it to run. ROBERT: It's extensible too so you can add your own stuff. MARCY: You can and we do a lot of work with some of our clients to actually help them write custom roles so that's a service that we offer. But the API is pretty configurable on the JavaScript side so you can do quite a bit of configuring on your own as well, which is cool. ROBERT: That is pretty awesome. You alluded to WCAG, I guess now we know how you can integrate a testing library into your JavaScript apps, let's take a step back a little bit and what exactly is accessibility and then you can start explaining WCAG because WCAG is a very big document that tells you how to go and be accessible. CHARLES: I assume WCAG is some acronym? MARCY: It is. Peeling that back a little bit to what is accessibility. I'm more on the digital side. There is physical accessibility as well for spaces. But when we're talking about digital accessibility, we're talking about making apps and websites that work for people with a broad range of abilities. Say, you had color blindness or a low vision or you're fully blind, you would need to be able to zoom in, you need high-contrast colors, you might use a screen reader if you're blind. But then there's other categories. People might actually fall into more than one category including motor disabilities, where maybe you can't use a mouse and you have to use a keyboard only or a keyboard with one button, which is how we think about a switch control --that's another device. You might be deaf or hard of hearing and need transcripts or close captions so any audio or video content needs an alternative of some kind. Then there's cognitive disabilities where people have learning disabilities. Maybe the language used on a website is too vague or too marketing copy speak and we need to simplify, people with traumatic brain injury like Stephen Hawking has ALS. I discovered at some point in my career that I could actually make the web a better place by supporting all different kinds of people. That's really what it's about for me is doing good craftsmanship and making sure that you're actually making things as accessible as you can. The WCAG thing that we mentioned, it stands for Web Content Accessibility Guidelines. It's just that. It's a set of guidelines, sort of a map to help you get there. You have to actually interpret those guidelines and put in the work to do it. The guideline is just a guideline but it gives us a really good roadmap of how to implement all of these different areas of accessibility. CHARLES: I actually had a question and this is a little bit harkening back to the discussion about the axe-core but also kind of straddling. How do you spur adoption, both the technology and the value inside of your development team? You know, we definitely make our web apps as accessible as we can because we have Rob on the team. But for teams that don't have Rob, how do you spurred option? How do you pitch it to your team and to your management structure? Like testing. Testing used to be controversial. I think in some pockets, it still is but it was something that you had to pitch or agile methodologies was something that you had to pitch. Now it's kind of accepted. It's a core-value of development, I think. I hope. MARCY: Definitely more so. I agree. CHARLES: Do you see a future where making applications accessible is just a tenet of development in the modern era and how do we get to that point? How do we pitch our teams to adopt that value? MARCY: Part of what I'm trying to do is meet developers where they're at and make tools that make it really easy and free to integrate things so it doesn't cost you anything to npm install a library and pull it in your project or to use a free browser extension. What we're trying to do is really help developers get there by lowering the barriers, just kind of a funny way to put it because that's what we're doing with accessibility is removing barriers for people that get access to things. I'm pretty optimistic about it. We talked a lot in the accessibility world about education is really needed because often, it's just that people don't know about it. I've made it my mission to spread the word as much as possible by doing talks and blog posts and just trying to get as many people on board as possible, instead of making them feel bad about it like, "Oh, you don't know about this? You're terrible." ROBERT: Oh man, you're speaking to me. MARCY: "-- You can do this." I try to bring people along and make them feel welcome because it's not really a fun experience to be like, "Oh you're bad because you didn't do this. You don't think about this thing." That's what I try to do. ROBERT: One of my first experiences in accessibility was like somebody giving me that moral argument like, "You're ruining people's lives. They can't do things on their computer." I just remember the response I had and it wasn't that, "Oh, you're right. I should go make this accessible. It was more of like I had a flight or fight response. I start to justify the reasons I didn't do and that wasn't a good experience so the way you put it, like meet the developers where they're at, I love that because that's how I've been operating too. I think accessibility is just another engineering problem and it can be an engineering problem that would be fun to solve. The accessibility matrix gets really hard and hairy as you get into it like -- CHARLES: Oops! Jargon alert! What is the accessibility matrix? Does the accessibility matrix has Neo? ROBERT: The different AT combos and since my experience stems from screen readers -- MARCY: Assistive technologies? ROBERT: Yeah, assistive technologies -- I'm doing a poor job here -- Basically, you have three levels that you work with here. It's the operating system, the type of assistive technology and if we're talking about the web, it's the browser. You could have like the matrix, the beaten path is MacOS, VoiceOver and Safari. That's going to be your matrix. Then on Windows, it could be Windows JAWS and Internet Explorer or Windows NVDA, which is another screen reader on Windows. JAWS is also a screen reader. The browser for NVDA would be Firefox. Then it can just fork in any of those different combinations that you could possibly imagine that makes it hard to debug for. But that's why I think this is a cool programming problem is because we can build awesome tools to help us do this and test for it like aXe. MARCY: Yeah. I would also argue that it's almost even more of a design problem. It's part of the additional challenges that we have to get our design friends and colleagues on board as well because the more that they are thinking about it before they handed off to us, the less we're going to be caught in these situations where we have to make it work in one browser and assistive technology but then it's broken somewhere else because we're trying to use really experimental APIs or we're just trying to do things differently for the mouse versus the keyboard. I can tell you that could be really difficult. The more we're thinking about making things straightforward and intuitive from the design side, not to say the easier job is going to be but the more successful, I think we can be as a team because it's more than just developments responsibility. There's good resources for designers as well, like a web accessibility for designers. If you just Google that, there's a great checklist from WebAIM. I think it's helpful to make it inclusive to people that we work with, not just in the development side because we really want them to set us up for success or else were really just fixing problems that not at their core. You know what I mean? ROBERT: Yeah, as they come down the pipe, we're kind of dealing with them instead of getting ahead of it. CHARLES: That reminds me actually of an experience that I had, a pair programming with Rob, probably about a year ago as we were making an interaction model for a select box. This was for a custom client. We actually stripped it away and we're like, "Let's just focus on what is the state machine behind this thing," so we drew it out on the board and it turned out that we were really just capturing the interaction apart from any rendering so we had a very strong model. With each state's transition, we were able to basically radiate that information with a screen reader in this case. But it was actually very trivial to do because we've actually forgotten about the DOM, forgotten about the fact that we were actually chasing a visual interaction and like I said, what is the actual user interaction? What is the information coming in and coming out? It turned out once we kind of flush that out and have developed that, hanging the interface on that skeleton was very easy and we could do it in multiple media. It feels like a similar concept where if your designers are very upfront about really exploring the information architecture of an application then being able to represent that information architecture in multiple forms becomes much easier because the joints and beams are very, very clear and they aren't bound to a particular form of representation. MARCY: Yeah, I think it a way that's definitely true. One challenge I would issue for this part of prototyping would be to consider all of the user inputs. Make sure that you're considering a keyboard user hitting an escape key to close that select or maybe they're using a screen reader on a touch device and like the single finger swipe, it's already allocated when that screen reader is running so if you have an interface that was only swipe left or right and there were no other affordances like buttons that you could actually activate, that would be an unusable interface to a mobile screen reader user. What really helps to make that information architecture stand up or hold out when you're developing it, like stay true to your vision through the process is making sure that you're considering all of those user inputs. Sometimes, developers aren't thinking about keyboard user so they're not thinking about focus styles, really trying to activate it another way. I do think that's a helpful exercise. ROBERT: Yeah, and to be fair at Frontend developers, we already have a lot to think about. It's just a lot to juggle so I can understand that's why we have tools like aXe. But what Charles is talking about, I think is actually kind of neat is we were experimenting with accessibility-first development so the people do TDD -- test driven development -- and I was trying to see if we could build something. I wanted to see if what we're writing would yield better software if we did it with an accessibility in mind from the outset. I think that's true. It was a more accessible typeahead. It was better, more well-defined user experience around the typeahead and it was because we thought about accessibility and all of the different edge cases. We really boil it down to the core problem. CHARLES: Right. We were driving it first with keys and nonstandard interaction methods. It meant that we actually got more clear interaction model lying underneath. It was decoupled from the actions that drove it completely because we had to support too from the get go. ROBERT: I thought that was neat. CHARLES: Yeah that was a fun exercise. You know, we should have blog about that because I think that actually results in better software. ROBERT: Yeah, I had a conference talk brewing in there somewhere. Just never got around to it. Talking about the web accessibility guidelines. There's different levels to it. Now, you have an A, AA, and AAA. What do those mean and where does that play into ARIA roles and stuff? MARCY: There's WCAG 2.0 and actually 2.1 is an update that they're working on right now but WCAG 2.0 is -- ROBERT: Oh, yeah. I saw that. MARCY: Yeah, there's some new stuff coming out. It's mainly for low-vision users and mobile touch things. But the WCAG 2.0 is the blessed standard that we're working with right now and the levels are different conformance levels. There's different things that you can achieve with A, AA, or AAA. Most people go for AA. AAA is pretty restrictive in what you can do and if you make it support WCAG 2.0 AA, it doesn't necessarily mean it's going to be intuitive to use. You could make it technically conformant but it won't necessarily be that beautiful or accessible. There's a bit of a dance that we have to do around that to meet these guidelines but do them in an intentional way so that we're actually making something usable. I think that goes back to that idea of craftsmanship and caring about your user to know if this actually going to work for them. There's a number of success criteria in WCAG that are broken up into different categories. There's perceivable, operable, understandable and robust. Within each of those, there's all kinds of different checkpoints that you can look at to inform how do I make this keyboard accessible. There's all kinds of really helpful documentation. That's the WCAG guidelines and within each of those, there are a number of different ways that you can code something. As I'm sure you know, there are infinite ways to code the same thing, pretty much and part of what that cover is techniques for making things accessible. They'll tell you all about Native HTML and what tools you can use within that standard. Then there's this other standard called WAI-ARIA and that's the Web Accessibility Initiative – Accessible Rich Internet Applications. That was originally created back in the day when we didn't have as many browser APIs and we didn't have great ways to expose accessibility information to screen readers. They made this API in browsers that implemented that you can actually bolt on some of the same information that you get from HTML. It's helpful if you're writing as VG or XML, where you just don't have those built in semantics so we have things ARIA role states and properties. You may have seen things like 'role="button"' or 'role="main"' or 'role="search"'. You might see that somewhere and that is just exposing programmatically bolting on a role to any element. You could put on 'div role="button"' and there's a little more that goes into that to make it an accessible button. Anytime we mentioned -- ROBERT: The tab index. MARCY: Yeah, the tab index. You have to make sure you have a keyboard event but that would be a programmatic way to create a button element. You should always start with the native button element because you get all that stuff for free but ARIA gives us an API to actually implement accessibility information. You'll see those techniques come up a lot in WCAG of how you can accomplish the same thing multiple ways. Those are some of the things that we test for in our animated tests in aXe. We check to make sure that you've only use roles that are actual roles because there is a set standard of them. We check to make sure that all of the ARIA values that you might use are actually allowed for that. Sometimes, if you're using 'role="list"' for whatever reason, you can't use a real list. It is possible to create a list with ARIA but if you had the wrong child role or something, that's a pretty easy thing that we can flag with aXe so we're sort of saving you from yourself. It helps me sometimes when I get a role wrong because we're human and we do make mistakes. There's a lot of things to remember so that's pretty key technique that aXe will help you with. That's making sure that your ARIAs used correctly because it is pretty easy -- ROBERT: That's really nice. MARCY: -- to get it wrong, to be honest. ROBERT: Yes. I've definitely done that. Being through the spec document is not the most fun. Trying to read the standards language is a little bit complicated so having a tool like aXe is really helpful for me to pick my way through it like, "aXe will tell me that this is wrong," so it narrows the problem set down for me where I can go and look at the standard and kind of tunnel vision in on that one, rather than get overwhelmed looking at that whole standard documents like there's so much here. MARCY: Yes, there is. One thing that might help with the is the initiative that people are working on called the ARIA Practices Guide, the ARIA Authoring Practices and it sort of breaks down these techniques into what is the keyboard navigation model for that component or it will break it into known patterns. This is really helpful also for designers to know what are some known patterns and how can I implement accessibly. They can really help you jumpstart to using those patterns with this more easily digestible information to tell you how to do it correctly. That has come up in the last few years that I found really useful. ROBERT: That's awesome. I think I've seen this. Is it where they tell you like, "If you're going to reimplement a checkbox, here's how you would do with ARIA?" MARCY: Exactly. I've dropped a link in the chat so we'll expose that in the show notes, I'm sure. There's more resources out there now that are really helpful. There's another one called ARIA in HTML and that one is also from the W3C and it's a note on using ARIA and HTML. That one I found to be very useful as well because they tell you this first, second, third, fourth, and fifth rules of ARIA use. The first rule of ARIA use is if you can use a Native HTML element or attribute, you should absolutely use the built-in one first. That's a big -- ROBERT: Yeah, let's stop reinventing. MARCY: Yeah, you know it's tempting because you can create these custom elements and try to bolt on ARIA but the reality is that if you're trying to make it really backwards compatible, it's just so much easier to support the native things. There is an assisted technology called Dragon NaturallySpeaking, that's a dictation method and they didn't support ARIA until 2014 so you can easily imagine some of your user base with an older assistive technology. That might be completely broken for them so that's why we really push using the native things first just because of the better support on every platform. CHARLES: I have a question about the test automation. We've been talking a lot about aXe in the way that you can do this. Did I get it right? Are my roles correct? And all these things. What's an example of something that you just can't test for in an automated fashion? It just requires human interaction just to perceive it. I mean, this would be right now, kind of in the visual sphere, the state of automation for testing like did I break the layout still requires a human. What are examples of that in terms of accessible interface where you just do the things that you have to be on the lookout for that you can't cover with automation right now? MARCY: I think context and content are some of the most difficult like writing good all text. That can be really challenging just because what makes a good alt for an image and that supposed to be a text alternative to say, "This is something useful," and Facebook has solved that by using artificial intelligence to dynamically guess what's in an image. A blind colleague of mine that works there has written about and he said he always felt left out when he would read his news feed and someone would be talking about their first love or some kind of vague status update. With this new feature, it could say, "Oh, this image that they're talking about their love is a pepperoni pizza," or something where -- [Laughter] MARCY: It's really missing the context so they've started to do automatic all text. For us doing accessibility checks, we try to keep our solution as light weight as possible and without false positives. We can check whether you have an all attribute missing like you don't even have the alt attribute at all which means that the file name would be read in the screen reader which is often terrible, depending on what your filenames are so we can check if that's missing but we can't really tell you what would make a better alt attribute, if you already have one. That's one is a bit difficult. There's another one that we're working on right now with color contrast where we can't really tell if you have a background image that's behind some text. If it has multiple pixel color values in it, even if we could read those colors, it gets really hard for us to say whether text meets color contrast when it's over an image for multiple reasons. That one's a bit tricky. I think there are some other examples throughout WCAG that we can only automate. Depending on which rule set you're using, we estimate between 30% to 40% of issues, we can actually catch with automated tests so there is quite a bit that we still need humans for. But however, I think some of these really basic ones that we can check to help you do those easy wins so that you're not getting messed up by using the attribute Aria-role when it's just role. Those kind of things. It's like we're helping you so you can save that time for those more complex task that might require a human. There's definitely no substitute for trying to use the keyboard to make sure that your app is usable from the keyboard. Test it with a screen reader, you can find people in the web accessibility Slack that might be willing to help you test it, if you're extra nice or maybe you can give them a gift card or something. There is an organization called Knowbility and they have this thing called Access Works where if you need to find a user with a disability to deduce a user testing for you because that's a great thing to do. It's very important. They can help you, as a business think up with someone who can test your app. I would definitely check out Access Works. That's really what's the missing piece. As a developer, I'm okay using a screen reader after doing accessibility for a few years but it's not my primary way of navigating so it's really helpful to have real users to test your app and that's a good way to find someone to actually test it. That sort of makes up the rest so you can get that really valuable feedback. ROBERT: I'm a firm believer in testing but also, I really do think a lot of accessibility work is just kind of empathy building and the way you do that is just sit down and actually use this assistive tech that these people will be using. In that way, you can understand as you're building it, how somebody might move their screen or cursor over the top of this and you can start to think about what the screen will read off and stuff like that. I think using a screen reader as a developer is powerful. But I agree, it will never reach the level like my mom that has been using a screen reader for seven years now. I'll never be able to use it as well as she does. It actually putting in the hands of people that do this day-to-day and live this. A far better idea and that goes beyond accessibility too. You want to user test all your apps anyway. MARCY: Yeah, exactly. I think that should be a big thing that we demand just from our organizations like how you were saying it was kind of controversial. I feel like user testing is another flavor of that where we have a bit of emotional tide of these things that we create and we want them to be perfect in the way that we have envisioned but not everyone interacts with things the same and it's really humbling to watch someone use something that you made and have it completely not get it at all. I think that's a really valuable experience. I've watched my mom or my dad or people try to use something that we assume is really intuitive and it's just not. We look at the web all day -- day-in and day-out being professionals and it's really helpful to show it to people who maybe aren't as fluent, aren't digital natives like that. CHARLES: We talked about actual user testing. We talked about the checking where you render your application and you run a set of checks. Do you have any experience with actually -- this is kind of an idea that just occurred to me, although we did a little bit of it when we were doing native applications -- using the accessible interfaces to actually drive your acceptance tests? Is that anything that you have experience with? Because it seems like on the face of it, you've got this assistive technology that surfaces the key levers of your application so is it a good idea to grab those levers from within your test case? Within your acceptance test to manipulate your application and thereby kind of front load your accessibility because in order to verify it, you must have those levers in place. MARCY: Yeah, from understanding your question correctly, you're wanting to just run your tests using accessibility features? CHARLES: Yes. For example, when we write our acceptance tests in our application, what we do is as part of setting them up, say we want to click here and I want to enter this text into this text box and I want to move this over here and that implies actually dispatching mouse events, keyboard events and then also being able to find the elements in the DOM that I want to dispatch those events on so we're kind of doing it in, I think we use CSS selectors to find them and then we use the jQuery event interface to actually create the events and send them to those elements. But it seems that part of ARIA roles or something else is like identifying the role that this element has in your application and basically saying, "For my test cases, I'm going to use these roles and I'm going to use these things and I'm going to use different access methods, keyboard mouse or whatever to manipulate my interface." Does that makes sense? MARCY: Yeah. ROBERT: I think this makes sense in the native world where in order to get the label, I think you have to use the accessibility label. CHARLES: They do that when you're functionally testing iOS apps so why not -- ROBERT: Does it port to the web, basically. CHARLES: Yeah, does that port to the web? MARCY: It does -- CHARLES: It's really long, way of saying that, I guess. Sorry you all. [Laughter] MARCY: No, and I wanted to clarify because I was wondering if you're talking about driving it with actual assistive technology, which we can't quite yet. We don't have any tools for that. But yes, you should -- ROBERT: We should explore that in Ember. MARCY: Yeah, we just don't have the hooks for that. Maybe Python and NVDAs, since it's open source, maybe AppleScripts. CHARLES: What would that look like to drive it with assistive technologies? ROBERT: We talked to some people at Apple with Ember accessibility team and if I remember correctly, we could only drive VoiceOver on MacOS with AppleScripts but there was no way to do it in any other way so you only could do it with VoiceOver on MacOS and that was still kind of murky. MARCY: Yeah, exactly. The idea would be, rather than just testing the browser, we would actually be able to run a simulator programmatically, to know is the screen reader actually exposing this information. Because a lot of it is there are things that get lost in translation, sometimes where we're following best practices and standards because we have this agreement that people who implement browsers and screen readers are going to follow those standards. It's definitely is not always smooth sailing with that. But there's sort of this disconnect between the browser testing and then actually firing it up in the screen reader and make sure it worked. We take that on faith a lot of time, which is getting back to your original question, why it's so valuable to have tests that use these interaction methods. Absolutely, either in your unit tests or even in your integration test, they can live in either place to have tests that assert and closes with the escape key or it operates with the enter key or whatever the user interaction should be, that we have tests that assert that because that way, if you leave your team or heaven forbid, you got hit by a bus or something, you have a test coverage that makes a contract of how this component should work and you have accessibility support, actually built into your test infrastructure. That is super valuable. At least we know that that part of it is there. We know we can drive it from the keyboard, which is how a lot of screen readers work. They operate on top of the keyboard so we can get really far just by having basic keyboard support. Then, if you pull in an API like axe-core, you can have it tell you if you were using ARIA wrong or something. It's sort of a combination of both where those feature tests in your actual project where you're writing something that it works with the escape key, those are custom tests for your application. I find that they're really valuable just to have in there, especially if you work on a component library or something reusable so that everybody who is contributing knows how this thing is supposed to work. I think that is really valuable. ROBERT: Absolutely. I want to talk about accessibility in single-page apps. The problem with accessibility in single-page apps is while using a screen reader, you click a link and to the screen reader user, all it says is the link was pressed. They don't actually know that the content has changed. But in Ember, we kind of solve this by focusing the outlet that has changed but in other frameworks, in your experience everywhere else, how do you combat this? What are the best ways of attacking this? CHARLES: Yeah, what are the problems that you encounter in single-page applications? MARCY: I've done quite a bit of research and blogging and conference talks on this. I'm working on the Angular team for a while. The issue with the single-page app is the page isn't being refreshed when you make a raving change or something happens dynamically. The user's focus is never refresh to the top of the page so they don't hear a title change or things like that. There's different techniques that you can employ to make that experience more accessible. The first and foremost tool to have in your toolbox is focus management so that you're programmatically sending the user's focus to this new content. Say, I have a sidebar with links in it and I click one of them, I can send focus to content wherever it loaded on the page. That way, they are both alerted to the new content because depending on where you send it. There's different techniques for this but often, we will send focus to the wrapping element so that everything will be read aloud and you can accomplish that by using tab index of -1 in your HTML. That will make this wrapper catch the focus, essentially but it won't add it to the tab order of the entire page. That's a technique that we used to shuffle focus around. I've also seen people use what's called an ARIA Live Region where you have this element somewhere on your page that's not visible. It has to be rendered so you can't use 'display: none' but you can basically pipe messages to these live regions to announce what's happening on the screen. I've just saw a React example where they put an ARIA Live attribute just on that wrapping element, instead of the focus management so anytime new content went into that element, it would just be announced. The challenge with that is that you can't always control everything on the page. That works if you control everything and you know that only this one element is getting updated at the time. But often, we work in this big ecosystem where there's a bunch of things happening. Depending on how complex your app is, you might need some sort of a focus manager, some sort of a utility that will keep track of what's focused and routed around at a correct place. That's the biggest tool for creating accessible single-page apps, that's focused management. I mean, not only for the reading content purpose but also to have their focus in the more accurate place so if they hit tab or they try to start interacting with something that they're in the right part of the page. A good example, if you think about like a modal window -- a modal window may open as a new layer over something -- that requires focus management on open so that your focus is sent into it, either to the first focusable element or to the wrapper. Then when you hit escape or close the modal, it just send your focus back. ROBERT: To the previously focused element, right? MARCY: Exactly, so that if you are using a keyboard and you can't actually use a trackpad or a mouse to get back then you're in the right place or if you're screen reader user and you can't even see the screen, then you're always in the right spot. That's actually, I think really cool. Something that's become more common place with dynamic JavaScript apps is that we can do these really cool focus management techniques. I think they're really cool, they can be challenging but that is something that we definitely need to think about as developers of single-page apps. ROBERT: Absolutely, especially since none of the single-page app frameworks out there were libraries. Actually maybe with the exception of your work on Angular, they don't come with a router focused-library built in so this is something that you have to actually think about and then pull in and do yourself. Does Angular have it, by default? MARCY: No, we never added a focus manager utility. There were some things to try and clean up that HTML, which ended up being, honestly worse than the original problem. But I've written a blog post about focus management techniques. I just dropped that in the chat. There's a smashing magazine article I wrote and it really is framework-agnostic so it sort of covers all of the things that you need to think about if you're writing a client-rendered application using Ember, React or Angular. It is something that we have to think about as developers because from the framework level, it's impossible to know what the right situation would be in your app in a given moment so we can only get so far with magic at the framework level. It's something I would like to see more of. Maybe if there is some sort of a layer manager, I think that is a tool that someone could write that would be super useful -- to make sort of an intelligent layer managing system for focus management. I've heard the Facebook team talked about how they do it internally but it's not open source so I have yet to see an open source solution for this. We have to tackle it in our own apps but once you know that that's the thing, you can really make sure that you're covering it. If you have someone with a visual disability or impairment that try and use your app, they'll probably uncover that problem pretty quickly. That's the value of user testing in case you forget. Maybe there's a few views -- ROBERT: Need to sell it. MARCY: Yeah, or maybe with your application, if you don't have visible focus styles turned on, you might not see that the focus isn't being sent. That is one trick, I will tell you in development. If you're working with focus management, turn the focus outlines on and then if you were trying to send focus before it got fully rendered or something because it has to actually be rendered to catch the focus. That is good debug flag, if you can all agree on the focus styles, for all users. I found that to be really useful in our app. You just to have those turned on so you can debug it. ROBERT: And make it really loud like this is a giant red outline. MARCY: Yeah, then you'll know, if you forgot to add tab index of -1, to make it catch the focus or like I said, maybe there's a rendering thing where you need to wait a tick by using a set time out or something. That is a good technique that I've used recently. ROBERT: Awesome. Basically, what it boils down to in single-page apps is manage your focus and enhance your focus, some might say. MARCY: Yeah, let's think about keyboard ergonomics, like if you are doing things dynamically on the screen and then you want to start typing, I think the most common example I see is autofocus. The developers, even if they aren't thinking about accessibility, they'll ask for autofocus. That in a way is focus management. The difference with autofocus is that you can only use it once and it will send your focus there automatically. But in a similar way, that's the idea of what we want is to get the user's focus point into the right spot so that they can do the right activity on the screen and they know what content they're looking at. ROBERT: Right. Sometimes, it's like navigating around a website with your keyboard, that's like power users who have Vim or Emacs or anybody that's a power user of computer that doesn't like to leave the home row, you can make your application awesome for you to use and also lay the groundwork for accessibility, if you can navigate your website with just a keyboard. MARCY: Exactly. ROBERT: Let's try to pitch it to people in that way. It's still a developer problem. CHARLES: I like that because it really highlights the fact that there is this kind of deep interaction model. The user actually is focused on one thing at a time in the application and if you track that, then it's going to be a benefit for all of your users. If you are deliberate about thinking like this is the subject of interest at this moment. You're just going to reap a lot of benefit for everybody. ROBERT: Keep coming back to it, building accessible applications yields a better application for everybody. MARCY: Absolutely. It might enable you to support some futuristic device that you haven't even thought of yet. If you have your actions decoupled from the actual input and you can do everything declaratively, that really makes it easier to try and support of use cases you haven't thought of like we need to borrow up that other keyboard combination or some touch device. It just really helps to not have everything buried in a jQuery event. ROBERT: Yes. [Laughter] MARCY: Like, "Oh, man I need to call that same functionality for multiple events. Crap." You need to decouple that real quick. ROBERT: "Let's obstruct this." CHARLES: Right. I think we're about the time. I know you've got a hard stop. You got some skiing to do. MARCY: I do. CHARLES: So we will let you get up on the mountain but thank you so much for coming by. This is been a great conversation. ROBERT: Yes, thank you for dropping all the knowledge. CHARLES: Yeah, I'm feeling lots of knowledge right on top of my head -- MARCY: Awesome. CHARLES: -- That I got to go and process. But for everybody else out there, I would say go experiment with aXe. The idea is going to be easy for developers. I know I'm going to experiment with it and then you said, there was a browser extension as well to help you out and probably call out every website that you ever use, right? MARCY: I'm dropping some links for you, just now. CHARLES: There's some links to go along with the knowledge so go check them out and you are @MarcySutton on Twitter? MARCY: That is correct. CHARLES: All right. Fantastic. Thank you so much for coming by. MARCY: Yeah, no problem. Thanks so much for having me.
Jonathan Jackson: @rondale_sc | Ember Weekend | 201 Created Show Notes: 01:01 - 201 Created 03:09 - 2017 Ember Community Survey 14:06 - Handling Changes and Churn 27:53 - FastBoot Resources: Boots and Shoeboxes [SlideShare] Typeform EmberConf JSX Isomorphic JavaScript Ember Weekend Episode #66: Bug Integrat (with Charles Lowell) Transcript: CHARLES: Hello, everybody. Welcome to The Frontside Podcast Episode 60. My name is Charles Lowell. I'm a developer here at The Frontside. With me is Robert De Luca, also a developer. Hello, Robert. ROBERT: Hello, hello. CHARLES: Today, we actually have a meeting of the podcast minds. We have with us a very special guest, Jonathan Jackson. You probably know him from the Ember Weekend Podcast. If that's your thing, it's a great podcast. I listen to it, you should definitely check it out. Hello, Jonathan. JONATHAN: Hey, how are you doing? I'm really excited to be on the podcast. I am an occasional listener. It's similar to my own podcast where if I don't edit it, I tend not to listen to it. It's when I have long trips you guys are number one, number two right behind The Adventure Zone which is a D&D podcast. CHARLES: You worked at 201 Created. Why don't you tell us a little bit about that? It's an interesting company. JONATHAN: Actually, when we book to this podcast, I was not at 201 Created. This is a very new thing for me. I think I started right around the time of Ember Conference out in San Diego and I'm just realizing that this is not exclusively an Ember podcast. This is the first podcast I've been on where I can't just assume blanket knowledge of Ember stuff. But it's an Ember conference out in San Diego. I actually gave a talk there about FastBoot which is a server side rendering technology. Right after that, the entire 201 company which I think is four. It's very small. The entire thing, the whole crew went to do a company event and basically camped out in the mountains for a few days, which was really, really fun. But I started working there and 201 is a consultancy based out of New York but I think it's more than half is remote. I think Matt's on the West Coast, two of them are in New York and I'm in Jacksonville right now. We do a lot of really cool stuff. We worked in a lot of different companies. You can actually see the website at 201-Created.com and you can see the different clientele we worked with. But we specialized in consulting, training as well. As well as a couple of other services that we offer. It's been a real great experience. It's been very fun and also I'm learning a ton which is really cool to be in a different environment. I have done consulting for a little over four years, previously at Hashrocket. I got to tell you, consulting will get your wheels turning. It's been nice to see how different consultancy takes a stab at things. It's been super fun. CHARLES: Yeah, it's a fantastic company. I've definitely known them for a while, certainly through my involvement in the Ember community and one of the things that always struck me is just how seriously they take the community aspect of it. We were talking about just a little bit ago, it was 201 that sponsors -- well, sponsor isn't really the right word for it. It does the Ember Community Survey which I think is a practice that we're now used to in the Ember community but I think it's something that I would love to see wider communities do. Maybe you could talk a little bit about that and explain what this community survey is, why it exists and what's the knowledge that's derived from it and how do we take action on that? JONATHAN: 201 also does contribute workshops and things like that. The idea is to make Ember a more inclusive space, a place where people feel comfortable being a part of our community and a big part of that is self-reflection and realizing where you have weak points and how you can actually mend areas that are being neglected or whatever. Basically, shining a light to figure out where we need to improve and a big part of that is the community survey so figuring out what technologies are being used, figuring out what demographics are represented or under-represented and trying to figure that out. It's actually been really cool. I think this is the third community survey and it's live right now. I feel like we could probably shed a little bit about some of the questions. This year, they did a really cool thing where they actually put all of the questions before they put the survey up live. They actually asked for a comment period which is very, very Ember thing to do. CHARLES: Because I was actually going to ask about that. Who is the final arbiter of the questions that get in because part of the survey is determining you're trying to get hard metrics on a set of questions but it's the questions that you don't know that you should be asking which are really the tricky ones. JONATHAN: It was really interesting to watch the document change over time. There was a committee discussion between some of the people in core team and Matt Beale and Tom Zalman who's been doing the organizational stuff as an intern at 201 and he's been doing a fantastic job of really staying on top of it. It's a surprising amount of work to get a survey together, especially when you have a comment period so there's tons of little adjustments here and there need to be made, to wording and phrasing and also like responses. Surprisingly enough, you can actually have biases in your questions based off of the responses that are allowed because multiple choice. It's been a really interesting effort and I think trying to weigh and balance that side of things, where you want things to be worded in a way to where people can answer more honestly and without a bias coming into the question. Because the questions change year over year, trying to get data that is historically relevant so we can see what versions were being used last year and versus this year, what was your experience level with Ember last year and this year. But still make those changes that are recommended. It's an interesting balancing act. I was very interested in the process. I was trying to stay as involved as possible but I think also, Isaac was working on that as well. It's been a team effort. The survey is a very interesting aspect of the Ember community and it's only been three years but it feels like longer. CHARLES: What I love is the work. Once you actually get the survey up, the work has just begun, which clearly a lot of thought went into it, not just the questions that is very beautifully presented -- ROBERT: But the survey, what's the software that you're using to do that? JONATHAN: I think Typeform is the thing that they're using. I feel like it actually works on mobile and I have a great analytics tools. If you're doing a survey, you should come talk to me. ROBERT: Does that like track people that half-fill out a survey and exit? JONATHAN: Yeah, it does. It actually does track like -- what's the word for that -- there's a word for that. Basically, the main metric that we're looking for is people who open the form then complete it and the percentage there, that's the respondent percentage. I've actually haven't seen the metrics yet. I think I might just wait until the conference. You're exactly right, this is only the first step so once everyone fills it out, then there's a bunch of data extraction because some of these questions are open-ended and allow users to directly input their own feedback and trying to sort that and make that useful information as a lot of work and a lot of effort. It's interesting to see, of course there's some obvious graphs that are going to happen like we see transitions. It's easy to graph out the number of people using things on a time axes or the X-axis or whatever. There's some kind that are obvious but I'm actually looking forward to seeing the results. I was only really involved in the actual administration of the survey in as far as I provided some feedback before the main feedback period. But it's been really a community effort which is great because it's a community survey. That's pretty neat. CHARLES: One of the questions that I have is how do you ensure, because the only people who hear about the survey are the people who are already involved. In order to get -- I don't want to say statistically valid -- a broad and more informative data set, how do you try and balance the concern of we want to make, maybe half people exposed to this who aren't inside my community or maybe sitting on the boundary somewhere or slightly over somewhere versus at some point, if someone's an attorney for example, then we don't really care if they hear about or participate in the survey. Certainly within the developer community, which is ill defined to begin with, how do you try and draw those lines to make sure that you get the best knowledgeable dataset possible? JONATHAN: You know, I don't really know. I guess, it's the meta point that I should probably make but it will prevent me from giving my opinion. Basically, I think that since this is a community survey, it makes quite a bit of sense for the community avenues for learning about Ember to be used to actually distribute the survey itself. For instance, these podcasts, like my podcast as mentioned in the survey and now, this podcast is going to mention in the survey. I want to say, "It's going to be in Ember Weekly." That's just a guess, I don't know. But there's really avenues: Reddit, Twitter, etcetera and then the Ember blog itself. Those are the means for dispersal within the Ember community. The one metric that we get from that is what can we reach or who can we reach? How many people can be reached through the normal means? That in itself a metrics. But I think it's kind of valuable to test that every once in a while. I believe over the first two, we saw 100% increase in respondents from Year 1 to Year 2 so it'll be interesting to see from two to three to see if that number continues to increase at a really rapid clip or if we're seeing some other trend there. It is an Ember survey so we are going to assume a lot of Ember-related things. We're trying to gain insight into the Ember community so it's probably not great to put it on JavaScript Weekly, for instance and get a bunch of React developers in that. They're going to be like, "I don't use this." Why are you using Redux, they don't understand. Oh, wait, Ember Redux, what's that? That sounds up my alley. ROBERT: I did feel that form out at the survey with my experience that I've had with React recently, things that I would like to see come over to Ember. I don't know... That'd be interesting to see or I wouldn't want them to fill it out because they would, obviously ruin the data set but I think another survey with more information from other communities to see like, "What's preventing you from utilizing Ember or what are the barriers to learning it?" Maybe from other communities might be interesting. That would be cool to do cross-pollinated surveys where you can be like, "We'll do it, if you do it and then React can provide us something and vice versa. I feel like the word homogenization is bad, usually but sharing ideas is good, I think. CHARLES: If you've never experienced this in your development community, the amount of work that goes into actually analyzing the survey and trying to draw and make inferences from it is just astounding. Who does that? Is that like Matt sitting up in an ivory tower? That's was just the wrong term. Basically, he can sequester himself for a month and put on his thinking cap and just come out with these mind-blowing deductions? JONATHAN: To be honest, I wasn't here last year at 201. My suspicion is that Tom will do quite a bit of the data munging, I think is the word. Then we'll go through phases where I think Isaac and Matt are working pretty closely with the survey stuff so they'll probably do feedback loops, then eventually before anything happens, I think with EmberConf, there's usually a survey blog that comes right alongside the EmberConf thing, where you share some of the results. I think that those things will go out to core and then core will start to pick it apart, toss that around exactly and then come back and basically, you're going to try to get as many people who are pretty smart, looking at it and trying to make sure the data makes sense and honest and doing the right things the survey needs to do, in relevant, I guess is the other metric. CHARLES: Now, as part of the survey, one of the things that you mentioned was the purpose is to surface weaknesses and gaps that need to be filled. When you think about your experience and the way that you filled out the survey, obviously it's anonymous, share what you're comfortable sharing but what were some of the things that you perceived as maybe holes that need to be filled and you're hoping that the survey will bring to light. JONATHAN: That's a very interesting question. I think, the thing that I'm interested in seeing is maybe different than what I've seen. One of the things I'd really like to see the survey that bring to light -- it's probably the most important metric in my mind -- is where people are at in the upgrade process because the cadence of releases an Ember is such a big facet of what makes Ember really powerful, especially for large companies and stuff like that. But I've personally seen people get stranded in certain spaces. Usually by the time they call a consultant to help them get un-stranded, they're at a point where they're going to try to work towards pushing past it. I think this is felt primarily around the 1.13 switch. People did get stranded there and some people are still working on very large apps to push past that and I would really like to see just where the community is at right now, in general. Especially as a consultant because you come into a project and I don't necessarily know what to expect. I think on certain teams, I am always shocked I see like, "Oh, you're using beta and everything. You guys are on top of this. That's really cool. Let's do some feature [inaudible]," and you're really excited. But then other times, you get called in and they're like, "We're still using 1.13 and we have bind others in our source and could you please help us?" CHARLES: Right and it's just that mountain is just too big to cross. That's something that you see in software development as the tools that you use tend to change and for lack of a better word, rot over time. In comparison to what's more newly available, it's the phenomenon of JavaScript churn, which is known in the community at large, scope down to just one framework where you've got different versions of the framework and you've got this churn. It's been somatic for Ember to try and it has been very aggressive attacking this problem and yet still, it manages to happen. How does that work, just given the amount of attention? JONATHAN: Ember, hands down handles this better than most other JavaScript projects that I've seen. I've gone to old backbone apps throughout my career and knock out in Angular one, etcetera. I've seen the rot that we're talking about here and usually, once it gets too bad, the authors of the JavaScript libraries are unable to push it forward at all. Either band in it or end of life it and you're going to have to invest your own time to get pushed past this point. In Ember, it really strenuously disagrees with that philosophy. They try super hard. All the people in core and really the community at large, the philosophy is like, "No, we're not going to break Ember. Ember is very serious here. We're not going to leave people stranded," yet it still happens. The reason I'm curious about seeing it is really about how do we make that story like a solved problem. Is it possible to do? Is it possible for us to basically make it to where the Ember community can very honestly say, "If you choose us if you choose this framework, it will be around. There will be a path forward for you for five to ten years and that's not something you can get a promise from anywhere else." I just want to see what are the ways that we can make that promise more strong. I think, the LTS was a big step in that direction. I think that was actually last EmberConf which the LTS was announced? ROBERT: Yeah, absolutely. Definitely all of our clients have moved to LTS as rather than trying to do every six weeks because they find that much easier to upgrade in between and they're more stable. JONATHAN: They're more stable and I think it's such an easier sell like if you actually start talking about going up the pipeline and you're like, "I have to talk to my boss and my boss just to clear money. We have to clear time, etcetera." We're going to put a [inaudible] aside every six weeks to upgrade seems a little untenable for a lot of companies. I think for larger companies, it's sometimes okay because they're actually utilizing some of the edge features which is cool and I think that's a big thing. I feel like I have no real insight here but I feel like that's what LinkedIn kind of does, where they're usually pushing the boundaries because they're utilizing features like engines were first brought into LinkedIn. I think it kind of pushing it at the edge. ROBERT: If you have the new LinkedIn Ember app, if you will crack open the inspector, when I last looked, I think the beginning of this week, they had two beta versions deployed. The Ember data version, that was beta and actual Ember, it was beta. CHARLES: Usually large companies are associated with big lumbering end piece that are in terrible condition. That's actually a breath of fresh air. Shout out to LinkedIn. ROBERT: Ember Data is 2.12 canary and Ember is 2.10 Beta 2 patch so it looks like they have a patch version. JONATHAN: It doesn't surprise me that Data is being pushed. I think last I spoke to [inaudible] right around December, he was doing a lot of perf work on there so I think he's really pushing that pretty hard. There's a lot of really cool stuff like that and I feel like it kind of runs the game. You see the smaller teams who choose Ember for stability, they sometimes get stranded so I want to see if some survey data can probably correlate. You could correlate the size of your company to the version of Ember you're on. Maybe, we'll see some trends around if it does it mean that smaller companies have more difficult time pushing forward. That would actually be a little counterintuitive. I would expect that smaller companies would be able to push forward at a faster clip because they usually have to support fewer browsers, etcetera. It'd be interesting to see information like that because I think that promise for ease of upgrade and there will be a path forward, that's a big part of what makes Ember really appealing to me. Especially as a consultant for four years, you see so many projects. I don't ever really want to advocate a rewrite but we're going to have to spend a significant amount of time fixing this and it's because you went with Mootools or something. Everybody guess Mootools wasn't so bad. CHARLES: But the point is that you didn't go with a holistic solution so you basically had to write your own framework. JONATHAN: Yeah. ROBERT: Yeah, in Ember, it is a feature that you will not be left behind and you can upgrade. That is something that is really nice. I have upgraded a lot of Ember apps. JONATHAN: I think Mike North calls that the patchwork app application. It's not just like React apps where you have React-Redux and Preact and all of this other stuff that you kind of piece together and make your own little quilt and that's your application. But this also happened in Backbone. It happened in jQuery before that and it was just like take this thing, take that thing, then I have this custom quilt, which is not bad. There are some advantages -- pros and cons. CHARLES: Ember is giving you a blanket. JONATHAN: And it's going to be a comforter. It's going to probably all look the same and be right. ROBERT: My experience is I love Ember and I love the convention over configuration but whenever you hit that wall of the convention is actually getting in the way now, that is a very tall wall to scale in Ember. CHARLES: Yeah, I think the flip side of it is like you say, Rob because everything does have to mesh, because that blanket has to be one solid weave, it means that you've got a hole in the blanket, the surgery required to excise that hole and then patch it -- ROBERT: I love his metaphor. His metaphor is -- [Laughter] ROBERT: It's so good. CHARLES: It takes a lot of effort. ROBERT: Today, I'm quilting daily. CHARLES: That's right. Next topic, crochet. [Laughter] CHARLES: But, yeah in order to make that surgery on the blanket to mix metaphors, which I love to do so freely, you have to make that cut and then make sure that the weave is again, seamless. I think that takes a lot of thought, it takes a lot of effort and it takes a lot of time. It means that there are shiny things out there that you might not be able to have. I think, one of the ways that the community and the technology is mitigated is with the add-on ecosystem, which is very, very strong and allows you to riff and experiment and push those boundaries. But there are core pieces, things like the rendering engine, which can't really be modified or hooked with an add-on. They can but not in deeply fundamental ways or the templating. We saw that happened. There was a big kind of shift from first, the old handlebars to -- ROBERT: HTMLbars? CHARLES: HTMLbars and then Glimmer 2, which there's been a flurry of activity around there but that was definitely one area where there was a hard wall right now. I feel like for me it's around the handlebars itself. I would like to see that environment become more powerful because certainly, with the React Native work that we've been doing around here, you get to see just how simple like the JSX model is, React aside because like Vue, you can do with JSX. I think JSX is a separate technology. It's certainly integral to React but there are a lot of other frameworks now that are using just the JSX part for the templating. Seeing that there is real power in being able to have the functional programming aspects of JavaScript right there inside your templates. From my perspective, I think that in Ember, there's a wall there that needs to be scaled. ROBERT: To be clear to the Ember developers that are listening like us kind of advocating JSX, if you are having like, "No, that's a terrible idea. I hate JSX," I had that very exact reaction about a year and a half ago. If you go look at my Twitter feed, you would see me ranting about how much JSX is a bad idea. After I actually played with it, I'm on the opposite side. I think JSX is really awesome and I think there are things to learn from it. CHARLES: I definitely love having templates. I love having the separation. I like having it in a different file but at the same time, I don't want to lose sacrifice the power that comes. I think that for people who are kind of sitting on the fence or have played with it, if you actually are strict about not having side effects and things in your templates, it really is a great experience. I think there's a lot of people who have scars from doing ERB or liquid templates, where you can have all kinds of crazy side effects -- ROBERT: That's where my scars came from -- ERB. CHARLES: Yeah, I can show. I can roll up my sleeves. I will be like, "You see this? I got that back in aught-seven with an ERB app, where they were calling out to a service from inside the template." ROBERT: Setting the variable and modifying everything. CHARLES: Yeah. There's definitely that tradeoff. One of the things that is great about the Ember community in particular is when there is, it takes a while to generate the will to recognize that this is a major problem but then the solution that you do get does, eventually match the weave of the entire blanket, which is really, really nice. But it can be frustrating when you have those core pieces of infrastructure that are presenting those walls to you. ROBERT: I'm excited for Angle Bracket components because that's actually a lot of the gripes that I had with handlebars. Whenever I got a bunch of the curlies next to each other, like a bunch of components around each other, they all kind of just mold together and seeing the brackets and just looking like HTML, it makes it so much easier to grip. CHARLES: Yeah, it's weird because you think that small things won't have big impact and you think that big changes ought to have a big impact. An example of this, I was kind of derisive of the whole Angle Brackets syntax. I was like, "Urgh! Angle Brackets, dah-dah-dah..." Then we started doing more JSX and you start seeing like, "I want to have my templating construct separate from my JavaScript and scripting constructs," and it actually makes a huge difference in clarity there. Obviously, the change to make all that happen is big but it's a small difference in the syntax. Tiny but I think it has a huge impact in the readability and the clarity of the templates and by the same token, all the performance increases. At this point, I couldn't even give a flip. It's nice. It's great but there's a barrier, there's a threshold that has been crossed, actually some time ago. Performance of rendering is -- I can't even remember the last time it was a problem. What about you? Have you run up against performance issues in your Ember apps? JONATHAN: Some performance issues but usually, they're a result of some rather inefficient rendering. Basically, a combination between user and keyboard or whatever. I wrote something really bad. It's not Ember getting in my way. I don't particularly mind the curly braces within my template but I think a big part of that is just editor choice. If your editor syntax highlights then it also knows how to indent handlebars correctly, that makes a huge difference. ROBERT: Are we about to start an Emacs versus Vim war here? [Laughter] JONATHAN: No, as a matter of fact, I suspect you would win that when the Vim -- there's no good solution for indentation in handlebar templates that I found in Vim. If anyone knows that [inaudible], "Oh, there's one plugin," please ping me on Twitter because that would be nice. CHARLES: Well, yeah. It's true. I can deal with it. I don't think it bothers me quite as much as it does Rob but I think what has been interesting is in our hypothetical code, you always like pay snippets in Slack. We started using Angle Bracket syntax just because it's so much clearer. Even though, none of us actually use it in any of our apps, when we're actually exchanging ideas, that's what we use. JONATHAN: Yeah, there's some cool things that come with Angle Brackets that aren't just aesthetic. The container element is like you don't have to deal with the tag lists stuff anymore. I feel like there's a few tradeoffs that are going to be really interesting to see when those start becoming the norm. CHARLES: Yeah, I like also the separation of what they did from JavaScript attributes to HTML attributes. It's really clear. JONATHAN: Totally. I think it's [inaudible] cool stuff. CHARLES: It's exciting. I remember being derisive of it -- not divisive, that's not the right word -- but I'm thinking like, "Why are they spending so much time on this," but I actually think it is going to have a big impact, small change. JONATHAN: Totally. CHARLES: No dis to the people who are working on it. I know it doesn't feel like a small change at all. ROBERT: Yeah, it only took a year and a lot of really hard work. [Laughter] ROBERT: Like I peek in there and I'm like, "Hmmm... Nope, not smart enough yet." CHARLES: One of the things that I want to ask you, you mentioned that at SO Ember, you gave a talk on FastBoot. You've actually got a lot of experience around the subject so I'm just curious. First of all, what were you talking about? JONATHAN: I think my talk was actually called Boots and Shoeboxes, which there's a little library function into the FastBoot suite called the Shoebox where you can communicate between node and the browser. It's not like well-known enough to where that title resonated with people. I got up on stage and I was like, "You know, we don't have any descriptions on the speaker note like website. He just talks about FastBoot. I hope that I don't disappoint you," because they had no idea what I was talking about. Actually, I feel like the problem that's the FastBoot solves is a persistent thorn in people sides. CHARLES: So what is the problem just to give full context? I think is it called like Isomorphic JavaScript for something -- JONATHAN: Yeah, I don't like using that word. CHARLES: Yeah, there's like server side, SSR -- JONATHAN: Yeah, SSR, you'll see that a lot. CHARLES: I guess the question is why would you even? JONATHAN: That's a multi-faceted question. I think the first section of it would be what's the problem? I think for a lot of people, the biggest problem is SEO. A lot of JavaScript frameworks are not search engine friendly, then that affects a lot of different things. It means that they're not archivable either so it's not like you can have this on archive. They're not very crawable. This is becoming less of an issue because Google Crawler, for instance will actually parse JavaScript now. But I feel like that's still limited. Also you have to then think about how the Crawler is going to like actually execute your JavaScript. You're like, "Wait a second, so now I have to have a compatibility table for Google Crawler? That sounds madness." I think that's a big component. There's also the idea of speed downloading as low as poor connectivity devices or locations, I guess. Having to download all the JavaScript before you see the first meaningful thing is not a very good experience. Especially for a huge swaths of different types of sites like Discourse, I think is a big Ember forum software. Forums are mostly just static text, like you just want to read the text so time in First Meaningful Paint could be like as soon as you get text onto the page, that's could be really fast. Some sites that doesn't make sense for it like if you're posting a video game or something like that, like you need interaction for that site to be meaningful. There's still tradeoffs there but there's a whole host so I guess that's the need. Then the solution for a lot of people is to start rendering JavaScript on their backend software and presenting full HTML along with a JavaScript source tag so that you get a Meaningful Paint first and then you get the JavaScript a little afterwards. The whole point of my talk, which I was basically like -- CHARLES: That's a hard problem. JONATHAN: Oh, it's a very difficult problem. CHARLES: Unlike anyone who says they have a solution, you should look at them with extreme mistrust. JONATHAN: Yeah and there's a whole bunch of different solutions that people have tried. You could actually have prerender.io, I think is the service that will actually render it for you and you put it in front of your CDN and they'll actually do that and create static files for you, which is a solution or no script tags. You basically render all of your stuff as much as you can on the server side and you put everything into no script tags and that will presents its own problems. There's a bunch of different solutions that people have tried. In FastBoot, the solution that Ember went with and I think that it's really cool because server side rendering and this is the big reveal of my talk. I think it's recorded so you can check it out. But the bigger reveal is that the server side rendering is not just about rendering. It's also about routing and data fetching and authentication and etcetera. There's a whole bevy of things that you also have to handle very well. It's not just taking a component, the view layer to component and rendering it to HTML and then serving that. It's much more than that. You want your app to basically run in node. FastBoot does that remarkably well. There are some spots where it's a little fuzzy but does it remarkably well. CHARLES: What's an example of how you would might need to handle authentication? That sounds terrible. ROBERT: One of the problems for a lot -- JONATHAN: That's exactly the problem. You actually have access to headers and stuff and FastBoot land so you can do authentication by using traditional token off, which is pretty cool. There's a lot of really cool things and routing is obviously handled quite well so the request comes in and it does the normal Ember router. The Ember app instance itself is running in node so all of the things you expect to work in the browser, work in Ember and node, with the exception of any time you need to access the DOM because the DOM is expensive like very, very, very oddly expensive. Like JSDOM is just expensive and unreliable, then you have to deal with compatibility tables for that. Anyone who has written tests for Phantom and tried to bind a function or something, they know the pain. I think it's fix now but I was always bitten by that so many times. It doesn't even give you the right error. Forget about it. CHARLES: You have all these things. It's basically authentication. It's data. It's making sure that you have in your, so to speak, headless environment as an authentic replica of your application running in the user's browser, as you can possibly retain. JONATHAN: Yeah. CHARLES: How feasible is that? Like what you're saying is that Ember takes that whole approach and says, "Okay, we're going to make sure we handle all of these cases?" JONATHAN: Yeah, I think Ember has done a phenomenal job of this. It's still alpha software, although I believe that the path to 1.0 is basically paved. It just needs some documentation. I think FastBoot hits the nail right on the head and gets a lot of the stuff really in a good place. It's also a big part of FastBoot's call to action where this stuff is possible elsewhere. You can do all of these things. You can make all of the stuff work in the React ecosystem or Vue ecosystem, etcetera. But in Ember, it's Ember install, Ember FastBoot, I think or Ember CLI FastBoot which is a really compelling sell because I've looked at some of the alternative approaches and in other ecosystems, they're very complicated. It's not possible. It's just their ad hoc -- ROBERT: And it's usually a 10,000 line medium posts that you have to follow line by line -- [Laughter] CHARLES: Right so instead of giving you actually a working code, what you get is a treasure map. JONATHAN: Yeah, exactly. It's like you just shop at Ikea. Here you go, build it. There's some really cool stuff that it unlocks and the fact that it's so low-hanging fruit, for instance Ember Weekend, which by all accounts does not need to be on FastBoot, isn't on FastBoot because it's ostensibly free and it's a good testing ground for me to learn about FastBoot. But the future -- ROBERT: It's interesting in handling audio on a FastBoot, how was that? JONATHAN: Since the user doesn't actually can't listen in node land, the user can only listen in a browser, we don't do anything with the player in FastBoot land, which is fine. There are some weird things like you have to basically have guards around like key events, for instance. Because Mousetrap relies on, I believe in jQuery to bind its events, you have to basically say, "In node land, we're not going to bind any of these Mousetrap events because they will not work," but there are some things you have to learn about the ecosystem but by and large, it's a solution that you just drop in and you just get for free. I think that's a huge sell. That's another thing with the convention over configuration argument, the model is that eventually, once the solution arrives, most of the people who are using Ember can just use it right away. It really does help with [inaudible] activity devices. There are some really interesting things about how time to first paint, I think Martin [inaudible] just released an add-on that basically says, "I'm going to take all of your JavaScript files and mark them as async and then when you download, the time to first paint becomes almost immediate," because it's just going to say, "I have HTML. Here's the HTML and serve it." Then in the background, because of script tags or whatever, it just goes and fetches the stuff in the background and you end up like time to First Meaningful Paint is really cool so it'll perform software that is super neat. If Discourse wanted to say, "Here's the stuff and we're going to make it work later," like as soon as the JavaScript has download, that's a really cool sell too. There's a lot of weird edge cases and describing the interactions is I think the hardest part about FastBoot. It's just like describing why this might be really good for you is the hardest part because a lot of people don't have these problems. If you're doing a marketing site, you're probably going to use Squarespace or something. ROBERT: Yeah, like a static site generator or something? JONATHAN: Yeah, exactly. ROBERT: Something that will give you great SEO results. JONATHAN: Exactly. ROBERT: You want to play around with that. JONATHAN: This dovetails into something Edward Faulkner was talking about eight or nine months ago when he was working on the inline content editor for Ember. It's really, really neat. I actually like to see where that's at now. I think it was Cardstack that funded a lot of the stuff for it. But if you combine things like that, then also FastBoot, you're starting to talk about something that could do what WordPress does, which is a really interesting thing like the really, really low hanging fruit. Type these few commands and you're point clicking your way to a website which is really, really cool. CHARLES: All right everybody, thank you so much for listening. Thank you, Jonathan for coming on by and talking with us today. JONATHAN: Yeah, thank you so much for having me on. This podcast is super awesome. I'm really excited to actually be able to be a part of it. I feel like you are at Ember Weekend that one time and you were in Norway? CHARLES: Finland. JONATHAN: Yeah, Finland and we weren't able to actually have a video open at the same time because of the data problem. It's been actually kind of cool to actually have a real conversation. That's been really great. CHARLES: Yeah, that has been awesome. That was a good conversation and that, your podcast obviously is EmberWeekend.com. Everybody go and check it out. Thanks for listening.
Show Notes: 01:11 - Doing Dumb Stuff aka “Throwaway Projects” 06:06 - Combatting Burnout 10:01 - Dumb Projects That Pay You Back 17:00 - Brainstorming and Abstraction 25:19 - chillestmonkey.com 20:19 - “The Iron Triangle”: Creativity, Accomplishment, and Learning Resources: React Native and Chill: A tale of stupid made fast by Charles Lowell Transcript: CHARLES: Hello, everybody and welcome to The Frontside Podcast, Episode 59. We're getting up there, 59. That's like, I don't know, it's not a milestone but it's something. ROBERT: It's like one away from 60. CHARLES: Yeah, it is. It's past middle age. It's like elderly. ROBERT: Start thinking about retirement. CHARLES: Yeah, exactly. JEFFREY: These are our golden years. [Laughter] CHARLES: Welcome to the golden years. ROBERT: All right. Possibly, we need to go and watch the Golden Girls. [Laughter] CHARLES: Actually, I think it was only five or six episodes, maybe 10 episodes, we were singing The Golden Girls theme so it all comes back around. We're here with a very special guest and that guest is nobody. It's just folks from The Frontside -- JEFFREY: I was hoping you would say it was Betty White. [Laughter] CHARLES: We're going to fly it solo or like tri-lo or like trio. ROBERT: Trello? CHARLES: Trello. I, of course, am Charles Lowell. With me is Jeffrey Cherewaty and Robert DeLuca. Hey, guys. JEFFREY & ROBERT: Hey, what's up? CHARLES: We were kicking ideas around and something that's been kind of percolating around the offices is a theme for 2017 is doing dumb stuff, just stuff that has no apparent value but that you can learn from. I think, we each have a bunch of these experiences where we've done something a very little import that ends up being really, really helpful, either both in the short-term and the near-term. JEFFREY: And who knows, maybe this episode will turn out the same way. ROBERT: Oh, how meta. This could become a black mirror episode. I'm start to questioning my values. CHARLES: I know for me, I recently did some explorations into React Native, which I found to be very edifying. I could obviously talk about that experience quite a bit I did on a blog post but I'm curious, if you guys recently had something that was a throw away, something that you did that wouldn't really matter if it had come into existence or it didn't but it's just so happens that in this thread of reality, it did. ROBERT: You know, I have. It's always been centered around the impagination library that we wrote here. I was always kind of intimidated by impagination for some reason because it was this big library that I didn't necessarily understand. I was like, "You know what? I'm just going to go for it. I'm going to go do something dumb with it," and then I just decided to implement the most useless infinite scroll. It solved absolutely nothing and as you're paginating through 500 records of robots from Faker, I sat down and spent six days and wrote some code and implemented it React Native and it was actually the most informative and fun thing I've ever did. I don't feel tied to it. CHARLES: Yeah, so what kind of inspired to do that? Because usually, it feels like there's this pressure to ship something. Ship something is like just go build something but the idea is that you're going to build something that people actually might use. ROBERT: Yeah, I always had that idea. Maybe you can think about it as like feeling getting cornered, like the pressure of shipping sort of pushing me into a corner. Then eventually, I just kind of lash it out like, "No, screw this. I'm out." I'm going to go do something that's not even useful. I don't care. I'm not going to try and support people or make it to something that other people can use. If that is what falls out of this, that's cool but I'm going to totally sidestep and this needs to be something that other people can use. Sometimes, when I go to build a project, I start thinking, "This is going to be in my GitHub public profile. What if somebody comes and finds it? What are they going to think about my code?" And I just shed all of that fear away, then what happened is I learned a ton. After that experience, I was like, "Whoa. This is massively valuable." CHARLES: Yeah, like hearing you talk about it makes me think about one time I went to a Picasso art exhibit and they had all these sketches that he'd made just in pencil from when he was younger and they were in studies. I guess, apparently artists do this a lot where it was like just a goat's leg. Or some old man's nose. You know, just in pencil or charcoal and these are little tropes that he later integrated into all of his painting -- ROBERT: That is an amazing way to put. JEFFREY: It's funny. When you see engineering tutorials are like, "This is how you learn to make software." A lot of times that is the way they're structured it is around studies. Like, "Make this little tiny thing that by itself is worthless but can be part of a greater whole." ROBERT: Yeah, take that impagination infinite scroll thing, I think three months later, it turned into a full on talk about co-chairing between React and React Native but it started with this dumb little project that I decided, "If I don't finish it, nothing bad happens. It just kind of sits there and rots." I feel no guilt. No pressure. JEFFREY: Would you say that was part of your blue period? [Laughter] CHARLES: Yeah, I like you [inaudible] point to like ship it. It's like we have a culture of ship it or don't. In any way, it's entirely up to you. ROBERT: I kind of thought to think about it as the extreme of ship it. Literally, just ship it even if it doesn't work. CHARLES: Right, ship it even if it's wrong. ROBERT: The other thing that I figured out was who is to determine what's wrong or right. I figured out that no one like I figured that out and I choose if it's wrong or right. CHARLES: Right, and it's like whether I learned something or whether I didn't or whether I get to be the arbiter of what I get out of this experience. ROBERT: And you almost always learn something. Always. CHARLES: Yeah, you definitely do. I think it can pay off, both in the short term and in the long term too. I know with my recent experience, I was feeling extreme burnout. I don't know... You feel like the code that you're working on or the things that you're doing have become a burden. I guess that's kind of to your point, Rob like when you are building something that it creates users. It creates code. It creates maintenance cost. It creates contributors. There's all this mass and inertia and momentum that are for it and that can be great if you own something massive, you can have a lot of momentum and it can be extremely energizing. But it can also be a burden, if it's something that you have to carry and you feel obligated to carry. ROBERT: Yeah and when you have those huge successful projects, things that come to mind like Ember or React or Babel or things like that, those are awesome. But I was always experiencing that responsibility with things where I had big plans for them but nobody knew that just by looking at the projects like it was still very much a work in progress. But I felt that feeling in my gut. CHARLES: Right and that mass and that inertia can come completely and totally from an internal source. It's both important for the project to be like these throwaway projects to be completely and totally free from all attachment, especially from your own dreams and your own ego and things like that. ROBERT: And when I learn to let go, that's when I learn that I'll learn. [Laughter] ROBERT: I'm going to learn-learn. CHARLES: I guess, the kind of greater point that I was making is that when you are able to approach a project like that, then it can be a really intense cure for burnout because you are just allowing yourself to create, you're allowing yourself to feel creative and actually deliver something whose success parameters you define entirely. I think, Brandon actually talked about this almost like two years ago with that robot. That project that he did where he was kind of in a similar situation and he really, really needed to do something that was not a web app. I think there was a series of talks that came out of it but that was primarily for the burnout case. ROBERT: I think I can agree with that. I might have been in the similar situation where I was starting to think about the feeling cornered. It was maybe because of burnout. CHARLES: Maybe those are one of the same. ROBERT: Because I felt like I wasn't producing anything and I was like, "I should be doing this stuff but I feel like I should be but I'm not," and the things that I'm doing aren't great enough because the things that I have done in the past and that's a bad way to think about it. JEFFREY: There's something so refreshing about being able to switch contexts of I've been working on this same app for a few months and doing kind of similar tasks over and over and that's such a nice way to create at really recharge like, "I'm just going to do something completely different and see how that feels." ROBERT: Yeah, I've gotten really good at writing computer properties but I want to write something else. JEFFREY: Just like anyone who does a lot of Ember, they're great at computer properties. CHARLES: It really is the equivalent of throwing a dart into a map. If you're feeling burnt out and you're looking for what to do, There are so many things like you actually aren't cornered. You have the universe of possibilities and the dumber the better. Choose something random that you can do in five minutes, do something random that you can do in an hour or a week or something like that so it has that payoff for being an answer to burnout. I've experienced where these types of activities come back and pay you back down the road. ROBERT: It doesn't have to solve a problem. I was always looking for the next project that I could build that would solve a problem. I always felt like I needed to solve a problem and I was just looking at it backwards. You should also be looking at things like it solve a problem. That's cool. But why not take a piece of technology and like, "How can I bend this? What can I do?" And exercise the different corners of this framework or do just something that's totally useless. CHARLES: I remember actually, that was something that Ryan, when he first started coming to the Ember meetups, he was asking questions about it and I think he was coming from Backbone and was -- ROBERT: Just Ryan from [inaudible]? CHARLES: Yeah, [Ryan Ralph?] from [inaudible] and he was asking questions and like, "Yeah, it's pretty good. The only disadvantage right now is you can't have multiple apps inside of a single tab," so literally he comes back the next month with a talk of how I embedded more than one app in a tab and here's what I had to do it. First thing was like, "Let's see how does it break." Let me prod at it and poke it in and just see what happens. I know I had an experience recently where I had done something really, really stupid with Amazon Lambda and I just very recently came back like the fact that I had actually gone through the process of just deploying a very dumb -- ROBERT: How dumb, Charles? Tell me how dumb? CHARLES: Remember when I was going on and on about badges and how we needed to have our own custom badges. I kept on trying to get everybody excited -- JEFFREY: I don't know that we need that. CHARLES: That was pretty much the response that I got from, I think in a poll of nine out of ten. It was 9.11 or something like that. ROBERT: -- That was cool but -- CHARLES: It was cool but no one wanted to put it anywhere. The badge was just a static SPG that was served on top of the Amazon Lambda but as part of that, I had to go through all of the steps through actually getting it to deploy. While that thing was completely useless and it was thrown away, that knowledge ended up becoming useful almost a year later or maybe six months later, something like that. I feel like it was sunny so it had to have been at least six months ago and so -- ROBERT: You know, that it's always sunny here. CHARLES: Uhh... Ish. I mean -- JEFFREY: It's not Philadelphia. ROBERT: I was trying to work somewhere. CHARLES: It was warm but it's a practice that often has long term payoffs. I guess that's just the learning aspect of it, the fact that you're going to learn something. ROBERT: The thing I want to stress here is you don't have to go into it expecting that. CHARLES: Yes, that actually is critical. ROBERT: Yeah, that absolutely is critical because then if you expect that, then the problem with all the things for me started with setting expectations. It was always I had expectations. You take them and throw them out. Toss those things out the window. CHARLES: Zero expectations. JEFFREY: Really, it's an adjustment of your expectations to where at any point, you can say, "No, I'm kind of done with this. I learned something but it's not going to turn into anything," versus the expectation of, "I'm going to make something amazing that thousands of people are going to use." ROBERT: Yeah, that's the way I always start out as like, "Here we go." CHARLES: "I'm going to take over the world." [Laughter] ROBERT: "I'm writing another JavaScript frameworks. Next step, world domination." CHARLES: Yeah, I know it's absolutely important to make sure that if this thing that you're doing just cease to exist, you wouldn't feel good or bad. It wouldn't make any difference. Very Zen, I think. Some people try to approach every aspect of their life that way. I'm not sure if that's healthy. ROBERT: That's another podcast. [Laughter] CHARLES: But I certainly think it is, if you at least allocate a portion of your projects to be that way. I think that applies to any creative endeavor that you try to undertake. Jeffrey, you had some actually some non-programming examples that you were talking about earlier. ROBERT: It ties in nicely to the Picasso thing. JEFFREY: Yeah, actually I was I'm moving right now to a new apartment and I have no architectural background at all but I am comfortable with vector graphics in Illustrator and doing things mathematically precisely in there. I do have a little bit of problem solving that comes out of this. It's not purely exploration but I've been like, "I'm moving to this new place. These are the pieces of furniture I have. How can I rearrange them and play and --" ROBERT: Did you actually set the scale correctly to your -- JEFFREY: Oh, absolutely. ROBERT: Oh, that's amazing. [Laughter] JEFFREY: --Otherwise it's worthless. ROBERT: This is a whole new world. This is awesome. CHARLES: -- Like there's an atomic gauge on the couch. [Laughter] JEFFREY: My couch is six feet, three inches and 24 angstroms. I have not reached that level -- [Laughter] ROBERT: Does Illustrator have that level precision? JEFFREY: It can go pretty far. But yeah, it's just an opportunity to play around and like in a situation where actually moving those pieces of furniture in 30 different ways would be a pain and just unrealistic but thinking about it more in the abstract and just being able to play with it at a scale that's playable with, turns it into something fun and creative. CHARLES: Yeah, I guess that's a luxury that we have, I guess in the modern era of being able to simulate so much and be able to apply this practice of total creativity in a consequence free zone where people might not have been able to do so before. Before the advent of computer-aided design, I don't think that would've been a possibility. ROBERT: There will be a lot of manual hand-drawing and sketches and stuff. JEFFREY: And now software it's at point where -- CHARLES: Or you just get your children to do it. [Laughter] CHARLES: "Move it over there." You guys are sweating but man, I'm feeling really creative. JEFFREY: Yeah, really making stuff happen here. But software has kind of reach the point where we have similar abstractions there to be able to do it, move pieces around like that. Maybe not as fluidly as I'm going to move all these squares around in Illustrator but we're at the point where we can kind of plug in pieces and see how it performs and plug in another piece and see how that performs in a way that feels maybe more creative and less scientific than getting lower down in the code. ROBERT: Honestly, I wonder if this is where React began because the idea of rerendering the entire dom every time was more performant like you just throw something at the wall. See if it sticks. I don't know but -- CHARLES: Yeah, you have to wonder. I'm actually become surprised at the origin story is not more widely known. ROBERT: Yeah, I also don't really know it. I kind of heard of it like -- CHARLES: I remember hearing about it the first time I was like, "That's crazy." ROBERT: Yeah, that sounds like it'd be massive performance hit. That sounds really slow. Why would you rerender everything? CHARLES: Right but then again, it's always getting into pre-[inaudible] optimization. We always fall down these paths of optimizing in our heads. Of course, we want to do incremental rendering. Why? Because it's faster but nobody's actually measured then realized that it's actually the dom that's slow. ROBERT: It's like opening up your world to this. It's just like you explore everything. JEFFREY: That's another thing we can take from design thinking and the philosophies around the design field that maybe aren't as recognized in engineering is the idea of simply brainstorming of being open to dozens of ideas, trying out dozens of ideas and seeing what feels right and being able to have so many ideas that you can throw most of them away. In software, so many times we get to the point where maybe we'll have two or three ideas but none of them are worth throwing away. We feel uncomfortable throwing out any work. CHARLES: Part of it is you were so busy. You have so much invested in your current track that it's very easy because your current track is on Rails. It goes forward, there's clearly a path forward and to hop off of those Rails, it require some sort of energy and are you going to be leaping into like a chasm? I don't know. ROBERT: Or in Jeffrey's case, if your computer dies and you're forced to think without a computer -- JEFFREY: That actually happened the other day. CHARLES: That was amazing. That was worth a story. JEFFREY: I forgot to bring my charger to the office so I have one of those new [inaudible] MacBook with the USB-C charger and we didn't have any backups in the office. I was hacking along on some configuration devops kind of stuff and just kept running experiments and eventually my battery died. Then I was forced to whiteboard out by what I was doing and I came way over to conclusion that I would have ever come to, if I had just been sitting on my computer the whole time. It was another case of where I needed that abstraction away from looking at the code to be able to rearrange the blocks in a way that made sense. ROBERT: Pull yourself out of the [inaudible]. JEFFREY: Yeah, definitely. CHARLES: I really like that idea. Again, I'm not being too familiar with the way that the design world works. Is that kind of like a modus operandis to have too many ideas that you can throw a bunch of them away at any given point? ROBERT: Where you start stealing pieces from all of them and you make one master design. In my digital design class -- shout out to Miss McDaniel -- she would always make us start off -- JEFFREY: Check for that in the show notes. [Laughter] CHARLES: -- She would always make us start off in a sketch book and I remember because I'm not an artist at all. If you know me, I draw even the worst stick figures: my arms and stick figures don't line up. That's how bad it is. She would always make us start off in a sketch book and it drove me nuts. But after doing it for two months, I finally realized the value because she would make us come up with five or six different design concepts. Then after I did the process a couple more times, I realized, "This actually has a ton of value." I sort of picking things from one of the other. It makes you think outside the box. The first couple of ones that I would turn into her she would be like, "You actually have three of almost the same design here. You need to think more outside the box. Think of something that's completely different." Seriously, it's just like you're throwing things at the wall. Whatever freestyle off top of the brain and just let it go. JEFFREY: I'm thinking of a concept side of exercise where maybe you're playing around with layouts for selling a magazine or something and you'll sketch them out and you'll sketch out maybe a few dozen of them but you don't get into the nitty-gritty details. You do it at a very-low fidelity where it's just pencil and some boxes and rearranging those boxes and maybe mark what that box is but you don't worry about the details of that box until you mix and match like, "That layout is not going to be great. This layout seems like it might be along the right track. I like this piece of this one. Let's combine them and make something completely different." Then once you have that high-level view, that make sense to you and you've gone through lots and lots of iterations, then you can start honing in on the high-fidelity details. CHARLES: This conversation makes me feel like there's definite poverty in our processes as software developers in the sense that what I'm hearing is that these things are just taken for granted, that these are the activities that you're going to be doing as part of design and what are we doing if not design. Each of us has these experiences that are kind of these one off things where we actually experience this creative space. It seemed very special and it seemed revelatory but really, it almost sounds like you need to make sure that it's something that you're revisiting again and again and you're doing it as integrated with your work. But I feel like it would be hard to pitch that -- JEFFREY: That's not understood to be part of the software design process. CHARLES: Maybe that's a little bit of what happens when we've put together our design documents -- ROBERT: Yeah, it just occurred to me like looking back through my history of how I landed to be a software developer, I actually wanted to be a designer first. That's why I was in digital design and stuff. I rejected design so much because I thought it was super... What's the word I'm looking for? Flighty? CHARLES: Wishy-washy? Non-committal? [Laughter] ROBERT: Anybody could walk in and say, "I don't like that design. It looks ugly. It doesn't look good," and I thought I was going to programming because it was more black and white like, "This is the right solution. That's not the right solution." As I've worked my way into my career, I actually realized they're actually really similar because you're designing software and software is abstract. As much as you want to try to think about as it's not, you start to develop this mental picture of the programs that you're developing. You're designing these things. It's just a different form of design and design is problem solving. CHARLES: In digital design, it's not artwork. It is measured by some quality. It's just hard to put your finger on but there is some kind of external measure of, "Does this fit the purpose for me, which it was made?" JEFFREY: "Does this solve the problem?" Usually, there are some expectations just like there are software of, "There's been best practices established. Did you stick to those best practices? And if you didn't, Why not?" Because sometimes there is a good reason to break those best practices. CHARLES: Right. I wonder if it would be interesting at integrating into our process like what we think of as the ideal pull request or issue reporting or design document have. It kind of similar to some of the RFC processes out there. It's like, "What are some crazy alternatives?" Not just any alternative -- JEFFREY: I don't just need viable alternative. CHARLES: Yeah, I don't need viable. Give me the in-viable. Give me the ones that are like, "What crack are you smoking? Oh, wait a second... Hmmm..." [Laughter] ROBERT: "All right. Here we go. I got it. It's got to be powered by nuclear --" No. [Laughter] CHARLES: Curious. I'm very, very, very curious. ROBERT: Let the curiosity fly. JEFFREY: Charles, do you had a blog post recently about a dumb project you built. Would you tell us about that? CHARLES: Sometimes, it gets stressful around here. Sometimes it gets stressful in life. Sometimes you just feel stress and there are a lot of things you can do to deal with it. Everybody has their coping mechanisms. For me, one of my secret weapon coping mechanisms -- ROBERT: Not a secret anymore. CHARLES: It's not secret anymore. [Laughter] CHARLES: This also will be in the show notes but I'll go ahead and say it right now is ChillestMonkey.com. If you need to enhance your chill, you can just go to ChillestMonkey.com and I guarantee you will not be disappointed. You will feel instantaneously better. I was in the point where I was feeling a lot of stress. I don't know exactly how it came up but I was actually with Stephanie and she was like, "Charles, you just got to do something stupid. You just got to do exactly what it is that we've been talking about on this podcast. You've got to just do it and you've got to do it fast and you've got to not look back and look forward." I was like, "Oh, my God. You're right." That planted the seed in my brain but then, I think it was the next day, I was talking about ChillestMonkey.com -- go check it out. You can pause the podcast right now and go have a look at it. It's really awesome -- And I was showing it to everybody and then I think Rob were like, "Oh, my goodness. We've got to have this on the Apple TV." ROBERT: It just lands itself perfectly. CHARLES: Yeah, I was like, "Yes. Absolutely we need it on the Apple TV. We need it on the Apple Watch. I need this on my iPhone," so right that minute, I hearken back to the conversation I had with Stephanie and I was like. "This is it. This is perfect scope." I have been looking to build something in React Native. Something that I can just completely and totally throw away, something that fits in a small time box and I also have this opportunity to build this thing that I really need but if it doesn't work out, it's fantastic. I went home. I think that was that very night and started hacking on React Native and took the Chillest Monkey, then put it first into an npm package. You can include it in any React Native application. Then once that was accomplished, I went out and checked the support for Apple TV had dropped literally ten days before, maybe even less. I was like, "It's a sign and this has got to happen." It was a little bit of a slog but we were able to get it up on our Apple TV and with a remote and feel that glassy touchpad, move it over to the Chillest Monkey and open it up and just see those wisps of hair and those tranquil eyes up there and six feet across. It was just such a great feeling. But it was something that was accomplishable within a day or two. I don't think it was more than that but it serve the purpose that I was able to learn a lot about React Native. I was able to learn about packaging, shared components. ROBERT: Actually, I remember we fought about flex box and what not for a little while. CHARLES: Yeah, that's right. I learned about laying out images and kind of the best practice around there. Also, I think this is important as I got to experience a win and it felt good to be able to experience that win. It felt like if I hadn't experienced it, it probably wouldn't have been that big of a deal. But the fact that I was able, it was a low-hanging target but it felt like a big-hanging target. It's hard because there's no such thing as a free lunch but kind of there is, when it comes to little projects like this because when you see something totally stupid come together and it works exactly you wanted it to work, then it feels like you've accomplished something major. I don't know if that's some sort of brain hackery or some sort of life hack or what but that was extremely good for my internal morale. JEFFREY: This is an example of a project where, maybe you didn't get as much creative juices flowing out of it. CHARLES: No. JEFFREY: But you've got a high accomplishment and learning value, which I guess are all, I call that the iron triangle of building dumb stuff. [Laughter] JEFFREY: You can have two of the three. CHARLES: On one side is creativity, on the other side is what? JEFFREY: Accomplishment. CHARLES: -- Is accomplishment, just shipping it and then on the third is time? It's the iron sticks -- [Laughter] JEFFREY: The third side was learning. That's creativity, accomplishment and learning. You can't have all three, sorry. It doesn't work that way. CHARLES: It doesn't work that way. Okay. [Laughter] ROBERT: Then you'll take on a big project, that's how you'll get all three. CHARLES: I like that. JEFFREY: In a particular project where you're having to throw tons of ideas at the wall, You're probably going to be learning, you're probably have to be very creative but your chance of shipping here is much lower. CHARLES: It's almost a detriment. ROBERT: Yeah. CHARLES: Whereas in this case it was take something that is easily accomplishable and accomplished it. JEFFREY: And you learned something from it. CHARLES: You learn and you accomplish but you're not particularly creative. But it's still a feather in your cap. I like that. It's a good way to categorize it. ROBERT: And the accomplishment is how you define it. In this case, you actually finished this project. CHARLES: Yeah. I finished it. We have it on Apple TV. ROBERT: Yeah, and like you said, you have to do that. For me, after I did a couple of these things, actually what I just do, a newsletter has come in and somebody was like, "Look at this new thing," and I'm just going to put it off to the side and then eventually, I'll stack two or three of those things together and decide, "We're going to take all three of these things, we're going to put them all together and see what happens," and that's how GraphQL and dove in to create React app. CHARLES: That's actually a good idea. I like the random newsletter driven development -- [Laughter] CHARLES: -- You're like, "I'm going to subscribe to this newsletter. I'm going to pick one thing from each week and after I have five things, I'm going to build something with those things. ROBERT: Wait. I have a dumb app idea. We could make this just a random app idea generator. It takes ten packages and you see like -- JEFFREY: A bunch are required to build the Hackernews clone. Isn't that a classic newsletter driven development? ROBERT: Or the Reddit clone? This feel like that's the React thing -- the Reddit clone. CHARLES: Yeah. I think it's more like Frankenstein driven development like you've got GraphQL, Vue.js and I don't know... Datomic. JEFFREY: Like a GRD stack -- CHARLES: No, like a rando stack. [Laughter] CHARLES: Rando.js, that would actually be a good -- ROBERT: You hear it first. It's our new JavaScript framework. CHARLES: A stack generator. JEFFREY: It's going to be a high on learning and not so much on accomplishment. ROBERT: You won't ship anything but damn will you learn? Every week! CHARLES: What is an example then? We've talked about the one where the accomplishment. I'm wondering if there's an affinity between those sides of the triangle. What would be an example of a project that was high on creativity, low on shipping? How do you approach projects like that and then make it okay to fail? Because I think, one of the things that was great about the Chillest Monkey Native was I did get to ship it. It wasn't much but it felt great. How do you prepare yourself for those projects which are high on creativity that you're not going to ship? What is one of those look like? JEFFREY: I think those kinds of projects are usually tend to be ones where you're more comfortable with the tools already so that you do have the space to be creative and you're not having to fight against, "I don't know how to do this." The learning is already been done, at least to a point to where you're comfortable enough to go, to feel loose and creative and be able to brainstorm without having to bump up against walls over and over. CHARLES: I guess, tender love is a master of that, where it's really has a deep knowledge of Ruby and systems programming and does some fun and creative. Do I say zany? ROBERT: The Ember example of this, I think it's Alex Matchneer. Matchneer? CHARLES: Matchneer, yeah. ROBERT: Sorry, I cannot pronounce names. The Photoshops, I mean those aren't exactly -- [Laughter] ROBERT: -- Those aren't exactly programming related but -- JEFFREY: High on creativity and accomplishment, low on learning. [Laughter] ROBERT: And then the Ember Twiddle is the one that I laughed out and I was like, "Can React router do this?" CHARLES: I don't actually see that one. ROBERT: Actually, it was broken when I went to look at it but the responses were hilarious. They're like, "Actually, no. I'm happy. I can't." [Laughter] ROBERT: But he always has the Twiddle and he's like, "What about this? It's like the programming equivalent of his Photoshops. [Laughter] JEFFREY: I'm wondering if there are particular, out of those kind of three different types of dumb projects that we've identified. If there are particular types that people gravitate toward like I know that I am higher on the, "Just go, do something creative with tools you already know side," versus, "I enjoy learning," but I'm more likely to want to accomplishment up things and be loosen in my creativity. I'm wondering what the breakdown is among different engineers of those different profiles. ROBERT: It's quite interesting and I wouldn't think of myself as an explorer but I feel like I'm driven by FOMO -- fear of missing out. That's where this comes from for me. All this technology that I hear so many good things about that I haven't even done anything with. I don't even have Hello, World or anything. That's usually where I start picking things up the shelf and I'm like, "What if I did redux, Vue.js and whatever else. Let's see if we can make all these things work together." CHARLES: Do you feel like you can, at least always be kind of touching? ROBERT: Yeah. CHARLES: Pinging different areas of the ecosystem? ROBERT: Yeah, I really like to see what they're doing because they all have different takes on things. I really like what Chris Freeman said, he's like, "I feel like programming is just gaining experience points." Like it's video games where you're just going through and you're getting experience points with different things. That's kind of the approach that I've been taken for the past five months. Since I discovered this, this is just like, "Oh, that look shiny." Maybe that's also driven because of our JavaScript-type cycle or whatever you want to call it, where something new is always coming out. Somebody is always reinventing the wheel. CHARLES: Whenever I see a cool demo or whenever I read a really provocative blog post that guides my exploration a lot, which I guess those things usually are extensions of some activity like what we're talking about that someone did. A lot of really good blog posts are just like, "I've been doing this stuff for five years and I have gained an absurd level of expertise on it. Let me take you to school." I definitely love those but a lot of it is like, "Look at this cool thing that I've done." Without talking about murdering names, what is it? Hakim...? Gosh, I can't remember his last name. The guy who does Slides. Some of his demos for CSS and JavaScript animations back in the day we're just like, "Woah, someone has just revealed a huge power source," and so I want to go do it. But most of that came from him just having to play. ROBERT: Jeffrey, you've actually got my brain ticking here. I'm thinking about where people fall in applying this like just go do something dumb and it doesn't have to mean anything. This makes me starting to think, "Maybe I need to go do something really creative in Ember." JEFFREY: It's making me think that I need to go do some learning -- [Laughter] JEFFREY: -- Just try some new stuff so I have new tools to play with. ROBERT: Because that's the whole purpose of this, right? I just recognized that I am not doing very creative things and the tool sets that I am comfortable with. CHARLES: Yeah, it is harmonious. The more learning projects you do, you acquire tools and then with familiarity with those tools, engenders creativity so you can see how the process feeds in to itself. ROBERT: Now, I'm going to build something creative. CHARLES: All right everybody. There you have it. Go out, build something useless, build something creative, build something that will help you learn and acquire new tools, new techniques and take you [inaudible] and do it quickly.
Ever Better Podcast | Inspiring Stories | Motivating | Transition with Grace | Fulfillment | Wisdom
Robert Sharpe is an inspiring and optimistic man who brings out the best in people. His live radio show, Bringing Inspiration to Earth is filled with inspirational triumphs from people who have overcome adversity. Robert has written two e-books, he interprets dreams, and works as a ghost writer. He reminds us that opportunity comes in many different forms, and to explore ideas to find hidden treasures lurking in the unfamiliar. If you are ready to make a life transition, but are not sure where to start, my Discover What’s Next Coaching Program can help you create a more fulfilling life. Listen to my conversation to hear Robert discuss: Becoming self-aware Discovering opportunities that hold unseen gifts His first book, Joy Potential Recognizing opportunity to experience and create your own joy The part that positivity plays in your experiences Overcoming negativity His transition from the corporate banking world to the restaurant industry to becoming an author and host of Bite Radio - (Bring Inspiration to Earth) The challenges of doing a live, daily radio show The themes of inspiring people, spirituality and self-help, children’s literature, and environmental awareness on his show The “little bit at a time” philosophy Using a perception change to improve your job/career outlook His second book, It’s No Secret, Spirituality Bites Identifying the needs of difficult people Writing books and journaling as a means of therapy Journaling to plant “the seeds of inspiration” The gift of gratitude as it minimizing struggles Writing two new books simultaneously Being a caregiver and the struggles of coping as a caregiver Science Fiction - dream interpretation Recommended books: Dream Sight: A Dictionary and Guide for Interpreting Any Dream, by Michael Lennox Dreams 1,2,3, by J.M. DeBord Quotes from Robert: “It’s the ripple effect. If you change one person’s life then, everyone who their life touches, changes as well.” “Awareness is where it all begins.” “Talking to people, hearing their stories, finding out what they did, really helped me raise my awareness of their challenges.” “Life is all about relationships.” Contact Robert: Website: Bite Radio Facebook: Robert Sharpe @RPSharpe Linkedin: Robert Sharpe Book: Joy Potential Contact Lisa: Lisa@EverBetterU.com Work with Lisa: EverBetterU.com/WorkWithMe
Toran Billups @toranb | GitHub | Blog Show Notes: 02:23 - Ember 2.0; Data Down, Actions Up 08:28 - redux and State 16:39 - Dispatching Actions/Patterns 24:00 - Components and Routing 31:00 - ember-redux and Cloning the react-redux API 35:22 - Hot Reloading 41:22 - Audience 47:02 - Motivation 50:25 - Building Component Trees Resources: Toran Billups: Test-Driven Development By Example @ EmberConf 2015 Dan Abramov: Live React: Hot Reloading with Time Travel @ react-europe 2015 react-redux Charles Lowell: Immutability is for UI, You and I @ EmberConf 2016 redux-thunk Ryan Toronto: Safety of the herd EmberMap: Component side effects Functional Programming Browserify More Toran Billups Talks Transcript: CHARLES: Hello everybody. Welcome to The Frontside Podcast. This is Episode 55. We're broadcasting and everybody's here in Austin, although we're still remote. I am here with a really special panel today. There's me, which makes it special by default. My name is Charles Lowell. I'm a developer here at The Frontside. I'm also here with Robert De Luca, who also develops JavaScript codes at The Frontside and we have today [drum roll sound] -- I'm really, really going to work that drumroll -- Toran Billups. What's up, man? TORAN: Hey, man. Thanks for having me. I'm really excited to be here. CHARLES: Toran is with us today and he's going to be talking about a lot of things. He's going to be talking about today mostly about Redux and his efforts to meld Redux and make it useful within the Ember community. But first, if you have not heard of Toran, I think the first time we'd interacted over email, Slack briefly but then when I really, really saw you for the first time was at EmberConf, I think in 2015 and he just gave the most amazing talk on Test Driven Development and really kind of the focus on you can set up your acceptance tests from the outside into really define that behavior and set out that firm shell and then actually build your application from the outside in. You've really kind of been talking about that message. We like to have people on here who all about walking the walk. That's certainly the first thing that I've noticed that you were doing in the community but then more recently, you've been playing with Redux. Not playing with Redux, actually making a concerted effort to bring this kind of pattern into Ember. I just wanted to start out, how did you jump onto that track? TORAN: Some months after EmberConf in 2015, as you mentioned that talk was not only, probably the most well-rehearsed talk I've ever given but definitely the most well-received. I got a lot of people excited and really gave me a lot of opportunities that weren't there before that was also believe in that keynote in 2015 as when Ember 2.0 was announced. The interesting part of Ember 2.0, of course was we were using it, and it was called Ember 1.13, which actually made it really great. At the time, I was very much excited about the stability that offered. Other folks were not as much as interested in that idea or those values, in the JavaScript community so it's really exciting. Yet at the same time, there was this new mantra that was being talked about more that I knew nothing about. It was this 'data down, actions up' idea. I still remember as much as the stability was awesome, I also started to doubt not Ember core in particular but the ideas that were being espoused by other folks around the Ember core team because I didn't really understand the value. For instance, if I had the tree of components back then in early Ember 1.13 or 2.0 days and I had an Ember model or some kind of Ember object at the bottom of this tree, why would I not just do Ember.set. I remember, actually you may recall conversations you had with people at EmberConf around that time but there was actually varying definitions of what 'data down, actions up' meant to different people and actually never met the same thing to anyone. It was funny enough. Because of that, it sort of drove this fear in me that I didn't know what I was talking about. I was consulting at the time so I wanted to sound like I knew what I was talking about as you probably should. You guys are in that business so you know what I mean. Because of that doubt, eventually I sort of become apathetic to really trying to understand better what 'data down, actions up' meant or how components should be constructed and really what the wider impacts of Ember 2.0 meant. Because of that, I just found myself, not really loving learning. I felt like everything else in learning was a hyped up thing that would never happen or a hyped up thing that I didn't really understand or didn't make sense in the context of Ember at that time so I just kind of floated by. Everybody has their ebb and flows in the journey of excitement or not. For me, this was just the down moment. One of the things, like an analogy to this is when you lose your hunger in real life, you'd be very much like losing your hunger for learning. There's this interesting hormone that your body produces when you're actually physically hungry that kind of gives you the physical symptoms like your stomach cramps that tells your brain probably should eat somewhere. When those things aren't happening or that hormones not being produced, it's often because you've quit eating yourself. If you've ever gone on a fast or something weird like that on day three, your body quits secreting this hormone so you just sort of or not hungry at all, which is kind of weird. The same sort of thing was happening to me. If you ask a doctor or a physician, "What's the first thing I should do? I'm not hungry anymore." They'll tell you, "You just start eating." But I'm not hungry now so the same thing applied in my life and I think the first step really is just eat anyway. In this case, it was just learn something anyway even if you're not in love with learning right now. Eventually, your body will start producing this hormone, in the hunger example and for me, I just sort of got back in the flow and what came from this was a routine, which is really the second part of how you get your hunger back, not just eating once a day. I was eating three meals a day or more, especially if you haven't been eating. For me, I just set aside an hour a day, in addition to consulting work and things that would get me interested in loving learning again. The third component to this was trying something different. At the time, of course I was just doing Ember, I pretty much had done Ember since 2012 like some of you guys and I feel like there wasn't a lot of new. There was patterns and ideas but there was anything really challenging me. That's when I sort of looked around at the React community and I had done some React in the early days when I was super hyped up but I still feel vaguely different. Not that it's jQuery or any way but I didn't feel like this fully encompass single page out framework. The reasons I got into Ember very early on were that I wanted to build rich single page apps. If you guys remember from the early React days, that also wasn't really the messaging with React and maybe today with View. In fact, that's kind of one of the benefits or they speak to in those communities about why you use React because you don't have to use it for your whole app. You could kind of piecemeal it in, which totally cool. You got to see it out with Ember too. But in my mind, I just wanted to build a rich JavaScript lines that could compete with the iPhone or the iPhone apps that were popular in that day. Through this process, I started looking at React and really just kind of get back into it again, get going again. I wasn't really in love with it but I needed to try something outside of the realm I was used to. As part of that, I noticed there was this talk by Dan Abramov, I think he works for Facebook now, big in the React community, of course and he gave this talk at a conference in Europe that introduced Redux. What's funny, if you find out or dive deeper into that story is he actually pitched the talk, not really having built any of this and just thought, "This sounds like a great idea," and then of course the talk was accepted. Like most, he delivered on that promise and made a great talk. There are definitely courage folks to check out and I should link it to you here. We can show noted that, I'm sure. That talk make me excited mostly because there was a lot of whiz-bang. If you guys remember any great talk you've ever seen, the talk even that I gave at EmberConf that you mentioned, Charles the thing that blew people away was this very end moment that, of course I had produced to be a great moment. In the same way, Dan during this talk introduced some new ideas or new to the JavaScript community. One of those was the tooling that can change when the state doesn't change in your application. That got me sort of piqued my interest, in part because I was actually big test driven guy and I thought, "I won't use any of this stuff. It just seems cool. It's a gimmick. Tester development is how you really build app." If anything I thought to disprove it by getting involved and learning a little bit more but what I instantly found was the simplicity of data changes rerender. That sounds very high level, of course but it was almost just that simple, instead of being like how does this change to an object in my array, bubble out through notifications on the Ember side and notify the Ember change detection to rerender. Well, I'm not entirely sure so when I was start debugging that, I noticed a lot of framework code between me and the rerender. It's that's how Ember is, right? When I boiled that down in jQuery with vanilla Redux, not even using React at all, I was like, "Wow, there's just a call back. I wonder why I haven't been doing this." CHARLES: As a single callback for a global state? TORAN: Correct. CHARLES: So there's no call back for every single path in your tree. You just used that one call back? TORAN: I'll fill in for Rob here. I know he's jumping at it. You should probably define a Redux is. He's really good at asking that question. Redux in this case, for me is just a global JavaScript object to use to hydrate your templates. They'll give you some big spiel about state container, if you go check out the website. But for me and in this context of being on an Ember-centric sort of podcast, we already use this idea in Ember today. If you're just feeding your templates from some high level service, it's a very similar idea in that Redux is just a single service. In the Ember case, especially you can talk about the add-on, I maintain later, but really it's just a service with a single object that will help you populate all of your components. ROBERT: Yeah, I love Redux. I actually sort of coming into the Redux world, probably to about six to eight months ago and it was around the same thing like exploring React stuff. I share similar opinions to you as nobody really can define 'data down, actions up'. I also think that 'data down, actions up' cannot just live in the component. In a lot of the Ember apps I worked on, there's times where I'll be looking up to get a new state and it comes in from the side and something's mutating, something that I have no idea why and where it was mutated and Redux does a really good job at helping you manage what changes and why it changed. CHARLES: I have a question too. When you're actually using Redux, you said you got a single tree that you used to hydrate your templates. In the context of Ember, where do you maintain that single object? I assume you have one store, one instance of your Redux state per application? TORAN: Correct. There's just a service like you imagine in the Ember data service and that holds on to really just an identity map or a single graph object that will let you pass or pull that in by injecting the service into your components if you want to do that or your route then just asking for that state. CHARLES: Because I think that for a lot of people in the Ember community certainly, when I was kind of grappling with these ideas, the idea of having a single global object as your state seems so counterintuitive, so going to go against everything that we learned, that you have to decompose a problem into its component parts. Obviously, Redux has an answer for that so how does that work? How do you decompose that state into saying, "I'm just interested in this kind of local state." How does local state work in Redux? TORAN: I should define local state is state specific to the component. It doesn't need to bleed up and has no value at the global level. CHARLES: Usually, I got two components. Let's say, I want to store both of their states in the Redux store. Obviously, component one is not interested in seeing any state that's not related to it so it's only interested in its own state and it's not interested in any of the surrounding context. How does that work? How do you connect a single component or connect a route to the store? TORAN: There's really just a simple method on Redux -- the Redux store itself, which it says, "Give me the state." What may not sound great at first is that it say, "I will give you all the state and that is your job to pull from that or map three attributes from that whole tree into my component." Then by side effect if you're using our add-on or if you don't React-Redux, you actually subscribe then to call backs on any of those changes so if something were to be bumped, then your component is given the opportunity to rerender during that call back. CHARLES: Now, in terms of Ember-Redux, that kind plumbing is hidden from you. You don't actually have to explicitly map that state. You can say, "I want to connect this component into the Redux store," and you're just off to the races. ROBERT: Is there a mapStateToProps or... I don't know what that would be called in Ember-land. TORAN: That brings about interesting point. I literally copied this API that you guys are probably looked at from the readme from this very popular project in React called React-Redux. The word that you're using, Charles is this word connect. Actually, I like that word because that's how I think about it. I want to connect the components to the single source of truth and then respond by rerendering when something changes. The API is actually very similar on what you said, Rob. In fact, the set of mapStateToProps is just map states to computed, which is very much the same idea so instead of really defining the component like you might normally, this is where it gets a little weird for your classic Ember developer, you actually just write two functions and really only one is require. The first one is what you're hinting at Charles, which is I want to pull from the state a set of properties and as you mentioned, the plumbing is sort of hidden, magically those are actually created as CPs or Computed Properties on your component so you can go to your HPS file, your handlebars template and say, "Oh, I took number from the global state and I'm just going to map it in this function and now I can go to my handlebars template and number," and there it is. Every time you bump number up or down, you'll get a rerun in your callback and the HPS will update. The other function, as sort of glossed over is really just for your closure actions. If you would like to ask the store to do something and saying, "I would actually like to increment the number," then you can fire an action and the second block just does also additional magic, which just maps a closure action by letting you get this dispatched keyword. Dispatch in a Redux context is just, "I'm going to send an action," and you can think of it almost in vanilla JavaScript terms as, "I have an event. Someone will handle this event and I'm just going to throw it up." ROBERT: It makes its way to reducer then from there, right? TORAN: Correct. We haven't talked too much about that process. The reducer really says, "I'm going to be given a state or the initial state, if you haven't done this yet," which would be maybe in the number scenario. I'm going to start with zero as a sensible default and then I'm going to have an action, whether that's add or subtract in this simple example and in add, I'm just going to take the state coming in, even if it starts out at zero and then do something, transform it to a new state. Actually the important word here is that -- I know you guys are big in the functional world, functional programming and that's the word actually got me interested and really excited about programming again as well, in the most perfect sense -- a pure function, which just means that there are no side effects. There's no mutation or changing of the state that comes in when you do it correctly. In this case, actually instead of mutating something I'm actually returning to number two or to number one and you're like, "Now, we have both zero and one in kind of a timeline." If you think about this almost as the realistic stories, we're just kind of kicking a pointer to a new block of state. Every single time you come to reducer, we still have the old state and we can still walk backwards, which is how the time travel debugging works as we just flip the pointer back in time. As you guys have talked about and I think, Charles you mentioned last year in EmberConf, the immutability story has of course a whole slew of great properties that come with it and those we haven't even obviously talked about. But hopefully I gave people a broad overview of what the reducer does. In its most simplest form, state comes and action returns a new state. ROBERT: Yeah, in Charles's talk and his research, I got to sit next to him and watched him do that actually kind of shaped a lot of my thinking and hunger, if we want to keep that going towards doing like something that's immutable and state management in Ember. I would like to thank you, Toran for building that add-on and spearheading Redux because Redux is pretty awesome for state management. CHARLES: By the way, you did in that call out the analogy for hunger. I really, really, really like that. It's an important tidbit not to miss is that when you are feeling those kind of doldrums of development. I know I was actually ironically feeling that about the same time in 2015, feeling of in a funk because I feel like there was a lot of stuff coming down the pipe like with 'data down, actions up' but no good examples of where we've actually seen this in practice. I think Redux is an actual implementation of 'data down, actions up' so I think it's fantastic that you were able to go and seek inspiration there like, "We've got this message of the way things that ought to be doing with the applications ought to be built." But we don't actually have any concrete examples that we can look to. I think the Redux actually is almost the most pure version of that 'data down, actions up'. I guess my next question is given that you've got this global store, you've got a way to connect components. I assume there are other ways to dispatch actions from within your Ember application like what are the patterns that you're seeing emerge around this? We've talked about how you would use them in components. Suppose my tree of components gets pretty complex, how do I manage that to kind of the passing of data down? Do parent components play any role in the data that their subcomponents see? Is each component connecting directly to the store? I'm just kind of curious where that balance lies and how things are kind of playing out? TORAN: There's really two points in your bigger question. One that I was going to try out of you but then you kept going. That was really around side effects. How do you actually dispatch or make changes, requests changes and see the flow and we could talk about that really starts out briefly with a Promise based approach. With Redux, most people don't know but it's basically like asynchronous flow. Dispatch would normally be like asynchronous action where you're sort of blocking and then doing, transform and getting it back. In the simplest ways, you see there is this tool or this add-on, Redux-thunk, which you can use Promises now and async will still work as if it were synchronous essentially by firing dispatch up and letting your reducer do the work. I think that is a great introductory because especially as Ember developers, we've got a lot of experience with Promises so this is just the same thing. In most of the demos I've done and if you check out the read me, there's like a full Yelp Clone example. It's using this approach because it's a little bit more familiar to most folks. CHARLES: Just to clarify what would happen there is you're essentially getting a new state transition when every Promise resolves or rejects. If it's rejects, that's a state transition. If it resolves, that's a state transition. The next Promise that resolves is another state transition. Is that fair to say? TORAN: Assuming you want to alter and use that top level state, of course you could reject or resolve and just not even bother with the top level store. We kind of skipped over some of the benefits and we could just roll back to that briefly. Why would you use top level stores at all? You mentioned earlier and it kind of seems counterintuitive. This is basic global variable. That's what we're talking about. In the Ember example, I think it's actually sort of not weird because if you guys, your Ember data in its earlier form or even today, it really very much is that. We have this one cache of objects related or otherwise and we pass those around. They are a global object or almost like a global variable. The downside of that in my experience has been that is truly mutable and actually everything is driven by mutating those and then having callbacks or denotify property change drive your template updates. That is not the process with Redux, of course. It feels more explicit, where I can actually go look up kind of a tree or look up table of actions and see exactly what's going to happen. Then also to your second half of the question, which is like how was the components wired up? How do they map? I actually uses an interesting pattern which isn't specific to Ember-Redux or Redux, which is to create a seam in my components now where I have truly HTML CSS components. Separating those from the components and know about the data and the closure action story. Forgetting Redux for a moment and all of this actually made my regular Ember much better because I started to produce this component that would connect to a Ember data store, provide closure actions to send up in the most pure 'data down, actions up' sense and then I would connect it using the yield block, which credits to you and other folks at EmberConf that you, Charles kind of talked me into this because I was a espousing this idea but I didn't really understand that I would actually nest within this parent, the HTML component that would just be handed the properties to render. When we do this, again it still is I think a better pattern even if you're not using Redux but when we did it and I when I started with Redux, the only thing that really gets me in hot water is when people see this and they're like, "Oh, so this is the first thing that comes down from the routed controllers template. Then there's always this brief moment of like, "I'm not sure what to say. I don't want to predict the future and I'm not trying to be Mr Routable Components here." But for me, most of my controller templates are just a landing page for the component tree to begin. Again, that's not me trying to hacking the route or anything to say, "I want to use this controller as a routed to component. I think eventually when that RFC lands, this will look different, anyway so I'm not trying to have people do things really outside of the Ember ecosystem or outside of the norm." But from there, I feel like still just landing into a component, allows you this composition which is supposed is the real value of the components structure. They are too primitive to build pages and then eventually full apps. ROBERT: So if we want to drop parallel, it's container versus presentation components, right? TORAN: Yes and that of course, again stolen from, not me probably stolen from someone else in the 70s. But you know, Dan Abramov is accredited to bringing that idea about in React. Actually I like the idea because let's pretend I had done this pattern in 2013. Now, it's using Ember data or simple store or Erik Bryn's Ember model, something like that. Then eventually, the community start shifting to something else. It could be MobX, it could be Redux and whatever the case, I could just very easily swap out those connected components that have no HTML CSS. The data source changes and all the presentation components do not know. They do not change. There is actually an iterable story to refactor through, an update like that normally is kind of a [inaudible]. If you have ever done PHP in the early days or at least my PHP experience in 1999 -- no offense to PHP today -- was that everything was so stuck together or so couple that I could never refactor anything out of it. Of course, you probably do this in a consulting space as I have, where he first thing on a messy project is actually making those scenes in the application anyway to allow you to upgrade incrementally. This process is just more of an upfront thought and I don't think it's really taken hold than it needs to in the Ember community. It's just something I was experimenting with and I'm finding a lot of value because I think the connection of the data source is a different activity than HTML. ROBERT: I think it also holds a lot of value. CHARLES: I think it holds a lot of value. I think there's a dawning awareness of this. In your comment, I actually thought of two blog posts for EmberMap, which I was just reading this morning. One was talking about kind of the safety of the herd and don't worry so much about controllers versus radical components like use your controllers, use your components. Don't worry about it too much. It'll get sorted out. I definitely agree with that. Although, you definitely want to experiment when you're experiencing particular pain around something. But then, the next thing which I think came out yesterday was talking about basically components for managing side effects, which I think is an unfortunate name because I think side effects is a tainted word. But basically, the idea is having presentation components and container components and the container components are responsible for managing the state. I think that idea is valuable in of itself and I hope that it takes root. I think that's something that you're doing, something that we're doing and as people kind of realize it, it does take root, just kind of by virtue of its own value. Let me summarize if I understand it correctly. As part of these job, you've got these container components and their job is, I like the term that you used, creating a seam. Their job in the Redux world is to take a slice of that global state. You have these components whose responsibility is taking a slice of that global state and presenting that global state to HTML CSS aka presentation components that lie underneath them. Is that a fair assessment? Then if that's so, I've got a second part to that. I just want to make sure I'm understanding it correctly. For components that are further downstream on that tree, do you ever switch back to data containers like you switch between data components and presentation components and then back to data components and then to presentation components and kind of back and forth and back and forth on down the tree? Or do you mostly see it as one-kind of container component on top and then presentation components all the way down? TORAN: It's a great question. I think that still needs a fair bit of experience in the Ember community because the patterns I pulled from the source code I read a lot is mostly from the React ecosystem. Because of that, there's a very split view or a different view in that community on routing. We may share some of those views in Ember but I think for the most part, we assume routing actually and that's one of the tricky part to answer your question. This is a broad statement so I'm likely wrong in every context but I don't love to be creating these data components that don't get routed to if I can help it. I'm sure there are situations that have been really complex, places where you just have to make, no route here because I don't want change the URL for instance and I'm just going to make this thing like a routed to component with no URL to get me here. But for the most part, I treat the entry point to this route and when I land on this route at this time, it's appropriate to ask for the data likely coming from the model hook in the route. In fact, all that's still the same. That's also where it's a little weird. If you've ever seen a full component tree in a React app, they may not have a router at all. In that situation I think, Redux was in particular even better because you don't have to pass from the top app component, the same props or the same data all the way down that tree. In fact, if you read documentation about why Redux in the React ecosystem they'll say, "It gives you this place where we can create a little shim and then ask for the data down here in the [inaudible] mode. You don't have to pass it from the app to that, to that." I see those benefits but in Ember we don't really get as much from that. In fact, they still tell people who challenged the global state idea that not everything maybe should be a global state but you give up some things by doing that. The first one I would say, which I think is the most valuable for anyone doing vanilla Ember with Ember data or someone experimenting with React or Redux. Or the case I'm most interested in, the audience I'm after which is Redux in Ember, which is do you actually need to have that state in one place. The prime example of this that is the greatest use case is master detail. What I mean by that is you have a list of things and when someone drills into one of those, you can also see that at the same time. There's really two choices you can make here. One is I'm going to have two separate data sources to feed two separate components so the list will go get its data and then the detail won't even use that data at all. Just go get its own data. In that case, you may up against a problem where you need to synchronize at some point and here's the tradeoff. Either synchronize the two separate states or you have a single source of truth. That's a real benefit I think of Redux for the most part. It's like the broad, "Do I want deterministic rendering?" We've all heard the joke about the Facebook nav bar that's like, "You have one message," and you're like, "No, I just answered it down here." Well, that's a different component so the joke is like, "Oh, Redux must be working. We have one up here but I've already read the message." You know? Someone obviously is in charge of synchronizing in those sort of examples. Maybe not just doing it well or they run up against an issue synchronizing that. My experience doing back end development, colors this for me. What I rather have three databases and they kind of synchronize the state across them or I rather have the one postgres or SQL server database that is the source of truth so that when I render something to a customer, I can guarantee that it's not in a transition to be synchronized. It is the source of truth. CHARLES: Right, I really like that and I think the point that I take from that is that, and again this speaks to people who might be internally reacting to this idea of a global state is that you actually do have a global state always in your UI, whether you acknowledge it or not. It's composed of all the other distributed states that are sprinkled around your application so if you take an approach like Redux, you're kind of acknowledging that upfront that at any given time, I do in fact have a global state. I might as well deal with that explicitly. That's kind of a key innovation. I also like what you said too about kind of treating the router in Ember really leaning on the router as a good way to partition your data or drill down into a sub-piece of that global state. Inside Ember-Redux, are there explicit hooks for dealing with the Redux store inside your routes? TORAN: Yeah, that's that one that gets me the most trouble. When I see a blog post and memes that are all about the herd lately, can't help but feel like they're pointed directly at me because of some of these new ideas. CHARLES: Toran, I'm just telling you. This is a safe space. We believe in innovation here. You're okay. TORAN: Yeah. CHARLES: Let me add-on that. I didn't mean that as a knock to you. I do think they call this out of the end of the blog post. I think acting in concert with the community for the most part, actually fosters innovations and an innovative journeys like the one on which you're currently embarked because you don't have to worry about CLI tools and you don't have to worry about this. You can focus on the problem of like how does an Ember application work with a global atom as its state. TORAN: That is the idea. I mean the route is interesting. I have a little helper to your point, Charles if you've seen some of the docs or any of the examples. There is a little helper for routes and all it really does is provide dispatch as an argument. For instance, a lot of times I just want a model to be a regular function and dispatch to be an argument so I can return a Promise or do some Generator stuff as a side effect. In that way, I sort of create a shorthand which is just really simple. It allows me to say [inaudible] model and then have dispatch as an argument and run my code then just providing that to this special little helper. It's a functional type helper called route and what it does behind the scenes is it injects the Redux service for me, which is again something you can do by hand. If you really just don't like that or you want to be more in the herd, you can just have a regular route, inject the service and then get dispatched from that service and use it. ROBERT: It looks like you just dropped the version 2.0, like three hours ago. I would like to ask, we heard about your journey like you were feeling like you weren't hungry for learning. I want to know more about where you actually sat down and wanted to write this add-on on and why you chose to clone the React-Redux API and what took you on that path? TORAN: Yeah, that's a good question. Back to benefits or the reasons I got excited about, of course I mentioned during the talk that Dan Abramov did. There was some interesting dev tools. First of which was this thing Time Travel Debugging which it allows you to sort of move backwards in time and pretend as if actions and mutations or what looked like mutations that never occurred. That was very interesting. I wasn't really sure of the value, especially at the time. I told you guys around 2015, I was consulting which lucky me, I was doing Greenfield. Thankfully, I was working with a really great team and some great people, built an amazing product. I don't really understand the pain of this. For the most part Ember-set was doing its job and I didn't really have a lot of interest in learning this. But as I got more into it, also started a full time job last year, I pretty much just fix bugs for a year. Anyone who's been on one side of the fence or the other knows that the bug fixing side will sort of expose, maybe the weaknesses of the application or patterns or choices made. For me, that was really mutation or shared mutable stake aka the root of all evil. If you've ever looked at your Elm ClojureScript, Elm next is the same vein where immutability is very much there. Charles, of course gave his talk on immutability and trying to get people interested in that or more interested in the Ember community. That was really all I wanted to do to your point, Rob was provide really an outlet for people to use this and I wanted to keep the messaging away from the things I didn't like, which I think was actually something I screwed up to be fair early on. I think I was very vocal in the microcosm that I would talk to people about like, "These are the things I don't like about Ember," or I would use the word 'Ember the good parts' plus 'Ember the bad parts' and I was told not to say that anymore on the Slack channel. Once I started getting too much needed feedback -- I don't want to be negative about it -- I changed my messaging and as part of that, you mentioned Rob I basically cargo-culted or copied this API from React-Redux called connect and excluding the brief route helper that I mentioned, Charles a minute ago, the real idea here is you just call disconnect function with two other functions: mapping state and closure actions. Everything else becomes then vanilla JavaScript in this reducer function we talked about briefly where I have state coming in and I need to transform it into a new state. One interesting benefit of that -- I wasn't overly critical about until I really saw the difference is that -- I'm no longer using the Ember object. I'm not doing Ember.get and set, which immediately start to open the door some time last year for TypeScripts interest. I'm actually not a super type friendly person. I sort of left Objective C and C# and Java in my background and have like this Vietnam experience when people ask me about types. But I do understand one very critical fact that I can't dispute about types is that there are more information for the next programmer than you have without them. Again, my experience this last 12 months has been, as a maintenance programmer, I need more information. Tests are great when they're there but they also don't provide the interface or all the information about those and certainly the compiler may help as well. I don't know yet. I'm not doing any TypeScript. What I started notice is also more functional programming and maybe just not in our core yet but also things I wanted to steal from other ecosystems because I also found is very interesting. I started to study functional programming. I know like nothing about it, of course. I don't think anyone does because I can't describe a monad without getting in trouble or being wrong. For me, the real value is the separation of the data structure and the function. I'm preaching to the choir here but that was so much like an interesting idea to me and actually spurred on some of the further patterns or adoption of those in my work in Ember-Redux because this presentation and container component idea was really that I was separating the data structure from the function of the view. I think you mentioned this in your talk at EmberConf where the actual HTMLbars template is really just a function that has data in, HTML out. I started to internalize that and think about that and what were the properties I got from that, as well as I enjoyed functional programming. Some other great benefits that we've already touched on briefly are just how much more of this I felt explicit, not that Ember-set is inherently implicit but when you do a Ember-set for mutation to chase down every single place in a complex system to determine why they something render this way? It does feel a little more implicit than something like React-Redux with this connect function where I was like, "Wow," when I was doing React. Especially, I was like, "I bet I could just put a breakpoint at every connection so when that callback happens, I can know exactly what action spurred on this new callback to rerender," and that was something that was very new and interesting. Then of course, falling out of all this was another hyped tooling thing that I thought was really cool, not explicit to Redux, again but it got me interested because that's hot reloading. All hot reloading of CSS and Ember CLI, which I've never done design work which I'm not good at. But I do write some CSS or hack-on it when friends show me what to write. Then writing HTML was a separate experience. Once you wrote the CSS, you would hot reload in that course, what do you do every time you change CSS, you also change HTML, which would incur a full-page reload with a live reload tool, if you're familiar with that in Ember CLI. This tooling allowed the Redux store itself because it's stored the state, allow me to really throw the component away in the page without refreshing it and then providing a new one and just go rerender because the state was instantly mapped in and then rerendered. I actually did a demo sometime last year and like, "I'm going to build a star rating component and here it is with live reload. Here it is with hot reload. I'm not going to make a decision about which one is better. You decide," and overwhelmingly people were like, "This is a much nicer feedback loop to make HTML and CSS changes in real time." ROBERT: Agreed. Let's pedal back the hot module reloading because that is pure awesomeness. But that has a little bit of setup they have to do and changing your application. I remember we were talking about this. When you did that demo, I remember this. But there's a little bit they have to do to make your components stateless. They have to come down from the Redux store. TORAN: Correct and this actually still applies if you are, I think using Ember data as well, as you just can't pull the state to reload it anything local, which may go against what you're trying to do with your component. ROBERT: Right. That's cool but I do want to highlight a little bit something that was cool about the Redux dev tools as with all the state that you have since it's in a centrally managed place, you can take your state and then play it back over the top of something like if it did live reload and it'll just pop you right back down to where you were when you were debugging. When that page refresh happens, if you're not doing hot module reloading, you still won't lose all your state which is really cool. You just play it right back down on top and you're exactly where you were before. It's almost like you would throw a specific test that puts you into that state that you're trying to debug. TORAN: Yes, it's like git rebase. It lets me pull off my state, replay the new component function and then drop my changes on top of it and see it all viewed together. ROBERT: Yeah, I think that's massively powerful. CHARLES: Yeah, it is fantastic and that's where you get into that power. I can get on my immutability soapbox. But it turns out that as programmers, we deal in information and not throwing information away, not just flushing it down the toilet is hugely powerful. I think the thing that's so fantastic is that Redux takes this concept and then all of the tools to leverage it are there for you. I think that it is something that is missing from the Ember development story and people don't realize that it's missing, that we have all these wonderful tools, we have this conventional way of building our applications, of deploying our applications, of rendering our applications, of marshalling the data in our applications in the form of routes. But what we're lacking is this unified atomically based state management solution. I think that, Toran it's been fantastic that you have pioneered this and trying to bring what I see as a glaring gap in the developer experience to the community. I'm curious then to ask you what do you see as the future. You know, 2.0 just dropped and there's this need. I feel very strongly that Ember 3.0, 4.0 or Ember 'dot future' at some point should have a unified state management solution. How do you see the road that you're on intersecting with that future if it does in fact exist? ROBERT: Also how can I help or how can we help? TORAN: Just real brief before I dive into some of those questions. I just want to mention that 2.0, as awesome as that sounds, of course I dropped that this morning just so we could say that on podcast, really. We've had a beta in the works for Ember. The only change really, if you're like, "I just got into an Ember-Redux last week. Is it all garbage?" No, this isn't Ryan Florence 2.0 -- it was a joke for any [inaudible] router folks in here. Actually, just us removing Browserify because if you are familiar with Browserify in the Ember ecosystem, talk to Robert Jackson or Stef Penner, folks familiar with that in Broccoli, they'll tell you that one of the harder things to optimize and although, it created a great entry point to how do I use Redux? Boom! Ember Browserify, install Redux, I'm done. If you've ever seen an [inaudible] in Ember that has 'npm:', you're using Ember Browserify to pull in, either a common JS module or some kind of node module and use that in the Ember ecosystem without an additional shim. Now, what we found or learned was that bigger teams that are using this, paid a little bit of a cost and not just cold rebuilds. I'm talking hot rebuilds because Browserify just isn't friendly to get those to be optimized, I guess is the word, so we removed it completely or just use some smaller simpler shims. You actually get the performance improvements hopefully -- ROBERT: That is awesome. TORAN: -- Which is big win. Back to your question, Charles. The audience that's intended, of course is a little different than most people like me to talk about. In fact, the API itself, I think was a bit rejected. You're sort of asking like, "What does this mean in the future?" I don't really feel that the traditional Ember audience has picked up around with it because of something that's missing. You said the 'C word' earlier so convention is certainly still missing from this and even in the React ecosystem, they're just barely thinking about, "Look at all this great stuff we can do with one-way data flow and immutability and functional programming," but guess what we're giving up. No one's really come around with this perfect pattern and conventionalized it as Ember did in its early days so there's a lot of churn, I wouldn't say overly so much that you're not going to getting work done but more than the average Ember developer is aware of. My audience is actually not the average Ember developer, which may be bad for what you're asking about, Charles. Instead, it's actually the person who maybe has done React and maybe Redux or Backbone in the last two years. They love some of those patterns. They're not in love with the Ember-object because of getting set. Maybe they love TypeScript and they say, "I want to use this in Ember." They joined a new company that's a little larger than the startup they'd been on the last two years and they are using Ember. They love a lot of Ember but they would also like to use some of the predictable state patterns that you get with Redux. As well as maybe the dev tooling, things like that so they have adopted this. I feel like that really is the new audience that I aim to please or I'm falling in line with, which is a little bit outside. I feel like there's room for some fragmentation and a good beat up on me for that because when the realities of this herd conversation that we're kind of talking around a little bit is that the herd is great until something innovative needs to happen. Innovation, obviously takes some risk and I feel like that's sort of what I did last year and said, "Here's some interesting ideas. I have not shipped Facebook with it yet so let's just check this out." Of course, Ember add-ons are a great way to enable someone to try a new idea. But I think most people got into it, saw this funky connect thing and they're like, "What the heck is this?" It's a function and returns a component. All right, that's not doing that so most people bailed out. But I do hope people still and I know great folks at LinkedIn, Chris [inaudible], of course. We chat occasionally. Mostly he just tells me what I'm doing wrong. Shout out for Chris. But he knows a lot more about some of the stuff than I do and I think he is fully aware of the values that are in Redux that are great and then working hard, of course during his full time gig to apply these to Ember data and hopefully these do make their way in naturally. I just wanted to be a bit more radical. I don't want to wait around and I wasn't really involved in the Ember data project. My own fault there but I think if nothing else, the ideas will come out of it because the developers want this. Whether you're the audience I'm talking about, which is a React developer from two years ago, you're in Ember, you're eventually going to really understand and want this and then those 'data down, action up' ideas that were pretty unclear to me in 2015, will be very clear. In fact, if anyone seen or heard of this Project MobX, which is like an alternative in a way, popularity-wise to React ecosystem. It kind of looks like Ember in a way where you get sort of some more magic and what I found quickly in playing around MobX is that you can very much fall into the shared mutable state problems. The interesting part about MobX is you can opt into a strict 'data down, actions up' approach. But if you don't have the Ember battle scars like we do, you're just going to come in and say, "What's less work?" Just like in Ember when I can do a set in the [inaudible] node, why would I do 'data down, actions up' and that's the transition I want to see folks make. Hopefully they learn something from that. CHARLES: Right, I agree with you. Although, I think the time has definitely come, I think the term 'herd-mentality' is an unfortunate one. I prefer to think of it as like a pack. If you travel as a pack, you can bring down moose that are bigger than you are individually. But every once in a while, like a gigantic moose with laser horns shows up and then what are you going to do? If you're hunting as a pack, you have to introduce new things because I like that analogy a little bit better than a herd because the job of the herd is just to not get eaten, where is the pack has this idea of these entities that have to stick together. They're hunting and they're tackling different problems as they come but sharing in the benefits. But I think that there has to be room for innovation inside that herd/pack-mentality, whatever you choose. I do think this idea needs to be introduced so what I would say is that if you're listening to this podcast, you should actually go and you should try and use Toran's add-on and you should try and build something with it so that if you have opinions about how it should fit into Ember, then we can hear them. It sounds like you're taking a minimalist approach, you're emulating patterns that are proven to work in the React community so kind of enabling that seed cross-pollination right there. I would say go build something with it, experience what it's like to have your state as a single atom, experience what it's like to have incredible development tools that come along with that. I think that if you're in the Ember community today, you need to go build something with React, you need to go build something with Redux and you actually have made it one step easier to do. You don't even have to leave Ember to do that. You can build something of node with production quality code using Redux and you can experience what it's like. That's my challenge, I think to the Ember community. Go try it, go experience it because you'll come back, I think like I did. You'll come back with superpowers just from having tried that. ROBERT: Managing state becomes so easy. TORAN: Yes. I want to jump in briefly and just cover one point that we haven't talked about that's very controversial so why not drop it at the end here. I think, Rob you might have asked about it earlier and I just didn't feel brave enough to talk about it at that time. But you guys keep going back to this idea and I have to talk about a little bit too. One of the motivations is I live in Iowa. I work in Texas. Thankfully, this great company, Q2 employs me and I don't know why I'm being paid. I'm lucky to be writing JavaScript for money, probably we all are. But in the Ember local community that I'm in, a very little folks writing Ember and that was even years ago. I was like the only voice in the middle of the Midwest screaming and then folks in Minnesota would tell me that wasn't true so I went up there and did a conference as well. But for the most part, I looked around the job market too and thought, "It be really great if I understand some of the more JavaScript-centric parts of building web apps today," and when I looked at Redux functional programming, the way the reducer worked and structured, the way to React-Redux project was structured and thought, "I bet I could emulate that an Ember," such that I could actually and I believe this is to be true, that if you were in a React-Redux project or even an Angular like ‘ngRedux', which is a very similar connect binding, you could copy a whole directory of your reducer code, which is all vanilla JavaScript. If you're doing generators, which we didn't talk about but if you're doing you know any additional side effects, you copy all that vanilla JavaScript, drop it into your Ember app and it all works because it doesn't matter if it's in React or Ember or even Angular, even View if View has some connect API like this. We all share this common API that is just give me the functions that enumerate over the data and return new states of the data and call back to rerender. There's something really powerful about that but the tradeoff being there are not a lot of strong conventions, Charles that I have adopted. That's kind of what I'm cautioning here a little bit is that I'm still also just watching the other communities to see what eventually turns out not. This is going to be am Ember add-on and I don't care what everyone else is doing. This is my vision because really my vision was to make a drop in for anyone already doing Redux on any platform. CHARLES: You know, to the point, there's a pack that extends beyond the Ember community and it sounds like you're also leveraging and being a part of that. TORAN: There's an interesting idea about the hunger thing, which just tied us in and there's where the fourth thing that a doctor will tell you to get your hunger back is go experience eating with other people. There's actually a statistic that when you sit down to eat with someone else or many people, you're likely going to eat 44% more food than you did on your own. That's just, I guess a statistic that's true. I just made it up for this podcast. No, I think it's true. If that is the case, then I think that very much translates to programming as well where when I'm developing code with other folks and I'm on like the React channel and we're just talking about vanilla JavaScript, it doesn't have to be me being an Ember developer anymore, which has been a large part of what's blocked me from being, I think an asset in my local community in the broader JavaScript community. At large is every time I get a conversation it's like, "I have to do it the Ember way," and that's changing actually. The Ember has credit a lot of deprecation if you guys have seen or follow the RCs and other just Ember upgrade deprecation. We're kind of getting away from being Ember and writing just more JavaScript and even maybe sometime this year beginning ES6 classes, instead of Ember object extend. I think Ember is heading in that direction. I just went there, rather rapidly because I also was again experiencing vanilla JavaScript with other communities, View and React. ROBERT: I think we're walking on this very similar path. I'm following your footsteps right now, it sounds like. TORAN: My last point which was that third bullet about building component trees, it didn't sound like either of you guys really contest that and I'm friends with, obviously Chris Freeman, formerly The Frontside and Chris tells me, "You're trying to build full component trees once you're injected at the route level and you're not doing like a ton of HTML in your controller HPS files." Is that true? CHARLES: We treat our controller basically as a component. Sometimes, we'll be like, "This is the controller and if we ever use it in more than one place, we'll take out its component." We're not super dogmatic but we definitely see the clear separation of the route is for maintaining the data and everything else is just one tree of components just below that. ROBERT: The more I think about it though, I'm so conflicted because I really like routes in Ember and they do a lot for you. I like having the data be maintained in one spot but I don't know a single store with Redux maintaining that and using like Redux-thunk or Redux-saga. I got some exploring to do. CHARLES: I don't think those are mutually exclusive propositions. That's what you were saying at the beginning, right Toran? You still do all of your data munching in the route. There's two kind of subjects that I wanted to broach briefly, although I don't think brief is possible with them is actions, like how we talked about data down, we talked about where you draw the seams in your application, where you're loading your data, where you're mapping it to your components and having that separation into your presentation components. We didn't get to talk about reducers so much and how you map. You touched on it like the mechanics but suppose I have a to-do list and I want to delete an item and I've got some button to delete an item, that's down my component tree. How do I map that action back up to the store? I don't know if we actually have time to cover that because it is meaty-meaty subject. ROBERT: Redux part two? TORAN: Yeah, we have to follow up because really that is a little bit more of an advanced segment not that folks shouldn't hear about it. But one thing that's a radical shift, Charles that we would have to go into and talk about, which is controversial as well as most folks want to operate in one structure, one dictionary not in the array. Then immediately, everything flips to being a Lodash operation. I didn't really use Lodash at all until I got into this. You guys probably actually are smart folks to do. But for me, this store is not in array now. When I'm doing array operations like remove or filter, I'm actually operating with Lodash on an object to produce those new states and most of it is just learning the Lodash operators because I didn't actually know them so the Yelp Clone that I have out there is a very simplistic look at using Lodash with Ember. But it accomplishes some of that. Then also, the secondary piece that would also consume a ton of time that we should go into but maybe not today is switching from Thunk to Generators with Saga and then maybe even observables with RxJS, which seems like possibly the future. Those all sounds cool but I think they're going to blow the heck out of scope on this thing. CHARLES: All right. Well, thank you so much for coming by Toran. As always, our conversations are too big to fit into a single podcast. I really want to have you on again. There are so many things that we haven't even touched on. We haven't touched on the subtleties of how action dispatching works. We haven't touched on using Ember-data -- I'm just [inaudible] out there and say it. With Redux, we haven't open that can of worms and who doesn't want to just sift through a can of worms on a podcast? We are going to have you on again. I am positive of that. ROBERT: We're going to paint that bike shed. CHARLES: Yeah, we're going to paint that bike shed. It's a bike shed that needs to be painted. It's something that the community, I think needs to face head on. Thank you so much for coming by and talking with us about Ember-Redux. Everybody, go and check it out. Toran, you've got some talks coming up, if you want to mention those real quick. TORAN: Yeah, I just wanted to plug. There's possibly going to be a talk, we're still lining up the official date with the Washington DC Ember Meetup sometime in April. I planning out to fly out there actually and give this talk on Ember-Redux. I want to thank just publicly the RSA team for kind of helping sponsor me to fly out and check it out. As well as give a more in-depth talk on Ember-Redux in the Meetup setting. CHARLES: Fantastic. If you're in the area, be sure to go check that out. If not, watch it on video and then unrelated Ember-Redux, if you haven't watched Toran's EmberConf talk on Outside-In development. TORAN: That's out actually global Ember Meetup, I think. CHARLES: Okay, that one. Actually, just go watch all Toran's talks. The thing that I didn't mention at the beginning of the podcast is that you do a lot of live coding, which is just makes my bowels freeze when I think about doing it. You just pull it off so effortlessly so it's definitely, definitely worth a watch. With that we, will take it out. We'll see you guys later. That's it from The Frontside. Remember to get in touch with us at Frontside.io. If you're interested in UI, that's engineered to make UX dreams come true.
Episode 74: Teacher/Playwright Robert Wing Robert Wing is not a drama teacher (although he played one for a bit when the drama teacher broke his back) nor does he have any drama training, or even any writing training. He's an English teacher who doesn't even do all that much creative writing in his class. So why is he so good at capturing the teen voice through drama? Listen and find out. Show Notes Robert Wing's Plays World Theatre Video Episode Transcript Welcome to TFP, The Theatrefolk Podcast. I am Lindsay Price, resident playwright for Theatrefolk. Hello, I hope you're well. Thanks for listening. So, it's really important to us here at Theatrefolk global headquarters that we put plays into the world that capture the teen voice, that the teen voice is out there, and not only that, we want plays that provide an expression of the teen voice – an artistic expression, a theatrical experience. That is key. That is key. That is necessary. That's what we do, that's what we are, and just find when you have this combination in a play – that teen voice, that expression, that theatrical experience – it can be quite magical. And that's one of the reasons I love writing for teens because it's the one place – I'm sure I've shared this before; it's my favorite thing, so, you know, bear with me – but it's the one place that students, where a group of people can be affected by theatre these days. I fully believe. They hear their voice expressed. They realize they're not alone. They can and they do. They make changes in their life because of something they see on stage. That is an amazing thing to play a very small part in. And I think this is the reason why the arts are so important in school because the arts are a method of expression that doesn't happen on a daily basis in the classroom and, oh, there is no other group of people who has so much bottled up inside of them that needs to get out, that doesn't necessarily have a proper channel to get out – if that makes sense. I just think that's so necessary, and this leads so nicely into my interview today. So, today, I'm going to talk to one of our playwrights, Robert Wing. He has two plays with us – Just Girls Talking and Scarlet Expectations of a Drowned Maiden and Two Greek Queens – and Robert is not a Drama teacher. He did play one for a little bit when the Drama teacher broke his back, but he doesn't have any Drama training, and he doesn't even have any writing training. He's an English teacher who doesn't even do all that much creative writing in his class which is stunning when you read his work and you realize he is so good at capturing the teen voice through a theatrical experience. So, how is he able to do that? Well, all right, listen and find out. Lindsay: So, I am here with Robert Wing. Hello, Robert! Robert: Hello! Lindsay: Hi! And so, Robert is a playwright and also a teacher. He has two plays with us. One is called Scarlet Expectations of a Drowned Maiden and Two Greek Queens. Robert: It's a mouthful. Lindsay: It is a mouthful but it's a very explanatory mouthful. I love that it gets all the nooks and crannies of what's going on in that play. And then, also, Just Girls Talking. But, first of all, we sort of want to start off with you and who you are because your day job, you are not a Drama teacher. Robert: No, I am not. I'm an English teacher who, in his second year of teaching, I was walking down the hallway and the principal approached me and said, “You're the Drama teacher!” and I said, “Why?” and he said, “Because the Drama teacher broke her back in a motorcycling accident.” So, I became the Drama teacher for a year and I had no experience with anything, and I had zero budget. And I said, “I have to put on a play?” and he said, “Yes!” and I said, “Okay. Well, I can do this. What resources do we have?” and I found that we had a closet filled with prom dresses from the 1980s that had been donated to the program.
Bill: How was your weekend? Robert: It was great. I went skiing. Bill: How was it? Robert: It was fun. Do you ski? Bill: Yes. Robert: You should come next time. Bill: That sounds good. How often do you go skiing? Robert: About once a month. Let's Practice A: I went to the movies. B: How often do you go to the movies? A: About twice a month. A: I baked a cake. B: How often do you bake cakes? A: About once every two months. A: I went running. B: How often do you go running? A: About three times a week. A: I had to work. B: How often do you work? A: Five days a week. A: I visited my parents. B: How often do you visit your parents? A: Once a year. Find more at www.eltpodcast.com
First, you'll hear this a basic conversation at a normal speed, then at a slower speed. Next, you'll hear some practice drills. Finally, you'll hear the conversation again at a normal speed. Bill: What are you reading? Robert: A spy novel. Bill: How is it? Robert: It's good. Do you want to borrow it when I'm finished? Bill: Sure. Thanks. Practice: A: What are you eating? B: A tuna sandwitch. A: How is it? B: It's delicious. A: What are you listening to? B: A podcast. A: How is it? B: It's great! A: What are you watching? B: A movie. A: What movie? B: I don't know. A: How is it? B: It's boring. Find more at www.eltpodcast.com