Podcasts about UI

Share on
Share on Facebook
Share on Twitter
Share on Reddit
Copy link to clipboard
  • 2,340PODCASTS
  • 5,668EPISODES
  • 47mAVG DURATION
  • 2DAILY NEW EPISODES
  • Oct 15, 2021LATEST

POPULARITY

20112012201320142015201620172018201920202021


Best podcasts about UI

Show all podcasts related to ui

Latest podcast episodes about UI

Search Buzz Video Roundup
Search News Buzz Video Recap: Google Search Algo Updates, Title Link Doc, Continuous Scroll, Knowledge Panel Updates & More

Search Buzz Video Roundup

Play Episode Listen Later Oct 15, 2021


This week, we covered yet another Google search ranking algorithm update this past weekend. Some of the tracking tools went nuts this week, but I think it might be related to the UI changes Google rolled out, I am not sure...

Focus on Women
Emma Wood - Senior Art Director

Focus on Women

Play Episode Listen Later Oct 14, 2021 42:41


We end this season with a chat with Emma Wood, she is a Senior Art Director based in NY. One of those kind that actually hires the talent to create visual content - woo hoo! Her experience in Art Direction and Design includes, but is not limited to, production, lifestyle photography, brand identity, out of home and digital campaigns, UX & UI, and much, much more. She helps break down what this role is and does and shares with us her love for getting emails from talent as well as being able to see new work thru portfolio reviews and instagram too.  This show is sponsored by the American Photographic Artists (APA), established in 1981, is a not-for-profit trade association run by photographers for photographers working in the advertising and editorial sectors.  They understand the challenges of this industry and advocate on behalf of their members. APA offers inspiration, education, and advocacy. The APA membership structure gives every photographer an affordable way to belong to a community of like-minded professionals. APA members are connected by regional chapters providing both a national and local connection to networking, portfolio reviews, photo competitions, and activism.  APA supports women and minority photographers. Their Diversity Committee is charged with clearing a path to success for those who are traditionally underrepresented. The APA Scope webinar and podcast series includes discussions with photographers re-imagining the photo industry as one driven by diversity and inclusion.APA is providing those who are listening to this Focus on Women podcast, an opportunity to join APA using a $25 coupon code. APA memberships start at just $50 a year, so that's half off an annual Contributor membership.  Use the code:  FOW2021 (as in Focus on Women)  to take advantage of this offer.  The code will be valid until the end of 2021. Join at APA National.org. If you have any questions, reach out to Juliette  Wolf-Robin, she is the executive director of APA and on the board of Focus on women. 

The UX Kitchen Podcast
Becoming a Ui Pro - Why Theory Won't Help You

The UX Kitchen Podcast

Play Episode Listen Later Oct 13, 2021 31:43


Today I wanted to talk about UI user interface, design, and how to become better, more specifically, how can you really become a UI pro like UI professional. In this episode, we are going to discuss like:

Tech for Non-Techies
How smart start-ups and corporates hire product teams

Tech for Non-Techies

Play Episode Listen Later Oct 13, 2021 25:51


What's technology for? Tech products can make our lives better and make businesses a lot of money. But, without a focus on the user and on the business, technology is an academic project at best, or just an expensive hobby. In this episode, you'll hear from Elisabeth Bohlmann, VP of strategy at December Labs, a product and development studio that works with corporates like Google, and start-ups to validate ideas and build products. Learning notes from this episode: If you don't have a technical background, learning from other people who are succeeding in tech but aren't techies, is often the best way to learn. They can anticipate your questions and mistakes much better than someone who has been coding since they were 8. Before hiring developers, always validate your ideas and create a prototype with designers. Design thinking is central to tech. Whether you're working in a start-up or a corporate, think about business needs first and then find out how technology can meet them.  Say hi to Elisabeth Bohlmann here. If you don't have a technical background and want to hire product teams, get Sophia's e-book on How To Hire Product Teams: a guide for non-technical founders.   ... Do you have a brilliant app idea and no tech knowledge to build it? Get your FREE guide here.   Join the Tech for Non-Techies membership community. As a community member, you'll get: Monthly coaching with Sophia Matveeva Live masterclasses with global experts Supportive Online Community Library of masterclasses Exclusive Resources & Perks Learn more and sign up at https://www.techfornontechies.co/membership   Say hi to Sophia on Twitter. Following us on Facebook and Instagram will make you smarter. 

Raw Data By P3
Imke Feldmann

Raw Data By P3

Play Episode Listen Later Oct 13, 2021 75:37


Imke Feldmann is among the first few to have recognized the incredible value and potential of this thing called Power Pivot in Excel (which was the precursor to Power BI).  And did she ever run with it, launching quite the successful solo consultancy and training service!  She exemplifies the helpful nature of the data community through her blog, The BIccountant, where she shares her amazing Microsoft BI tool knowledge. Her background is in Finance and Accounting, but you'll quickly realize she knows a great deal more than just Finance and Accounting! Contact Imke: The BIccountant Imke's Twitter References in this Episode: Imke's Github MS Power BI Idea - Customizable Ribbon - Please Upvote :) MS Power BI Idea - Speed Up PQ By Breaking Refresh Chain - Please Upvote :) Episode Timeline: 3:00 - The value of outsourcing certain business functions, Imke's path to Power BI starts with Rob's blog, a multi-dimensional cube discussion breaks out! 19:45 - One of Power BI's strengths is collaboration, Imke LOVES her some Power Query and M and loves DAX not so much 33:45 - Imke has a BRILLIANT idea about how to improve Power Query and some other improvements that we'd like to see in PQ 52:30 -  Rob's VS code experience, how COVID has affected the consulting business, Staying solo vs growing a company and how Imke determines which clients she takes on Episode Transcript: Rob Collie (00:00:00): Hello friends. Today's guest is Imke Feldmann. We've been working for a long time, nearly a year to arrange the schedules to get her on the show, and I'm so glad that we finally managed to do it. For a moment, imagine that it's 2010, 2011, that era. During that timeframe, I felt not quite alone, but a member of a very slowly growing and small community of people who had glimpsed what Power Pivot could do. And for those of you who don't know what Power Pivot is, and that was the version of Power BI, the first version that was embedded only in Excel. And at the time, the way the community grew, we'll use a metaphor for this. Imagine that the community was a map of the world and the map is all dark, but slowly, you'd see these little dim lights lighting up like one over here in the UK, one in the Southwest corner of the United States, very faintly. Rob Collie (00:00:51): And these would be people who were just becoming aware of this thing, this Power Pivot thing, and you'd watch them. They'd sort of show up on the radar, very tentatively at first kind of dipping their toe, and then that light would get brighter, and brighter, and brighter over time, as they really leaned in, and they learned more and more, and they became more adept at it. And this was the way things went for a long time. And then in 2011, out of nowhere in Germany on the map, this light comes on at full intensity, brightly declaring itself as super talented and powerful. And that was what it felt like to come across Imke Feldmann. Rob Collie (00:01:27): Like all of our guests, there's a little bit of that accidental path in her career, but also a tremendous sense of being deliberate. When this stuff crossed her radar, she appreciated it immediately. And I didn't know this until this conversation, but she quit her corporate job in 2013, the same year that I founded P3 as a real company, and became a freelancer. So for eight plus years, she has been a full time Power BI professional. There truly aren't that many people who can say that in the world. Our conversation predictably wandered. At one point, we got pretty deep into the notion of M and Power Query and it's screaming need for more buttons on its ribbon. And Imke has some fantastic ideas on how they should be addressing that. Rob Collie (00:02:14): We also, of course, naturally talked about the differences between remaining a solo freelancer as she has, in contrast to the path that I chose, which is scaling up a consulting practice business. Along the way we reprised the old and completely pointless debate of DAX versus M, I even try to get Tom hooked on M as his new obsession. We'll see how well that goes. Most importantly though, it was just a tremendous pleasure to finally get to talk to Imke at length for the first time after all these years, we literally crossed paths 10 years ago. So it was a conversation 10 years in the making compress down to an hour and change. I hope you enjoy it as much as we did, so let's get into it. Announcer (00:02:56): Ladies and gentlemen, may I have your attention, please? Announcer (00:03:00): This is The Raw Data by P3 Adaptive podcast, with your host Rod Collie, and your cohost Thomas LaRock. Find out what the experts at P3 Adaptive can do for your business. Just go to P3adaptive.com. Raw Data by P3 Adaptive is data with the human element. Rob Collie (00:03:24): Welcome to the show Imke Feldmann. How are you today? Imke Feldmann (00:03:27): Thank you, Rob. Great. It's a great day here over in Germany. Rob Collie (00:03:30): We have been talking about doing this for the better part of a year. So I'm glad that we're landing the guest, Imke is here. I really appreciate you doing this. So why don't we start with the basics. What are you up to these days? What do you do for a living? Imke Feldmann (00:03:48): I have people building great Power BI solutions these days. Rob Collie (00:03:55): Ah, yes. Imke Feldmann (00:03:55): That's how I fill my days. Rob Collie (00:03:58): I hear that that's a good business. Imke Feldmann (00:03:58): Yeah, it is. Rob Collie (00:04:03): So, and your website is? Imke Feldmann (00:04:06): Thebiaccountant.com. Rob Collie (00:04:07): Is that what you are on Twitter as well? Imke Feldmann (00:04:08): Yes. That's also my Twitter handle theBIccountant without an A in the middle. I just replaced the A from accountant with a BI. Rob Collie (00:04:17): There you go. Imke Feldmann (00:04:18): Yeah. Rob Collie (00:04:18): That's right. So that means that I'm going to make a tremendous leap here, wait till you see these powers of observation and deduction. You must have an accounting background? Imke Feldmann (00:04:29): I do, yes. Rob Collie (00:04:30): See you look at that. That's why I make the money. Okay, let's start there, was accounting your first career out of school? Imke Feldmann (00:04:39): Yes. I went to university and studied some economics or business stuff there, they'll know it's translated into English. And then I worked as a business controller. After that, I took over a job to lead a bookkeeping departments or to work with an area where the numbers came from basically. And then after that, I worked as the finance director, where I was responsible for a whole bunch of areas, controlling bookkeeping, IT, HR, and production. So that was quite a job with a broad range of responsibilities. Rob Collie (00:05:18): So you mentioned, kind of slipped IT into that list, right? Imke Feldmann (00:05:23): Yeah. Rob Collie (00:05:23): There's all these things in that list of responsibilities that all seemed they belong together, right? Bookkeeping, accounting, control or finance, IT. We've run into this before, with actually a number of people, that a lot of times the accounting or finance function in a company kind of wins the job of IT by default. Imke Feldmann (00:05:45): Yeah. It seems quite common in Germany, at least I would say. Rob Collie (00:05:48): I get multiple examples, but one that I can absolutely point to is Trevor Hardy from the Canadian Football League, he is in accounting, accounting and finance. And just by default, well, that's close to computers. Imke Feldmann (00:06:00): Yes. Rob Collie (00:06:01): And so it just kind of pulls the IT function in. Now is that true at really large organizations in Germany or is it a mid market thing? Imke Feldmann (00:06:09): No I would say a mid market thing. Rob Collie (00:06:12): That's true here too. So when there isn't an IT org yet it ends up being, oftentimes it falls to the finance and accounting function. Hey, that's familiar. It's kind of funny when you think about it, but it's familiar. And isn't finance itself pretty different from accounting? How much of a leap is that? What was that transition like for you taking over the finance function as well? We tend to talk about these things, at least in the US, is like almost like completely separate functions at times. Imke Feldmann (00:06:43): It depends, but at least it had something to do with my former education, which wasn't the case with IT. So, I mean, of course on a certain management level, you are responsible for things that you're not necessarily familiar with in detail. You just have to manage the people that know the details and do the jobs for you. So that was not too big an issue I must admit. Rob Collie (00:07:10): My first job out of school was Microsoft, an organization of that size, I was hyper specialized in terms of what I did. At this company at P, we are nowhere near that scale, and there's a lot more of that multiple hat wearing. I've definitely been getting used to that over the last decade, the first decade plus of my career, not so much. Imke Feldmann (00:07:31): Yeah. That's interesting because I basically went completely the other way around. I see myself now as working as a technical specialist and as a freelancer, I don't have to manage any employees anymore. Rob Collie (00:07:47): Well, so now you wear all the hats? Imke Feldmann (00:07:49): Yes. In a certain way, yes. Rob Collie (00:07:51): Okay. There's no HR department necessarily, right, so it's just you. But marketing, sales, delivery, everything. Imke Feldmann (00:08:01): Yep, that's true. Yep. And when I first started, I tried to do everything by myself, but the test changed as well. So in the past I started to outsource more things, but to external companies, not internal staff. Rob Collie (00:08:17): So you're talking about outsourcing certain functions in your current business, is that correct? Imke Feldmann (00:08:22): Yes, yes. Rob Collie (00:08:22): So it's interesting, right? Even that comes with tremendous risk when you delegate a certain function to an outside party whose incentives and interests they are never going to be 100% aligned with yours. Even we have been taken for a ride multiple times by third-party consulting firms that we've hired to perform certain functions for us. Imke Feldmann (00:08:46): Oh, no I don't outsource and your services that I directly provide to my clients. Rob Collie (00:08:49): Oh, no, no. Imke Feldmann (00:08:50): No. Rob Collie (00:08:50): No, we don't either. But I'm saying for example, our Salesforce implementation for instance- Imke Feldmann (00:08:56): Okay, mm-hmm (affirmative). Rob Collie (00:08:57): ... Has been a tremendous money sink for us over the years. Where we're at is good, but the ROI on that spend has been pretty poor. It's really easy to throw a bunch of money at that and it just grinds and grinds and grinds. And so this contrast that I'm getting around to is really important because that's not what it's like to be a good Power BI consultant, right? You're not that kind of risk for your clients. But if you go out and hire out some sort of IT related services for example, like Salesforce development, we're exposed to that same sort of drag you out into the deep water and drown you business model, that's not how we operate. I'm pretty sure that's not how you operate either. And so anyway, when you start talking about outsourcing, I just thought, oh, we should probably talk about that. Have you outsourced anything for your own sort of back office? Imke Feldmann (00:09:52): Back office stuff, yeah. My blog, WordPress stuff, or computer stuff in the background. So security [inaudible 00:09:59] the stuff and things like that, things that are not my core, I hire consultants to help me out with things that I would formally Google, spend hours Googling with. Rob Collie (00:10:09): Yes. Imke Feldmann (00:10:10): Now I just hire consultants to do that. Or for example, for Power Automate, this is something that I wanted to learn and I saw the big potential for clients. And there I also did private training basically, or coaching, or how you called it, hire specialists. Rob Collie (00:10:27): To kind of getting you going? Imke Feldmann (00:10:29): Exactly, exactly. Rob Collie (00:10:30): And those things that you've outsourced for your back office, have there been any that felt like what I described you end up deep in the spend and deepen the project going, "What's going on here?" Imke Feldmann (00:10:41): I'm usually looking for freelancers on that. And I made quiet good experiences with it, I must say. Rob Collie (00:10:49): Well done. Well done. All right. So let's rewind a bit, we'll get to the point where you're in charge of the finance department, which of course includes IT. Imke Feldmann (00:10:58): Not necessarily so. I felt quite sad for the guys who I had to manage because I said, "Well, I'm really sorry, but you will hear a lot of questions from me, especially at the beginning of our journey," because I had to learn so much in order to be a good manager for them. So that was quite different situation compared to the management roles in finance that I had before, because there I had the impression that I knew something, but IT was basically blank. Rob Collie (00:11:30): I would imagine that that experience turned out to be very important, the good cross pollination, the exposure to the IT function and sort of like seeing it from their side of the table, how valuable is that turned out to be for your career? Imke Feldmann (00:11:45): I think it was a good learning and really interesting experience for me just to feel comfortable with saying that I have no clue and ask the people how things work and just feel relaxed about not being the expert in a certain area and just be open to ask, to get a general understanding of things. Rob Collie (00:12:09): That's definitely the way to do it, is to be honest and transparent and ask all the questions you need to do. It's easier said than done. I think a lot of people feel the need to bluff in those sorts of situations. And that usually comes back to haunt them, not always. Imke Feldmann (00:12:25): No, that's true. Rob Collie (00:12:27): Some people do get away with it, which is a little sad. So at what point did you discover Power BI? Imke Feldmann (00:12:35): I didn't discover Power BI, I discovered Power Pivot, for your blog of course. Rob Collie (00:12:41): Oh, really? Imke Feldmann (00:12:43): Yes, yes, yes, yes. I think it was in, must be 2011, something like that. Rob Collie (00:12:50): Early, yeah. Imke Feldmann (00:12:51): Yeah. Quite early. When I was building a multidimensional cube with a freelancer for our finance department, then I was just searching a bit what is possible, how we should approach this and things like that. So we started with multi-dimensional cube because that was something where I could find literature about and also find experts who could have me building that. But when doing so, I really liked the whole experience and it was a really excellent project that I liked very much. And so I just searched around in the internet and tried to find out what's going on in that area. And this is where I discovered your blog. Rob Collie (00:13:35): I have no idea. First of all, I had no idea that my old blog was where you first crossed paths with this. Imke Feldmann (00:13:42): I think [inaudible 00:13:43]. Rob Collie (00:13:44): And secondly, I had no idea that it was that early. I mean, I remember when you showed up on the radar, Scott [inaudible 00:13:51] had discovered your blog and said, "Hey, Rob, have you seen this? Have you seen what she is doing? She is amazing." That wasn't 2011, that was a little bit later. I don't remember when but... Imke Feldmann (00:14:06): No, I think we've met first. I think we met on the Mr. XR Forum on some crazy stuff I did there. I cannot even remember what that was, but I started blogging in 2015 and we definitely met before. Rob Collie (00:14:21): That's what it was. It was the forums. And Scott was the one that had stumbled upon what you were doing there and brought my attention to it. I was like, whoa. It was like... Imke Feldmann (00:14:34): That last really some crazy stuff. I think I was moving data models from one Excel file to another or something like that. Some crazy stuff with [inaudible 00:14:43] and so on. Rob Collie (00:14:44): You obviously remember a better than I do. But I just remember being jaw dropped, blown away, impressed, by what you were doing. And the thing is the world of Power Pivot interest at that point in time still seems so small. The community still seems so small that for you to emerge on our radar fully formed, already blowing our minds, that was the first thing we ever heard from you. That was a real outlier because usually the way the curve of awareness went with other members of the community is that like, you'd see something modest from them. And you'd sorta like witnessed their upward trajectory as they developed. Of course, you've continued to improve and learn and all of that since then. But as far as our experience of it, it was you just showed up already at the graduate level, just like where did she come from? So cool. So you said that you enjoyed the multi-dimensional cube project? Imke Feldmann (00:15:43): Mm-hmm (affirmative). Yes. I don't know MDX, but I totally enjoyed the project. So being able to build a reporting solution for my own company, basically then for the company I worked for, and doing it live with a consultant with a freelancer on my hand, discussing how things should look like and just seeing the thing form before my eyes and grow. And this was just such an enjoyable experience for me. Rob Collie (00:16:11): So the thing that's striking about that for me is, there's no doubt that the multi-dimensional product from Microsoft was a valuable product. It did good things. But I never have heard someone say that they really enjoyed the implementation process as a client, right? Imke Feldmann (00:16:31): Okay. Rob Collie (00:16:31): You had a freelancer doing the work. So something you said there really jumped out at me, it was, sort of like doing the project live. So the way that this worked traditionally, at least in the US, is the consultant would interview you about your requirements and write a big long requirements document and then disappear and go build a whole bunch of stuff and come back and show it to you, and it's completely not what anyone expected. It's almost like you're on completely different planets. Obviously, if you'd had that experience, you would not be saying that you enjoyed it. So there had to be something different about the way that you and that freelancer interacted. Do you remember what the workflow was like? Imke Feldmann (00:17:16): What we did is that we often met together and just looked at where we're at and what the next steps should be. And we definitely had specific targets in mind. So there were some reports that I had defined as a target, and around these reports I was aware that we needed something that a proper data model, because I also knew that I wanted to have some sort of a general set up that could be carried from Excel as well. So I knew about cube functions, and I knew that on one hand I needed these reports that had formerly been within our ERP system. Also, I wanted them to be in a separate solution that was under my control and independent from the ERP system. And on the other hand, I wanted some more. So I wanted the flexibility to be able to vary this data and for certain other purposes in the controlling department as well. So basically being able to do ad hoc analysis on it. Imke Feldmann (00:18:23): And we met often and I showed a certain interest in how the table logic was created. So I knew that the MDX was over my head at the time, but I showed a very strong interest in which table are created, how they relate to each other, and that was quite unusual. At least this is what the [inaudible 00:18:47] the freelancer told me. Rob Collie (00:18:49): I bet. Imke Feldmann (00:18:50): He said that he doesn't see that very often that clients showed this sort of interest. Rob Collie (00:18:56): Did he say, "Yeah. You really seem to be having fun with this. Most of my clients don't enjoy this." You said that you met very often, so were there times where he was writing MDX while you were in the room? Imke Feldmann (00:19:10): Sometimes yes, because I said, "Well, can we switch this a bit or make some changes?" And sometimes he said, "Well, I can try adjust now." Because he came over for one day or half a day, and then we spoke things through and defined further things. And if we were finishing early, he would just stay and do some coding there. But apart from that, he would work from home and do the big stuff. Rob Collie (00:19:37): OLAP originally it stands for online analytical processing, where online meant not batch, right? It meant you could ask a question and get the answer while you were still sitting there. Imke Feldmann (00:19:51): Okay. Oh, really? Rob Collie (00:19:53): That's what online meant. Imke Feldmann (00:19:54): It's interesting. Rob Collie (00:19:56): It basically meant almost like real time. It's a cousin of real time, that's what online meant at that point, as opposed to offline where you write a query and submit it and come back next week right? So that's what the online and OLAP comes from. Imke Feldmann (00:20:12): Oh, interesting. Rob Collie (00:20:13): We would pick a different terminology of OLAP were it invented today. So something interesting about, it sounds like your experience, and I did not anticipate drilling into your experience with multi-dimensional on this conversation, but I think it's really important is that at least some portion of that project that you sponsored and implemented with the freelancer, at least some portion of the work was similarly performed online. Meaning the two of you were sort of in real time communication as things evolved. And the old model and the vast majority of multidimensional solutions that have ever been built in the world, the MDX powered solutions, were built and an offline model, where the majority of the communication supposedly takes place in the form of a requirements document. Rob Collie (00:21:05): And that was a deeply, deeply, deeply flawed approach to the problem, that just doesn't actually work. So I guess it's not surprising to me that the one time I've ever heard someone say they really enjoyed that multi-dimensional project, that at least a portion of that multidimensional project was sort of almost like real-time collaboratively performed rather than completely asynchronous, right? I guess we want to be really geeky, we could say it was a synchronous model of communication as opposed to an asynchronous one. And Power BI really facilitates that kind of interaction. Imke Feldmann (00:21:41): Absolutely. Rob Collie (00:21:42): The reason why the MDX multi-dimensional model worked the way it did, or there was two reasons, one is a legitimate one on one of them is more cynical. So the legitimate reason is, is that it required reprocessing of the cube for every change, it's just too slow, right? The stakeholder, the business stakeholder doesn't typically have the time or the patience to sit there while the code's being written, because it's so long between even just implementing a formula change sometimes would be, well, we need to wait an hour. And so the attention span of the business person can't be held for good reason there, right? And so that sort of drove it into an asynchronous model. Rob Collie (00:22:23): The other reason is, is that that is asynchronous model turned out to be a really good business model for the consultants, because the fact that it didn't work meant that every project lasted forever. And so that's the cynical reason. But Power BI is not long delays. You change the measure formula, or you add an extra relationship, or heck even bringing in a new table, just a brand new table, bring it in, it wasn't even in the model, now it's in the model. End to end that can sometimes be measured in minutes or even seconds. And so you can retain engaged collaborative interest. Now it's not like you're always doing that, right? There's still room for offline asynchronous work in our business, but really critical portions of it can be performed the other way. And I think that makes a huge difference. Imke Feldmann (00:23:13): Yep. And that's what I like about it. So it's so great to be able to have, as a consultant, to perform really relatively large tasks without any further involvement of other people. Which, I mean, honestly, I don't call myself a team worker, not because I don't love other people also, but teamwork means you have to communicate with other people, make sure that they know what you're working on. So there are so many interfaces that have to be maintained if you're working with other people. And so I really laugh the way I work currently being able to deliver full solutions as a one woman show consultant. That is really a pleasure for me. That's really my preferred way of work, I must say. Because I can really focus on the things that have to be done and I'm able to deliver value in a relatively short time for the clients. Rob Collie (00:24:14): That's a really interesting concept. There are certain kinds of problems in which collaboration, a team collaboration is absolutely necessary. The magic of collaboration sometimes can beat problems that no individual could ever beat. At the same time though, there's this other dynamic, right, where having a team working on a problem is actually a real liability because the communication complexity between the people becomes the majority of the work. Here's a really hyper simplified example. There used to be sort of a three-person committee, if you will, that was running our company P3, me and two other people. Imke Feldmann (00:24:57): Mm-hmm (affirmative). Rob Collie (00:24:58): And so all leadership decisions were essentially handled at that level. Well, things change, people move on, right? And so we went from a three person committee to a two person committee. We didn't anticipate the two of us who stayed, right? We did not anticipate how much simpler that was going to make things. We thought, just do the math, right, it's going to be like, well, it's one less person to get on the same page. So it's going to be a one-third reduction in complexity. It was actually double that because we went from having three pairs of communication, right, the triangle has three sides, to a line that only has one side, right? So there was only one linkage that needed to be maintained as opposed to three geometrically, combinatorially, whatever we're going to say, right? It just became- Imke Feldmann (00:25:45): Exponential. Rob Collie (00:25:45): ... Exponetially simpler. And so for problems that can be soloed, you have this amazing savings in efficiency, in clarity, even, right? Imke Feldmann (00:25:59): Yup. Rob Collie (00:25:59): There's just so many advantages when you can execute as one person, then there's the other examples like our company at our size now, even ignoring the number of consultants that we need to do our business, just the back office alone, we need the difference in skills. We need the difference in talents and interests and everything. We simply could not exist without that kind of collaboration. However, when our consultants were working with a client, usually it's essentially a one-on-one type of thing, right? We don't typically put teams of consultants on the same project. We might have multiple consultants working for the same client and they might be building something that's somehow integrated, but it's still very similar, I think to your model, when you actually watch sort of the work being done, there's this amazing savings and complexities. Imke Feldmann (00:26:50): Yup, that's true. Of course I have a network in the background. So when big problems arise where I need brain input, of course, I have a network, but it's not a former company. Rob Collie (00:27:02): And that's how we work too, right? We have all kinds of internal Slack channels. For some reason we adopted Slack years ago before Teams was really a thing. So Slack is sort of like our internal social network. There's a lot of discussion of problems, and solutions, and a lot of knowledge sharing, and people helping each other out behind the scenes in that same way. Again, we do bring multiple consultants into particularly large projects, but it's not like there's three people working together on the same formula. In Power BI, the things that you do in ETL, the things that you do in power query are intimately interrelated with the data model and the decks that you need to create. And imagine parceling that out to three different people. You have one formula writer, one data modeler, one ETL specialist, you would never ever get anywhere in that kind of approach. Imke Feldmann (00:28:00): Not necessarily. I mean, the tax people are the person responsible for the data model. He could write down his requirements. He could define the tables basically. And then someone could try to get the data from the sources. But of course, then you get some feedback that the data isn't there or that the model has to be shaped in a different way. So it has two sides to it. But that's interesting to see that you have the same experience, that Power BI models or solutions of a certain size that can very well be handled by one person alone. And that really brings speed, and flexibility, and agility to the whole development process I think. Rob Collie (00:28:41): You communicate with yourself at what's above giga? Peta, petabit? you communicate with yourself at petabit speed and you communicate with others through a noisy 2,400 baud modem that's constantly breaking up. It's amazing what that can do for you sometimes. So there comes a point in your journey where you decide to go freelance. Imke Feldmann (00:29:07): Yup. Rob Collie (00:29:08): That's a courageous leap. When did that happen and what led you to that conclusion? Imke Feldmann (00:29:13): I made the decision in 2012 already to do that. Rob Collie (00:29:19): Wow. Imke Feldmann (00:29:20): And I just saw the light. I just saw the light in Power Pivot and then Power Query came along and I saw what Microsoft was after. And as I said, I enjoyed the building of the cube, getting my hands dirty, reading about the technologies behind it and so on. And this was what I felt passionate about. And I also had the idea that I needed some break from company politics. And so I just thought, well, I give it a try. And if it doesn't work, I can find a job after that or find a company where I work for at any time after that. So I just tried it and it worked. Rob Collie (00:30:05): So you decided in 2012, did you make the break in 2012 as well? Imke Feldmann (00:30:12): I prepared it, and then I just in 2013, I started solo. Rob Collie (00:30:18): Okay. 2013 is also when we formally formed our company. For 2010-2013, it was a blog. I had other jobs. I had other clients essentially, but I wasn't really hanging out the shingle so to speak, as you know, we're not an actual business really until 2013. And I guess it's not much accident that we both kind of did the same thing about the same time, it's that demand was finally sufficient I think in 2013 to support going solo. In 2012, there weren't enough clients to even support one consultant. And so, oh, that's great. And I think you really liked Power Query too, does M speak to you? Imke Feldmann (00:31:02): Yes. Yes. Yeah. Rob Collie (00:31:03): It does, doesn't it? Imke Feldmann (00:31:04): I really prefer Power Query or M over DAX, I must admit. It has been much more liable to me than DAX. Rob Collie (00:31:15): Oh, and I liked you so much before you said that. I'm team DAX all the way. Imke Feldmann (00:31:23): I know. I know. I know. I mean, of course I love to use DAX as well, but I really feel very, very strong about Power Query. And I mean, I had such a great journey with it. I mean, it was really [inaudible 00:31:35] work for me personally, that I did with it. And it was just a great journey to understand how things work. I mean, this has been the first coding language for me that I really learned. And it was just a great journey to learn all the things and starting to blog about it. And of course, I started basically helping people in the forum, that's where I basically built my knowledge about it, solving other people's problems. And this was just a great journey. And Polar Query has always been good to me than DAX. Rob Collie (00:32:14): This is really cool, right? So you fell in love with Power Pivot, so DAX and data model, right? There was no Power Query. Imke Feldmann (00:32:21): Mm-hmm (affirmative)-, that's true. Rob Collie (00:32:23): Okay. And because we had no Power Query, there were many, many, many things you couldn't do in Power Pivot unless your data source was a database. Imke Feldmann (00:32:30): Yup. Rob Collie (00:32:31): Because you needed views created that gave you the right shape tables, right? If your original data source didn't have a lookup table, a dimension table, you had to make one. And how are you going to make one without Power Query? It gets crazy, right? At least unbelievable. So try to mentally travel back for a moment to the point in time where you're willing to, and not just, it doesn't sound like you were just willing to, you were eager to go solo to become a freelancer, right, with just DAX and data modeling. And then after that, this thing comes along that you light up when you talk about. You didn't have this thing that you love, but you were already in, that doesn't happen very often. Imke Feldmann (00:33:18): It could be that loved DAX at the beginning, but it just started to disappoint me at sometimes. Rob Collie (00:33:29): Oh, okay. Thomas LaRock (00:33:29): It disappoints everyone. Rob Collie (00:33:29): I'm just devastated. Imke Feldmann (00:33:35): No, I mean, it's amazing what DAX can do, but I mean, we all know it looks easy at the beginning, but then you can really get trapped in certain situations. Rob Collie (00:33:46): Yeah. I described these two things is like the length and width of a rectangle, Power Query and DAX. Take your pick, which one's the width, which one's the length? I don't care. And then we ask which one is more responsible for the area of the rectangle, right? Neither. You can double the length of either of them and it doubles the area of the rectangle. So it's really ironic that I'm so sort of firmly on team DAX for a number of reasons. Number one, is that I'm really not actually that good at it compared to the people who've come along since. Like my book, for instance, I think, I look at it as this is the 100 and maybe the 200 level course at university, maybe the first in the second course, maybe, but it's definitely not the third course. The thing that you take in your third or fourth year of university, that's not covered in my book in terms of DAX. Rob Collie (00:34:44): And basically every one of the consultants at our company is better at DAX than I am. And that's great. That's really good. And the other thing that's ironic about my love of DAX over M, is if these two were in conflict, which they aren't. Imke Feldmann (00:35:00): No they are. Rob Collie (00:35:02): Is that I actually was trying for years to get a Power Query like project started on the Excel team. I knew how much time was being chewed up in the world just transforming data, not analyzing it even, just getting things ready for analysis. It's just ungodly amounts of time. And so I was obsessed with end-user ETL. When I was on the Excel team, it was like a running joke, someone would mention in a meeting, "Well, that's kind of like ETL," and other people would go, "Oh no, no, don't say that in front of Rob, he's going to get started and he won't shut up about it for the next 30 minutes." On the podcast with the Power Query team, I told them I'm really glad that no one ever agreed to fund my project on the Excel team because now that I see what Power Query is like I grossly underestimated how much work needed to go into something like that. And I'm glad that Microsoft isn't saddled with some old and completely inadequate solution to the Power Query space, because now that I've seen what the real thing looks like, I'm like, "Oh my gosh, we would've never been able to pull that off." Rob Collie (00:36:14): So the thing that I was most obsessed with is the thing that now that it's actually been built, for some reason, I just find M to be, I don't know, there's like a reverse gravity there that pushes me away. Imke Feldmann (00:36:26): What I actually would like to see is that there's less need to use M in the Power Query product. So first, the only thing I was dreaming about was finally to have a function library that can easily be shipped from then, or that you can download from internet or wherever, where you can use additional functions in your M code. So this was the first thing that I was really passionate about and thought that we should have such a thing in Power Query to be able to make more cool things, or group steps together. But now what I really think we should actually have and see in Power Query is the ability to build our own ribbons and to the query editor. Rob Collie (00:37:13): Yes. Imke Feldmann (00:37:13): Like we have in an Excel. So this is something that in my eyes would really bring a big push to the product and actually would make so much sense for the people who start using these products. I mean the whole Power platform can have so many benefits for finance department, all departments, but I mean, I'm passionate about finance departments. But have you counted how many low-code languages are in there, if you include Power Apps and Power Automate and all these things? Rob Collie (00:37:50): Low-code. Imke Feldmann (00:37:50): And honestly, in order to come up with any solution that makes sense in a business environment, I would say in all of these solutions, there is no way around the code at the end. I mean, you get quite far with clicky, clicky, but I haven't seen solutions where you get around the languages. And now imagine the typical finance people who really they know the Excel formulas and some of them might know VBA as well. And now their server uses new low-code, no-code word, and just get your head around about five or six new languages that you all have to know and learn in order to get something useful and so on. So I think that's just not feasible for people who have real jobs in the business to learn all that. Rob Collie (00:38:42): Well, that's what you're here for, right? That's what your business is for and that's what P3 is for. Imke Feldmann (00:38:48): We get them started and the products are great. And if there are people in the companies who have a drive to learn things and take the time they get their heads around it, but it could be easier. It could be easier with things like that, where we could provide additional user interfaces and just make it even easier for people to build great solutions for them or adapt solutions that consultants had build initially, but to maintain them by themselves and make adjustments to them if needed. Rob Collie (00:39:19): So [inaudible 00:39:20] has an old joke where he says, when he's doing a presentation or something, he says, "That's a good question. And I define good question as a question I know the answer to, right." And then he says, "But then a great question is a question that is covered by the very next slide." So there's a similar parallel joke to make here, which is that, that idea you just talked about with the ribbons and everything, right? So if I said, it's a smart idea, what I would mean is, again, this is a joke, right? I would mean that that's an idea that I agree with and have kind of already had. But if I say it's a brilliant idea- Imke Feldmann (00:39:55): Okay. Rob Collie (00:39:56): ... Then it's an even better version of an idea that I've already had that has never occurred to me. Your idea is a brilliant idea. Imke Feldmann (00:40:02): Okay. Rob Collie (00:40:06): It goes beyond. So I have been advocating privately behind the scenes with the Power Query team forever telling them that they need about three or four more ribbon tabs. There's just way too many commonly encountered problems for which you can imagine there being a button for, and there's no button. Imke Feldmann (00:40:28): Exactly. Rob Collie (00:40:29): And it's like, I don't understand. I used to be on teams like that, but I don't understand why they haven't gotten to this. Because it seems so low hanging fruit. They've already built the engine, they've built the language, right? The language can already handle this, but you actually had two brilliant ideas in there that had never occurred to me. First of all, I'm used to the idea that the community can't contribute libraries of functions, they can't do that for DAX. Imke Feldmann (00:40:57): Mm-hmm (affirmative). Rob Collie (00:40:58): That's not even like engineering possible for DAX. And the reason for it is, is that the DAX engine is so heavily optimized in so many ways that there'd be no way to plug in some new function that's unpredictable in terms of what it needs to do. All of these things, they're all inherently interrelated and they make changes in the storage and the query engine to make this function work better and vice versa, because it has to take advantage of the index compression scheme and all of that kind of stuff. It's actually not possible, is the wrong word, but it's actually orders of magnitude more difficult, if not impossible to allow DAX to have UDF, user-defined function type of feature. Rob Collie (00:41:42): I don't think Power Query is like that though. Maybe naively, because again, I'm not on the internals team on the Power Query side. But it does seem like a UDF capability is at least much more feasible- Imke Feldmann (00:41:53): Absolutely. Rob Collie (00:41:54): ... For Power Query, which does execute row by row essentially. Other languages have this, right? One of the reasons that R is so popular is not that R is so awesome, is that R has tremendous libraries of commonly solved problems that you can just go grab off the internet or off the shelf and plug into your solution. Imke Feldmann (00:42:14): I have my own library I've created. You can go to my GitHub and you'll see 50, 60 custom M functions. You can package them in a record and [inaudible 00:42:24] them as a library and your M code, or you could even connect live to them and run them with an execute statement. But this is too difficult, although it's just a couple of clicks, but it's too difficult or at least intimidating for the beginners, who really Power Query beginners who start with the products, I think there's so much potential to make their life easier. And that's not through some coding stuff, or I know this function, I know that function, that's really can only come in my eyes through user interface with buttons. Rob Collie (00:42:59): Yeah, I agree. And just as importantly for me, is that I might actually come around and be like, just as much team Power Query as team DAX. Honestly, my frustration is just the M language and just my total lack of desire to learn it. [crosstalk 00:43:16]. It is what it really comes down to. It's not about M, it's not about Power Query, it's about me. Whereas again, I know the need that it fills is massively important. So it's not that I think it's a bad mission, I think it's like the mission in a lot of ways. I was obsessed with it long before I ever crossed paths with business intelligence, I was obsessed with data transformation, end user data transformation. It's just a problem that's about as ubiquitous as it gets. So let's make it happen. We agree, the two of us, that's it, right? It's like we need to go provide a unified front. Imke Feldmann (00:43:52): I think that that's an idea in the idea forum, I might send the link that you can maybe post. Rob Collie (00:43:56): We want that thing up, voted to the moon. I'll even go figure out what my sign in is on the ideas side. Imke Feldmann (00:44:08): Oh, good luck with it. Rob Collie (00:44:09): Which is absolutely impossible. I have no idea which of the 14 counts. And then I'll try to create a new one and it'll go, "Nah, you're not allowed to. We know it's you, but we won't tell you who it is, what your email address is." So I completely agree. So there's so many problems. I always struggle to produce the list. It's like I need to be writing down the list of things that are crucial, but here's an example. Remove duplicates, but control which duplicate you keep. That's a problem that can't be solved in the GUI today. Imke Feldmann (00:44:48): And you need the intimidating type of buffer that you have to write by hand around it, which is just pain. Rob Collie (00:44:56): Remove dups and don't care which one you keep. Okay, fine. That's a great simple button. There should be an advanced section that allows you to specify, oh, but before you keep the dups, sort by this column or sort in the following manner. Imke Feldmann (00:45:10): Exactly. Rob Collie (00:45:10): And then keep the first one of each group. It's easy for us to say outside the team, but apparently that is a, we just make a joke, right? That's apparently a Manhattan project level of software to add that extra button. Anyway, we'll get that. Thomas LaRock (00:45:27): That doesn't make sense to me though. I'm fascinated by all of your conversation and you guys are a hundred miles away from me in a lot of this stuff, but I could listen to it all day. But no, the fact that Excel can't do the remove duplicates, except for like the first of each one of something, that's a simple group by. In my head, I sit there and go that's easily solvable because Excel and DAX does such great stuff that I would never want to do in TSQL, how the hell do we stumble across a thing that's been solved by straight up SQL language that somehow can't get into an Excel? Rob Collie (00:46:01): Well, let's explain the problem very clearly and see if we're on the same page as to what the problem is, but either way it'll be valuable. So let's say you have a whole bunch of orders, a table full of orders. That is a really wide Franken table. It's got things like customer ID, customer address, customer phone number, but also what product they ordered, and how much of it, and how much it cost. Okay, and a date, a date of the order. All right. And you've been given this table because the people that are responsible for this system, they think that what you want is a report and not a data source. And this is incredibly common. Okay. So you need to extract a customer's dimension or lookup table out of this. You need to create a customer's table so that you can build a good star schema model. Okay. And Power Query is right there to help you. Power Query will help you invent a customer's look up table where one wasn't provided, and that's awesome. Rob Collie (00:46:58): Okay. So you say, okay, see customer ID this column. I want to remove duplicates based on that column. Okay, great. But now it's just that the order that the data came in from the report file or the database or whatever that will determine which duplicate is kept. What you really want to do of course is take the most recent customer order of each customer ID because they've probably moved. They may have changed phone numbers, whatever, right? You want their most recent contact information. You don't want their contact information for 15 years ago. And the M language allows you to solve this problem essentially sort by date, and then keep the most recent, but only if you get into the code manually, and as Imke points out, it's not even if you go into the code, the things that you would want to do, if you do a sort, you can add a sort step to the Power Query with the buttons, with the GUI, and then you do the remove duplicates and it ignores the source. Imke Feldmann (00:47:59): Yes. Rob Collie (00:48:02): The GUI almost tries to tell you that it's impossible, but if you know about table dot buffer. Imke Feldmann (00:48:07): So the question is why do we have a sort command in Power Query when it doesn't give the sort order? I mean, that is the question to ask. But that's how it is. Rob Collie (00:48:16): It sorts the results. It sorts the results, it just doesn't sort for the intermediate steps. Imke Feldmann (00:48:20): Why? No, that's quite technical. But would just be great if such a common task could be done with buttons that is reliable at the end. I fully agree. Rob Collie (00:48:35): So Tom, I think this one's really just an example of, again, I truly think that M and Power Query, just like DAX and data modeling, the Power BI data modeling, both of these things belong in the software hall of fame of all time. It is amazing, Power Query, M, is just ridiculously amazing. It's one of the best things ever invented. Remember this is someone who's associated with being a critic of it. Imke Feldmann (00:49:04): Yeah, you're making progress, it's great to see. Rob Collie (00:49:07): And yet I'm telling you that it's one of the top five things ever invented probably. And I think there's a certain tendency when you've done something that amazing to lose track of the last mile. I think it's more of a human thing. Imke Feldmann (00:49:19): Maybe, but I mean, what I see is that they are investing quite a lot in data flows, which makes a lot of sense as well in my eyes. Rob Collie (00:49:27): All that really does though, as far as you and I are concerned, Imke, is it makes it even more important that they solve this problem. Because it's now exposed in two different usage scenarios. Imke Feldmann (00:49:37): Yeah, you're right. Rob Collie (00:49:39): And I want my data flow to be able to control which duplicates are kept too. So that's what I'm saying. There's all these big sort of infrastructural technical challenges that do tend to draw resources. And it's not a neglect thing. Imke Feldmann (00:49:54): No, no. Rob Collie (00:49:54): It isn't like a willful failure or anything like that, I don't want to paint that kind of negative of a picture. Imke Feldmann (00:49:59): No. Rob Collie (00:50:00): It's just that out here in reality, the inability to do, even if we just identified the top 10 things like this, addressing those top 10 things with GUI, with buttons, what have I think in the world, maybe even a bigger impact than the entire data flows project, right? Because you would expand the footprint of human beings that are advocates of this stuff and then you go build data flows. You don't have to think of it as either or, right? They should do both. It's just that I think it's hard to appreciate the impact of those 10 buttons when you're on the software team. It's easier to appreciate the impact of data flows, which is massive. I don't mean to denigrate that. I think it's crazy good. It's just that this other thing is of a similar magnitude in terms of benefit, but it's harder to appreciate when you're on the software team. It's easier to appreciate when you're out here in the trenches, living it every single day. And every time I run into a problem like this, I have to put my hand up and say to my own team, I have to say, " Help." Thomas LaRock (00:51:02): So a casual observation I have is that you wish for there to exist one tool that will handle all of your data janitorial needs. And that tool doesn't necessarily exist because life is dirty, so is your data and you're never going to anticipate everything possible. Now, should that sorting functionality exist in that duplicates, the scenario gave me? Yeah, probably. But there's always going to be something next. And that's why I go to you and I say, the thing that you've described to me is you need your data to be tidy so that it can be consumed and used by a lot of these features that we've talked about today. And in order to get to tidy data, there's no necessarily one tool. Thomas LaRock (00:51:48): You're a big fan of the ETL, Rob. You know that, hey, maybe I need to take the source data and run it through some Python scripts, or some M, or something first before it goes to this next thing. And that's the reality that we really have. What you're wishing for is the one tool, the one button to rule it all. And that's going to take a while before that ever comes around. Rob Collie (00:52:09): The thing is though, is that M is ridiculously complete. Imke Feldmann (00:52:14): Yeah. Rob Collie (00:52:15): You can do anything with it. And it's a language that's optimized for data transformation. So I know you can do anything with C++ too, right? But this is a data crunching, data transformation, specialized language that is really complete. And its UI is woefully under serving the capabilities of the engine. And so I suppose we could imagine and deliberately design a data transformation scenario that maybe M couldn't do it. Imke Feldmann (00:52:45): No. Rob Collie (00:52:46): I think that'd be a very difficult challenge considering how good M is. Imke Feldmann (00:52:49): I think in terms of logic, M can do anything, but in terms of performance, there is some room for improvements. So because there's a streaming semantic running in the background, and as long as the stream runs through all the steps, if you have complex queries, this can really slow things down. And currently there is no button or command in the M language to cut the stream and say, well, stop it here and buffer what you have calculated until here, and then continue from there. So if you have really complex stuff that would benefit from an intermediate buffer, then you can store that in an Azure blob or CSV, or whatever. Specifically if you're working with data flows, you can create some automatic processes that would enable this kind of buffering. Imke Feldmann (00:53:45): And then you will see that the speed of the whole process that can really increase dramatically because in some situations, the speed in M drops exponentially. And these are occasions where a buffer would really helped things, but we don't have it yet in the engine of Power Query. So this was what really be something else that would be fairly beneficial if we wouldn't have to make these work-arounds through things. Rob Collie (00:54:14): Tom, that just occurred to me, I can't believe this is the first time that this thought has crossed my mind. But I think that you might fall into an abyss of love with M. Thomas LaRock (00:54:28): Well, I'm a huge James Bond fan, but... Rob Collie (00:54:30): Oh, no. I think you would really, really just dig it. Thomas LaRock (00:54:38): I don't think I have time to take on a new relationship at this point. I'm still with Python and R, so I mean, I don't know. I'm not going to disagree, I'm just, please don't start a new addiction for me. Rob Collie (00:54:51): Think of the content though, that you could produce over time. The M versus SQL versus Python treatises. Thomas LaRock (00:54:59): Cookbook. Rob Collie (00:55:00): You were made for this mission Tom. Thomas LaRock (00:55:03): Okay. So we'll have to talk later about it. You can sweet talk me. You know I've let you sweet talk me into any [inaudible 00:55:08]. Rob Collie (00:55:08): That's right, that's right. Come on, Tom. Get into M, you know that thing that I have nothing but praise for, that I just love to death, you need to do that. Thomas LaRock (00:55:18): For you. That's what you want to do, is you want to learn it but [inaudible 00:55:21] through me. Rob Collie (00:55:22): Oh, that wouldn't work. I would be, "Oh yeah, well this is still M." Thomas LaRock (00:55:29): You're going to be like, "Tom, where's your latest blog post on M so I can read it and hate upon it even more?" Rob Collie (00:55:37): No, I would not read. Just as the first step. Thomas LaRock (00:55:42): I'm going to read it, but not leave a comment about how much I hate it. Rob Collie (00:55:45): Let's go back to talking about how we did a bunch of big fat Fisher-Price buttons for me to mash my thumbs in the UI. That's what I need. Thomas LaRock (00:55:54): You know what? I'll do that. I'll open up VS code and I'll just build this one big button, it's Rob's button. Rob Collie (00:56:00): Hey, you won't believe this, but I recently installed VS code. Thomas LaRock (00:56:03): I don't believe it, why? Rob Collie (00:56:05): Well, because I needed to edit, not even write, because I'm not capable of it. I needed to edit an interface, add on customization for World of Warcraft. And the only purpose of this World of Warcraft add on interface modification was to allow me to drop snarky comments into a particular channel of the conversation based on the button that I press. I needed a menu of snarky comments to drop at particular points in time. It's hard to type them out all the time, right? So it's just like, now here we go. I dropped one of those. I dropped one of those. Thomas LaRock (00:56:37): We got to get you a real job or something. You got way too much time on your hands. Rob Collie (00:56:42): That was my number one contribution to the World of Warcraft Guild. For a couple of months, there was the snarky rogue chat. Thomas LaRock (00:56:48): You know that is on brand. Rob Collie (00:56:56): It prefixed every comment in the chat with a prefix, you came from rogue chat 9,000. So that people who aren't on the joke were like, "Why is this guy, he's usually very quiet, become so obnoxious. Look at the things he's saying." Anyway. So VS code. And that also involved GitHub. Because my friend who wrote the stub, the shell of this add on for me is a vice president at GitHub. So of course he puts the code in GitHub and points me to it and then points me to VS code, and I'm like, "Oh, you're making me work now? Okay. But you wrote the shell for me, so okay. All right. I'll play ball." So it doesn't sound like you regret your decision to go solo. Imke Feldmann (00:57:40): Absolutely. Rob Collie (00:57:41): You're not looking to go back to corporate life. Imke Feldmann (00:57:43): Absolutely not. Rob Collie (00:57:44): Not missing that. So what can you tell us about the last year or two? What impact, if any, did COVID have on your business? Imke Feldmann (00:57:52): Business has grown especially the last year. So people needed more reports than ever and solutions. So it really, I don't know whether it was COVID effect or just the fact that Power BI is growing and growing. Rob Collie (00:58:07): I'm sure it's both. So the dynamic we saw during 2020. So 2020 would be the, if you're going to have a year that was negatively impacted by COVID, it would have been 2020. And what we saw in 2020 was that we were definitely not acquiring new clients. We weren't making new relationships at nearly the rate we had been people weren't taking risks on meeting a new BI firm. That wasn't something that there was as much appetite for as there had been. However, amongst the clients where we already had a good relationship, we'd already been working with them for a while, their needs for data work expanded as a result of COVID because it did, it created all kinds of new problems and it invalidated so many existing blueprints of tribal knowledge of how we run the business. When reality changes, you need new maps, you need new campuses. Rob Collie (00:59:04): And so on net, we ended up our overall business still grew modestly over the course of 2020, year over year compared to 2019. But then when the new clients started to become viable again, people started looking, we're interested in making new relationships, 2021 has been a very, very strong year of growth, not moderate, really kind of crazy. How do you keep up with increased demand as a one person shop? Imke Feldmann (00:59:35): Saying no. Rob Collie (00:59:36): You have to make your peace with saying no. At one point in my history, I faced sort of the same thing and I decided not to say no, and instead decided to grow the company. That brought an enormous amount of risk and stress- Imke Feldmann (00:59:55): I can imagine. Rob Collie (00:59:55): ... Into my life that I did not anticipate its magnitude. I'm sure I anticipated it, but I didn't anticipate the magnitude of it. I'm very grateful that I'd made that decision though, because where we are today is incredible. That's a rocky transition. So today everything runs like clockwork basically. We have a lot of growth ahead of us that seems almost like it's just going to happen, we're just going to keep growing for a long time. But we had to set the table we had to build our organism as a company into a very different form than what it had been when it was just me. And that molting process it was very painful. I don't pretend that the scaling decision is the right decision, it's very much a personal one. I've certainly lived that. If the version of me that made the decision to scale the company knew everything that was coming, it would have been a much harder decision to make. You kind of have to have a little bit of naive optimism even to make that leap. Imke Feldmann (01:00:57): I can imagine that once you get these things figured out and with the dynamic that the product has, that has a good chance to get it going into a very successful business, I believe. Rob Collie (01:01:10): Well, with your profile and with the growing demand for these sorts of services, the percentage of no that you have to say is just going to keep going up. Imke Feldmann (01:01:20): Yeah. But I made my decision and that's just fine. Rob Collie (01:01:25): I'm very supportive of that decision. I don't have any criticism of it, again, especially knowing what I know now. But if there's going to be come a point where you're going to be saying yes 1% of the time, and the answer to that is ultimately, well, you just raise your rates, which is also very difficult to do. In the end, it's almost like an auction for your services. You need to run yourself like Google. There's a 40 hour block of Imke time coming up for availability. We'll just put it on eBay. Imke Feldmann (01:01:59): I mean, it's just nice to be able to choose with whom you work with. That's just nice. And I earned enough money, so that's fine. So I'm happy with that. Rob Collie (01:02:12): How do you choose who you work with? Is it mostly based on industry? Is it mostly based on job function that you're helping? Or is it more about the specific people? There's all kinds of things that could... Let's say if I came to your website today, I filled out your contact form, what are the things that I could say in that contact for a message that would lead you to say no, versus leads you to say maybe? Imke Feldmann (01:02:37): What I really like to do is to work with finance directors. So basically not people exactly like me, but I like to see that the managers approached me and they have an interest in the product itself and also therefore an interest to push it into their departments. So this is for me, a very, very good starting point because it's an area I'm familiar with. I know that there's enough critical support to get the decisions that have to be made and maybe also push IT to help with certain things. This is really one of my favorite set ups, I would say. Rob Collie (01:03:19): Yeah, we do a lot of work with finance departments as well. How long does sort of your average relationship run with a client? How long do you end up working with the same organization on average? Imke Feldmann (01:03:31): That's hard to say, that's really completely different. It can be the initial five days kickoff where we set up a PNL statement connect all the finance data and they go along with that. And basically, never hear again, or just occasionally hear again, "Can you help me with this problem or that problem?" And it could also be going on for years, basically with breaks in between of course, but some customers, they come every now and then when they want to expand things. Now I have a customer that I'm working on some hours or even days ever week since over a year by now. Rob Collie (01:04:15): That sounds similar to my experience as a freelancer, when it was just me, less similar to our business today, a little bit less. I mean, I think it's still more similar than not. It's just that the dial has moved a little bit. Imke Feldmann (01:04:32): So how long are your engagements then, usually? Rob Collie (01:04:35): Most of our engagements are, if we start out doing kind of that kickoff you're talking about, we started like a project with people, that tends to not be the end. We don't typically have people just immediately vanish after that because that's usually the point at which, I mean, they've got something working already, very often after the first week or so of working with a client, they've usually got some really amazing things built already at that point. But at the same time, that's really just at the beginning of the appetite. Usually there are things that are

React Round Up
Maintaining Storybook ft. Yann Braga - RRU 159

React Round Up

Play Episode Listen Later Oct 13, 2021 50:26


Yann Braga is the maintainer of Storybook. He talks about Storybook, how it's used, new features the team is working on, and what it's like to be part of the core team actively maintaining an open source system like Storybook that is widely used to build UI systems in isolation and allow teams to see how components are used. Panel Carl MungaziPaige NiedringhausTJ Vantoll Guest Yann Braga Sponsors React Error and Performance Monitoring | SentryPodcastBootcamp.ioLevel Up | Devchat.tv Links GitHub | storybookjs/testing-reactGitHub | storybookjs/testing-vueGitHub | storybookjs/testing-vue3ChromaticStorybookHow to use Testing Library to test StorybookInteraction Testing sneak peeknewlineMealdropWelcome to Mealdrop's Storybook!Smooth design handoff with StorybookEssential addonsStorybook TutorialsStorybook for React Appsnewline - DiscordStorybook - DiscordGitHub: Yann Braga ( yannbf )Twitter: Yann Braga ( @yannbf ) Picks Carl- Design Systems with React & StorybookCarl- Shoe DogPaige- Money Heist | Netflix Official SiteTJ- Squid Game | Netflix Official SiteYann- Kena: Bridge of Spirits Contact Carl: GitHub: Carl Mungazi ( CarlMungazi )Twitter: Carl Mungazi ( @CarlMungazi ) Contact Paige: Paige NiedringhausPaige Niedringhaus – MediumTwitter: Paige Niedringhaus ( @pniedri )GitHub: Paige Niedringhaus ( paigen11 ) Contact TJ: TJ VanToll's BlogProgress SoftwareKendoReactTwitter: TJ VanToll ( @tjvantoll ) Special Guest: Yann Braga.

Gestalten
EP 66: Design & Technology - More than just a product - moderated by Martin Groschwald

Gestalten

Play Episode Listen Later Oct 12, 2021 44:58


Mobility design is more than just the sum of technologies. It strives to create experiences that appeal to all the senses and create an emotional connection between man and machine in the long term.

What Bubbles Up
S2 E14: What Bubbles Up in...Computational Design!

What Bubbles Up

Play Episode Listen Later Oct 12, 2021 52:59


In this episode, Adam Morse - Designer, Technologist, and CEO of Components.ai - joins us for a drink and a chat about the complexities and efficiencies of computational design. We discuss the art and science of using scripts to generate the parameters of known UI patterns, how computing the design actually puts more control in the hands of a designer, and how choosing what NOT to do is the secret to successful design and business. In the process, Barry regales us with his knowledge of hip-hop. Enjoy! Drinks: Cambridge Brewing Co. Working Class Hero Farmhouse Ale, Center of the Universe Oktoberfest, Glutenberg IPA Links: https://components.ai/ --- This episode is sponsored by · Anchor: The easiest way to make a podcast. https://anchor.fm/app --- Send in a voice message: https://anchor.fm/whatbubblesup/message

Getting Simple
#53: Machine Learning-Based Audio Editing, React, UI Libraries, NFTs, and COVID

Getting Simple

Play Episode Listen Later Oct 12, 2021 30:56


Host Nono Martínez Alonso and Nate Peters on the machine learning-based audio-editing solution this podcast is being produced with, web components, React and UI libraries, the effects of COVID-19 in our work lives, NFTs and cryptocurrencies, and the new informal catch-up conversation podcast format we're testing out. Nono hosts the Getting Simple podcast, sketches things that call his attention, writes stories about enjoying a slower life, and records live streams and tutorials on creative coding and machine intelligence. Nate works as a software engineer for Autodesk. Before joining Autodesk, he earned his Master of Design Studies in Technology at the Harvard Graduate School of Design and a Bachelor of Architecture at Iowa State University. Links Audio Hijack and Loopback by Rogue Amoeba OBS Descript Lyrebird Deepfakes GPT-3 Adobe Audition p5.js perfect-freehand by Steve Ruiz TypeScript Yjs, y-websocket & y-webrtc CRDT WebSocket WebRTC DigitalOcean Figma SVG Next.js Leva Perlin noise G-Code Pen plotter React React Hooks React Router React Three Fiber Three.js dat.gui How Figma's multiplayer technology works Material UI Grommet SCSS Lex Fridman podcast Travis Oliphant on Lex Fridman NumPy & SciPy zk-SNARKs Zero Knowledge Proof Foundation.app People mentioned Aziz Barbar Lex Fridman Nate Peters Travis Oliphant Steve Ruiz Outline Intro. [00:00] Announcements. [00:33] Start. [01:22] Descript: Machine-learning-based audio editing. [03:53] Studio Sound. [09:40] What's that little UI library? [11:37] CRDT, Yjs, WebSocket, and WebRTC. [13:41] React hooks. [19:40] UI libraries. [21:39] Technical conversations. [23:48] COVID-19. [25:44] Podcast format. [28:11] NFTs and cryptocurrencies. [28:41] Outro. [29:53] Submit a question about this or previous episodes. I'd love to hear from you. Join the Discord community. Meet other curious minds. If you enjoy the show, would you please consider leaving a short review on Apple Podcasts/iTunes? It takes less than 60 seconds and really helps. Show notes, transcripts, and past episodes at gettingsimple.com/podcast. Follow Nono Twitter.com/nonoesp Instagram.com/nonoesp Facebook.com/nonomartinezalonso YouTube.com/nonomartinezalonso

The Bike Shed
312: Spooky Stories

The Bike Shed

Play Episode Listen Later Oct 12, 2021 38:50


Chris evaluates the pros and cons between using Sidekiq or Active Job with Sidekiq. He sees exceptions everywhere. Steph talks about an SSL error that she encountered recently. It's officially spooky season, y'all! sidekiq-symbols (https://github.com/aprescott/sidekiq-symbols) Transcript: CHRIS: Additional radiation just makes Spider-Man more powerful. STEPH: [laughs] Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Steph Viccari. CHRIS: And I'm Chris Toomey. STEPH: And together, we're here to share a bit of what we've learned along the way. Hey, Chris, what's new in your world? CHRIS: Fall is in the air. It's one of those, like, came out of nowhere. I knew it was coming. I knew it was going to happen. But now it's time for pumpkin beer and pumpkin spice lattes, and exclusively watching the movie Hocus Pocus for the next month or so or some variation of those themes. But unrelated to that, I did a thing that I do once, let's call it every year or so, where I had to make the evaluation between Sidekiq or Active Job with Sidekiq, as the actual implementation as the background job engine that is running. And I just keep running through this same cycle. To highlight it, Active Job is the background job system within Rails. It is a nice abstraction that allows you to connect to any of a number of them, so I think Delayed Job is one. Sidekiq is one. Resque is probably another. I'm sure there's a bunch of others. But historically, I've almost always used Sidekiq. Every project I've worked on has used Sidekiq. But the question is do you use Active Job with the adapter set to Sidekiq and then you're sort of living in both worlds, or do you lean in entirely and you use Sidekiq? And so that would mean that your jobs are defined to include Sidekiq::Worker because that's the actual thing that provides the magic as opposed to inheriting from Application Job. And then do you accept all of the trade-offs therein? And every time I go back and forth. And I'm like, well, but I want this feature, but I don't want that feature. But I want these things. So I've made a decision, but I want to talk ever so briefly through the decision points that were part of it. Have you done this back and forth? Are you familiar with the annoying choice that exists here? STEPH: It's been a while since I've had the opportunity to make that choice. I'm usually joining projects where that decision has already been made. So I can't think of a recent time that I've thought through it. And my current project is using that combination of where we are using Active Job and Sidekiq. CHRIS: So I think there's even a middle ground there where that was the configuration that I'd set up on the project that I'm working on. But you can exist in both worlds. And you can selectively opt for certain background jobs to be fully Sidekiq. And if you do that, then instead of saying, "Performlater," You say, "Performasync." And there are a couple of other configurations. It gives you access to the full Sidekiq API. And you can do things like hey, Sidekiq, here's the maximum number of retries or a handful of other things. But then you have to trade away a bunch of the niceties that Active Job gives. So as an example, one thing that Active Job provides that's really nice is the use of GlobalID. So GlobalID is a feature that they added to Rails a while back. And it's a way to uniquely identify a given record within your system such that when you say performlater, you can say, InvitationMailer.performlater and then pass it a user record so like an instance of a user model. And what will happen in the background is that gets serialized, but instead of serializing the whole user object because we don't actually want that, it will do the GlobalID magic. And so it'll turn into, I think it's GID:// so almost like a URL. But then it'll be, I think, your application name/model name down the road. And the Perform method actually gets invoked via the background system. Then you will just get handed that user record back, but it's not the same instance of the user record. It sort of freezes and thaws it. It's really nice. It's a wonderful little feature. Sidekiq wants nothing to do with that. STEPH: I'm so glad that you highlighted that feature because that was on my mind; I think this week where I was reviewing...somebody had made the comment where they were concerned about passing a record to a job and saying how that wouldn't play nicely with Sidekiq. And in the back of my mind, I'm like, yeah, that's right. But then I was also I'm pretty sure this got addressed, though. And I couldn't recall specifically if it was a Sidekiq enhancement or if it was a Rails enhancement. So you just cleared something up for me that I had not had time to confirm myself. So thanks. CHRIS: Well, to be clear, this works if you are using Active Job with Sidekiq as the adapter, but not if you are using a true Sidekiq worker. So if you opt-out of the Active Job flow, then you have to say, "Perform_async," and if you pass it a record, that's not going to work out particularly nicely. The other similar thing is that Sidekiq does not allow the use of keyword args, which, I'm going, to be honest, I really like keyword arguments, especially for background jobs or shuttling data through your system. And there's almost a lazy evaluation. I want some nicety to make sure that when I am putting something into a background job that I'm actually using the correct call signature, essentially passing the correct data in the correct shape. Am I passing a record, or am I passing the ID? Am I passing a list of options or a single option? Those sort of trade-offs that are really easy to subtly get wrong. I came around on this one because I realized although Active Job does support keyword arguments, the way it does that is it just has a JSON serialization format for them. So a keyword argument turns into a positional array with an associated hash that allows for the lookup or whatever. Basically, again, they handle the details. You get to use keyword args, which is great, with the exception that when you're actually calling performlater, that method performlater is a method missing type magic method. So it does not actually check the keyword arguments at that point. You're basically just passing an options hash as opposed to true keyword arguments that would error because they don't match up. And so when I figured that out, I was like, oh, never mind. This doesn't actually do the thing that I care about. It's a little bit nicer in terms of the signature of the method when you're defining your background job itself, but it doesn't actually do any logical checking. It doesn't give me any safety or robustness within my system. So I don't care about that. I did find a project called sidekiq-symbols, which does some things under the hood to how Sidekiq serializes and deserializes jobs, which I think gives largely the same behavior as Active Job. So I can now define my Sidekiq jobs with keyword arguments. Things will work. I can't use GlobalID. That's still out. But that's fine. I can do a little helper method that basically does the same thing as GlobalID or at least close approximation. But sidekiq-symbols lets me have keyword arg-like signatures in my methods; basically, it is. But again, it doesn't actually do any check-in when I'm enqueueing a job, and I am sad about that. STEPH: Yeah, that's another interesting distinction. And I'm unsurprisingly with you that I would favor having keyword args and having that additional safety in place. Okay, so I've been keeping track. And so far, it sounds like we have two points because I'm doing a little scorecard here between Active Job and Sidekiq. And we have two points in favor of Active Job because they offer a GlobalID, which then allows us to pass in a record, and then it takes care of the serialization for us. And then also, keyword args, which I agree with you that's a really nice feature to have in place as well. So I'm curious, so it sounded like you're leaning towards Active Job, but I don't want to spoil the ending. CHRIS: Yes, I could see why that's what you would be taking away from the conversation thus far. So again, just to reiterate, Active Job and Sidekiq with this sidekiq-symbols extension they both support keyword args, kind of. They support defining your job with keyword args and then enqueueing a job passing something that looks like keyword args. But it ends up...nobody's actually checking anything, so it's mostly like a syntactic nicety as opposed to any sort of correctness, which is still nicer, but it's not the thing that I actually want. Either way, nobody supports it, so it is not available to me. Therefore, it is not a consideration point. The GlobalID thing is nice, but it is really, again, it's a nicety more than anything. I have gone, and I'm leaning in the direction of full Sidekiq and Sidekiq everywhere as opposed to Active Job in most cases, but then Sidekiq when we need it. And that's because Sidekiq just has a lot more power and a lot more functionality. So, in particular, Sidekiq has a feature which allows you to say...it's a block that you put at the top of your Sidekiq job that says retries exhausted or something. I think Sidekiq retries exhausted is the actual full name of that at that point, which is really unfortunate in my mind, but anyway, I'll deal. At that point, you know that Sidekiq has exhausted all of the retries, and you can treat it as failed. I'm going, to be honest, I went on a quest to find a way to say, hey, I'm going to put some work into the background. It's really important for me to know if this work succeeds or if it fails. It's very easy to know if it succeeds because that just happens in-line in the method. But we can have an exception raised at basically any point; Sidekiq does a great job of catching those, of retrying, of having fundamental mechanisms there. But this is the best that I can get for this job failed. And so Active Job, as far as I can tell, does not have anything for this in order to say, yep, we are done. We are not going to keep working on this. This work has failed. It is dead. Dead is; actually, I think the more correct term for where we're at because failed is a temporary state, and then you retry after a failure. Whereas dead is, this has gone through all of its retries, and it will never be run again. Therefore, we should treat this as not having run. And in my case, the thing that I want to do is inform the user that this operation that we were trying to do on their behalf has not succeeded, will not succeed. And please reach out or otherwise deal with the fact that we were unable to do the thing that they asked us to do. That feels like a really important thing for me to be able to do, to be able to communicate back to my users. This is one of those situations where I'm looking at the available options, and I'm like, I feel like I can't be the only one who wants to know when something goes wrong. This feels like a thing that's important. But this is the best example that I've found, the Sidekiq retries exhausted block. And unfortunately, when I'm using it, it gets yielded the Sidekiq JSON blob deserialized, so it's like Ruby hash. But it's still like this blob of data. It's not the same data that gets passed into perform. And so, as a result, when I want to look up the record that was associated with it, I have to do this nested dig into the available hash of data. And it just feels like this is not a well-paved path. This is not something that is a deeply thought about or recommended use case. But again, I don't feel like I'm doing something weird here. Am I doing something weird, Steph, wanting to tell my users when I was unable to do the thing they asked me to do? [chuckles] STEPH: That feels like a very rhetorical question. [laughs] CHRIS: It does. I apologize. I'm leading the witness. But in your sincere heart of hearts, what do you think? STEPH: No, that certainly doesn't sound weird. I'm actually thinking back to some of the jobs that cause me stress in regards to knowing when they failed and then having that communication of knowing that we've exhausted all the retries. And, of course, knowing when those retries are exhausted is incredibly helpful. I am intrigued, though,, because you're highlighting that Active Job doesn't have the same option around setting the retry. And I'm trying to recall exactly how it's set. But I feel like I have set the retry count for Active Job. And maybe, as you mentioned before, that's because it's an abstraction, or I'm not sure if Active Job actually has that native support. So I feel a little confused there where I think my default instinct would have been Active Job does have that retry capability. But it sounds like you've discovered otherwise. CHRIS: I'm not actually sure what Active Jobs core retry logic or option looks like. So fundamentally, as far as I understand it, Active Job is an abstraction. And under the hood, you're always connecting an adapter. So it's either going to be Sidekiq, or Resque, or Delayed Job, or other. And each of those systems, whichever system you have as the adapter, is the one that's actually going to be managing retries. And so I know Sidekiq happens to have as a default 25 retries. And that spans, I think it's a two-week exponential back off. And Sidekiq has some very robust logic that they have implemented as the way retries exist within Sidekiq. I'm not sure what that would look like if you're trying to express it abstractly because it is slightly different. I know there was some good work that was done on Sidekiq to allow the Sidekiq options that's a method at the top level of the job, even if it's an Active Job job to express the retries. So that may be what you've seen, or there may be truly an abstraction that exists within Active Job, and then each adapter needs to know how to handle retries. But frankly, the what can Sidekiq do that Active Job can't? There's a whole bunch of stuff around limiting when you would retry limiting, enqueuing a job if there already exists one, when and how do those records get locked. There's a whole bunch of stuff. Sidekiq has a lot of power under the hood. And so if we want to be leaning into that, that's why I'm leaning towards let's just be Sidekiq all the time. Let's become Sidekiq experts. Let's accept that as a deep architectural decision within the app as opposed to just relying on the abstraction. Because fundamentally, if we're just using Active Job, we're not going to have access to the full power of Sidekiq or whatever the underlying system is, so sort of that decision that I'm making, but I don't know specifically around the retries. STEPH: Okay, thanks. That's really helpful. It's been a while since I've had to make this decision. I'm really enjoying you sharing your adventure because I'm trying to think what's the risk? If you don't use Active Job, what are the trade-offs? And you'd mentioned some of them around the GlobalID and keyword args, which are some niceties. But overall, if you don't go with the abstraction, if you lean into Sidekiq, the risk is then you want to migrate to a different enqueuing service. And something that we talk about is mitigating that risk, so then you can swap it out. That's also something I have never done or encountered where we've had to make that change. And it feels like a very low risk in my mind. CHRIS: Sidekiq feels like the thing you would migrate to, not a thing you would migrate from. It feels like it is the most powerful. And if anything, I expect at some point we'll be upgrading to Sidekiq pro or enterprise or whatever the higher versions that you pay for, but you get more features there. So in that sense, that is the calculation. That's the risk trade-off in my mind is that we're leaning into this technology and coupling ourselves more closely to it. But I don't see that as one that will reassess in the same way that people talk about Active Record and it being an ORM. And it's like, oh, we're abstracting the database underneath, and I'm like, no, I'm not. I'm always using Postgres. Please do not take Postgres. I'm not going to switch over to MySQL next week. That's totally fine if you start on MySQL. It's unlikely you're going to port over to Postgres. We may port to an entirely…like it's a Cassandra column store with a Kafka queue, I don't know, something weird down the road. But it's not going to be swapping out Postgres for MySQL or vice versa. Like you said, that's probably not a change that's going to happen. But that I think is the consideration. The other consideration I have in my mind is Active Job is the abstraction that exists within Rails. And so I can treat it as the lowest common denominator, and folks joining the project, it's nice to have that familiarity. So perform_later is the method on the Active Job jobs, and it has a certain shape to it. People may be familiar with that. Mailers will automatically use Active Job just implicitly under the hood. And so there's a familiarity, a discoverability. It's just kind of up the middle choice. And so if I can stick with that, I think there's a nicety there. But in this case, I think I'm choosing I would like the power and consistency on the Sidekiq side, and so I'm leaning into that. STEPH: Yeah, that makes a lot of sense to me. And I liked the other example you provided around things that were not likely to swap out and Postgres, MySQL, your database being one of them. And in favor of an example that I do have for something that...I do enjoy wrapping. It's not something that I adhere to strictly, but I do enjoy it when I have the space to make this choice. So I do enjoy wrapping HTTPClients, not just because then I can swap it out for a different HTTPClient, which frankly, that's also rare that I do that. Once I choose an HTTPClient, I'm probably pretty happy, and I don't need to swap it out. But I really like being able to extend to the API specifically if they don't handle error responses in a way that I would like to or if they raise, and then I want to change the API to have a more thoughtful interface and where I don't have to rescue those errors. But instead, I can interact with this object that then represents an error state. So that was just one example that came to mind for things that I do enjoy having an abstraction around and not just so I can swap it out because that feels like a very low risk, but more frankly, so I can extend the API. CHRIS: I definitely share the I almost always wrap APIs, or I try and hide whatever the implementation detail whether it be HTTPParty, or Faraday or whatever it is that I'm using and trying to hide that deeply within the system. And then I have whatever API client that we define. And that's what we're interacting with. It's interesting that you bring up errors and exceptions there because that's the one other thing that has caused me this...what I'm describing now seems perhaps like, oh, here's just a list of pros and cons, a simple decision was made, and there we are. This represents some real soul searching on my part, if we will. And one of the last things that I ran into that was just so frustrating is that Sidekiq is explicitly built around the idea of exceptions; Sidekiq retries if there is an exception raised in the job, otherwise, it treats it as success, and that's it. That is the entirety of it. That is the story. But if you raise an exception in a job, then you can't test that job because now it's raising an exception. You can't test retries or this retry exhausted block that I'm trying to lean into. I'm like, I want to put that in a feature spec and say, oh, this job goes in the background, but it's in a failure state, and therefore, the user sees the failure message. Sorry, I can't do that because the only way to actually fail a job is via an exception. And I've actually gone to some links in this application to try to introduce more structured data flow. I've talked a bunch about the command objects and the dry-monads and all those things. And I've really loved them where I've gotten to use them. But then I run into one of these edge cases where Sidekiq is like, no, no, no, you can't do that. And so now I have parts of my system that very purposefully return data as opposed to raising an exception. And I just have to turn around and directly raise that failure as an exception, and it just feels less expressive. I actually just ran into the identical thing with Pundit. They have a little bit better control over it; I can choose whether or not I want the raising version or not. But I see exceptions everywhere, and I want a little more discrete data flow. [chuckles] That is my dream. So anyway, I chose Sidekiq is the summary here. And slowly, we're going to migrate entirely to Sidekiq. And I'm going to be totally fine with it. And I'm done griping now. STEPH: This is your own little October Halloween movie, that I see exceptions everywhere. CHRIS: They're so spooky. STEPH: [laughs] That's cool about Pundit. I'm not sure I knew that, that you get to essentially turn on or off that exception flow behavior. On one hand, I'm like, that's nice. You get the option. On the other hand, I'm like, well, let's just not do it. Let's just never raise on people. But at least they give people options; that seems really cool. CHRIS: They do give the option. I think you can choose different strategies there. And also, if we're being honest, I'm newer to Pundit. And I used a different thing, which was to get the Policy Object and ask it a question. I wanted to ask, is this enabled or not? Can a user do this or not? That should not raise an exception. I'm just asking a question. We're just being real chill about this. I just want to know some information. Let's flow some data through our system. We don't need exceptions for that. STEPH: Why are you yelling at me? I just have a question. [laughs] CHRIS: Yeah. I figured out how to be easy on that front. Sidekiq apparently has no be easy mode, but that's fine. You know what? We're going to make it work, and it's going to be fine. But it is interesting deciding which of these facets of the system that I'm building do I really care about? Which are the ones where I'm like, whatever, just pick something, and we'll move forward, it's not a big deal? Versus, we're actually going to be doing a lot of work in the background. This is the thing that I care about deeply. I want to know about failure and success. I want to really understand that and have a robust answer to what our architecture looks like there. Similarly, Pundit for authorization. I believe that authorization will be a critical aspect of our system. It's typically a pretty important thing. But for us, I think we're going to have different types of users who can log in and see different subsets of data and having a consistent and concrete way that we have chosen to implement that we are able to test, that we're able to verify. I think that's another core competency within the app. But you only get to have so many of those. You can only be really good at a couple of things. And so I'm in that place where I'm like, which are our top five when I say are the things that I care a lot about? And then which are the things where I'm like, I don't know, whatever, just run with it? STEPH: Just a little bit ago, I came so close to singing because you said the I want to know phrase again. And that, I'm realizing, [laughs] is a trigger for me and a song where I want to sing. I held it back this time. CHRIS: It's smart. You got to learn anytime you sing on mic that is part of the permanent record. STEPH: Edward Loveall at thoughtbot, since I sang in a recent episode, did the delightful thing where then he grabbed that clip of where you talk a little bit, and then I sing and then encouraged everyone to go listen to it. And in which I responded, like, I would highly recommend that you save your ears and don't listen to it. But yes, singing on the mic is a thing. I do it from time to time. I can't hold it back. CHRIS: We all do. But since it doesn't seem that you're going to sing in this moment, I think I can probably wrap up my Odyssey of choosing between Sidekiq and Active Job. I hope those details were useful to anyone other than me. It was an adventure, so I figured I'd share it. But yeah, that about wraps it up on my side. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. STEPH: So, I would love to talk about an SSL error that I encountered recently. So one of the important processes in our application is sending data to another system. And while sending data to that other system, we started seeing the following error that the read "Certificate verify failed." And then in parens, it states, "Unable to get local issuer certificate." So upon seeing that error, I initially thought, okay, something is wrong with their SSL certificate or their SSL configuration. And that's not something that I have control over and can fix. So we should reach out and let them know to take a look at their SSL config. But it turns out that their team already knew about the issue. They had recently updated or renewed their SSL cert, and they saw our messages were no longer being processed, and they were reaching out to us for help. So at that point, I'm still pretty sure that it's related to something on their end, and it's not something that I can really fix on our end. But we can help them troubleshoot. Maybe there's a workaround that we can add to still get messages processing while they're looking into their SSL config. It seemed like they still just needed help. So it was something that was still worth diving into. So going back to the first error, I want to talk a little bit about it because I realized that I understand SSL just enough, just the surface to get by as a developer. But then, every time that I run into a specific error with it, then I really have to refresh my understanding as to what could be wrong, so then I can troubleshoot more effectively. So for anyone that could use a refresher on that certificate verification process, when your browser or your server is connecting to a site that uses SSL, then your browser server, whichever one you're using, is going to download that site certificate and verify a couple of things. So it's going to check does the certificate contain the domain name of the website? So essentially, you gave us a certificate. Is this your certificate? Does it match the site that we're connecting to? Is this cert issued by a trusted certificate authority? So did someone that we trust give you this certificate? And is the cert still valid, or has it expired? So that part is pretty straightforward. The second part, "Unable to get local issuer certificate," so that's the part I was less certain about. And I took this to mean that they had passed two of those three checks that their cert included the site's name, and it had not expired. But for some reason, we aren't able to determine if their cert was issued by someone that we should trust. So following that journey, my next question was, so what are they giving us? So this is a tool that I don't get to use very often, but I reached for OpenSSL and, specifically, the s_client command, which connects to a specified domain and prints all certificates in the certificate chain. You may already know this, but the certificate chain is basically a fancy way of saying, show me all the certificates necessary to prove your site certificate was authorized by a trusted certificate authority. CHRIS: I did not know that. STEPH: Okay, I honestly didn't either. [laughs] CHRIS: I liked that you thought I would, though. So thank you, but no. [chuckles] STEPH: Yeah, it's one of those areas of SSL where I know just enough. But that was something that was new to me. I thought there was a site certificate, and I didn't realize that there is this chain of certificates that has to be honored. So going back and looking through that output of the certificate chain, that's what highlighted to me that their server was giving us their certificate and saying, hey, you should trust our site certificate. It's legit because it was authorized by, let's say, XYZ certificate. And so if it were a proper certificate chain, then they would give us that XYZ cert. And essentially, we can use this chain of certificates to get back to a trusted authority that then everybody knows that we can trust. However, they weren't actually giving us a reference certificate; they were giving us something else. So essentially, they were saying, "Hey, look at our certificate and look at this very trustworthy reference that we have." But they're actually failing to give us that reference. So to bring it all home, we can download that intermediate certificate that they reference; that is something that is publicly accessible. That's why we're able to then verify each certificate that's provided in that chain. We could go and download that intermediate certificate from that certificate authority. We could combine that with their site-specific certificate, include that in our request to their system, and then complete the certificate chain. And boom, we're back in business. But it was quite a journey. CHRIS: That is quite the journey. And yeah, I definitely knew very little of that, although everything you're saying makes sense. And I have a bunch of cubbyholes in my brain for SSL knowledge. And the words you said all fit into the spaces that I have in my brain, but I didn't know a bunch of those pieces. So thank you for sharing that. SSL and cryptography, more generally or password hashing or things like that, occupy this special place in my brain where I'm both really interested in them. And I will occasionally research them. If I see a blog article, I'll be like, oh yeah, I want to read more about this password hashing. And what's a Salt? And what's a Pepper? And what are we doing there? And what is BCrypt versus SCrypt? What are all these things? This is cool. And almost the arms race on the two sides of how do we demonstrate trust in a secure manner on the internet? But at the same time, I am not allowed to do anything with this information. I outsource this as much as humanly possible because it's one of those things that you just should not do yourself and SSL perhaps even more so. So I have configured aspects of my password hashing. But I 100% just lean on the fact that Let's Encrypt exists in the world. And prior to that, it was a little more work. But frankly, earlier on in my career, I wasn't dealing with the SSL parts of things. But I'm so grateful to Let's Encrypt as a project that exists. And now, on almost every platform that I work with, there's just a checkbox for please do the SSL work for me, make it good, make it work, and then I will be happy. And I'm so glad that that organization exists and really pushed the envelope also. I forget what it was, but it was only like three years ago where SSL was not actually nearly as common as it is now. And now it is pervasive and everywhere. And all of the sites have it, and so that is a wonderful thing. But I don't actually know much. I know that I should have it. I must have it. I should force it. That's true. So I push that out… STEPH: Hello. CHRIS: Are you trying to get me to sing? [chuckles] STEPH: [laughs] No, but I did want to know if you get the reference, the Salt-N-Pepa. CHRIS: Push It Real Good the song? Yeah, okay. STEPH: Yeah, you got it. [chuckles] CHRIS: I will just say the lyrics. I shall not sing the lyrics. I would say that, though, that yes, yes, they do that. STEPH: Thank you for acknowledging my very terrible reference. Circling back just a little bit too in regards to...I'm with you; this is a world that is not one that I am very deeply technical in and something that I learned a fair amount while troubleshooting this particular SSL error. And it was very interesting. But there's also that concern where it's like, that was interesting. And we worked around the issue, but this also feels very fragile. So we still haven't fixed it on their end where they are sending the wrong certificate. So then that's why we had to do more investigative work, and then download the certificate that they meant to send us, and then send back a complete certificate chain so that we don't have this error anymore. But should they change anything about their certificate, should they renew anything like that, then suddenly, we're going to break again. And then, the next developer is going to have to go through the same journey. And this wasn't a light journey. This was a good half-day journey to figure out what was going on and to spend the time, and then to also get that fix out to production. So it's a meaningful task that I don't want anyone else to have to go through. But we are relying on someone else updating their configuration. So, on one hand, we're in a good spot until they are able to update. But on the other hand, I wrote a heck of a commit message for the next person just describing like, friend, just grab some coffee if we're going to chat. It's a very small code change, but you need to know the scoop. So should you need to replicate this because they've changed something, or if this happens…because we work with a number of systems that we send data to. So if someone else should run into a similar issue, they will understand some of the troubleshooting techniques that I used and be able to look up that chain and find out if there's a missing cert or something else they need to provide. So it feels like a win, but I'm also nervous for future selves, future developers. So there's another approach that I haven't mentioned yet, but it was often a top recommendation for when dealing with SSL errors. And specifically, it was turning off SSL verification. And I saw that, and I was like, well, that won't work. I'm definitely sending sensitive, important data. And I need to verify that who I'm sending this to is really the person that I want to send this data to. So that was not an option for me. But it made me very nervous how often that was an approach that people would recommend and be like, oh, it's okay, just turn off SSL. You'll be fine. Like, don't worry about it. CHRIS: I feel like this so perfectly fits into the...some of our work is finding the information and connecting the pieces together and making it work. But some of it is that heuristic sense, that voice in the back of your head that is like, wait, I'm sorry, what? You want me to just turn off the security perimeter and hope that the velociraptors won't come in? That doesn't seem like it's going to end well. I get that that's an easy option that we have available to us right now and will solve the immediate problem but then let's play this out. There are four or five Jurassic Park movies now that tell the story of that. So let's be careful. STEPH: It always ends super well, though, right? Like, it's totally fine. [laughs] CHRIS: [laughs] Exclusively. Although it's funny that you mentioned OpenSSL no verify because just this past week, I used that very same configuration. I think it was okay in my case; I'm pretty sure. But it is interesting because when I saw it, I was like, oh no, can't do that. Certainly not that. Don't turn off the security feature. That's the wrong way to deal with the issue. But in the particular case that I'm working with, I'm using Redis, Heroku Redis, in particular, in a Heroku configuration. And the nature of how Heroku configures the Redis instances and the connectivity to our app into our dyno...I forget why. I read an article. They wrote it; Heroku wrote it. I trust them; they're good. I've outsourced my trust to people that I do trust. The trust chain actually maps really well to the certificate trust chain. I trust that Heroku has taken security deeply seriously. And for some reason, their configuration of Redis requires that I turn on OpenSSL no verify mode. So I'm using this now both in Sidekiq, and then we're using our Redis instance for our Rails cache as well. So in both cases, I said, "It's fine. Don't worry about it." I used the Don't worry about it configuration. And I didn't love it but I think it's okay. And partly, I'm trying to say this into the internet radio right now just in case anyone's listening who's like, no, no, no, you can't do that. That's bad. So I'm willing to be deeply wrong on the internet in favor of someone telling me and then I get to get out in front of it. But I think it's fine. Pretty sure it's fine. It should be fine. STEPH: I love love love that you gave a very visual example of velociraptors, and then you're like, oh, but I turned it off. [laughs] So I'm going to start sending you a velociraptor gif each day. CHRIS: I hope you do. I hope the internet holds you accountable to that. STEPH: [laughs] CHRIS: And I really look forward to [laughs] moving forward because that's a great way to start the day. Well, it doesn't need to start the day, but I look forward to them. STEPH: [laughs] I am really intrigued because I'm with you. Like you said, there are certain entities that are in our trust chain where it's like, hey, you are running this for us, and so I do have faith and trust in you that you wouldn't steer me wrong and provide a bad recommendation. Someone on Stack Overflow telling me to turn off SSL verify uh; that's not my trust chain. Heroku or someone else telling me I'm going to take it a little more seriously. And so I'm also interested in hearing from...what'd you say? You're speaking into the internet phone. [laughs] What'd you say? CHRIS: I think I said internet radio. But yeah, in a way. I mean, we're recording over Skype right now. So in a manner of speaking, we're on the internet phone to make our internet radio show. STEPH: [laughs] Oh goodness, the internet radio. I'm also intrigued to hear if other people are like, oh, no, no, no. Yeah, that sounds like an interesting scenario. Because I would think you'd still want your connection to...you said it's for Redis. So you still want that connection to be verified. But then if Redis itself can't have a specific...yeah, we're testing the boundaries of my SSL knowledge here as to how the heck you would even establish that SSL connection or the verification process. CHRIS: Me too. And it also exists in an interesting space where Heroku is rather clear in their documentation about this. And it was a surprising claim when I saw it. And so, I don't expect them to be flippant about a thing that is important. Like, if they're like, "No, no, no, it is okay. You can turn off the security thing, don't worry." I trust that they're not just like, oh, we didn't think about it too much. But we figured why not? It's not a big deal. I'm sure that they have thought about it deeply because it is an important thing. And so in a weird way, my trust of them and the severity of what this thing represents, I'm like, oh yeah, I super trust that because you're not going to get a major thing wrong. You might get a minor, small, subtle thing wrong. But this is a pretty major configuration change. As I say it, I'm now getting more worried. I'm now like, I feel fine about this. This doesn't seem like a problem at all. But then I keep saying stuff, and I'm like, oh no. That's why I love having a podcast; I find out things about myself as I talk into a microphone to you. STEPH: We come here to share our deep, dark developer secrets. Chris: Spooky developer therapy. STEPH: But just to clarify, even though you've turned off the SSL verify, you're still connecting over SSL. CHRIS: Yes, I believe that's the case. And if I'm remembering, I think the nature of how this works is they're using a self-signed certificate because of shared infrastructure or something, something that made sense when I read it. But it was the idea that they are doing a self-signed certificate. Therefore, to what you were talking about earlier, there isn't the certificate authority in the chain of those because it's self-signed. And so, they are not a trusted certificate authority. Therefore, that certificate that they have generated would not be trusted. But it does still allow for the SSL handshake and then communication to happen over SSL. It's just that fundamental question of trust. I'm saying, in this case, for reasons, it's okay. Trust me that I trust them. We're good. Which, again, I don't feel great about, but I think yes, it is still SSL, but it is a self-signed certificate. So we have to make this configuration change. STEPH: Yeah, all of that makes sense. And it certainly sounds like you have been very thoughtful about that change and put in some investigative work. So on that note, I have a very unrelated bad joke for you. CHRIS: I'm very excited. STEPH: All right, here we go. All right, so what do you call an alligator wearing a vest? CHRIS: I don't know. What do you call an alligator wearing a vest? STEPH: An investigator. [laughter] On that note, shall we wrap up? CHRIS: Oh, let's wrap up. We should also include a link in the show notes to the episode where you told the joke about the elephant hiding in the trees because that's one of my favorite jokes. You slayed me with that one. [laughs] But on that note, yes, let us wrap up. The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes,,as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeeeee!!! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

The Gary Null Show
The Gary Null Show - 10.08.21

The Gary Null Show

Play Episode Listen Later Oct 8, 2021 59:38


Raspberries, ellagic acid reveal benefits in two studies Oregon State University, October 1, 2021.    Articles that appeared recently in the Journal of Berry Research report that raspberries and compounds present in the fruit could help support healthy body mass and motor function, including balance, coordination and strength.   In one study, Neil Shay and colleagues at Oregon State University fed mice a high fat, high sugar diet plus one of the following: raspberry juice concentrate, raspberry puree concentrate, raspberry fruit powder, raspberry seed extract, ellagic acid (a polyphenol that occurs in a relatively high amount in raspberries), raspberry ketone, or a combination of raspberry ketone and ellagic acid. Additional groups of animals received a high fat, high sugar diet alone or a low fat diet.   While mice that received the high fat and sugar diet alone experienced a significant increase in body mass, the addition of raspberry juice concentrate, raspberry puree concentrate or ellagic acid plus raspberry ketone helped prevent this effect. Of note, mice that received raspberry juice concentrate experienced gains similar to those of animals given a low fat diet. "We hope that the findings from this study can help guide the design of future clinical trials," Dr Shay stated.   In another study, Barbara Shukitt-Hale, PhD, and her associates at Tufts University's Human Nutrition Research Center on Aging gave 19 month old rats a control diet or a diet enhanced with raspberry extract for 11 weeks. Psychomotor behavior was assessed during week 7 and cognitive testing was conducted during weeks 9-10.   Animals that received raspberry performed better on psychomotor coordination and balance, and had better muscle tone, strength and stamina than those that received a control diet. "These results may have important implications for healthy aging," stated Dr Shukitt-Hale. "While further research in humans is necessary, animal model studies are helpful in identifying deficits associated with normal aging."       Massage doesn't just make muscles feel better, it makes them heal faster and stronger Harvard University, October 6, 2021 Massage has been used to treat sore, injured muscles for more than 3,000 years, and today many athletes swear by massage guns to rehabilitate their bodies. But other than making people feel good, do these "mechanotherapies" actually improve healing after severe injury? According to a new study from researchers at Harvard's Wyss Institute for Biologically Inspired Engineering and John A. Paulson School of Engineering and Applied Sciences (SEAS), the answer is "yes." Using a custom-designed robotic system to deliver consistent and tunable compressive forces to mice's leg muscles, the team found that this mechanical loading (ML) rapidly clears immune cells called neutrophils out of severely injured muscle tissue. This process also removed inflammatory cytokinesreleased by neutrophils from the muscles, enhancing the process of muscle fiber regeneration. The research is published in Science Translational Medicine. "Lots of people have been trying to study the beneficial effects of massage and other mechanotherapies on the body, but up to this point it hadn't been done in a systematic, reproducible way. Our work shows a very clear connection between mechanical stimulation and immune function. This has promise for regenerating a wide variety of tissues including bone, tendon, hair, and skin, and can also be used in patients with diseases that prevent the use of drug-based interventions," said first author Bo Ri Seo, Ph.D., who is a Postdoctoral Fellow in the lab of Core Faculty member Dave Mooney, Ph.D. at the Wyss Institute and SEAS. Seo and her coauthors started exploring the effects of mechanotherapy on injured tissues in mice several years ago, and found that it doubled the rate of muscle regeneration and reduced tissue scarring over the course of two weeks. Excited by the idea that mechanical stimulation alone can foster regeneration and enhance muscle function, the team decided to probe more deeply into exactly how that process worked in the body, and to figure out what parameters would maximize healing. They teamed up with soft robotics experts in the Harvard Biodesign Lab, led by Wyss Associate Faculty member Conor Walsh, Ph.D., to create a small device that used sensors and actuators to monitor and control the force applied to the limb of a mouse. " The device we created allows us to precisely control parameters like the amount and frequency of force applied, enabling a much more systematic approach to understanding tissue healing than would be possible with a manual approach," said co-second author Christopher Payne, Ph.D., a former Postdoctoral Fellow at the Wyss Institute and the Harvard Biodesign Lab who is now a Robotics Engineer at Viam, Inc.  Once the device was ready, the team experimented with applying force to mice's leg muscles via a soft silicone tip and used ultrasound to get a look at what happened to the tissue in response. They observed that the muscles experienced a strain of between 10-40%, confirming that the tissues were experiencing mechanical force. They also used those ultrasound imaging data to develop and validate a computational model that could predict the amount of tissue strain under different loading forces. They then applied consistent, repeated force to injured muscles for 14 days. While both treated and untreated muscles displayed a reduction in the amount of damaged muscle fibers, the reduction was more pronounced and the cross-sectional area of the fibers was larger in the treated muscle, indicating that treatment had led to greater repair and strength recovery. The greater the force applied during treatment, the stronger the injured muscles became, confirming that mechanotherapy improves muscle recovery after injury. But how? Evicting neutrophils to enhance regeneration To answer that question, the scientists performed a detailed biological assessment, analyzing a wide range of inflammation-related factors called cytokines and chemokines in untreated vs. treated muscles. A subset of cytokines was dramatically lower in treated muscles after three days of mechanotherapy, and these cytokines are associated with the movement of immune cells called neutrophils, which play many roles in the inflammation process. Treated muscles also had fewer neutrophils in their tissue than untreated muscles, suggesting that the reduction in cytokines that attract them had caused the decrease in neutrophil infiltration. The team had a hunch that the force applied to the muscle by the mechanotherapy effectively squeezed the neutrophils and cytokines out of the injured tissue. They confirmed this theory by injecting fluorescent molecules into the muscles and observing that the movement of the molecules was more significant with force application, supporting the idea that it helped to flush out the muscle tissue. To pick apart what effect the neutrophils and their associated cytokines have on regenerating muscle fibers, the scientists performed in vitro studies in which they grew muscle progenitor cells (MPCs) in a medium in which neutrophils had previously been grown. They found that the number of MPCs increased, but the rate at which they differentiated (developed into other cell types) decreased, suggesting that neutrophil-secreted factors stimulate the growth of muscle cells, but the prolonged presence of those factors impairs the production of new muscle fibers. "Neutrophils are known to kill and clear out pathogens and damaged tissue, but in this study we identified their direct impacts on muscle progenitor cell behaviors," said co-second author Stephanie McNamara, a former Post-Graduate Fellow at the Wyss Institute who is now an M.D.-Ph.D. student at Harvard Medical School (HMS). "While the inflammatory response is important for regeneration in the initial stages of healing, it is equally important that inflammation is quickly resolved to enable the regenerative processes to run its full course." Seo and her colleagues then turned back to their in vivo model and analyzed the types of muscle fibers in the treated vs. untreated mice 14 days after injury. They found that type IIX fibers were prevalent in healthy muscle and treated muscle, but untreated injured muscle contained smaller numbers of type IIX fibers and increased numbers of type IIA fibers. This difference explained the enlarged fiber size and greater force production of treated muscles, as IIX fibers produce more force than IIA fibers. Finally, the team homed in on the optimal amount of time for neutrophil presence in injured muscle by depleting neutrophils in the mice on the third day after injury. The treated mice's muscles showed larger fiber size and greater strength recovery than those in untreated mice, confirming that while neutrophils are necessary in the earliest stages of injury recovery, getting them out of the injury site early leads to improved muscle regeneration. "These findings are remarkable because they indicate that we can influence the function of the body's immune system in a drug-free, non-invasive way," said Walsh, who is also the Paul A. Maeder Professor of Engineering and Applied Science at SEAS and whose group is experienced in developing wearable technology for diagnosing and treating disease. "This provides great motivation for the development of external, mechanical interventions to help accelerate and improve muscle and tissue healing that have the potential to be rapidly translated to the clinic." The team is continuing to investigate this line of research with multiple projects in the lab. They plan to validate this mechanotherpeutic approach in larger animals, with the goal of being able to test its efficacy on humans. They also hope to test it on different types of injuries, age-related muscle loss, and muscle performance enhancement. "The fields of mechanotherapy and immunotherapy rarely interact with each other, but this work is a testament to how crucial it is to consider both physical and biological elements when studying and working to improve human health," said Mooney, who is the corresponding author of the paper and the Robert P. Pinkas Family Professor of Bioengineering at SEAS. "The idea that mechanics influence cell and tissue function was ridiculed until the last few decades, and while scientists have made great strides in establishing acceptance of this fact, we still know very little about how that process actually works at the organ level. This research has revealed a previously unknown type of interplay between mechanobiology and immunology that is critical for muscle tissue healing, in addition to describing a new form of mechanotherapy that potentially could be as potent as chemical or gene therapies, but much simpler and less invasive," said Wyss Founding Director Don Ingber, M.D., Ph.D., who is also the Judah Folkman Professor of Vascular Biology at (HMS) and the Vascular Biology Program at Boston Children's Hospital, as well as Professor of Bioengineering at SEAS.   Vitamin E could help protect older men from pneumonia University of Helsinki (Finland), October 7 2021.    An article that appeared in Clinical Interventions in Aging reported a protective role for vitamin E against pneumonia in older men.   For the current investigation, Dr Harri Hemilä of the University of Helsinki, Finland analyzed data from the Alpha-Tocopherol Beta-Carotene (ATBC) Cancer Prevention Study conducted in Finland. The trial included 29,133 men between the ages of 50 to 69 years who smoked at least five cigarettes daily upon enrollment. Participants received alpha tocopherol (vitamin E), beta carotene, both supplements, or a placebo for five to eight years.   The current study was limited to 7,469 ATBC participants who started smoking at age 21 or older. Among this group, supplementation with vitamin E was associated with a 35% lower risk of developing pneumonia in comparison with those who did not receive the vitamin.  Light smokers who engaged in leisure time exercise had a 69% lower risk compared with unsupplemented members of this subgroup. The risk in this subgroup of developing pneumonia by age 74 was 12.9%.   Among the one-third of the current study's population who quit smoking for a median period of two years, there was a 72% lower risk of pneumonia in association with vitamin E supplementation. In this group, exercisers who received vitamin E experienced an 81% lower pneumonia risk.   Dr Hemilä observed that the benefit for vitamin E in this study was strongest for older subjects—a group at higher risk of pneumonia.   "The current analysis of individual-level data suggests that trials on vitamin E and pneumonia on nonsmoking elderly males are warranted," he concluded.       Toxic fatty acids to blame for brain cell death after injury New York University, October 7, 2021 Cells that normally nourish healthy brain cells called neurons release toxic fatty acids after neurons are damaged, a new study in rodents shows. This phenomenon is likely the driving factor behind most, if not all, diseases that affect brain function, as well as the natural breakdown of brain cells seen in aging, researchers say. Previous research has pointed to astrocytes—a star-shaped glial cell of the central nervous system—as the culprits behind cell death seen in Parkinson's disease and dementia, among other neurodegenerative diseases. While many experts believed that these cells released a neuron-killing molecule to "clear away" damaged brain cells, the identity of this toxin has until now remained a mystery. Led by researchers at NYU Grossman School of Medicine, the new investigation provides what they say is the first evidence that tissue damage prompts astrocytes to produce two kinds of fats, long-chain saturated free fatty acids and phosphatidylcholines. These fats then trigger cell death in damaged neurons, the electrically active cells that send messages throughout nerve tissue. Publishing Oct. 6 in the journal Nature, the study also showed that when researchers blocked fatty acid formation in mice, 75 percent of neurons survived compared with 10 percent when the fatty acids were allowed to form. The researchers' earlier work showed that brain cells continued to function when shielded from astrocyte attacks.  "Our findings show that the toxic fatty acids produced by astrocytes play a critical role in brain cell death and provide a promising new target for treating, and perhaps even preventing, many neurodegenerative diseases," says study co-senior author Shane Liddelow, Ph.D. Liddelow, an assistant professor in the Department of Neuroscience and Physiology at NYU Langone Health, adds that targeting these fats instead of the cells that produce them may be a safer approach to treating neurodegenerative diseasesbecause astrocytes feed nerve cells and clear away their waste. Stopping them from working altogether could interfere with healthy brain function. Although it remains unclear why astrocytes produce these toxins, it is possible they evolved to destroy damaged cells before they can harm their neighbors, says Liddelow. He notes that while healthy cells are not harmed by the toxins, neurons become susceptible to the damaging effects when they are injured, mutated, or infected by prions, the contagious, misfolded proteins that play a major role in mad cow disease and similar illnesses. Perhaps in chronic diseases like dementia, this otherwise helpful process goes off track and becomes a problem, the study authors say. For the investigation, researchers analyzed the molecules released by astrocytes collected from rodents. They also genetically engineered some groups of mice to prevent the normal production of the toxic fats and looked to see whether neuron death occurred after an acute injury. "Our results provide what is likely the most detailed molecular map to date of how tissue damage leads to brain cell death, enabling researchers to better understand why neurons die in all kinds of diseases," says Liddelow, also an assistant professor in the Department of Ophthalmology at NYU Langone. Liddelow cautions that while the findings are promising, the genetic techniques used to block the enzyme that produces toxic fatty acids in mice are not ready for use in humans. As a result, the researchers next plan is to explore safe and effective ways to interfere with the release of the toxins in human patients. Liddelow and his colleagues had previously shown these neurotoxic astrocytes in the brains of patients with Parkinson's, Huntington's disease, and multiple sclerosis, among other diseases.   Clinical trial for nicotinamide riboside: Vitamin safely boosts levels of important cell metabolite linked to multiple health benefits University of Iowa Health Care, October 3, 2021   In the first controlled clinical trial of nicotinamide riboside (NR), a newly discovered form of Vitamin B3, researchers have shown that the compound is safe for humans and increases levels of a cell metabolite that is critical for cellular energy production and protection against stress and DNA damage.   Studies in mice have shown that boosting the levels of this cell metabolite -- known as NAD+ -- can produce multiple health benefits, including resistance to weight gain, improved control of blood sugar and cholesterol, reduced nerve damage, and longer lifespan. Levels of NAD+ diminish with age, and it has been suggested that loss of this metabolite may play a role in age-related health decline.   These findings in animal studies have spurred people to take commercially available NR supplements designed to boost NAD+. However, these over-the-counter supplements have not undergone clinical trials to see if they work in people.   The new research, reported in the journal Nature Communications, was led by Charles Brenner, PhD, professor and Roy J. Carver Chair of Biochemistry at the University of Iowa Carver College of Medicine in collaboration with colleagues at Queens University Belfast and ChromaDex Corp. (NASDAQ: CDXC), which supplied the NR used in the trial. Brenner is a consultant for ChromaDex. He also is co-founder and Chief Scientific Adviser of ProHealthspan, which sells NR supplements under the trade name Tru NIAGEN®.   The human trial involved six men and six women, all healthy. Each participant received single oral doses of 100 mg, 300 mg, or 1,000 mg of NR in a different sequence with a seven-day gap between doses. After each dose, blood and urine samples were collected and analyzed by Brenner's lab to measure various NAD+ metabolites in a process called metabolomics. The trial showed that the NR vitamin increased NAD+ metabolism by amounts directly related to the dose, and there were no serious side effects with any of the doses.   "This trial shows that oral NR safely boosts human NAD+ metabolism," Brenner says. "We are excited because everything we are learning from animal systems indicates that the effectiveness of NR depends on preserving and/or boosting NAD+ and related compounds in the face of metabolic stresses. Because the levels of supplementation in mice that produce beneficial effects are achievable in people, it appears than health benefits of NR will be translatable to humans safely."   The next step will be to study the effect of longer duration NR supplementation on NAD+ metabolism in healthy adults, but Brenner also has plans to test the effects of NR in people with diseases and health conditions, including elevated cholesterol, obesity and diabetes, and people at risk for chemotherapeutic peripheral neuropathy.   Prior to the formal clinical trial, Brenner conducted a pilot human study -- on himself. In 2004, he had discovered that NR is a natural product found in milk and that there is pathway to convert NR to NAD+ in people. More than a decade of research on NR metabolic pathways and health effects in mice and rats had convinced him that NR supplementation had real promise to improve human health and wellness. After consulting with UI's institutional review board, he conducted an experiment in which he took 1 gram of NR once a day for seven days, and his team analyzed blood and urine samples using mass spectrometry. The experiment showed that Brenner's blood NAD+ increased by about 2.7 times. In addition, though he reported immediate sensitivity to flushing with the related compound niacin, he did not experience any side effects taking NR.   The biggest surprise from his metabolomic analysis was an increase in a metabolite called NAAD, which was multiplied by 45 times, from trace levels to amounts in the micromolar range that were easily detectable.   "While this was unexpected, I thought it might be useful," Brenner says. "NAD+ is an abundant metabolite and it is sometimes hard to see the needle move on levels of abundant metabolites. But when you can look at a low-abundance metabolite that goes from undetectable to easily detectable, there is a great signal to noise ratio, meaning that NAAD levels could be a useful biomarker for tracking increases in NAD+ in human trials."   Brenner notes this was a case of bidirectional translational science; having learned something from the initial human experiment, his team was able to return to laboratory mice to explore the unexpected NAAD finding in more detail.   Brenner's mouse study showed that NAAD is formed from NR and confirmed that NAAD levels are a strong biomarker for increased NAD+ metabolism. The experiments also revealed more detail about NAD+ metabolic pathways.   In particular, the researchers compared the ability of all three NAD+ precursor vitamins -- NR, niacin, and nicotinamide -- to boost NAD+ metabolism and stimulate the activity of certain enzymes, which have been linked to longevity and healthbenefits. The study showed for the first time that oral NR is superior to nicotinamide, which is better than niacin in terms of the total amount of NAD+ produced at an equivalent dose. NR was also the best of the three in stimulating the activity of sirtuin enzymes. However, in this case, NR was the best at stimulating sirtuin-like activities, followed by niacin, followed by nicotinamide.   The information from the mouse study subsequently helped Brenner's team design the formal clinical trial. In addition to showing that NR boosts NAD+ in humans without adverse effects, the trial confirmed that NAAD is a highly sensitive biomarker of NAD+ supplementation in people.   "Now that we have demonstrated safety in this small clinical trial, we are in a position to find out if the health benefits that we have seen in animals can be reproduced in people," says Brenner, who also is co-director of the Obesity Research and Education Initiative, professor of internal medicine, and a member of the Fraternal Order of Eagles Diabetes Research Center at the UI.   Protecting the ozone layer is delivering vast health benefits Montreal Protocol will spare Americans from 443 million skin cancer cases National Center for Atmospheric Research, October 7, 2021 An international agreement to protect the ozone layer is expected to prevent 443 million cases of skin cancer and 63 million cataract cases for people born in the United States through the end of this century, according to new research. The research team, by scientists at the National Center for Atmospheric Research (NCAR), ICF Consulting, and U.S. Environmental Protection Agency (EPA), focused on the far-reaching impacts of a landmark 1987 treaty known as the Montreal Protocol and later amendments that substantially strengthened it. The agreement phased out the use of chemicals such as chlorofluorocarbons (CFCs) that destroy ozone in the stratosphere. Stratospheric ozone shields the planet from harmful levels of the Sun's ultraviolet (UV) radiation, protecting life on Earth. To measure the long-term effects of the Montreal Protocol, the scientists developed a computer modeling approach that enabled them to look to both the past and the future by simulating the treaty's impact on Americans born between 1890 and 2100. The modeling revealed the treaty's effect on stratospheric ozone, the associated reductions in ultraviolet radiation, and the resulting health benefits.  In addition to the number of skin cancer and cataract cases that were avoided, the study also showed that the treaty, as most recently amended, will prevent approximately 2.3 million skin cancer deaths in the U.S. “It's very encouraging,” said NCAR scientist Julia Lee-Taylor, a co-author of the study. “It shows that, given the will, the nations of the world can come together to solve global environmental problems.” The study, funded by the EPA, was published in ACS Earth and Space Chemistry. NCAR is sponsored by the National Science Foundation. Mounting concerns over the ozone layer Scientists in the 1970s began highlighting the threat to the ozone layer when they found that CFCs, used as refrigerants and in other applications, release chlorine atoms in the stratosphere that set off chemical reactions that destroy ozone. Concerns mounted the following decade with the discovery of an Antarctic ozone hole. The loss of stratospheric ozone would be catastrophic, as high levels of UV radiation have been linked to certain types of skin cancer, cataracts, and immunological disorders. The ozone layer also protects terrestrial and aquatic ecosystems, as well as agriculture. Policy makers responded to the threat with the 1987 Montreal Protocol on Substances that Deplete the Ozone Layer, in which nations agreed to curtail the use of certain ozone-destroying substances. Subsequent amendments strengthened the treaty by expanding the list of ozone-destroying substances (such as halons and hydrochlorofluorocarbons, or HCFCs) and accelerating the timeline for phasing out their use. The amendments were based on Input from the scientific community, including a number of NCAR scientists, that were summarized in quadrennial Ozone Assessment reports. To quantify the impacts of the treaty, the research team built a model known as the Atmospheric and Health Effects Framework. This model, which draws on various data sources about ozone, public health, and population demographics, consists of five computational steps. These simulate past and future emissions of ozone-destroying substances, the impacts of those substances on stratospheric ozone, the resulting changes in ground-level UV radiation, the U.S. population's exposure to UV radiation, and the incidence and mortality of health effects resulting from the exposure. The results showed UV radiation levels returning to 1980 levels by the mid-2040s under the amended treaty. In contrast, UV levels would have continued to increase throughout this century if the treaty had not been amended, and they would have soared far higher without any treaty at all.  Even with the amendments, the simulations show excess cases of cataracts and various types of skin cancer beginning to occur with the onset of ozone depletion and peaking decades later as the population exposed to the highest UV levels ages. Those born between 1900 and 2040 experience heightened cases of skin cancer and cataracts, with the worst health outcomes affecting those born between about 1950 and 2000. However, the health impacts would have been far more severe without the treaty, with cases of skin cancer and cataracts rising at an increasingly rapid rate through the century.  “We peeled away from disaster,” Lee-Taylor said. “What is eye popping is what would have happened by the end of this century if not for the Montreal Protocol. By 2080, the amount of UV has tripled. After that, our calculations for the health impacts start to break down because we're getting so far into conditions that have never been seen before.” The research team also found that more than half the treaty's health benefits could be traced to the later amendments rather than the original 1987 Montreal Protocol. Overall, the treaty prevented more than 99% of potential health impacts that would have otherwise occurred from ozone destruction. This showed the importance of the treaty's flexibility in adjusting to evolving scientific knowledge, the authors said. The researchers focused on the U.S. because of ready access to health data and population projections. Lee-Taylor said that the specific health outcomes in other countries may vary, but the overall trends would be similar. “The treaty had broad global benefits,” she said.     What is Boron? The trace mineral boron provides profound anti-cancer effects, in addition to maintaining stronger bones. Life Extension, September 2021 Boron is a trace mineral found in the earth's crust and in water. Its importance in human health has been underestimated. Boron has been shown to have actions against specific types of malignancies, such as: Cervical cancer: The country Turkey has an extremely low incidence of cervical cancer, and scientists partially attribute this to its boron-rich soil.1 When comparing women who live in boron-rich regions versus boron-poor regions of Turkey, not a single woman living in the boron-rich regions had any indication of cervical cancer.2(The mean dietary intake of boron for women in this group was 8.41 mg/day.)  Boron interferes with the life cycle of the human papillomavirus (HPV), which is a contributing factor in approximately 95% of all cervical cancers.1  Considering that HPV viruses are increasingly implicated in head and neck cancers,3,4 supplementation with this ultra-low-cost mineral could have significant benefits in protecting against this malignancy that is increasing in prevalence. Lung cancer: A study conducted at the University of Texas MD Anderson Cancer Center between 1995 and 2005 found that increased boron intake was associated with a lower risk of lung cancer in postmenopausal women who were taking hormone replacement therapy. Prostate cancer: Studies point to boron's ability to inhibit the growth and spread of prostate cancer cells.  In one study, when mice were exposed to boric acid, their tumors shrank by as much as 38%.6 One analysis found that increased dietary boron intake was associated with a decreased risk of prostate cancer.7 Several human and animal studies have confirmed the important connection between boron and bone health. Boron prevents calcium loss,8 while also alleviating the bone problems associated with magnesium and vitamin D deficiency.9 All of these nutrients help maintain bone density. A study in female rats revealed the harmful effects a deficiency in boron has on bones, including:10 Decreased bone volume fraction, a measure of bone strength, Decreased thickness of the bone's spongy inner layer, and Decreased maximum force needed to break the femur. And in a study of post-menopausal women, supplementation with3 mg of boron per day prevented calcium loss and bone demineralization by reducing urinary excretion of both calcium and magnesium.8 In addition to its bone and anti-cancer benefits, there are nine additional reasons boron is an important trace mineral vital for health and longevity. It has been shown to:1 Greatly improve wound healing, Beneficially impact the body's use of estrogen, testosterone, and vitamin D, Boost magnesium absorption, Reduce levels of inflammatory biomarkers, such as high-sensitivity C-reactive protein (hs-CRP) and tumor necrosis factor α (TNF-α), Raise levels of antioxidant enzymes, such as superoxide dismutase (SOD), catalase, and glutathione peroxidase, Protect against pesticide-induced oxidative stress and heavy-metal toxicity, Improve the brain's electrical activity, which may explain its benefits for cognitive performance, and short-term memory in the elderly, Influence the formation and activity of key biomolecules, such as S-adenosyl methionine (SAM-e) and nicotinamide adenine dinucleotide (NAD+), and Potentially help ameliorate the adverse effects of traditional chemotherapeutic agents. Because the amount of boron varies in the soil, based on geographical location, obtaining enough boron through diet alone can be difficult. Supplementing with low-cost boron is an effective way to maintain adequate levels of this overlooked micronutrient.

The Marketing Agency Leadership Podcast

Lisa Vielee is President at Well Done Marketing, a 15-yer-old full-spectrum, strategic, creative, and technical agency that provides design, branding, content marketing, public relations, and digital strategy services . . . but not traditional media-buying.  Lisa claims this small, independent agency is unusual for its size in that it has a full web development team and can “go straight from web design to UX, UI, and development, testing, and then continue with ongoing maintenance web development. Lisa explains that “design to development” can be a rocky handoff – but keeping everything “in agency” eliminates this problem. Today, websites, which used to be one-and-done “catalogs,” require constant updating to make sure they provide great customer experience, enhance and support the customer journey, and align with changing customer needs. New business comes into Well Done in one of three ways—through referrals, through “the dreaded RFP process, and finally, and through outbound sales. Dedicated service managers serve as primary points of contact for clients, represent the agency's team for the client and the client internally, and bring in the staff with required skill sets as they are needed. Lisa believes the agency's small size of 30-some employees promotes nimbleness and the ability to maximize budgets. The agency's clients present the agency with “problems to be solved” but solutions now are far more comprehensive than they were in the past. Lisa says it is important to “not just focus on the initial creative strategy” (which tends to live short term inside a campaign) but to take a wider view and develop marketing strategies aligned with long term business and brand goals. She says marketing, is “more than just distribution channels and the4 Ps” (product, price, place, promotion)—marketing needs a seat at the C table.  Lisa feels it is important to mentor younger people and asks them to define their “end goals” and “their visions of success.” She explains that some people may want to create a company, sell it, and become millionaires. Others may want a tight, small, focused team that provides meaningful service and personal satisfaction. Still, others just want to come to work and do a good job, day in and day out. Lisa says these are all valid and that, no matter what each individual is pursuing as success, Well Done will work to keep them challenged.  Lisa, who refers to herself as a “communications generalist,” did not start her career at Well Done Marketing. After earning a degree in journalism, she almost immediately went to the “dark side,” and worked in a variety of public relations positions. When her political candidate/employer lost an election, Lisa started her own PR firm . . . which grew until she had a choice, she either had to start saying “no” or add employees. She met with an old friend, Ken Honeywell, to ask him to mentor her and help her grow to the next level.  But Ken Honeywell had other ideas. He and a fellow freelance writer had started Well Done Marketing by outsourcing their services to other agencies. As they grew, they added visual and strategic skills and data management. Now, Ken wanted to add public relations to his firm's offerings. He brought Lisa on board to add PR and with the intention of grooming her to take over the agency's leadership as he started his 5- to 8-year journey toward retirement.  Six years in, Lisa understands the culture, knows where the agency excels and has developed her vision for the agency's future. Ken will be retiring at the end of the year. Lisa says the hardest part for her in stepping into the role of president has been giving up day-to-day client interaction. Her focus now is on agency-level problems and issues, expanding the agency from a regional to a national “marketing force,” and making it a legacy that lives beyond this transition in leadership. Lisa is available on her agency's website at Welldonemarketing.com. Transcript Follows: ROB: Welcome to the Marketing Agency Leadership Podcast. I'm your host, Rob Kischuk, and I'm joined today by Lisa Vielee, President at Well Done Marketing based in Indianapolis, Indiana. Welcome to the podcast, Lisa. LISA: Thanks, Rob. It's good to be here. ROB: It's excellent to have you here. Why don't you give us an introduction to Well Done Marketing and what you do that is so well done? LISA: Well Done Marketing is a 15-year shop here in Indianapolis. We're a full-service marketing agency. We like to say that if it's strategic, creative, or technical, we probably do it. That's everything from design, branding, content marketing, public relations, digital strategy. Also, kind of unusual for an agency our size as a small/mid-size agency, we have a full web development team. So we can go straight from web design to UX, UI, and development, testing, and then ongoing maintenance for our clients, which is really great because sometimes that handoff from design to development can be a little rocky and some things can get lost in translation. That's part of the reason why we brought it in-house. For the most part, unless it's traditional media buying, you can find it here at Well Done. ROB: That's an interesting evolution, because for a time – and this may be part of your transition – web development used to be kind of one-and-done. It seems to me now that a website is never really done and needs to be adjusted alongside everything else that's going on with the brand. LISA: Absolutely. Websites have gone from brochures online to really more of a customer experience. It's the first thing people see and learn about your company, so keeping that content fresh has really evolved from being just updating blog posts to updating everything on your site and making sure it aligns with what the customer wants. The customer journey is paramount, and I think that's where having data and content and having that come together makes a lot of sense, and being able to change that in real time helps us as an agency, and we think helps our clients be really competitive in the market. ROB: Right. It turns it from this big event into just part of the cadence. I totally understand that. Can you maybe give us a picture through the lens of a particular client? What's a walk-through of a typical-ish client engagement for you? Who are you working with? What are the touchpoints? LISA: For any advertising agency, there's probably no such thing as a “typical” client. The clients that we love to work with are the clients that come to us with an overall problem to be solved. It used to be that was always an agency of record, but now it tends to be a project comes in and they recognize that marketing partners such as ourselves can help them do more than put a piece of content or an advertising campaign together. One of our philosophies is to not just focus on the initial creative strategy, but to really take a step back whenever we can and focus on the marketing strategy. That's really more aligned with business goals and brand goals, whereas a campaign – creative strategy tends to live in that campaign, that short term. For a lot of our clients, they'll come to us for a project and then find that we're asking questions and going outside of our lane, giving advice to them that goes beyond the campaign. Even if they don't continue with us, our hope is that we can help that marketing person or that marketing director really understand why they need a seat at the table in the C-suite, and that marketing is really more than just distribution channels and the 4 Ps. ROB: Right. As you talk about the range of services that you work with clients on, how are you then structuring the client engagement and the team around them? How are you establishing the primary point of contact and how do you bring people to the team around them? What's that structure look like? LISA: We have dedicated service managers responsible for all of our clients. They're the primary point of contact. Then we bring in people as needed. Again, as a small independent agency, we can be a little more nimble. We can maximize budgets that way. So we'll tell clients, with the exception of the initial kick-off meeting, where you want everybody at the table – other than that, you will see people when you need them at whatever stage of the process you're in. That account manager's responsibility is not only to represent our team for the client, but also to represent the client internally. ROB: It's such a key relationship and it's always interesting to think about how to structure it, because it's really make or break. There's a lot of stake there in that role. LISA: There absolutely is. A lot of agencies get started with the trifecta. You've got a creative person, a writer, a designer, and an account service person. For us, that's not really how we started. Our two founders were both freelancers, so they started with this loose coalition of freelancers. The two people were writers, and they started an agency based on providing good content. Their first clients were typically other agencies. Along the way, our founder decided that we could do more, that it really was about how he and his partner were thinking as well as the content that came out of it. So as the agency evolved, we found it made sense to show how that thinking works visually, strategically, through buys, through data management, and ultimately – my background's in PR, so also in how we were communicating to different stakeholders. ROB: Absolutely. I think you bring us to an important part of the conversation. You mentioned the founders of the firm, you mentioned those older parts. You've taken us through a little bit of the origin story, but let's talk about your journey into the firm, what you were up to before, and what it looked like to dive into Well Done, and now you're the president. LISA: I am a proud communications generalist. I graduated with a degree in journalism, went over to the dark side and started working in public relations almost immediately, and over the course of my career, I've worked in internationally recognized nonprofits; I've done a stint in two or three different agencies of different sizes. I worked in state government, and then, as is typically the case in government, eventually your candidate loses. When my candidate lost, I took some time to think about what I wanted to do and how I wanted to balance my work and life. I decided to hang my own shingle. You get to a point as a freelancer where you have to decide if you're going to start saying no to preserve your own sanity or if you're going to add people. I have trouble saying no, so I started adding additional people. Ken Honeywell, our founder, and I have known each other forever. Indianapolis is known as one of those “small town” big cities. Everybody seems to know everybody, and in the marketing and advertising space, we all have tended to work with each other or for each other. So Ken and I have known each other for years. We came to a point where I actually asked him to go to lunch because I wanted to ask him how to take the next step. I was under five employees; he at the time had about 20, and I wanted to ask him to be my mentor and really help me grow. It was a fun conversation because his answer was, “Well, sure, I'd be happy to help you, but I was hoping we could take this conversation in a different direction. I think we need to add PR, and why don't you come on board? And oh, by the way, I think you'd be a great successor and a great leader for Well Done.” Really, it was one of those I was looking through a door and he opened the window, and we started having that conversation. From the beginning, we were very intentional about not only how to add that service line and that different way of approaching a customer's communication needs, but also how we were going to approach the internal management of the agency. The staff immediately knew that it was a sign that Ken was going to retire. We always said it was a 5- to 8-year journey so that I could learn the culture, I could really come in and understand where we did our best work and what that meant, and also put my vision together for the second generation of leadership. And now here we are 6 years later, and it's bittersweet because Ken is retiring at the end of the year, but everyone is ready. Not ready as in “Get out of here,” but ready in terms of we know where we've been, where we're going, how our story is evolving. ROB: What I'm hearing you say is first day in the door, you were going from around five people in your organization to maybe around 30 or so? What was that jump in responsibility? LISA: Yeah, I was employee #24. In the last few years, we've added people. I think we're now at mid-30s. I'd like to think that bringing my company in was a good addition because we've been able to add clients and add people. But the other thing that I've realized, again, as that communications generalist, is I was well-positioned to understand the agency from a business perspective. A lot of agencies that are started the way ours started don't necessarily have the greatest business structure. I take this role of president really seriously in that I've given up being involved on the day-to-day – which was really, really hard. That was probably my biggest challenge at first. I didn't want to give up that day-to-day client interaction and being involved in solving their problems. It took me a couple of years, but I realized after time that my job was to solve the problems and issues of the agency and working on the agency. That's really set us up for success going forward because my leadership team, we have big dreams. We want to grow from a regional company to a more nationally recognized agency. And having someone at the helm of that is a really important part to making that happen. ROB: Was that the hardest part to let go of? The last responsibility you wanted to give up was working directly with the clients, then? LISA: It's been a 5-year journey. To be fully transparent, I am turning over the reins for my last client next month. ROB: That's progress, right? I think you highlight a neat opportunity for the entire services industry. There's seemingly always room for the next wave of companies to rise up from nothing to regional player to national player. Some of them get bought along the way and some of them stand strong. It's a great journey to be on. LISA: Yeah, I think so. It's exciting, for sure. In my experience, from the places where I've worked, a lot of agencies, especially in the Midwest – we're very humble people. It's kind of scary to share that big goal. But again, to have a founder who is so willing to help his baby get to the next step and bring on someone that can really make it become a legacy – because that's the other thing. Agencies tend to come and go as the founders come and go. It's been a real gift to have this opportunity to really work with our leadership team and envision where we want to go and make it something that can be a legacy for our founder. ROB: When you start to think about growth, there's lots of struggles, but there's a couple that constantly come into play. It's sales and execution in the services business overall. I think one of the hardest things to get predictable for an agency can be seeing a lane to predictable growth beyond – I think sometimes we just feel like we luck into business, we get referrals, we grow organically. How have you thought about scaling growth? I think that can be very intimidating. LISA: That's an interesting question, because we've tried several different models for that. We have had a couple of new business directors and have found – and maybe it's just my poor hiring, but we've had people that are great networkers and can open doors, but are not salesmen, and we've had people that are great salespeople but don't necessarily understand the agency business. We have now made business development a responsibility of our accounts team and really have encouraged anyone that has that dream client or that industry that they bring some expertise or they want to grow in, to bring that to the table, and we'll start looking for connections. I might be dating myself here, but it's a little bit like seven degrees of Kevin Bacon. Eventually we sit down and realize that there's no such thing as a cold lead. ROB: Right. What I hear you saying is that the accounts team function in an opportunity identification mode, and then it's more of a team sport after that. LISA: Yeah, it is. Let me take a step back. New business comes in in one of three ways. We've mentioned referrals; that's always a primary source, especially from clients who believe in what you do and think you're a good partner. There's always the dreaded RFP process. [laughs] It's a necessary evil of our business and can result in really good work. Then the third piece is that outbound sales. I think this is a place where ecommerce, SaaS companies – obviously, you get into the retail and consumer market, people do really well. But professional services tend to have a struggle in carving out time for that. I think that's the difference. That's where the lead really happens for a small agency to become more of a mid-size regional player: by recognizing that you have to sell yourself a little bit as well and go after some of those big fish. For a long time, we talked about how we were punching above our weight class. I've really challenged our team to start thinking, maybe we're in our weight class. Let's just punch where we are because we can do the work and we bring a special kind of strategy and thinking to the table that helps distinguish us from some of our larger competitors who may have scaled to such a size that the process is there, and it works for their clients, but we're a little bit scrappier. ROB: Right. There's an extent to which I think unless an organization is very intentional about seeking a particular size of opportunity – I know very small consultancies that pursue very large clients, and we've talked to a couple of agencies on the podcast that are 800 people and they're working with local plumbers. Those are the exceptions. Everything else seems like, to an extent, the right size opportunity ends up matching your speed. I can't quite explain the serendipity of it, but it seems the size of opportunity comes to you when you're ready for it, to an extent. LISA: Yeah, I completely agree. Serendipity is a great word. I have always referred to it as karma. One of the things any company has to do, in my opinion, as they grow is have the ability to say no. That's the local plumber thing. It's really hard to say no to business, especially – we're a 15-year agency; we lived through the recession. We're currently living through COVID, and third and fourth generation of COVID. There's a tendency to just take any work as it comes. I'm a firm believer that if you say “No, thank you” with a referral – “Let me hook you up with someone that might be a better fit” – that's karmic, and people remember that. They remember that you're good people, and when the time is right, that's going to come back around and it's going to serve you. ROB: Something I think you alluded to when you mentioned the SaaS companies, the startups, the software companies – it seems that sometimes service companies, agencies, will try to borrow maybe a little bit too much from those playbooks, and in the process they'll try to act like a SaaS company that's trying to sell $500 a month widgets, which is never going to feed the business sufficiently. How have you thought about the right granularity of sales? It sounds like by surfacing the leads through a thoughtful process with the team, you're avoiding this kind of “Let's blast the universe and everyone who could be our customer.” LISA: You couldn't have said it better. On my drive in to work, I listen to marketing podcasts much like this one, and I wish I could remember where I heard it so I could attribute it correctly, but I heard someone talk about issuing a challenge to agencies to decide where they live on a continuum. Are you an agency that makes things, or are you an agency that thinks things? So a true consultancy, which has become a bad word, or that widget-maker? I like to think Well Done leans more to the thinking things side. We're not a good fit for people that need widgets. We're going to be too expensive, or our process is going to be too frontloaded, or frankly you're going to get frustrated because we are interested in creating your brochure or your website. We're really interested in understanding not only how to find a solution for your problem, but why is your problem a problem? So we tend to really look at context as well as content. Our model is very audience-centric, and that means our client – we get that our clients have 1,000 things to think about. For us, we're thinking about them 100% of the time we're working on the account, but for them, our work is only a part of it. If we can ask smart questions, help them consider things outside of our little part of it, and take some of that off their plate simply by understanding the context in which they're working, then for us, that's really when we're successful at our job. ROB: That makes sense. You're going to naturally match pace with some of those clients that look like where you are as an organization and where you're comfortable. In the startup world, they talk about – not that we're hunting animals; people won't like that metaphor – but the question, are you hunting rabbits or deer or elephants? You need to know, because those tasks all take specific tools, specific teams, specific tactics, and you're going to have to build the whole organization around it. Or you're just going to wait around and see what falls into the trap, I guess might be the metaphor. [laughs] LISA: [laughs] And it requires some strength of character as an organization as well. When you hunt elephants, that's a longer play. It takes more people. You've got to see the elephant from every side, and there's some risk involved with that. So it's building some of that internal trust that this is going to be the right fit for us; this is going to fit our mission. For Well Done, our mission is to do good in the world and work with clients who are doing good in the world. That's not a fit for everybody. Yeah, sure, we could – what's the other analogy? – shoot fish in a barrel, as long as we're on the hunting theme here. You could shoot fish in a barrel and get all of those little projects pretty easily, but it doesn't help an agency grow, and frankly, in my experience, I don't think it is satisfying for people that really have a passion for this industry. ROB: Lisa, as you reflect on your tenure with Well Done, but also leading into that, what are some lessons you've learned along the way that you might want to go back and tell yourself to do things a little bit differently if you were starting over? LISA: Some of it is really personal to me and my personality, so I'm not sure how helpful this'll be, but all the personality tests I've taken, I'm a driver, I'm a high D, Type A. One of the things I've learned along the way is the bull in a china shop method is really not effective. It really, really is not effective. It really is about listening and learning and creating a culture of mentorship. Up, down, sideways, we all have something that we can teach one another. I think when I stopped moving and sat and observed this agency – and that was really a gift, to have that time to do that – that was when I recognized that the sum is greater than the parts. I know it sounds kind of cliché to say that, but you've got to focus on people as well as profits. I get a lot of questions from our team about “How big is big enough? How large are we going to grow?” It's really hard to put a concrete number to that for someone like me. It really is about we will be too big when we can't focus on our people and also maintain a profit that allows us to grow. That's the best answer I can give. That's when I'll know that we've grown too large: when our culture and our mission start to suffer. ROB: That is so much the answer that I think is hard to learn and hard to articulate. Start with the mission. What is the mission? We actually had a situation where our team said, “We're too small to be the partner that we want to be for clients right now in every respect.” But that's part of the goal of the mission: to have a place to go to. If you're not doing it anymore, then you realize you're not on the mission and it's too big. LISA: That's really interesting. I know several companies here locally that have actually decided to downsize because they weren't able to provide what they felt was best. I applaud that. I'm at a stage in my career where it's really important to me to start giving back to younger professionals, and one of the things I tell the people that I mentor is to really understand how you define success. Success doesn't have to be creating a company that gets bought and you're suddenly a millionaire. For some people, that's exactly what success looks like. But for other people it really is having a tight, small team and staying in your lane and providing the service that is meaningful for you and allows that personal satisfaction. I think generationally, that is starting to change. I think the younger generation gets the fact that there needs to be some personal satisfaction and that the career ladder is not maybe as important as it used to be, and the focus on personal growth. That's something that, again, talking about listening, we try to understand as people come on board. What is your vision of success? What is your end goal? If you want to go from production designer to designer to art director to creative director, if we know that, we can help provide a better career for you and also know that you are interested in growing with us. But you know what? If you want to come in and do your job effectively, day in and day out, there is absolutely room for that as well, and we're going to try to keep you challenged. That's something as an industry I think marketing and advertising needs to come to terms with: people that just want to come and do a great job every day are still so valuable to the organization. ROB: Yeah, it's a very timely both challenge and opportunity. In this time, I think a lot of people have reconsidered what kind of role they want to do, and when and where. People who want to max out compensation can play that game, and some people who want to do meaningful work can play that game, but they might want to do it differently from how they were doing it let's say two years ago. LISA: Yeah, it's a totally different way to think about business, and that can be a challenge, to be that kind of flexible organization. And again, there are very large agencies that are doing it really well. It just depends on where you want to go and what your definition of success is. But I think to your point, it also is really important that we change the business mindset to fit the people that are coming into it. ROB: Lisa, when people want to find you and connect with you and Well Done Marketing, where should they go to track you down? LISA: Well, they'd better go to the web, because I just said that's where everybody starts. [laughs] The nice thing about our name is it's really searchable. Welldonemarketing.com is our address. If you're in Indianapolis, we say our door is always open. We're right next to a Mexican restaurant with great margaritas, so you can come and see us too. ROB: That's wonderful. I do recommend a visit to Indianapolis. I've enjoyed some time there, for certain. Thank you so much, Lisa, for coming on the podcast and sharing your journey and the story of Well Done. LISA: Thanks, Rob. It's been a really great discussion. ROB: Be well. Thank you. Thank you for listening. The Marketing Agency Leadership Podcast is presented by Converge. Converge helps digital marketing agencies and brands automate their reporting so they can be more profitable, accurate, and responsive. To learn more about how Converge can automate your marketing reporting, email info@convergehq.com, or visit us on the web at convergehq.com.

Signals and Threads
Building a UI Framework with Ty Overby

Signals and Threads

Play Episode Listen Later Oct 6, 2021 60:04


Ty Overby is a programmer in Jane Street's web platform group where he works on Bonsai, our OCaml library for building interactive browser-based UI. In this episode, Ty and Ron consider the functional approach to building user interfaces. They also discuss Ty's programming roots in Neopets, what development features they crave on the web, the unfairly maligned CSS, and why Excel is “arguably the greatest programming language ever developed.”You can find the transcript for this episode  on our website.Some links to topics that came up in the discussion:Jane Street's Bonsai libraryThe 3D design system OpenSCADMatt Keeter's libfive design toolsTry .NET in-browser replJane Street's Incr_dom libraryThe Elm Architecture “pattern for architecting interactive programs”React JavaScript libraryThe Houdini proposalSvelte UI toolkit

No Sharding - The Solana Podcast
Jonathan Schemoul - Founder of Aleph.im Ep #48

No Sharding - The Solana Podcast

Play Episode Listen Later Oct 5, 2021 43:36


Anatoly Yakovenko (00:12):Hey folks, this is Anatoly, and you're listening to The Solana Podcast. And today I have Jonathan Schemoul with me, who's the founder of the Aleph.im project. Really awesome to have you.Jonathan Schemoul (00:22):Thank you very much. I'm really happy to be here today.Anatoly Yakovenko (00:25):Cool. We usually start these with a simple question, how did you get into crypto? What's your story? What's the origin story?Jonathan Schemoul (00:36):Well, into crypto it's a long story. I started way back in time, a bit on Bitcoin then I stopped because it was only money back then. And that wasn't the end game for me. Then I came back into crypto in 2015, 2016, and I started doing a bit of development because I saw that I really wanted to be part of Web 3, to do nice things with it. I started developing as an open-source developer for a few projects. One of these is the newest project which is Chinese blockchain layer one. I'm not really involved with it anymore.Jonathan Schemoul (01:16):But working with them as a community open source developer, I saw that there was some missing links somewhere that you couldn't decentralize all the stack with just layer one, it is not the one that they were building back then. So that's how the Aleph.im project is born. For me, besides that, I've been developing for a lot of companies before in the IOT space and also for big banks sometime ago. I've been a developer for a lot of years.Anatoly Yakovenko (01:48):That's great. I mean, that's a great background. The thing that you're focusing on with Aleph is this idea that Web 3 is just a small part of the piece, but you still need UI front-ends, business logic and things sitting on top of the blockchain. How does that work?Jonathan Schemoul (02:09):The idea is that, okay, now you can have smart contracts on Solana, that's great. You can even do way much more on like just money on smart contracts, that's great. Now, you need to have a front-end. So you need to have storage for that front-end. That's not all because a smart contract, a program doesn't have all the data that you need. So you will need some kind of indexing to get history. You will need a back-end for that.Jonathan Schemoul (02:37):Most of the DeFi application that we see have some centralized back-end behind them. They're running on AWS, sometimes on dedicated servers or stuff like that that is still centralized. If a government, and we just saw something about it today, wants to shut down the DeFi protocol that is organized like that, they can. With Aleph.im what we are trying to do is decentralize the last mile, because for that last mile most projects are using AWS, so we need to decentralize AWS.Jonathan Schemoul (03:11):So we provide storage, as in file storage for the front-end files, database storage, because most applications are just databases and also an equivalent to Amazon Lambda, where you start small functions that will be launched on a decentralized cloud, where there is place for them and will get you a return value, and these can be written in any language and connects the web and also a PC from blockchains here at Solana obviously.Anatoly Yakovenko (03:42):Got it. Super Cool. So this is a storage mechanism. Does it guarantee consistency? How's it decentralized? What happens if you nuke it? Yellowstone flows up, the current set of servers from Aleph get destroyed in the volcano. How do I move, switch, what state do I lose? Those are the hard distributed systems question.Jonathan Schemoul (04:08):Yeah. It's a really good question. Aleph.im is not a blockchain at all. We don't have a blockchain. There are enough already. We just accept messages from blockchains. All the supported blockchains are accepted on the network, that means that that message that is signed by a material address is accepted on network, a message that is signed by a certain address is accepted on the network. All our network, hence the name .im, dot instant messaging, the whole system works with messages on the network.Jonathan Schemoul (04:45):Those messages are organized by channels, just like you would go on telegram channels and get the history of them. The network keeps track of those messages and when you start a new node, you get the history of messages, not directly from the other nodes, you will connect two blockchains to specific smart contracts on blockchain. Look at past events, for example, on the Ethereum or on Solana. You look at past events for the synchronization of the network and you look, okay, there has been all these events, okay, let me ask the whole network what those messages were. Then you resync, when there are missing parts you leave them apart and then you get a view on the channels on the messages.Anatoly Yakovenko (05:31):So you write your software, your Lambda hook as if it's a re-entrant, right? So you're kind of recording your progress potentially on Solana as you're processing it.Jonathan Schemoul (05:43):For the Lambda it's a bit different. Here I was explaining how the network works for the messaging on the global state. For the state of pure application, you could either get your state from a blockchain here at Solana. For example, all the indexing effort that we are doing is using Solana as a source of synchronization for these Lambda. But then you can have multiple kind of volumes because since it's Linux Micro VM machine, everything is a volume.Jonathan Schemoul (06:18):So we have local storage volume that is local to the running host. And then the Lambda kind of issue messages on a decentralized database of data and project or under storage, and then raising to the local file system and then issue messaging, et cetera. And we are also working on another kind of phase system that is distributed, where any of them that can write in it on the overall receive the changes, which is kind of tricky.Anatoly Yakovenko (06:48):Is the database, the Aleph database, distributed database? Is that a Byzantine fault-tolerant database? Is it designed with that in mind?Jonathan Schemoul (06:58):Yeah. The idea is that when you send a message on the network, it gets stored by all the over nodes that are interested in your channel. And then there are synchronization node that go and write hashes of the data and signatures inside messages that they push on blockchains. So that when overcome, they can synchronize it and replicate all the data. So that even if one part of the network gets totally disconnected, you can have one part that gets reconnected to the other therefore the peer to peer network for blockchain, for APFS. We have multiple kind of different connectivity solutions so that they can reconnect on resync.Anatoly Yakovenko (07:42):So the Aleph database, if it's Byzantine fault tolerant, I mean, doesn't that make it a blockchain? Is there a token? Is crypto economically like fault tolerant?Jonathan Schemoul (07:56):Yeah. So we have a token, but the token is living on multiple blockchain, Ethereum, Solana, and a few others, but those are the most used today. We have a token, you need a token for your data to stay there. If you don't have any more your data gets garbage collected. But we don't have a blockchain because we go and write on over layer ones. We are technically a layer two database which is computing pre storage.Anatoly Yakovenko (08:23):But the data storage, like the Aleph distributed database, what is that backed by? Or can I pick my own blockchain to use it as a common interface or something like that?Jonathan Schemoul (08:34):Well, currently it writes on Ethereum, we're working on making it write on Solana. For this we need our indexer to be super powerful. So we'll get it writing on Solana very soon. Basically you can write on multiple blockchains and use it as a source of proof.Anatoly Yakovenko (08:53):Got it. That's pretty interesting. So it really doesn't have its own blockchain and you're just using the fault tolerance of the chains you're connected to.Jonathan Schemoul (09:04):Exactly.Anatoly Yakovenko (09:06):Awesome. Yeah, that's really cool. So the other challenge I think is like how do you deal with domains and the web? Where do you run these executed nodes? How do you connect all those pieces?Jonathan Schemoul (09:20):It's a really good question. To connect all the pieces together, we didn't develop some really fancy stuff like proof of space and time and things like that to verify that the data is really stored. We are using something much more low-tech, which is just a quality control. We have core channel nodes, which are the controllers of the network, which needs to keep some Aleph have stakers on such economics. They are verifying that other core channel nodes are behaving well. And that also the resource nodes are behaving well. Then the resource nodes are really doing the work of storing data, providing computing, et cetera. And they're continuously controlled by the core channel nodes.Anatoly Yakovenko (10:09):That's great. So they're basically like a tokenized health check, right?Jonathan Schemoul (10:14):Yeah.Anatoly Yakovenko (10:14):I can spin this up and they can continuously monitor whether this computation is making progress, right?Jonathan Schemoul (10:21):Exactly.Anatoly Yakovenko (10:21):Is that verification, is that programmable? Can me as an app developer, can I kind of code up my own apps, specific health checks or an interface or something like that?Jonathan Schemoul (10:35):It's a really good question. That's what we are working on exactly right now.Anatoly Yakovenko (10:40):I'm leaking all the features. My imagination is going.Jonathan Schemoul (10:44):No, no worry. Well, it's really interesting because to understand if an application behaves well on one host, you need to understand what the application is doing. So yes, we will give some kind of health check, which is kind of a unit test of how the app should work. So you will be able to provide unit tests for your app basically.Anatoly Yakovenko (11:11):That's really Cool. What about domains? Like actual DNS?Jonathan Schemoul (11:17):Yeah.Anatoly Yakovenko (11:20):I'm asking all the hard questions.Jonathan Schemoul (11:22):Yeah. These questions will be answered if I explain how we handle access to this virtual machine. Because for DNS, for just IPFS, there is already quite a few solution, that's not an issue. But then if you want to make a domain point to one micro VM, you want your micro VM to be able to serve your data. How we do first the load balancing because that's the important question. For load balancing we have two ways, one, which is a regular cloud load balancing, which could be blocked by government, could be censored, because that's what can happen when you have centralized point of control.Jonathan Schemoul (12:07):We will run it ourselves and a few of our partners might run some of the cloud load balancers that basically you can just point your domain to the cloud load balancer. And then the cloud load balancer will create certificates and stuff like that. It will work. We will run one instance. Ubisoft will likely run another. And like many of our partners. Well, for Ubisoft it's not sure, just some talks about it. But perhaps over partners could run cloud load balancers that we'd go on point on specific micro VM host to see where your app is running and point it to them, that might work.Jonathan Schemoul (12:48):Now What happens if a government says, "This app shouldn't work, this domain shouldn't work." Then you have two solutions, you either put the front-end inside IPFS, use some IPFS gateways, et cetera. And then the back-end is on the VM network. But then what happens if a government blocks the specific DNS inside the micro VM global.aleph.sh .aleph.cloud Whatever. Then we have a decentralized load balancing that comes into play.Jonathan Schemoul (13:24):The idea of the decentralized load balancing is that your browser will connect to the IPFS network using leap peer to peer, just leap peer to peer, find Pi Aleph nodes running, contact them directly then ask Pi Aleph node, "What micro VM host are running this software?" And then you can contact them directly. We are working on the JavaScript library that will do all this work on the client side so that you can have your front-end in IPFS that will then go and find all the back-end hosts that could answer your request.Anatoly Yakovenko (13:58):That's super cool. You guys are working on some really hard problems. I think it should be fairly easy to kind of have basically a resolver that points to ENS in the system, right. That's fairly straightforward. And basically you should be able to use any kind of like name, system, command any blockchain.Jonathan Schemoul (14:25):Yeah, clearly.Anatoly Yakovenko (14:26):Do you think that this is something that browsers are starting to recognize as standardizable? Is there a future where you think this technology could start percolating to the UI level where the end user can pick like blockchain based DNS resolver that kind of like connects all the pieces, right? From the human to this decentralized one.Jonathan Schemoul (14:51):I think that something that could come, I think that those that could really help in this is Mozilla foundation, I think that they would be the one to talk with. We aren't in talk with them because we don't really take that step right now. We have a lot on our plate. But in the future I'm pretty sure it's the way to go. We will connect to any effort in that area and we will recognize it. I know that for IPFS for example, IPFS, IPNS, there are some efforts on some browser extension that you can install to have it, et cetera.Anatoly Yakovenko (15:29):How does like certificate chaining play with us? What happens if I need to have a cert on my service and things like that.Jonathan Schemoul (15:38):A certificate on your service? Yeah.Anatoly Yakovenko (15:41):Like their sign or whatever.Jonathan Schemoul (15:43):Well, we use the one that everyone uses, which is-Anatoly Yakovenko (15:48):Let's Encrypt. The EFF one.Jonathan Schemoul (15:49):Yeah, exactly. We're using this one, we used the discovery with the content, so that we switch to a specific content when Let's Encrypt connects, then we serve this content, then we get a valid certificate, we can serve the good content.Anatoly Yakovenko (16:07):Can you unpack that a little bit?Jonathan Schemoul (16:10):Yeah. Well, Let's Encrypt has multiple ways to certify that you have a certain domain, for sub domains of .aleph.sh and .aleph.cloud, It's easy, we are using wildcard certificates. For custom domains that you could make point to your content directly, what we do is that you put a key inside your DNS to say, this is the virtual machine that should be mapped to that domain. Then you do a CNAME to our cloud load balancer and then the VM host when they get a request for this one, they go and check the DNS to see what VM they should serve on the generator certificate using Let's Encrypt for that domain and they start serving it.Anatoly Yakovenko (16:59):Oh man, this would be really cool. But if we could have like an ENS where in my ENS registry I set my Let's Encrypt domain, and then I run a local DNS server on my home machine where I run my browser and point that as a resolver, you could kind of tie these knots together and get-Jonathan Schemoul (17:23):Yeah, it could work.Anatoly Yakovenko (17:24):That's really cool. What happens if these instances die, where do you guys get more hardware? How does that process work?Jonathan Schemoul (17:36):Well, an instance can just stop, then the load balancing system will find another instance to run your code. Then what happens when an instance get a request for a code that doesn't have for the micro VM network. I mean, it goes on the network, checks, okay, what is the database entry that is in front? It takes the database entries. Has there been any upgrades to it? Okay. I get the upgrades. I subscribe using web socket to the upgrades of this database entry basically because it's a document about database entry.Jonathan Schemoul (18:14):And then it looks, okay, so this is the root FS that I should load. Do I have it? I have it, could I use it? If not, I download it from the network. I applied that root FS, where is the code? Okay. What volume does it needs and it builds and retransits and gets you the answer. For a cold start with no root FS or whatever, it can take a few seconds. But in general you use the same root FS as others. So you can get the code start. If you don't have the code, it's less than a second. If you already have the code of the application is like 150 millisecond for a cold start.Anatoly Yakovenko (18:53):Got It. And is the coordination to decide where to start this particular instance? Does that occur over the underlying chain, like Solana or Ethereum or whatever?Jonathan Schemoul (19:08):Again, that's something that we're working on. At start it's on the cloud load balancer. So the cloud load balancer are semi centralized for that. The idea is that each micro VM running node that starts running one will register a message, which is a database entry with a reference to say, "I am running this one." And then the cloud load balancer looks at the uptimes of the available micro VMs and say, "Okay, this micro VM has it ready." I'm forwarding it to it.Jonathan Schemoul (19:40):And then if there is none, then it could just route it to like a random one that has a good uptime. And then this one, the next time kind of like be choosing automatically because it is already serving it. If there is a lot of requests, it will provision multiple ones.Anatoly Yakovenko (19:59):Interesting. Got it. And you anticipate that you'll basically be able to move if the underlying chain is cheap and fast enough you should be able to move the coordination and kind of like start this instance, pull this volume. This would be really cool with like Arweave backed storage volumes. Because you could almost then see the lifetime, the life cycle of the application as its business logic is evolving, right? That state is very useful to developers who are being able to go back to a checkpoint effectively at any given time too.Jonathan Schemoul (20:38):Well, right now we are using our own storage engine, which is APFS compatible. But in the future we will allow to choose other storage engine and we will also develop gateways with like Arweave, Filecoin and other.Anatoly Yakovenko (20:53):Super cool. I used to work at Mesosphere so I don't know if you've heard of them, like D2iQ, this was kind of Kubernetes competitor, trying to build this decentralized operating system using Mesos as the jobs kind of Q-engine. There's a lot of similar challenges there, and this is really cool that you guys are building this in a decentralized web application that's kind of hosted in the real cloud, the mythical cloud.Jonathan Schemoul (21:28):Yeah. Well, there's a saying, there is no cloud, it's just other people computers. Here it's really other people computer. So it's pretty good because then you don't trust those computers because you know it's other people computers.Anatoly Yakovenko (21:44):How do you guys ensure the integrity of the computation itself? How do I know that the virtual machine, the execution environment that's running isn't malicious.Jonathan Schemoul (21:54):It's a really good question. There is multiple questions there. How can I ensure that this computation isn't returning a bad result because it knows who is on the other end. The load balancing system ensures that you don't really see who is in the other end, so you don't know who is making the request. So you don't know if it's a quality control call or if it's a real call. It goes back to your question of the testing of the application. And there is another one there which is the question of the secrets, because you might need secrets. If you want to do push notification based on a smart contract event on Solana, let's say, because that's something that we are working on right now, thinking about it.Anatoly Yakovenko (22:48):That's super cool.Jonathan Schemoul (22:48):So you would need secrets. You will need to story a secret to being able to go back to this device and send these device and notification. So you either store secrets in the local storage of the instance, but then if the instance dies, you can get it back or you try to get shared secrets between multiple hosts. We are working on it. We don't have a total answer on that. What we are working on is using free shirt cryptography, so that multiple host defined by the developer come under these secrets. And then you go back to a question of trust, which is problematic.Anatoly Yakovenko (23:30):By the threshold cryptography, is this like an MPC to compute, or are you guys thinking like BLS or like Schnorr aggregation?Jonathan Schemoul (23:42):More like you encrypt something that can be decrypted by multiple private keys.Anatoly Yakovenko (23:47):Got it.Jonathan Schemoul (23:48):And then if they want to send a message, it needs to be signed by at least x of y.Anatoly Yakovenko (23:54):Right. Got it.Jonathan Schemoul (23:57):Because this micro VM I mentioned can also send messages on the network. These messages on the network will be database entries that in the end might end up also on-chain using all records or whatever. Because these micro VM can read from on chain data and the idea is that we are working so that they can also write on chain as well. So then you might need some kind of trust somewhere. So one developer could say, I trust this host this host this host, but they need at least to do that calculation three times, let's say. But it's a bit problematic and we are still working on it. It's not finished yet, so yeah.Anatoly Yakovenko (24:40):That's what I mean, that's a really hard problem.Jonathan Schemoul (24:41):Yeah.Anatoly Yakovenko (24:43):Really cool. Yeah, the secrets thing is really challenging. I guess, what's your vision for this? You guys are tackling on some really hard problems, you get all of them done in the next year.Jonathan Schemoul (25:01):I hope so.Anatoly Yakovenko (25:06):What happens then? What is the vision for Aleph?Jonathan Schemoul (25:08):Well, here we are only speaking about a few crypto issues. We aim at bigger than just the crypto ecosystem. What we really want to do is decentralize the web, so getting bigger, way, way bigger, that's the goal. We are working with a few bigger partners who are part of the Ubisoft entrepreneurial labs, for example. We want to have a lot of hosting partners in the game that start providing resources so that I want it to be as easy as spinning up AWS server or whatever, you would just spin up VMs under the .im network. I want it to be as easy as using Firebase, using Amazon Lambda, et cetera.Jonathan Schemoul (25:51):And we have another big project going on, which is the indexing on Solana, where we are indexing data for a few protocols, currently Raydium, we might have another already soon. Well, I can say the name. We are working a lot on Orca, on port finance right now, and a lot of others actually that I can't really talk yet. But the idea is to have all these data available, have all these data feed coming up so that you can have events based on them, also do off-chain computation and things like that.Jonathan Schemoul (26:29):I really want DeFi to be totally resilient because until it's totally decentralized, you can stop DeFi. When it's totally decentralized, you can't. And if there is only the smart contracts that are decentralized, you can still stop it.Anatoly Yakovenko (26:48):Yeah. That's definitely a fair point. I think the UX issues around building also just like push notifications and all these other things for projects are really hard to overcome if it's a decentralized project, because who's going to host those servers, right, to connect to mobile and everything else. Yeah. You guys have a lot of work set out and it's pretty exciting. What do you think is missing? If you guys had like another, somebody else was building this other piece that you think is missing in the Web 3, what would it be?Jonathan Schemoul (27:26):What is missing today in the Web 3 ease of use for all this. We are trying to tackle this, but we have so much on our end. So this is a big issue, ease of use for developers, ease of use for users. Well, Phantom is already doing a great work on that end on Solana. But yeah, this and also I think that there is some kind of breaks between the ... In DeFi, if you want to move money into the real world, it gets hard really fast because there has been some kind of complications that have been put in place by regulators, by banks, by whatever. If we could just get all these parts simpler, it could be great. Some kind of link between FinTech and crypto that would work everywhere in the world, including Europe, USA, et cetera. It would be great. There are a lot of people working on it, but that's something that is missing as well.Anatoly Yakovenko (28:28):Yeah. Identity and like having those easy ramps is still hard. What about DNS? Just straight up resolving, do you think that's tackleable from a Web 3 perspective.Jonathan Schemoul (28:45):The issue is the way DNS is done. DNS protocol is great, but it implies centralization points, a lot of centralization points, which are problematic. Then you will need another standard on DNS. But if you have another standard on DNS, then you have the issue that the network right now is done, is not done for it and the browser don't understand it, et cetera, and operating system don't understand it. We would need gateways for that. I think it's doable. It's definitely doable, but it's a lot of work. And you would need multiple root servers, even virtual root servers, like what you said, local DNS server that would resolve your request, it could work.Jonathan Schemoul (29:38):If Let's Encrypt could understand it in the same way, it would work. Or we could even have something different than the root certificate that we have today, because with blockchain, we already have private keys. We already have signature. So if you sign your content with your private key, then you can verify it on the other end. And you don't really need all these chains of certificates that are here today. So that could also be another solution, but it would need another way, because right now we have roots certificate, children's certificate, et cetera. And it all goes back to central authority. The whole DNS on certificate system today goes with authority. With blockchain we are trained to remove authorities.Anatoly Yakovenko (30:33):Yeah. Do you guys see this as becoming developer facing, or maybe someday eventually kind of like client facing and want these decentralized applications running for me, kind of my own instances. Or is this always going to be here I am, team Orca, go to this domain as a user.Jonathan Schemoul (30:56):It's a good question as well. It's always the issue between hosted components, locally run components and kind of pragmatic on that. At start I would really like to, everything runs inside my browser, everything works. That's great. In reality, you have mobile phones, you have tablets, you have computers, you have a lot range of devices that can be running all the time. So real peer to peer application can't really work that well, unless you go and say, "Okay. While you are waiting for me, please send it to my friend, that will forward the data for me, et cetera.Jonathan Schemoul (31:40):Blockchains are really helping there is that we have a centralized authority, which is the blockchain that you can trust and that can hold data for you and can even encrypt it for you or store it on aleph.im, whatever, and only you can decrypt it. I think that the mix between the two would be good, like self hosted data and remotely hosted data on the decentralized cloud, a good mix of the two could be good. And the efforts by the leap peer to peer team, with the javascript leap peer to peer. And there are a few of us like that helps, because once you have access to a peer-to-peer network directly from your browser, you can cut middlemen. You can cut central authorities, et cetera, if you're the blockchain that serves as a central authority.Anatoly Yakovenko (32:28):What kind of loads have you guys seen or been able to test this out, in terms of like users request per second, kind of WebSocket connections per second.Jonathan Schemoul (32:39):It depends because when it's per server, that's not that much of an issue because the micro VM supervisor just forwards the request to the underlying software. If you don't choose local persistent volume, the supervisor can run as many instances of your program as needed, then you can spawn multiple one even inside the same supervised cluster. And then the network, if it sees that this one has issues adding the request load you can load new ones.Jonathan Schemoul (33:18):I don't think that there is really a limit on the request per second for that. So it's not really the issue that we have. And then on the database part, same, if you access one API server and you give it 500,000 requests per second, it would go down, because it's a server. If you target multiple API server, you are good. So that's also where the decentralized load balancing helps because if you use a cloud load balancer obviously even this cloud can go down. But if you contact a peer to peer network to know what host can answer, then you can contact multiple host. And all our core channel nodes, we are currently 54 of them are also API servers that users can connect to to get the data, which will be certified by our core channel node.Anatoly Yakovenko (34:10):Cool. As a whole, how many, I guess, do you have an idea of how many users per second or humans per second have you guys served in some peak times?Jonathan Schemoul (34:21):We don't, because we don't store metrics currently, we should. We don't have it because we didn't want to have any kind of log or whatever on the users, but we should add it, that's actually a good point, we will.Anatoly Yakovenko (34:37):Yeah. I mean, I think you got to be really aware of privacy and how that impacts some applications. But really interesting to see how this works. Caching is another one of those things, basically having a distributed cache around the world for often queried data. And this is an issue that I think doesn't have a good solution in Web 3 right now. You do all this work, set up a purely thin client, that's like loads from code, only talks to the chain and then you got to go fetch assets. And if you're using centralized ... Yeah, they can basically inject whatever they want.Jonathan Schemoul (35:25):Yeah, that's the main issue. And the good part is that if you also randomize where the request of the users go, if there is one bad actor, it will only inject bad data once in a while you don't even know where. Once there is a quality control it will detect it, so that can also be a solution. It's not a silver bullet either, but it can definitely help. So like for Solana what we are doing right now, for Raydium for example, is that we have an indexer that talks to multiple RPC of Solana then get the transaction history, store it inside the level DB, inside the micro VM, and then index the data.Jonathan Schemoul (36:09):Then we can get data on the pool's latest trades and stuff like that. The idea is that if there is too much request on one index, it will start another index or another index or another index, or et cetera, so that when you do a request, it reroutes you randomly to multiple hosts that have the same index.Anatoly Yakovenko (36:28):How fast is that?Jonathan Schemoul (36:31):Not fast enough currently. Well, it's fast enough for Raydium.Anatoly Yakovenko (36:35):Okay.Jonathan Schemoul (36:36):It works really well.Anatoly Yakovenko (36:40):Raydium gets a ton of hits. I mean, some of their IDOs have seen half a million requests per second-Jonathan Schemoul (36:48):Yeah. So for the Raydium data, it handles it well, like all the trades, whatever, it handles it pretty well. We don't get behind blocks in the indexing, so it works well. For Serum it's a bit more problematic because you need to watch, event cue all the time. I really hope they will have some kind of flux in the future. I think that they are working on it. So that would really help us either to get history even when we aren't watching their event cue.Anatoly Yakovenko (37:23):Yeah. So not half a million per second, half a million total, which is quite different, but yeah, they see some really good traffic.Jonathan Schemoul (37:30):Yeah.Anatoly Yakovenko (37:32):Cool. I mean, that's really cool. I think really hard part I think in designing these systems, one, is the problem is difficult, but then once you build the first version of it and you start hitting real traffic, there's a lot of parts that fit together that break under load. So what is your debugging like? How do you guys actually monitor like debug, like PagerDuty, what do you guys use as a team?Jonathan Schemoul (38:01):Right now our team is still small. We are growing a lot. Right now we are like 10 developers. A few months ago we were only three. A year ago I was alone. So we are growing really fast and we are putting all these things into place. Right now everyone monitors and checks what happens and it helps. There is Hugo who is on the micro VM side, Ali was mostly on the indexer side, myself we can get everything. But we are putting really real stuff in place right now to have it, because we are a growing startup so it takes time to get everything in place.Anatoly Yakovenko (38:43):Yeah, for sure. Do you envision a PagerDuty team for this?Jonathan Schemoul (38:48):Yes. I think that we will need one. Once we have more application that are using it, we will need one. So yes, if you have advices on that day, I'm really happy to get them.Anatoly Yakovenko (39:00):I mean, it's just part of life. It's not complicated. It's just work. This is I think that like response team I think is a difficult thing to set up in a decentralized community. If you guys are building a decentralized network with providers that are supplying hardware and all this other stuff, those are the folks that we found to be really responsive and have a lot of stake in growing this. How do the economics work for all the people actually supplying the hardware and bandwidth, et cetera?Jonathan Schemoul (39:36):Again, the research and economics aren't live yet. We are working on them. The core channel nodes economics is already there for like a year, now it works well. For the core channel node you need to have 200,000 Aleph to start a node and 500,000 Aleph, staked on a node, so that it can start to run. And then all the node operator get a share of a global envelope daily for all the nodes. All the stakers get a part of the envelope for stakers. The more nodes active, the bigger the envelope for staker is. But then for each node, they will earn a bit less if there are more nodes because it's a global envelope. So it helps stakers grow the number of nodes that are active, so that's for the core channel nodes.Jonathan Schemoul (40:25):For the resource nodes, to get storage or computing on network, there is two ways to get it. One that is already live, which is hold X amount of Aleph and get that amount of storage, hold X amount of Aleph and have the ability to start one VM with X megabyte of RAM, X virtual CPU, et cetera. And then the multiplier, and all that gives you the total count of micro VM I mentioned that can be running on your network based on your balance. The good part with that is that partner project could use a lending protocol to borrow Aleph where depositing their own token to get service. They would get the service for free just paying interest in their token, inside the borrowing protocol.Anatoly Yakovenko (41:14):Got it.Jonathan Schemoul (41:15):So that's a way for protocols to get it, but it's quite expensive because they don't directly pay for it. So for this way of using it, Aleph.im network is paying for them from the incentive pool, which right now it's one fifth of the supply, and we are changing it in the next few months, we'll change a bit of economics. It will be nearly half of the supply that would be dedicated to pay for that. Because since you lock a part of the supply, then you can release a bit inside circulating because of this new use. So that's for the hold X Aleph tokens.Jonathan Schemoul (41:51):And then there is another way that isn't developed yet that we will likely use Solana for, because it's fast enough for micro-payments in that area. It's like pay per action, pay X Aleph per gigabyte per month. You as a provider, you can say, "I am okay to be paid at least that much." And then users will say, "I want my data to be replicated at least four time. And I'm okay to pay at most that much for this." Then you get divided by those who provide service and the payment is done as micro payments. And same for the micro VM you pay per CPU per hour, et cetera.Anatoly Yakovenko (42:32):Got it. That's really cool. Well, this has been awesome to have you on the show. I mean, we got into I think the really deep, deep tells of how Aleph works, so I had a blast because it really reminds me of the spending, working on the stuff for centralized systems. It's really cool to see this kind of built ground up for decentralized ones as well. So appreciate the work you're doing. Thank you, Jonathan.Jonathan Schemoul (43:00):Thank you very much for having that call. It was really great talking with you.Anatoly Yakovenko (43:04):Awesome. And good luck to you guys. I mean, startups are blood, sweat and tears, so just keep working on the vision. You'll get there.Jonathan Schemoul (43:11):Thank you very much.Anatoly Yakovenko (43:13):Cool. Take care.

The Killing IT Podcast
Episode 132 - Vendor Sales, Government UI, and Instagram for Children

The Killing IT Podcast

Play Episode Listen Later Oct 5, 2021 31:57


Question of the Day: What was your first W2 job? Topic 1: Vendors Selling Around their Partners Listener Lucy asks: "Why the **** do vendors keep overlooking the sales rep who owns the customer in their Channel program?" There's natural tension between vendors and their solution provider partners. Why do we have to keep revisiting this topic? (Also, she agrees with Dave that a sandwich requires two pieces of bread.) Topic 2: Thoughts on taking UI to government activities Dominos (and other) have made some huge advancements in tracking the progress of their services. This is both a UI (user interface) and a CX (customer experience) topic. So where is the government when it comes to next-gen UI and CX? Link: https://statescoop.com/why-government-technologists-love-dominos-pizza-tracker/  Topic 3: Facebook/Instagram for Children? Holy smokes. Thankfully, Facebook has decided to "hold off" on releasing a version of Instagram geared toward children. We universally think it's a bad idea. But we also point out that lots of other platforms are targeting children - illegally. Link: https://www.nytimes.com/2021/09/27/technology/facebook-instagram-for-kids.html  -- -- -- Sponsor Note: Think you know PC Matic? Think again. PC Matic is working with MSPs to deliver true zero trust/default deny endpoint security. Allowing only trusted applications and blocking all the rest. A light weight, simple to deploy & easy to manage approach to application allow-listing. Layering a default deny approach provides MSPs of all sizes the ability to again focus on prevention, and PC Matic delivers this without impacting performance or efficiency. Find out more about by visiting https://pcmatic.com/MSP.  Be sure to ask about PC Matic's exclusive lead sharing program for MSPs backed by a prime time national TV campaign. :-)  

Break Things On Purpose
Maxim Fateev and Samar Abbas

Break Things On Purpose

Play Episode Listen Later Oct 5, 2021 21:14


In this episode, we cover:00:00:00 - Introduction 00:04:25 - Cadence to Temporal 00:09:15 - Breaking down the Technology 00:15:35 - Three Tips for Using Temporal 00:19:21 - OutroLinks:Temporal: https://temporal.io TranscriptJason: And just so I'm sure to pronounce your names right, it's Maxim Fateev?Maxim: Yeah, that's good enough. That's my real name but it's—[laugh].Jason: [laugh]. Okay.Maxim: It's, in American, Maxim Fateev.Jason: And Samar Abbas.Samar: That sounds good.Jason: Welcome to another episode of Build Things on Purpose, part of the Break Things on Purpose podcast. In our build episodes, we chat with the engineers and developers who create tools that help us build and operate modern applications. In this episode, Maxim Fateev and Samar Abbas join us to chat about the problems with orchestrating microservices and the software they've created to help solve those problems.Jason: Hey, everyone, welcome to Break Things on Purpose, the podcast about reliability, chaos engineering, and all things SRE and DevOps. With me today, I've got Maxim Fateev and Samar Abbas, the cofounders of a company called Temporal. Maxim, why don't you tell us a little bit more about yourself?Maxim: Hi, thanks for inviting me to the podcast. I have been around for quite a while. In 2002, I joined Amazon and Amazon was pretty small company back then, I think 800 developers; compared to its current size it was really small. I quickly moved to the platform team, among other things. And it wasn't AWS back then, it was just the software platform, actually was called [Splat 00:01:36].I worked in a team which owned the old publish-subscribe technologies of Amazon, among other things. As a part of the team, I oversaw implementation of service and architecture, Amazon [unintelligible 00:01:47] roll out services at large scale, and they built services for [unintelligible 00:01:51] Amazon so all this asynchronous communication, there was something my team was involved in. And I know this time that this is not the best way to build large-scale service-oriented architectures, or relying on asynchronous messaging, just because it's pretty hard to do without central orchestration. And as part of that, our team conceived and then later built a Simple Workflow Service. And I was tech leader for the public release of the AWS Simple Workflow Service.Later, I also worked in Google and Microsoft. Later I joined Uber. Samar will tell his part of the story but we together built Cadence, which was, kind of, the open-source version of the same—based on the same ideas of the Simple Workflow. And now we driving Temporal open-source project and the company forward.Jason: And Samar, tell us a little bit about yourself and how you met Maxim.Samar: Thanks for inviting us. Super excited to be here. In 2010, I was basically wanted to make a switch from traditional software development like it used to happen back at Microsoft, to I want to try out the cloud side of things. So, I ended up joining Simple Workflow team at AWS; that's where I met Maxim for the first time. Back then, Maxim already had built a lot of messaging systems, and then saw this pattern where messaging turned out—[unintelligible 00:03:08] believe that messaging was the wrong abstraction to build certain class of applications out there.And that is what started Simple Workflow. And then being part of that journey, I was, like, super excited. Since then, in one shape or another, I've been continuing that journey, which we started back then in the Simple Workflow team while working with Maxim. So, later in 2012, after shipping Simple Workflow, I basically ended up coming back to Azure side of things. I wrote this open-source library by the name of Durable Task Framework, which looks like later Azure Functions team ended up adopting it to build what they are calling as Azure Durable Functions.And then in 2015, Uber opened up office here in Seattle; I ended up joining their engineering team in the Seattle office, and out of coincidence, both me and Max ended up joining the company right about the same time. Among other things we worked on together, like, around 2017, we started the Cadence project together, which was you can think of a very similar idea as like Simple Workflow, but kind of applying it to the problem we were seeing back at Uber. And one thing led to another and then now we are here basically, continuing that journey in the form of Temporal.Jason: So, you started with Cadence, which was an internal tool or internal framework, and decided to strike out on your own and build Temporal. Tell me about the transition of that. What caused you to, number one, strike out on your own, and number two, what's special about Temporal?Maxim: We built the Cadence from the beginning as an open-source project. And also it never was, like, Uber management came to us and says, “Let's build this technology to run applications reliably,” or workflow technology or something like that. It was absolutely a bottoms-up creation of that. And we are super grateful to Uber that those type of projects were even possible. But we practically started on our own, we build it first version of that, and we got resources later.And [unintelligible 00:05:09] just absolutely grows bottoms-up adoption within Uber. It grew from zero to, like, over a hundred use cases within three years that this project was hosted by our team at Uber. But also, it was an open-source project from the beginning, we didn't get much traction first, kind of, year or two, but then after that, we started to see awesome companies like HashiCorp, Box, Coinbase, Checkr, adopt us. And there are a lot of others, it's just that not all of them are talking about that publicly. And when we saw this external adoption, we started to realize that thing within Uber, we couldn't really focus on external events, like, because we believe this technology is very widely applicable, we needed, kind of, have separate entity, like a company, to actually drive the technology forward for the whole world.Like most obvious thing, you cannot have a hosted version [unintelligible 00:06:00] at Uber, right? We would never create a cloud offering, and everyone wants it. So, that is, kind of like, one thing led to another, Samar said, and we ended up leaving Uber and starting our own company. And that was the main reasoning is that we wanted to actually make this technology successful for everybody in the whole world, not just within Uber. Also the, kind of, non-technical but also technical reasons, one of the benefits of doing that was that we had actually accumulated quite pretty large technical debt when running, like, Cadence, just because we were in it for four years without single backwards-incompatible change because since [unintelligible 00:06:37] production, we still were on the same cluster with the same initial users, and we never had downtime, at least, lik, without relat—infrequent outages.So, we had to do everything in backwards-compatible manner. At Temporal, we could go and rethink that a little bit, and we spent almost a year just working on the next generation of technology and doing a lot of fixes and tons of features which we couldn't do otherwise. Because that was our only chance to do backwards-incompatible change. After our first initial production release, we have this promise that they're not going to break anyone, at least—unless we start thinking about the next major change in the project, which probably is not going to come in the next few years.Samar: Yeah. One thing I would add is back then one of the value propositions that Uber was going after is provide rides as reliable as running water. And that translated into interesting system requirements for engineers. Most of the time, what ended up happening is product teams at Uber are spending a large amount of time building this resiliency and reliability into their applications, rather than going after building cool features or real features that the users of the platform cares about. And I think this is where—this is the problem that we were trying to solve with us back at Uber, where let us give you that reliability baked into the platform.Why does every engineer needs to be a distributed systems engineer to deal with all sorts of failure conditions? We want application teams to be more focused on building amazing applications, which makes a lot of sense for the Uber platform in general. And this is the value proposition that we were going after with Cadence. And it basically hit a nerve with all the developers out there, especially within Uber. One of the very funny incidents early on, when we are getting that early adoption, one of the use cases there, the way they moved onto Cadence as an underlying platform is there was actually an outage, a multi-day outage in one of the core parts of that system, and the way they mitigated the outage is they rewrote that entire system on top of Cadence in a day, and able to port over that entire running system in production and build it on top of Cadence and run it in production. And that's how they mitigated that outage. So, that was, in my opinion, that was a developer experience that we were trying to strive, with Cadence.Jason: I think, let's dive into that a little bit more because I think for some of our listeners, they may not understand what we're talking about with this technology. I think people are familiar with simple messaging, things like Kafka, like, “I have a distributed system. It's working asynchronously, so I do some work, I pass that into a queue of some sort, something pulls that out, does some more work, et cetera, and things act decoupled.” But I think what we're talking about here with workflows, explain that for our listeners a little bit more. What does it provide because I've taken a look at the documentation and some of the demos and it provides a lot of really cool features for reliability. So, explain it a little bit more, first.Maxim: [crosstalk 00:09:54] describe pretty well how systems are built now. A lot of people, kind of, call it choreography. But basic idea is that you have a bunch of callbacks which listen on queues, then update certain data sources' databases, and then put messages into the queues back. And also they need to actually—in a real system also need to have durable timers, so you either build your own timer service, so you just poll your databases for messages to be in certain state to account for time. And skill in these things are non-trivial.The worst part is that your system has a bunch of independent callbacks and you practically have very complex state machine and all these business requirements just practically broken in, like, a thousand, thousand little pieces which need to work together. This choreography in theory kind of works, but in practice is usually a mess. On top of that, you have very poor visibility into your system, and all this other requirements about retries and so on are actually pretty hard to get. And then if something goes wrong, good luck finding the problem. It goes into the orchestrat—it does orchestration.Means that you implement your business logic in one place and then you just call into these downstream services to implement the business logic. The difference is that we know how to do that for short requests. Practically, let's say you get a request, your service makes the five downstream API calls, does something with those calls, maybe makes a little bit more calls, than [unintelligible 00:11:14] data. If this transactions takes, let's say, a second, is pretty easy to do, and you don't care about reliability that much if it fails in the middle. But as soon as they come to you and say, “Okay, but any of those calls can fail for three minutes,” or, “This downstream call can take them ten hours,” you practically say, “Okay, I have this nice piece of code which was calling five services and doing a few things. Now, I need to break it into 50 callbacks, queues, and whatever in database, and so on.”It's Temporal [unintelligible 00:11:38] keep that code [unintelligible 00:11:39]. The main abstraction, which is non-obvious to people is that they practically make your process fully fault-tolerant, including stack variables, [unintelligible 00:11:49], and so on. So, if you make a call, and this call takes five hours, you're still blocked in exactly the same line of code. And in five hours, this line of code returns and then continues. If you're calling sleep for one month, you're blocked on this sleep line of code for one month, and then it just returns to the next line of code.Obviously, there is some magic there, in the sense that we need to be able to [unintelligible 00:12:11] and activate state of your workflow—and we call it workflows but this code—but in exactly the same state, but this is exactly what Temporal provides out of the box. You write code, this failure doesn't exist because if your process fails, we just reconstruct the exactly the same state in a different process, and it's not even visible to you. I sometimes call it a fault-oblivious programming because your program not even aware that fault happened because it just automatically self-healing. That is main idea. So, we'll give you a fault-tolerant code is guaranteed to finish execution.And on top of that, there are a lot of things which kind of came together there. We don't invoke these services directly, usually, we invoke them from queues. But these queues are hidden in a sense because all you say execute, for instance, some activity, call some API, and then this API is in workflow asynchronously. But for your coding code, it's not visible. It's, kind of, just normal RPC call, but behind the scenes, it's all asynchronous, has infinite retries, exponential retries, a [unintelligible 00:13:11] granular tasks, and so on.So, there are a lot of features. But the main thing which we call workflow which ties all these together, is just your business logic because all it does is just practically makes this call. And also it has state. It's stateful because you can keep state in variables and you don't need to talk to database. So, it can have you—for example, one of the use cases we saw is customer loyalty program.Imagine you want to implement the UI airline, you need to implement points, give points to people. So, you listen to external events every time your trip finished, your flight finished, and then you will get event or a need to increment that. So, in normal system, you need to get better-based cues, and so in our world, you would just increment local variables saying, “Yeah, it's a counter.” And then when this counter reaches a hundred, for example, you will call some downstream service and say, “Okay, promote that person to the next tier.” And you could write this practically your type of application in 15, 20 minutes on your desktop because all of the rest is taken care of by Temporal.It assumes that you can have millions of those objects and hundreds of millions of those objects running because you have a lot of customers—and we do that because we built it at Uber, which had hundreds of millions of customers—and run this reliably because you don't want to lose data. It's [unintelligible 00:14:29] your financial data. This is why Temporal is very good for financial transactions, and a lot of companies like Coinbase, for example, uses them for their financial transactions because we provide much better [unintelligible 00:14:39] that alternative solutions there.Jason: That's amazing. In my past as an engineer of working on systems and trying to do that, particularly when you mentioned things like retries, I'm thinking of timeouts and things where you have a long-running process and you're constantly trying to tune, what if one service takes a long time, but then you realize that up the stack, some other dependency had ended up timing out before your timeout hit, and so it's suddenly failed even though other processes are going, and it's just this nightmare scenario. And you're trying to coordinate amongst services to figure out what your timeout should be and what should happen when those things timeout and how retries should coordinate among teams. So, the idea of abstracting that away and not even having to deal with that is pretty amazing. So, I wanted to ask you, as this tool sounds so amazing, I'm sure listeners will want to give this a try if they're not already using it.If I wanted to try this out, if I wanted to implement Temporal within my application, what are, say, three things that I need to keep in mind to ensure that I have a good experience with it, that I'm actually maintaining reliability, or improving reliability, due to using this framework, give us some tips for [crosstalk 00:15:53] Temporal.Maxim: One thing which is different about Temporal, it requires you rethinking how application is structured. It's a kind of new category of software, so you cannot just take your current design and go and translate to that. For example, I've seen cases that people build system using queues. They have some downstream dependency which can be down. For example, I've seen the payment system, the guys from the payment system came to us and said, “What do we do? We have downstream dependency to bank and they say in the SLA that can be done for three days. Can we just start workflow on every message if the system is down, and keep retrying for three days?” Well, technically, answer is yes, you can absolutely create workflows, productivity retried options for retry for a month, and it is going to work out of the box, but my question to those people first time is what puts message in that Kafka queue which your are listen, you know?And they are, “Oh, it's a proxy service which actually does something and”—“But how does the service is initiated?” And they say, “Oh, it's based on another to Kafka queue.” And the whole thing, I kind of ended up understanding that they had this huge pipeline, this enormous complexity, and they had hard time maintaining that because all these multiple services, multiple data sources, and so on. And then we ended up redesigning the whole pipeline as just one workflow, and instead of just doing this by little piece, and it helped them tremendously; it actually practically completely changed the way application was designed and simplified, they removed a lot of code, and all these, practically, technology, and reliability was provided by Temporal out of the box. So, my first thing is that don't try to do piecemeal.Again, you can. Yeah, actually, they initially even did that, just to try to prove the technology works, but at the end, think about end-to-end scenario, and if you use Temporal for end-to-end scenario, you will get [10x 00:17:37] benefits there. That probably would be the most important thing is just think about design.Samar: So, I think Max, you gave a pretty awesome description of how you should be approaching building applications on top of Temporal. One of the things that I would add to that is think about how important durability is for your application. Do you have some state which needs to live beyond a single request response? If the answer to those questions is yes, then I think Temporal is an awesome technology, which helps you deal with that complexity, where a traditional way of building those applications, using databases, queues, retry mechanisms, durable timers, as Max mentioned, for retrying for three days because we have—instead of building a sub-system which deals with this retrying behavior, you can literally just, when you schedule an activity, you just put an activity options on it to, say, put your retry policy and then it will retry based on three days, based on your policy. So, I think—think holistically about your system, think about the statefulness and how important that state is, and I think Temporal is an amazing technology which really developer-friendly because the way currently industry—I think people have accepted that building these class of applications for cloud environment is inherently complex.So, now a lot of innovation which happens is how to deal with that complexity as opposed to what Temporal is trying to do is, no, let's simplify the entire experience of building such applications. I think that's the key value that we are trying to provide.Jason: I think that's an excellent point, thinking of both of those tips of thinking about how your application is designed end-to-end, and also thinking about those pieces. I think one of the problems that we have when we build distributed applications, and particularly as we break things into smaller and smaller services, is that idea of for something that's long-running, where do I store this information? And a lot of times we end up creating these interesting, sort of, side services to simply pass that information along, ensure that it's there because we don't know what's going to happen with a long-running application. So, that's really interesting. Well, I wanted to thank you for joining the podcast. This has been really fantastic if folks want to find more information about Temporal or getting involved in the open-source project or using the framework, where should they head?Maxim: At temporal.io. And we have links to our Git repos, we have links to our community forum, and we also have, at the bottom that page, there is a link to the Slack channel. So, we have pretty vibrant community, so please join it. And we are always there to help.Jason: Awesome, thanks again.Maxim: Thank you.Jason: For links to all the information mentioned, visit our website at gremlin.com/podcast. If you liked this episode, subscribe to the Break Things on Purpose podcast on Spotify, Apple Podcasts, or your favorite podcast platform. Our theme song is called, “Battle of Pogs” by Komiku, and it's available on loyaltyfreakmusic.com.

Experiencing Data with Brian O'Neill
075 - How CDW is Integrating Design Into Its Data Science and Analytics Teams with Prasad Vadlamani

Experiencing Data with Brian O'Neill

Play Episode Listen Later Oct 5, 2021 42:11


How do we get the most breadth out of design and designers when building data products? One way is to have designers be at the front leading the charge when it comes to creating data products that must be useful, usable, and valuable.   For this episode Prasad Vadlamani, CDW's Director of Data Science and Advanced Analytics, joins us for a chat about how they are making design a larger focus of how they create useful, usable data products. Prasad talks about the importance of making technology—including AI-driven solutions—human centered, and how CDW tries to keep the end user in mind.  Prasad and I also discuss his perspectives on how to build designers into a data product team and how to successfully navigate the grey areas between various areas of expertise. When this is done well, then the entire team can work with each other's strengths and advantages to create a more robust product. We also discuss the role a UI-free user experience plays in some data products, some differences between external and internally-facing solutions, and some of Prasad's valuable takeaways that have helped to shape the way he thinks design, data science, and analytics can collaborate.   In our chat, we covered:    Prasad's first introduction to designers and how he leverages the disciplines of design and product in his data science and analytics work (1:09) The terminology behind product manager and designer and how these functions play a role in an enterprise AI team (5:18) How teams can use their wide range of competencies to their advantage (8:52) A look at one UI-less experience and the value of the “invisible interface” (14:58) Understanding the model development process and why the model takes up only a small percentage of the effort required to successfully bring a data product to end users (20:52) The differences between building an internal vs external product, what to consider, and Prasad's “customer zero” approach. (29.17) Expectations Prasad sets with customers (stakeholders) about the life expectancy of data products when they are in their early stage of development (35:02)

The Bike Shed
311: Marketing Matters

The Bike Shed

Play Episode Listen Later Oct 5, 2021 37:37


Longtime listener and friend of the show, Gio Lodi, released a book y'all should check out and Chris and Steph ruminate on a listener question about tension around marketing in open-source. Say No To More Process, Say Yes To Trust by German Velasco (https://thoughtbot.com/blog/say-no-to-more-process-say-yes-to-trust) Test-Driven Development in Swift with SwiftUI and Combine by Gio Lodi (https://tddinswift.com/) Transcript: CHRIS: Our golden roads. STEPH: All right. I am also golden. CHRIS: [vocalization] STEPH: Oh, I haven't listened to that episode where I just broke out in song in the middle. Oh, you're about to add the [vocalization] [chuckles]. CHRIS: I don't know why, though. Oh, golden roads, Golden Arches. STEPH: Golden Arches, yeah. CHRIS: Man, I did not know that my brain was doing that, but my brain definitely connected those without telling me about it. STEPH: [laughs] CHRIS: It's weird. People talk often about the theory that phones are listening, and then you get targeted ads based on what you said. But I'm almost certain it's actually the algorithms have figured out how to do the same intuitive leaps that your brain does. And so you'll smell something and not make the nine steps in between, but your brain will start singing a song from your childhood. And you're like, what is going on? Oh, right, because when I was watching Jurassic Park that one time, we were eating this type of chicken, and therefore when I smell paprika, Jurassic Park theme song. I got it, of course. STEPH: [laughs] CHRIS: And I think that's actually what's happening with the phones. That's my guess is that you went to a site, and the phones are like, cool, I got it, adjacent to that is this other thing, totally. Because I don't think the phones are listening. Occasionally, I think the phones are listening, but mostly, I don't think the phones are listening. STEPH: I definitely think the phones are listening. CHRIS: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. STEPH: And I'm Steph Viccari. CHRIS: And together, we're here to share a bit of what we've learned along the way. So, Steph, what's new in your world? STEPH: Hey. So we have a bit of exciting news where we received an email from Gio Lodi, who is a listener of The Bike Shed. And Gio sent an email sharing with us some really exciting news that they have published a book on Test-Driven Development in Swift. And they acknowledge us in the acknowledgments of the book. Specifically, the acknowledgment says, "I also want to thank Chris Toomey and Steph Viccari, who keep sharing ideas on testing week after week on The Bike Shed Podcast." And that's just incredible. I'm so blown away, and I feel officially very famous. CHRIS: This is how you know you're famous when you're in the acknowledgments of a book. But yeah, Gio is a longtime listener and friend of the show. He's written in many times and given us great tips, and pointers, and questions, and things. And I've so appreciated Gio's voice in the community. And it's so wonderful, frankly, to hear that he has gotten value out of the show and us talking about testing. Because I always feel like I'm just regurgitating things that I've heard other people saying about testing and maybe one or two hard-learned truths that I've found. But it's really wonderful. And thank you so much, Gio. And best of luck for anyone out there who is doing Swift development and cares about testing or test-driven development, which I really think everybody should. Go check out that book. STEPH: I must admit my Swift skills are incredibly rusty, really non-existent at this point. It's been so long since I've been in that world. But I went ahead and purchased a copy just because I think it's really cool. And I suspect there are a lot of testing conversations that, regardless of the specific code examples, still translate. At least, that's the goal that you and I have when we're having these testing conversations. Even if they're not specific to a language, we can still talk about testing paradigms and strategies. So I purchased a copy. I'm really looking forward to reading it. And just to change things up a bit, we're going to start off with a listener question today. So this listener question comes from someone very close to the show. It comes from Thom Obarski. Hi, Thom. And Thom wrote in, "So I heard on a recent podcast I was editing some tension around marketing and open source. Specifically, a little perturbed at ReactJS that not only were people still dependent on a handful of big companies for their frameworks, but they also seem to be implying that the cachet of Facebook and having developer mindshare was not allowing smaller but potentially better solutions to shine through. In your opinion, how much does marketing play in the success of an open-source project framework rather than actually being the best tool for the job?" So a really thoughtful question. Thanks, Thom. Chris, I'm going to kick it over to you. What are your thoughts about this question? CHRIS: Yeah, this is a super interesting one. And thank you so much, Thom, although I'm not sure that you're listening at this point. But we'll send you a note that we are replying to your question. And when I saw this one come through, it was interesting. I really love the kernel of the discussion here, but it is, again, very difficult to tease apart the bits. I think that the way the question was framed is like, oh, there's this bad thing that it's this big company that has this big name, and they're getting by on that. But really, there are these other great frameworks that exist, and they should get more of the mindshare. And honestly, I'm not sure. I think marketing is a critically important aspect of the work that we do both in open source and, frankly, everywhere. And I'm going to clarify what I mean by that because I think it can take different shapes. But in terms of open-source, Facebook has poured a ton of energy and effort and, frankly, work into React as a framework. And they're also battle testing it on facebook.com, a giant website that gets tons of traffic, that sees various use cases, that has all permissions in there. They're really putting it through the wringer in that way. And so there is a ton of value just in terms of this large organization working on and using this framework in the same way that GitHub and using Rails is a thing that is deeply valuable to us as a community. So I think having a large organization associated with something can actually be deeply valuable in terms of what it produces as an outcome for us as consumers of that open-source framework. I think the other idea of sort of the meritocracy of the better framework should win out is, I don't know, it's like a Field of Dreams. Like, if you build it, they will come. It turns out I don't believe that that's actually true. And I think selling is a critical part of everything. And so if I think back to DHH's original video from so many years ago of like, I'm going to make a blog in 15 minutes; look at how much I'm not doing. That was a fantastic sales pitch for this new framework. And he was able to gain a ton of attention by virtue of making this really great sales pitch that sold on the merits of it. But that was marketing. He did the work of marketing there. And I actually think about it in terms of a pull request. So I'm in a small organization. We're in a private repo. There's still marketing. There's still sales to be done there. I have to communicate to someone else the changes that I'm making, why it's valuable to the system, why they should support this change, this code coming into the codebase. And so I think that sort of communication is as critical to the whole conversation. And so the same thing happens at the level of open source. I would love for the best framework to always win, but we also need large communities with Stack Overflow answers and community-supported plugins and things like that. And so it's a really difficult thing to treat marketing as just other, this different, separate thing when, in fact, I think they're all intertwined. And marketing is critically important, and having a giant organization behind something can actually have negative aspects. But I think overall; it really is useful in a lot of cases. Those are some initial thoughts. What do you think, Steph? STEPH: Yeah, those are some great initial thoughts. I really agree with what you said. And I also like how you brought in the comparison of pull requests and how sales is still part of our job as developers, maybe not in the more traditional sense but in the way that we are marketing and communicating with the team. And circling back to what you were saying earlier about a bit how this is phrased, I think I typically agree that there's nothing nefarious that's afoot in regards to just because a larger company is sponsoring an open-source project or they are the ones responsible for it, I don't think there's anything necessarily bad about that. And I agree with the other points that you made where it is helpful that these teams have essentially cultivated a framework or a project that is working for their team, that is helping their company, and then they have decided to open source it. And then, they have the time and energy that they can continue to invest in that project. And it is battle-tested because they are using it for their own projects as well. So it seems pretty natural that a lot of us then would gravitate towards these larger, more heavily supported projects and frameworks. Because then that's going to make our job easier and also give us more trust that we can turn to them when we do need help or have issues. Or, like you mentioned, when we need to look up documentation, we know that that's going to be there versus some of the other smaller projects. They may also be wonderful projects. But if they are someone that's doing this in their spare time just on the weekends and yet I'm looking for something that I need to be incredibly reliable, then it probably makes sense for me to go with something that is supported by a team that's getting essentially paid to work on that project, at least that they're backed by a larger company. Versus if I'm going with a smaller project where someone is doing some wonderful work, but realistically, they're also doing it more on the weekends or in their spare time. So boiling it down, it's similar to what you just said where marketing plays a very big part in open source, and the projects and frameworks that we adopt, and the things that we use. And I don't think that's necessarily a bad thing. CHRIS: Yeah. I think, if anything, it's possibly a double-edged sword. Part of the question was around does React get to benefit just by the cachet of Facebook? But Facebook, as a larger organization sometimes that's a positive thing. Sometimes there's ire that is directed at Facebook as an organization. And as a similar example, my experience with Google and Microsoft as large organizations, particularly backing open-source efforts, has almost sort of swapped over time, where originally, Microsoft there was almost nothing of Microsoft's open-source efforts that I was using. And I saw them as this very different shape of a company that I probably wouldn't be that interested in. And then they have deeply invested in things like GitHub, and VS Code, and TypeScript, and tons of projects that suddenly I'm like, oh, actually, a lot of what I use in the world is coming from Microsoft. That's really interesting. And at the same time, Google has kind of gone in the opposite direction for me. And I've seen some of their movements switch from like, oh Google the underdog to now they're such a large company. And so the idea that the cachet, as the question phrase, of a company is just this uniformly positive thing and that it's perhaps an unfair benefit I don't see that as actually true. But actually, as a more pointed example of this, I recently chose Svelte over React, and that was a conscious choice. And I went back and forth on it a few times, if we're being honest, because Svelte is a much smaller community. It does not have the large organizational backing that React or other frameworks do. And there was a certain marketing effort that was necessary to raise it into my visibility and then for me to be convinced that there is enough there, that there is a team that will maintain it, and that there are reasons to choose that and continue with it. And I've been very happy with it as a choice. But I was very conscious in that choice that I'm choosing something that doesn't have that large organizational backing. Because there's a nicety there of like, I trust that Facebook will probably keep investing in React because it is the fundamental technology of the front end of their platform. So yeah, it's not going to go anywhere. But I made the choice of going with Svelte. So it's an example of where the large organization didn't win out in my particular case. So I think marketing is a part of the work, a part of the conversation. It's part of communication. And so I am less negative on it, I think, than the question perhaps was framed, but as always, it depends. STEPH: Yeah, I'm trying to think of a scenario where I would be concerned about the fact that I'm using open source that's backed by a specific large company or corporation. And the main scenario I can think of is what happens when you conflict or if you have values that conflict with a company that is sponsoring that project? So if you are using an open-source project, but then the main community or the company that then works on that project does something that you really disagree with, then what do you do? How do you feel about that situation? Do you continue to use that open-source project? Do you try to use a different open-source project? And I had that conversation frankly with myself recently, thinking through what to do in that situation and how to view it. And I realize this may not be how everybody views it, and it's not appropriate for all situations. But I do typically look at open-source projects as more than who they are backed by, but the community that's actively working on that project and who it benefits. So even if there is one particular group that is doing something that I don't agree with, that doesn't necessarily mean that wholesale I no longer want to be a part of this community. It just means that I still want to be a part, but I still want to share my concerns that I think a part of our community is going in a direction that I don't agree with or I don't think is a good direction. That's, I guess, how I reason with myself; even if an open-source project is backed by someone that I don't agree with, either one, you can walk away. That seems very complicated, depending on your dependencies. Or two, you find ways to then push back on those values if you feel that the community is headed in a direction that you don't agree with. And that all depends on how comfortable you are and how much power you feel like you have in that situation to express your opinion. So it's a complicated space. CHRIS: Yeah, that is a super subtle edge case of all of this. And I think I aligned with what you said of trying to view an open-source project as more generally the community that's behind it as opposed to even if there's a strong, singular organization behind it. But that said, that's definitely a part of it. And again, it's a double-edged sword. It's not just, oh, giant company; this is great. That giant company now has to consider this. And I think in the case of Facebook and React, that is a wonderful hiring channel for them. Now all the people that use React anywhere are like, "Oh man, I could go work at Facebook on React? That's exciting." That's a thing that's a marketing tool from a hiring perspective for them. But it cuts both ways because suddenly, if the mindshare moves in a different direction, or if Facebook as an organization does something complicated, then React as a community can start to shift away. Maybe you don't move the current project off of it, but perhaps you don't start the next one with it. And so, there are trade-offs and considerations in all directions. And again, it depends. STEPH: Yeah. I think overall, the thing that doesn't depend is marketing matters. It is a real part of the ecosystem, and it will influence our decisions. And so, just circling back to Thom's question, I think it does play a vital role in the choices that we make. CHRIS: Way to stick the landing. STEPH: Thanks. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. STEPH: Changing topics just a bit, what's new in your world? CHRIS: Well, we had what I would call a mini perfect storm this week. We broke the build but in a pretty solid way. And it was a little bit difficult to get it back under control. And it has pushed me ever so slightly forward in my desire to have a fully optimized CI and deploy pipeline. Mostly, I mean that in terms of ratcheting. I'm not actually going to do anything beyond a very small set of configurations. But to describe the context, we use pull requests because that's the way that we communicate. We do code reviews, all that fun stuff. And so there was a particular branch that had a good amount of changes, and then something got merged. And this other pull request was approved. And that person then clicked the rebase and merge button, which I have configured the repository, so that merge commits are not allowed because I'm not interested in that malarkey in our history. But merge commits or rebase and merge. I like that that makes sense. In this particular case, we ran into the very small, subtle edge case of if you click the rebase and merge button, GitHub is now producing a new commit that did not exist before, a new version of the code. So they're taking your changes, and they are rebasing them onto the current main branch. And then they're attempting to merge that in. And A, that was allowed. B, the CI configuration did not require that to be in a passing state. And so basically, in doing that rebase and merge, it produced an artifact in the build that made it fail. And then attempting to unwind that was very complicated. So basically, the rebase produced...there were duplicate changes within a given file. So Git didn't see it as a conflict because the change was made in two different parts of the file, but those were conflicting changes. So Git was like, this seems like it's fine. I can merge this, no problem. But it turns out from a functional perspective; it did not work. The build failed. And so now our main branch was failing and then trying to unwind that it just was surprisingly difficult to unwind that. And it really highlighted the importance of keeping the main branch green, keeping the build always passing. And so, I configured a few things in response to this. There is a branch protection rule that you can enable. And let me actually pull up the specific configuration that I set up. So I now have enabled require status checks to pass before merging, which, if we're being honest, I thought that was the default. It turns out it was not the default. So we are now requiring status checks to pass before merging. I'm fully aware of the awkward, painful like, oh no, the build is failing but also, we have a bug. We need to deploy this. We must get something merged in. So hopefully, if and when that situation presents itself, I will turn this off or somehow otherwise work around it. But for now, I would prefer to have this as a yeah; this is definitely a configuration we want. So require status checks to pass before merging and then require branches to be up to date before merging. So the button that does the rebase and merge, I don't want that to actually do a rebase on GitHub. I want the branch to already be up to date. Basically, I only ever want fast-forward merges on our main branch. So all code should be ahead of main, and we are simply updating what main points at. We are not creating new code. That code has run on CI, that version of the code specifically. We are fully rebased and up to date on top of main, and that's how we're going. STEPH: All of that is super interesting. I have a question about the workflow. I want to make sure I'm understanding it correctly. So let's say that I have issued a PR, and then someone else has merged into the main branch. So now my PR is behind me, and I don't have that latest commit. With the new configuration, can I still use the rebase and merge, or will I need to rebase locally and then push up my branch before I can merge into main but at least using the GitHub UI? CHRIS: I believe that you would be forced to rebase locally, force push, and then CI would rebuild, and that's what it is. So I think that's what require branches to be up to date before merging means. So that's my hope. That is the intention here. I do realize that's complicated. So this requirement, which I like, because again, I really want the idea that no, no, no, we, the developers, are in charge of that final state. That final state should always run as part of a build of CI on our pull request/branch before going into main. So no code should be new. There should be no new commits that have never been tested before going into main. That's my strong belief. I want that world. I realize that's...I don't know. Maybe I'm getting pedantic, or I'm a micromanager of the Git history or whatever. I'm fine with any of those insults that people want to lob at me. That's fine. But that's what I feel. That said, this is a nuisance. I'm fully aware of that. And so imagine the situation where we got a couple of different things that have been in flight. People have been working on different...say there are three pull requests that are all coming to completion at the same time. Then you start to go to merge something, and you realize, oh no, somebody else just merged. So you rebase, and then you wait for CI to build. And just as the CI is completing, somebody else merges something, and you're like, ah, come on. And so then you have to one more time rebase, push, wait for the build to be green. So I get that that is not an ideal situation. Right now, our team is three developers. So there are a few enough of us that I feel like this is okay. We can manage this via human intervention and just deal with the occasional weight. But in the back of my mind, of course, I want to find a better solution to this. So what I've been exploring…there's a handful of different utilities that I'm looking at, but they are basically merged queues as an idea. So there are three that I'm looking at, or maybe just two, but there's mergify.io, which is a hosted solution that does this sort of thing. And then Shopify has a merge queue implementation that they're running. So the idea with this is when you as a developer are ready to merge something, you add a label to it. And when you add that label, there's some GitHub Action or otherwise some workflow in the background that sees that this has happened and now adds it to a merge queue. So it knows all of the different things that might want to be merged. And this is especially important as the team grows so that you don't get that contention. You can just say, "Yes, I would like my changes to go out into production." And so, when you label it, it then goes into this merge queue. And the background system is now going to take care of any necessary rebases. It's going to sequence them, so it's not just constantly churning all of the branches. It's waiting because it knows the order that they're ideally going to go out in. If CI fails for any of them because rebasing suddenly, you're in an inconsistent state; if your build fails, then it will kick you out of the merge queue. It will let you know. So it will send you a notification in some manner and say, "Hey, hey, hey, you got to come look at this again. You've been kicked out of the merge queue. You're not going to production." But ideally, it adds that layer of automation to, frankly, this nuisance of having to keep things up to date and always wanting code to be run on CI and on a pull request before it gets into main. Then the ideal version is when it does actually merge your code, it pings you in Slack or something like that to say, "Hey, your changes just went out to production." Because the other thing I'm hoping for is a continuous deployment. STEPH: The idea of a merge queue sounds really interesting. I've never worked with a process like that. And one of the benefits I can see is if I know I'm ready for something to go like if I'm waiting on a green build and I'm like, hey, as soon as this is green, I'd really like for it to get merged. Then currently, I'm checking in on it, so I will restart the build. And then, every so often, I'm going back to say, "Okay, are you green? Are you green? Can I emerge?" But if I have a merge queue, I can say, "Hey, merge queue, when this is green, please go and merge it for me." If I'm understanding the behavior correctly, that sounds really nifty. CHRIS: I think that's a distinct but useful aspect of this is the idea that when you as a developer decide this PR is ready to go, you don't need to wait for either the current build or any subsequent builds. If there are rebases that need to happen, you basically say, "I think this code's good to go. We've gotten the necessary approvals. We've got the buy-in and the teams into this code." So cool, I now market as good. And you can walk away from it, and you will be notified either if it fails to get merged or if it successfully gets merged and deployed. So yes, that dream of like, you don't have to sit there watching the pot boil anymore. STEPH: Yeah, that sounds nice. I do have to ask you a question. And this is related to one of the blog posts that you and I love deeply and reference fairly frequently. And it's the one that's written by German Velasco about Say No to More Process, and Say Yes to Trust. And I'm wondering, based on the pain that you felt from this new commit, going into main and breaking the main build, how do you feel about that balance of we spent time investigating this issue, and it may or may not happen again, and we're also looking into these new processes to avoid this from happening? I'm curious what your thought process is there because it seems like it's a fair amount of work to invest in the new process, but maybe that's justified based on the pain that you felt from having to fix the build previously. CHRIS: Oh, I love the question. I love the subtle pushback here. I love this frame of mind. I really love that blog post. German writes incredible blog posts. And this is one that I just keep coming back to. In this particular case, when this situation occurred, we had a very brief...well, it wasn't even that brief because actually unwinding the situation was surprisingly painful, and we had some changes that we really wanted to get out, but now the build was broken. And so that churn and slowdown of our build pipeline and of our ability to actually get changes out to production was enough pain that we're like, okay, cool. And then the other thing is we actually all were in agreement that this is the way we want things to work anyway, that idea that things should be rebased and tested on CI as part of a pull request. And then we're essentially only doing fast-forward merges on the main branch, or we're fast forward merging main into this new change. That's the workflow that we wanted. So this configuration was really just adding a little bit of software control to the thing that we wanted. So it was an existing process in our minds. This is the thing we were trying to do. It's just kind of hard to keep up with, frankly. But it turns out GitHub can manage it for us and enforce the process that we wanted. So it wasn't a new process per se. It was new automation to help us hold ourselves to the process that we had chosen. And again, it's minimally painful for the team given the size that we're at now, but I am looking out to the future. And to be clear, this is one of the many things that fall on the list of; man, I would love to have some time to do this, but this is obviously not a priority right now. So I'm not allowed to do this. This is explicitly on the not allowed to touch list, but someday. I'm very excited about this because this does fundamentally introduce some additional work in the pipeline, and I don't want that. Like you said, is this process worth it for the very small set of times that it's going to have a bad outcome? But in my mind, the better version, that down the road version where we have a merge queue, is actually a better version overall, even with just a tiny team of three developers that are maybe never even conflicting in our merges, except for this one standout time that happens once every three months or whatever. This is still nicer. I want to just be able to label a pull request and walk away and have it do the thing that we have decided as a team that we want. So that's the dream. STEPH: Oh, I love that phrasing, to label a pull request and be able to walk away. Going back to our marketing, that really sells that merge queue to me. [laughs] Mid-roll Ad And now we're going to take a quick break to tell you about today's sponsor, Orbit. Orbit is mission control for community builders. Orbit offers data analytics, reporting, and insights across all the places your community exists in a single location. Orbit's origins are in the open-source and developer relations communities. And that continues today with an active open-source culture in an accessible and documented API. With thousands of communities currently relying on Orbit, they are rapidly growing their engineering team. The company is entirely remote-first with team members around the world. You can work from home, from an Orbit outpost in San Francisco or Paris, or find yourself a coworking spot in your city. The tech stack of the main orbit app is Ruby on Rails with JavaScript on the front end. If you're looking for your next role with an empathetic product-driven team that prides itself on work-life balance, professional development, and giving back to the larger community, then consider checking out the Orbit careers page for more information. Bonus points if working in a Ruby codebase with a Ruby-oriented team gives you a lot of joy. Find out more at orbit.love/weloveruby. CHRIS: To be clear, and this is to borrow on some of Charity Majors' comments around continuous deployment and whatnot, is a developer should stay very close to the code if they are merging it. Because if we're doing continuous deployment, that's going to go out to production. If anything's going to happen, I want that individual to be aware. So ideally, there's another set of optimizations that I need to make on top of this. So we've got the merge queue, and that'll be great. Really excited about that. But if we're going to lean into this, I want to optimize our CI pipeline and our deployment pipeline as much as possible such that even in the worst case where there's three different builds that are fighting for contention and trying to get out, the longest any developer might go between labeling a pull request and saying, "This is good to go," and it getting out to production, again, even if they're contending with other PRs, is say 10, 15 minutes, something like that. I want Slack to notify them and them to then re-engage and keep an eye on things, see if any errors pop up, anything like that that they might need to respond to. Because they're the one that's got the context on the code at that point, and that context is decaying. The minute you've just merged a pull request and you're walking away from that code, the next day, you're like, what did I work on? I don't remember that at all. That code doesn't exist anymore in my brain. And so,,, staying close to that context is incredibly important. So there's a handful of optimizations that I've looked at in terms of the CircleCI build. I've talked about my not rebuilding when it actually gets fast-forward merged because we've already done that build on the pull request. I'm being somewhat pointed in saying this has to build on a pull request. So if it did just build on a pull request, let's not rebuild it on main because it's identically the same commit. CircleCI, I'm looking at you. Give me a config button for that, please. I would really love that config button. But there are a couple of other things that I've looked at. There's RSpec::Retry from NoRedInk, which will allow for some retry semantics. Because it will be really frustrating if your build breaks and you fall out of the merge queue. So let's try a little bit of retry logic on there, particularly around feature specs, because that's where this might happen. There's Knapsack Pro which is a really interesting thing that I've looked at, which does parallelization of your RSpec test suite. But it does it in a different way than say Circle does. It actually runs a build queue, and each test gets sent over, and they have build agents on their side. And it's an interesting approach. I'm intrigued. I think it could use some nice speed-ups. There's esbuild on the Heroku side so that our assets build so much more quickly. There are lots of things. I want to make it very fast. But again, this is on the not allowed to do it list. [laughs] STEPH: I love how most of the world has a to-do list, and you have this not-allowed to-do list that you're adding items to. And I'm really curious what all is on the not allowed to touch lists or not allowed to-do list. [laughs] CHRIS: I think this might be inherent to being a developer is like when I see a problem, I want to fix it. I want to optimize it. I want to tweak it. I want to make it so that that never happens again. But plenty of things...coming back to German's post of Say No to More Process, some things shouldn't be fixed, or the cost of fixing is so much higher than the cost of just letting it happen again and dealing with it manually at that moment. And so I think my inherent nature as a developer there's a voice in my head that is like, fix everything that's broken. And I'm like, sorry. Sorry, brain, I do not have that kind of time. And so I have to be really choosy about where the time goes. And this extends to the team as well. We need to be intentional around what we're building. Actually, there's a feeling that I've been feeling more acutely than ever, but it's the idea of this trade-off or optimization between speed and getting features out into the world and laying the right fundamentals. We're still very early on in this project, and I want to make sure we're thinking about things intentionally. I've been on so many projects where it's many years after it started and when I ask someone, "Hey, why do your background jobs work that way? That's a little weird." And they're like, "Yeah, that was just a thing that happened, and then it never changed. And then, we copied it and duplicated, and that pattern just got reinforced deeply within the app. And at this point, it would cost too much to change." I've seen that thing play out so many times at so many different organizations that I'm overwhelmed with that knowledge in the back of my head. And I'm like, okay, I got to get it just right. But I can't take the time that is necessary to get it, quote, unquote, "Just right." I do not have that kind of time. I got to ship some features. And this tension is sort of the name of the game. It's the thing I've been doing for my entire career. But now, given the role that I have with a very early-stage startup, I've never felt it more acutely. I've never had to be equally as concerned with both sides of that. Both matter all the more now than they ever have before, and so I'm kind of existing in that space. STEPH: I really like that phrasing of that space because that deeply resonates with me as well. And that not allowed to-do list I have a similar list. For me, it's just called a wishlist. And so it's a wishlist that I will revisit every so often, but honestly, most things on there don't get done. And then I'll clear it out every so often when I feel it's not likely that I'm going to get to it. And then I'll just start fresh. So I also have a similar this is what I would like to do if I had the time. And I agree that there's this inclination to automate as well. As soon as we have to do something that felt painful once, then we feel like, oh, we should automate it. And that's a conversation that I often have with myself is at what point is the cost of automation worthwhile versus should we just do this manually until we get to that point? So I love those nuanced conversations around when is the right time to invest further in this, and what is the impact? And what is the cost of it? And what are the trade-offs? And making that decision isn't always clear. And so I think that's why I really enjoy these conversations because it's not a clear rubric as to like, this is when you invest, and this is when you don't. But I do feel like being a consultant has helped me hone those skills because I am jumping around to different teams, and I'm recognizing they didn't do this thing. Maybe they didn't address this or invest in it, and it's working for them. There are some oddities. Like you said, maybe I'll ask, "Why is this? It seems a little funky. What's the history?" And they'll be like, "Yeah, it was built in a hurry, but it works. And so there hasn't been any churn. We don't have any issues with it, so we have just left it." And that has helped reinforce the idea that just because something could be improved doesn't mean it's worthwhile to improve it. Circling back to your original quest where you are looking to improve the process for merging and ensuring that CI stays green, I do like that you highlighted the fact that we do need to just be able to override settings. So that's something that has happened recently this week for me and my client work where we have had PRs that didn't have a green build because we have some flaky tests that we are actively working on. But we recognize that they're flaky, and we don't want that to block us. I'm still shipping work. So I really appreciate the consideration where we want to optimize so that everyone has an easy merging experience. We know things are green. It's trustworthy. But then we also have the ability to still say, "No, I am confident that I know what I'm doing here, and I want to merge it anyways, but thank you for the warning." CHRIS: And the constant pendulum swing of over-correcting in various directions I've experienced that. And as you said, in the back of my mind, I'm like, oh, I know that this setting I'm going to need a way to turn this setting off. So I want to make sure that, most importantly, I'm not the only one on the team who can turn that off because the day that I am away on vacation and the build is broken, and we have a critical bug that we need to fix, somebody else needs to be able to do that. So that's sort of the story in my head. At the same time, though, I've worked on so many teams where they're like, oh yeah, the build has been broken for seven weeks. We have a ticket in the backlog to fix that. And it's like, no, the build has to not be broken for that long. And so I agree with what you were saying of consulting has so usefully helped me hone where I fall on these various spectrums. But I do worry that I'm just constantly over-correcting in one direction or the other. I'm never actually at an optimum. I am just constantly whatever the most recent thing was, which is really impacting my thinking on this. And I try to not do that, but it's hard. STEPH: Oh yeah. I'm totally biased towards my most recent experiences, and whatever has caused me the most pain or success recently. I'm definitely skewed in that direction. CHRIS: Yeah, I definitely have the recency bias, and I try to have a holistic view of all of the things I've seen. There's actually a particular one that I don't want to pat myself on the back for because it's not a good thing. But currently, our test suite, when it runs, there's just a bunch of noise. There's a bunch of other stuff that gets printed out, like a bunch of it. And I'm reminded of a tweet from Kevin Newton, a friend of the show, and I just pulled it up here. "Oh, the lengths I will go to avoid warnings in my terminal, especially in the middle of my green dots. Don't touch my dots." It's a beautiful beauty. He actually has a handful about the green dots. And I feel this feel. When I run my test suite, I just want a sea of green dots. That's all I want to see. But right now, our test suite is just noise. It's so much noise. And I am very proud of...I feel like this is a growth moment for me where I've been like, you know what? That is not the thing to fix today. We can deal with some noise amongst the green dots for now. Someday, I'm just going to lose it, and I'm going to fix it, and it's going to come back to green dots. [chuckles] STEPH: That sounds like such a wonderful children's book or Dr. Seuss. Oh, the importance of green dots or, oh, the places green dots will take you. CHRIS: Don't touch my dots. [laughter] STEPH: Okay. Maybe a slightly aggressive Dr. Seuss, but I still really like it. CHRIS: A little more, yeah. STEPH: On that note of our love of green dots, shall we wrap up? CHRIS: Let's wrap up. The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeee!!! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

The Talk Show With John Gruber
324: ‘A Pretty Generic Thing You Stick in a Hole', With Jason Snell

The Talk Show With John Gruber

Play Episode Listen Later Oct 1, 2021 138:49


Jason Snell returns to the show to talk about the new iPhones 13, new iPad Mini, Safari 15's craptacular new tab UI, and the insightful questions posed to Kevin Durant on the Brooklyn Nets' media day from Basketball Digest's best NBA reporter.

User Defenders: UX Design and Personal Growth
080: Everything I Know (So Far) on Landing a Job in UX with Jason Ogle

User Defenders: UX Design and Personal Growth

Play Episode Listen Later Sep 30, 2021 84:35


Video available on the show notes page at userdefenders.com/080 This is the last episode of 2021. After nearly two years of outlining the content for this episode and nearly two months (at time of writing) of recording and editing, here's everything I know (so far) on landing a job in UX. I hope this content is not only useful to you and anyone you know looking to land their first (or next) job in UX, but I sincerely hope this episode is greatly inspirational and even life-changing for you. I forgot to say it at the end of the episode, so Merry Christmas, Happy Holidays and Joyous New Year dear Defenders! Take care of yourself and each other, and I'll see you on the other side of this year with more amazing UX/Design content!

Adafruit Industries
EYE ON NPI - Pokit All-in-One Meter

Adafruit Industries

Play Episode Listen Later Sep 30, 2021 10:53


This week's EYE ON NPI is a pal that fits right in your pocket, literally! It's the Pokit All-in-One Meter, (https://www.digikey.com/en/product-highlight/p/pokit-innovations/pokit-meter) a miniature wireless multimeter, scope and datalogger. We've seen designs like this become more popular lately as many folks have phones on hand, which can act as a display (the display/UI is one of the more difficult and expensive elements of portable test equipment). When this one popped up on https://www.digikey.com/new we thought it would be worth checking out as it does a good job of matching enough desired specifications to be useful to a Maker or engineer. We like the mechanical design - it has got a cute retractable cable kit that you can pull out for use. The design of the probes is such that you can plug in optional and included micro-grabbers if desired, but the tips can be used as is. (We'll note that the micro grabbers don't fit into the body or anything so they need to be carried separately). While it's a tad large for a keychain, it isn't an outlandish size - it definitely could go into a purse or pocket without snagging. There's also a zipper pouch for those who like to keep their tools in a home. To work with any phone, it uses BLE for data transport. Unlikely many products we see, this doesn't use a rechargeable battery. Instead, the battery is an every day CR2032 (https://www.digikey.com/en/products/detail/jauch-quartz/CR-2032-JAUCH-IB/13540138) which you can get replacements for at any hardware or corner shop. There's pros and cons to going with a primary cell, but we think this was probably a good choice as long as the battery level is well communicated to users. The processor inside is a Silabs EFR32BR13 wireless microcontroller (https://www.digikey.com/en/products/detail/silicon-labs/EFR32BG13P732F512GM32-D/10135841) and a little bit of circuitry. Connecting is easy, after removing the battery tab, download and open the app, it will pair immediately - this went very smoothly. Then from the main screen you can select various functions. Most functions acted just the way you expect: continuity test, DC voltage measurement, temperature and resistance. There is a current measurement capability, which also means there's a fuse. You do get a spare fuse, and as most multimeters go, its something you'll probably mess up once by accidentally measuring in parallel. Thankfully the app warms you before going into current measurement mode. There's only one thing that folks should be aware of: there is an 'oscilloscope' mode but it really is more of a 'data capture' mode - the BLE link isn't fast enough to stream data, even triggered-signal data. Arguably, it's hard to do this reliably over BLE, but I think it is possible to have some data rate streamed, even if just to make it easier to verify that the right spot is probed - and it would be a really awesome feature. I think BLE 5 with large, non-acknowledged packets could do it. (https://www.novelbits.io/bluetooth-5-speed-maximum-throughput/) But perhaps it wouldn't work reliably on every model of phone. Hopefully next revision could do it since it would be such a killer feature! For something so small, it really does pack a good amount of capability, and while it would not replace your desktop scope or multimeter, it is a great addition to a dev kit. I could have really used something like this when traveling or at events! We picked up the transparent one because we are suckers for clear plastic, but there are a few different colors of the Pokit All-in-One Meter, all of which are available in stock at Digi-Key right now for immediate shipment (https://www.digikey.com/en/product-highlight/p/pokit-innovations/pokit-meter). Order today and you'll be toting this lil keychain toolkit with you tomorrow afternoon! See on DigiKey.com at https://www.digikey.com/short/3pvz50db See the video at https://www.youtube.com/watch?v=xSONOYIyCjw

LawNext
Ep 140: Nicole Bradick and Andy Wishart on Why UI and UX Matter in Legal Tech

LawNext

Play Episode Listen Later Sep 28, 2021 43:57


You would be hard-pressed to find two people in legal technology more experienced in user interface and user experience design than Nicole Bradick and Andy Wishart. Bradick is founder and CEO of the legal tech design and development firm Theory and Principle. Wishart is chief product officer at contract lifecycle management company Agiloft and formerly was co-founder and chief technology officer of Contract Express, the contract automation software that Thomson Reuters acquired in 2015.  While both individually have years of experience designing legal tech products, Bradick and Wishart also recently worked together on a project to redesign Agiloft's UI and UX. That collaboration offers a case study in product design and of why good design matters in a legal technology product.  In today's episode, they share the story of why Agiloft initiated the redesign, the process by which Bradick and her team went about making recommendations, and how Agiloft is incorporating those recommendations into its product roadmap.  This is a return appearance on LawNext for Bradick, who was the guest for our very first episode.  Thank You To Our Sponsors This episode of LawNext is generously made possible by our sponsors. We appreciate their support and hope you will check them out.  Paradigm, home to the practice management platforms PracticePanther, Bill4Time, and MerusCase, and e-payments platform Headnote. Woodpecker, legal document automation for solo and small firms.   A reminder that we are on Patreon. Subscribe to our page to be able to access show transcripts, or to submit a question for our guests.

The Bike Shed
310: Schedule Shut Down, Complete

The Bike Shed

Play Episode Listen Later Sep 28, 2021 39:16


Chris talks feature flags featuring Flipper (Say that 3x fast!), and Steph talks reducing stress by a) having a work shutdown ritual and b) the fact that thoughtbot is experimenting with half-day Fridays. (Fri-yay?) Flipper (https://featureflags.io/2016/04/08/flipper-a-feature-flipper-feature-toggle-library/) Drastically Reduce Stress with a Work Shutdown Ritual (https://www.calnewport.com/blog/2009/06/08/drastically-reduce-stress-with-a-work-shutdown-ritual/) Iceland's Journey to a Short Working Week (https://autonomy.work/wp-content/uploads/2021/06/ICELAND_4DW.pdf) Burnout: The Secret to Unlocking the Stress Cycle (https://www.burnoutbook.net/) Transcript: STEPH: Hey, do you know that we could have an in-person recording at the end of October? CHRIS: I do. Yes, I'm planning. That is in the back of my head. I guess I hadn't said that to you yet. But I'm glad that we have separately had the same conversation, and we've got to figure that out, although I don't know how to do noise cancellation and whatnot in the room. [laughs] How do we...we'll have to figure it out. Like, put a blanket in between us but so that we can see across it, but it absorbs sound in the middle. It's weird. I don't know how to do stuff. Just thinking out loud here. STEPH: We'll just be in the same place but still different rooms. So it'll feel no different. [laughter] Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Steph Viccari. CHRIS: And I'm Chris Toomey. STEPH: And together, we're here to share a bit of what we've learned along the way. Hey, Chris, what's new in your world? CHRIS: Feature flags. Feature flags are an old favorite, but they have become new again in the application that I'm working on. We had a new feature that we were building out. But we assumed correctly that it would be nice to be able to break it apart into smaller pieces and sort of deliver it incrementally but not necessarily want to expose that to our end users. And so, we opted with that ticket to bring along the feature flag system. So we've introduced Flipper, in particular, which is a wonderful gem; it does the job. We're using the ActiveRecord adapter. All that kind of makes sense, happy about that. And so now we have feature flags. But it was one of those mindset shifts where the minute we got feature flags, I was like, yes, okay, everything behind a feature flag. And we've been leaning into that more and more, and it really is so nice and so freeing, and so absolutely loving it so far. STEPH: I'm intrigued. You said, "Everything behind a feature flag." Like, is it really everything or? Yeah, tell me more. CHRIS: Not everything. But at this point, we're still very early on in this application, so there are fundamental facets of the platform, different areas of what users can do. And so the actual stuff that works and is wired up is pretty minimal, but we want to have a little more surface area built out in the app for demo purposes, for conversations that are happening, et cetera. And so, we built out a bunch of new pages to represent functionality. And so there are sidebar links, and then the actual page itself, and routing, and all of the things that are associated with that, and so all of those have come in. I think there are five new top-level nav sections of the platform that are all introduced behind a feature flag right now. And then there's some new functionality within existing pages that we've put behind feature flags. So it's not truly every line of code, but it's basically the entry point to all new major features we're putting behind a feature flag. STEPH: Okay, cool. I'm curious. How are you finding that in terms of does it feel manageable? Do you feel like anybody can go into the UI and then turn on feature flags for demos and feel confident that they know what they're turning on and off? CHRIS: We haven't gotten to that self-serve place. At this point, the dev team is managing the feature flags. So on production, we have an internal group configured within Flipper. So we can say, "Ship this feature for all internal users so that we can do testing." So there is a handful of us that all have accounts on production. And then on staging, we have a couple of representative users that we've been just turning everything on for so that we know via staging we can act as that user and then see the application with all of the bells and whistles. Down the road, I think we're going to get more intentional with it, particularly the idea of a demo account. That's something that we want to lean into. And for that user, we'll probably be turning on certain subsets of the feature flags. I think we'll get a little more granular in how we think about that. For now, we're not as detailed in it, but I think that is something that we want to expand as we move forward. STEPH: Nice. Yeah, I was curious because feature flags came up in our recent retro with the client team because we've gotten to a point where our feature flags feel complex enough that it's becoming challenging and not just from the complexity of the feature flags but also from the UI perspective. Where it feels challenging for users to understand how to turn a feature on, exactly what that impacts, and making sure that then they're not changing developer-focused feature flags, so those are the feature flags that we're using to ship a change but then not turn it on until we're ready. It is user-facing, but it's something that should be managed more by developers as to when we turn it on or off. So I was curious to hear that's going for you because that's something that we are looking into. And funnily enough, you asked me recently, "Why aren't y'all using Flipper?" And I didn't have a great answer for you. And that question came up again where we looked at each other, and we're like, okay, we know there was a really good reason we didn't use Flipper when we first had this discussion. But none of us can remember, or at least the people in that conversation couldn't remember. So now we're asking ourselves the question of we've made it this far. Is it time to bring in Flipper or another service? Because we're getting to the point that we're starting to build too much of our own feature flag system. CHRIS: So did you uncover an answer, or are you all just agreeing that the question makes sense? STEPH: Agreeing that the question makes sense. [laughs] CHRIS: That's the first step on a long journey to switching from internal tooling to somebody else managing that for you. STEPH: Yeah, because none of us could remember exactly. But it was funny because I was like, am I just forgetting something here when you asked me that? So I felt validated that others were like, "Oh yeah, I remember that conversation. But I too can't recall why we didn't want to use Flipper in the moment or a similar service." CHRIS: I'll definitely be interested to hear if you do end up trying to migrate off to another system or find a different approach there or if you do stick with the current configuration that you have. Because those projects they're the sort of sneaky ones that it's like, oh, we've been actually relying on this for a while. It's a core part of our infrastructure, and how we do the work, and the process, and how we deploy. That's a lot. And so, to switch that out in-flight becomes really difficult. It's one of those things where the longer it goes on, the harder it is to make that change. But at some point, you sometimes make the decision to make it. So I will be very interested to hear if you do make that decision and then, if so, what that changeover process looks like. STEPH: Yeah, totally. I'll be sure to keep you up to date as we make any progress or decisions around feature flags. CHRIS: But yeah, your questions around management and communication of it that is a thing that's in the back of my mind. We're still early enough in our usage of it, and just broadly, how we're working, we haven't really felt that pain yet, but I expect it's coming very soon. And in particular, we have functionality now that is merged and is part of the codebase but isn't fully deployed or fully released rather. That's probably the correct word. We have not fully released this functionality, and we don't have a system right now for tracking that. So I'm thinking right now we're using Trello for product management. I'm thinking we want another column that is not entirely done but is tracking the feature flags that are currently in flight and just use that as a place to gather communication. Do we feel like this is ready? Let's dial this up to 50%, or let's enable it for this beta group or whatever it is to sort of be able to communicate that. And then ideally, also as a way to track these are the ones that are active right now. You know what? We feel like this one's ready. So do the code change so that we no longer use the feature flag, and then we can actually turn it off. Currently, I feel like I can defer that for a little while, but it is something that's in the back of my mind. And then, of course, I nerd sniped myself, and I was like, all right, how do I grep the codebase for all the feature flags that we're using? Okay. There are a couple of different patterns as to how we're using…You know what? I think I actually need an AST-based parser here, and I need to use the Visitor...You know what? Never mind. Stop it. Stop it. [laughs] It was one of those where I was like...I was doing this not during actual work hours. It was just a question in my mind, and then I started to poke at it. I was like, oh, this could be fun. And then I was like, no, no, no, stop it. You need to go read a book or something. Calm down. STEPH: As part of the optimization around our feature flag system that we've created, we've added a few enhancements, which I think is also one of the reasons we're starting to question how far we want to go in this direction. One of them is we want a very easy way to track what's turned on and what's turned off for an environment. So we have a task that will easily check, or it prints out a really nice list of these are all your flags, and this is the state that they're in. And by using the system that we have, we have one file that represents...well, you mentioned migration because we're migrating from the old system to this new one. So it's still a little bit in that space of where we haven't fully moved over. So now, moving over to a third thing like Flipper will be even more interesting because of that. But the current system, we have a file that lists all the feature flags and a really nice description that goes with it, which I know is supported by Flipper and other services as well. But having that one file does make it nice where you can just scan through there and see what's in use. I really think it's the UI and the challenges that the users are facing and understanding what a feature flag does, and which ones they should turn off, and which ones they shouldn't touch that that's the point where we started questioning okay, we need to improve the UI. But to improve the UI, do we really want to fully embrace our current system and make those improvements, or is now that time that we should consider moving to something else? Because Flipper already has a really nice UI. I think there is a free tier and a paid tier with Flipper, and the paid tier has a UI that ships. CHRIS: There's definitely a distinct thing, Flipper Cloud, which is their hosted enterprise-y solution, and that's the paid offering. But Flipper just the core gem there's also Flipper web, I want to say is what it is, or Flipper UI. And I think it's an engine that you mount within your Rails app and that displays a UI so that you can manage things, add groups and teams. So we're definitely using that. I've got my eye on Flipper Cloud, but I have some fundamental questions around I like to keep my data in the system, and so this is an external other thing. And what's the synchronization? I haven't really even looked into it like that. But I love that Flipper exists within our application. One of the niceties that Flipper Cloud does have is an audit history, which I think is interesting just to understand over time who changed what for what reasons? It's got the ability to roll back and maintain versions and whatnot. So there are some things in it that definitely look very interesting to me. But for now, the open-source, free version of Flipper plus Flipper UI has been plenty for us. STEPH: That's cool. I didn't know about the audit feature. CHRIS: Yeah. It definitely feels like one of those niceties to have for a more enterprise offering. So I could see myself talking me into it at some point but not quite yet. On that note though, so feature flags we introduced a week and a half, something like that, ago, and we've been leaning into them more and more. But as part of that, or in the back of my mind, I've wanted to go to continuous deployment. So we had our first official retro this week. The project is growing up. We're becoming a lot of things. We used retro to talk about continuous deployment, all of these things that feel very real. Just to highlight it, retro is super important. And the fact that we haven't had one until now is mainly because up till now, it's been primarily myself and another developer. So we've been having essentially one-on-ones but not a more formal retro that involves others. At this point, we now have myself and two other developers that are working on the project, as well as someone who's stepped into the role of product manager. So we now have communication collaboration. How are we doing the work? How are we shipping features and communicating about bugs and all of that? So now felt like the right time to start having that more formal process. So now, every two weeks, we're going to have a retro, and hopefully, through that, retro will do the magic that retro can do at its best which is help us get better at all the things that we're doing. But yeah, one of the core things in this particular one was talking about moving to continuous deployment. And so I am super excited to get there because I think, much like test-driven development, it's one of those situations where continuous deployment puts a lot of pressure on the development process. Everything that is being merged needs to be ready to go out into production. And honestly, I love that as a constraint because that will change how you build things. It means that you need to be a little more cautious. You can put something behind a feature flag to protect it. You decouple the idea of merging and deploying from releasing. And I like that distinction. I think that's a really meaningful distinction because it makes you think about what's the entry point to this feature within the codebase? And it's, I think, actually really nice to have fewer and more intentional entry points into various bits of functionality such that if you actually want to shut it off in production, you can do that. That's more straightforward. I think it encourages an intentional coupling, maybe not a perfect decoupling but an intentional coupling within the system. So I'm very excited to explore it. I think feature flags are going to be critical for it, and I think also observability, and monitoring, and logging, and all those things. We need to get really good at them so that if anything does go wrong when we just merge and deploy, we want to know if anything goes wrong as quickly as possible. But overall, I'm super excited about all of the other niceties that fall out of it. STEPH: [singing] I wanna know what's turned on, and I want you to show me. Is that the song you're singing to Flipper? [laughs] CHRIS: [laughs] STEPH: Sorry, friends. I just had to go there. CHRIS: That was just in your head. You had that, and you needed to get it out. I appreciate it. [laughter] Again, I got Flipper UI, so that's not the question I'm asking. I think that's the question you have in your heart. STEPH: [laughs] Mid-roll Ad And now we're going to take a quick break to tell you about today's sponsor, Orbit. Orbit is mission control for community builders. Orbit offers data analytics, reporting, and insights across all the places your community exists in a single location. Orbit's origins are in the open-source and developer relations communities. And that continues today with an active open-source culture in an accessible and documented API. With thousands of communities currently relying on Orbit, they are rapidly growing their engineering team. The company is entirely remote-first with team members around the world. You can work from home, from an Orbit outpost in San Francisco or Paris, or find yourself a coworking spot in your city. The tech stack of the main orbit app is Ruby on Rails with JavaScript on the front end. If you're looking for your next role with an empathetic product-driven team that prides itself on work-life balance, professional development, and giving back to the larger community, then consider checking out the Orbit careers page for more information. Bonus points if working in a Ruby codebase with a Ruby-oriented team gives you a lot of joy. Find out more at orbit.love/weloveruby. STEPH: That's funny about the CI deployment adding pressure to the development process because you're absolutely right. But I see it as such a positive and improvement that I don't really think about the pressure that it's adding. And I just think, yes, this is awesome, and I want this to happen and if there are steps that we have to take in that direction. It dawned on me that what you said is very true, but I've just never really thought about it from that perspective about the pressure. Because I think the thing that does add more pressure for me is figuring out what can I deploy, or do I need to cherry-pick commits? What does that look like? And going through that whole cycle and stress is more stressful to me than figuring out how do we get to continuous deployments and making sure that everything is in a safe space to be deployed? CHRIS: That's the dream. I'm going to see if I can live it. I'll let you know how it goes. But yeah, that's a bit of what's up in my world. What else is going on in your world other than some lovely singing? STEPH: Oh, there's always lots of singing. It's been an interesting week. It's been a mix of some hiring work. Specifically, we are helping our client team build their development team. So we have been helping them implement a hiring process. And then also going through technical interviews and then going through different stages of that interview process. And that's been really nice. I haven't done that specifically for a client team where I helped them build a hiring pipeline from scratch and then also conduct those interviews. And one thing that stood out to me is that rotations are really important to me and specifically that we don't ask for volunteers. So as we were having candidates come through and then they were ready to schedule an interview, then we are reaching out to the rest of the development team and saying, "Hey, we have this person. They're going to be scheduled at this time. Who's available? Who's interested? I'm looking for volunteers." And that puts pressure on people, especially someone that may be more empathetic to feel the need to volunteer. So then you can end up having more people volunteer than others. So we've established a rotation to make sure that doesn't happen, and people are assigned as it becomes their next turn to conduct an interview. So that's been a lot of fun to refine that process and essentially make it easier. So the rest of the development team doesn't have to think about the hiring. But it still has an easy way of just saying, "Hey," and tapping someone to say, "Hey, it's your turn to run an interview." The other thing I've been working out is figuring out how to measure an experiment. So we at thoughtbot are running an experiment where we're looking to address some of the concerns around sustainability and people feeling burned out. And so we have introduced half-day Fridays, more specifically 3.5 Fridays, as our half-day Fridays just to help everybody be certain about what a half-day looks like. And then also, you can choose your half-day. Everybody works different schedules. We're across different time zones, so just to make sure it's really clear for folks and that they understand that they don't need to work more than those hours, and then they should have that additional downtime. And that's been amazing. This is the second Friday of the experiment, and we're doing this for nine Fridays straight. And one of the questions that came up was, well, how do we know we did a good thing? How do we know that we helped people in terms of sustainability or addressing some of the feelings that they're having around burnout? And so I've collaborated with a couple of other thoughtboters to think through of a way to measure it. It turns out helping someone measure their wellness is incredibly complex. And so we went for a fairly simple approach where we're using an anonymous survey with a number of questions. And those questions aren't really meant to stand up to scientific scrutiny but more to figure out how the team is feeling at the time that they fill out the survey and then also to understand how the reduced weekly hours have impacted their schedule. And are people working extra hours to then accommodate the fact that we now have these half Fridays? So do you feel pressured that because you can't work a full day on Friday that you are now working an extra hour or two Monday through Thursday to accommodate that time off? So that survey just went out today. And one of the really interesting parts (I just haven't had to create content for a survey in a while.) was making sure that I'm not introducing leading questions or phrasing things in a very positive or negative light since that is a bias that then people will pick up on. So instead of saying, "I find it easy to focus at work," and then having like a multiple choice of true, always, never, that kind of thing, instead rephrasing the question to be, "Are you able to focus during work hours?" And then you have a scale there. Or instead of asking someone how much energy they have, maybe it's something like, "Do you experience fatigue during the day?" Or instead of asking someone, "Are you stressed at work?" because that can have a more negative connotation. It may lead someone to feel more negatively as they are assessing that question. Then you can say, "How do you feel when you're at work?" And then you can provide those answers of I'm stressed, slightly stressed, neutral, slightly relaxed, and relaxed. So it generated some interesting conversations around the importance of how we phrase questions and how we collect feedback. And I really enjoyed that process, and I'm really looking forward to seeing what folks have to say. And we're going to have three surveys total. So we have one that's early on in the experiment since we're only two Fridays in. We'll have one middle experiment survey go out, and then we'll have one at the end once we're done. And then hopefully, everybody's responses will then help us understand how the experiment went and then make a decision going forward. I'll be honest; I'm really hoping that this becomes a trend and something that we stick with. It is a professional goal of mine to slowly reduce the hours that I work each week or quickly; it doesn't have to be slowly. But I really like the four-day workweek. It's something that I haven't done, but I've been reading about it a fair amount lately. I feel like I've been seeing more studies conducted recently becoming published, and it's just very interesting to me. I had some similar concerns of how am I still going to be productive? My to-do list hasn't changed, but my hours are changing. So how am I still going to get everything done? And does it make sense for me to still get paid the same amount of money if I'm only working four out of the five days? And I had lots of questions around that, and the studies have been very enlightening and very positive in the outcome of a reduced workweek, not just for the individuals but for the companies as well. CHRIS: It's such an interesting space and exploration. The way that you're framing the survey sounds really great. It sounds like you're trying to be really intentional around the questions that you're asking and not being leading and whatnot. That said, it is one of the historically hard problems trying to quantify this and trying to actually boil it down. And there are so many different axes even that you're measuring on. Is it just increased employee happiness? Is it retention that you're talking about? Is it overall revenue? There are so many different things, and it's very tricky. I'm super interested to hear the results when you get those. So you're doing what sounds like more of a qualitative study like, how are you feeling? As opposed to a more quantitative sort of thing, is that right? STEPH: Yes, it's more in the realm of how are you feeling? And are you working extra hours, or are you truly taking the time off? CHRIS: Yeah, I think it's really hard to take something like this and try and get it into the quantitative space, even though like, oh yeah, if we could have a number, if it used to be two and now it's four, fantastic. We've doubled whatever that measure is. I don't know what the unit would be on this arbitrary number I made up. But again, that's the hard thing and probably not feasible at all. And so it makes sense the approach that you're taking. But it's super difficult. So I'm very interested to hear how that goes. More generally, the four-day workweek thing is such a nice idea. We should do that more. I'm trying to think how long I did that. So during the period that I was working freelance, I think there were probably at least five months where I did just a true four-day workweek. Fridays were my own. It was fantastic. Granted, I recorded the podcast with you. But that day was mine to shape as I wanted. And I found it was a really nice decompression period having that for a number of weeks in a row. And just getting to take care of personal stuff that I hadn't been and just having that extra little bit of space and time. And it really was wonderful. Now I'm working full five days a week, and my Fridays aren't even investment days, so I don't know what I'm doing over here. But I agree. I really like that idea, and I think it's a wonderful thing. And it's, I don't know, sort of the promise of this whole capitalism adventure we're supposed to go on, increasing productivity. And wasn't this the promise the whole time, everybody, so I am intrigued to see it being explored more, to see it being discussed. And what you're talking about of it's not just good for the employees, but it's also great for the companies. You're getting people that are more engaged on the days that they're working, which feels very true to me. Like, on a great day, I can do some amazing work. On a terrible day, I can do mediocre to bad work. It is totally possible for me to do something that is actively detrimental. Like, I introduce a bug that is going to impact a bunch of customers. And the remediation of that is going to take many more hours. That is totally a realistic thing. I think we often think of productivity in terms of are you at zero or some amount more than zero? But there is definitely another side of that. And so the cost of being not at your best is extremely high in my mind. And so anything we can do to improve that. STEPH: There's a recent study from a non-profit company called Autonomy that published some research called Going Public: Iceland's Journey to a Shorter Working Week. It's very interesting. And a number of people in my social circle have shared it. And that's one of the reasons that I came across it. And they commented in there that one of the reasons...I hope I'm getting this right, but we'll link to it in case I've gotten it a bit wrong. But one of the reasons that Iceland was interested or open to this idea of moving workers to a shorter workweek is because they were struggling with productivity and where people were working a lot of hours, but it still felt like their productivity was dropping. So then Autonomy ran this study to help figure out are there ways to improve productivity? Will shortening a workweek actually lead to higher productivity? And there was a statement in there that I really liked where it talks about the more hours that we work; we're actually lowering our per hour productivity which rings so true for me. Because I am one of those individuals where I'm very stubborn, and so if I'm stuck on something, I will put so many hours into trying to figure it out. But at some point, I have to just walk away, and if I do, I will solve it that much faster. But if I just try to use hours as my way to chip away at a problem, then that's not going to solve it. And my ability to solve that problem takes exponentially more time than if I had just walked away and then come back to the problem fresh and engaged. And some of the case studies I admired the way that they tackled the problem. They would essentially pay the company. So the company could reduce the hours for certain employees so then they could run the experiment. So if they reduced employees to say 32 hours but the company didn't actually want to stop working at 32 hours and they wanted to keep going, so then they brought in other people to work the remaining eight hours. Then as part of that study, they would pay the company to help them stay at their current level of productivity or current level of hours. This way, they could conduct the study. And I thought that was a really neat idea. I do have lots of questions still around the approach itself because it is how do you reduce your to-do list, essentially? So just because you dropped to a four-day workweek. So essentially, you have to just say less stuff gets done. Or, as these case studies promise, they're saying you're actually going to be more productive. So you will still continue to get a lot of your work done. I'm curious about that. I'd like to track my own productivity and see if I feel similarly. And then also, who is this for? Is this for everybody? Does everybody get to move to a four-day workweek? Is this for certain companies? Is it for certain jobs? Ideally, this is for everybody because there are so many health benefits to this, but I'm just intrigued as to who this is for, who it impacts, how can we make it available for everyone? And is the dream real that I can work four days a week and still feel as productive, if not more productive, and healthier, and happier as I do when working five days a week? Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. CHRIS: I remember there was an extended period where working remote was this unique benefit that some organizations had. They had adopted that mode. They were async, and remote, and all of these wonderful things. And it became this really interesting selling point for those companies. Now the pandemic obviously pushed public opinion and everything on that in a pretty significant way such that it's a much more common thing. And so, as a result, I think it's less of a differentiator now. It used to be a way to help with recruiting. I wonder if there are organizations that are willing to take this, try it out, see that they are still close to as productive. But if it means that hiring is twice as easy, that is absolutely...especially if it is able to double your ability to hire, that is incredibly valuable or retention similarly. If you can increase retention or if you can make it easier to hire, the value of that is so, so high. And it's interesting in my mind because there's sort of a gold rush on that. That's only true for as long as a four-day workweek is a unique benefit of working at the organization. If this is actually the direction that everything's going and eventually everyone's going to settle to that, then if you wait too long to get there, then you're going to miss all the benefits. You're going to miss that particular benefit of it. And so I do wonder, would it be advantageous to organizations...I'm thinking about this now. Maybe this is the thing I have to do. But would it be advantageous to be that organization as early on as possible and try to get ahead of the curve and use that to hire more easily, retain more easily? Now that I say it all out loud, I'm sold. All right. I got to do this. STEPH: Yeah, I think that's a great comparison of where people are going to start to look for those types of benefits. And so, if you are one of the early adopters and you have the four-day workweek or a reduced workweek in general, then people will gravitate towards that benefit. And it's something that people can use to really help with hiring and retention. And yeah, I love it. You are CTO. So you have influence within your company that you could push for the four-day workweek if you think that's what you want to do. And I would be really intrigued to hear how that goes and how you feel if you...well, you've done it before where you've worked four days a week. So applying that to your current situation, how does that feel? CHRIS: Now you're actually holding me accountable to the things that I randomly said in passing. But it's interesting. So we're so early stage, and there's so much small work to do. There's all…oh, got to set up a website. We've got to do this. We've got to build that integration. There's just kind of scrambling to be done. And so there's a certain version in my mind that maybe we're in a period of time where additional hours are actually useful. There's a cost to them. Let's be clear about that. And so how long that will remain true, I'm not sure. I could see a point perhaps down the road where we achieve a little bit closer to steady-state maybe, who knows? It depends on how fast growth is and et cetera, a lot of other things. So I'm not sure that I would actually lead with this experiment myself, given where the organization is at right now. But I could see an organization that's at a little bit more of a steady-state, that's growing more incrementally, that is trying to think really hard about things like hiring and retention. If those were bigger questions in my mind, then I think I would be considering this more pointedly. But for now, I'm like, I kind of just got to do a bunch of stuff. And so my brain is telling me a different story, but it is interesting. I want to interrogate that and be like, brain, why is that the story you have there, huh? Huh? STEPH: I really appreciate what you're saying, though, because that makes sense to me. I understand when you are in that earlier stage, there's enough to do that that feels correct. Versus that added benefit of having a reduced workweek does benefit or could benefit larger companies who are looking to hire more heavily, or they're also concerned about retention or just helping their people address feelings of burnout. So I really appreciate that perspective because that also rings true. So along this whole conversation around wellness and how we can help people work more sustainable hours, there's a particular book that I've read that I've been really excited to share and chat with you about. It's called Burnout: The Secret to Unlocking the Stress Cycle. It's written by two sisters, Emily and Amelia Nagoski. And they really talk through the impact that stress has on us and then ways to work through that. And specifically, they talk about completing the stress cycle. And I found this incredibly useful for me because I have had weeks where I have just worked hard Monday through Friday. I've gotten to the end of my day Friday, and I'm like, great, I'm done. I've made it. I can just relax. And I walk away from work, and I can't relax. And I'm just like, I feel sick. I feel not good. Like, I thought I would walk away from work, and I would just suddenly feel this halo of relaxation, and everything would be wonderful. But instead, I just feel a bit ill, and I've never understood that until I was reading their book about completing the stress cycle. Have you ever had moments like that? CHRIS: It has definitely happened to me at various points, yes. STEPH: That makes me feel better because I haven't really chatted about this with someone. So until I read this book and I was like, oh, maybe this is a thing, and it's not just me, and this is something that people are experiencing. So to speak more about completing the stress cycle, they really highlight that stress and feelings, capital F feelings, can cause physiological symptoms. And so it's not just something that we are mentally processing, but we are physically processing the stress that we feel. And there's a really big difference between stressors and stress. So a stressor could be something like an unmeetable deadline. It could be family. It could be money concerns. It could be your morning commute, anything that increases your stress level. And during that, there's a very physical process that happens to your body anytime there's a perceived threat. And it's really helpful to us because it's frankly what triggers our fight, flight, or freeze response. And our bodies receive a rush of adrenaline and cortisol, which essentially, if we're using that flight response, that's going to help us run. And a number of the processes in our system will essentially go into a state of hibernation because everything in our body is very focused on helping us run or do the thing that we think is going to save our life in that moment. The problem is our body doesn't know the difference between what's more of a mental threat versus what is a truly physical threat. So this is the difference between your stress and your stressors. So in more of a physical threat, if there's a lion that you are running from, that is the stressor, but then the stress is everything that you still feel after you have run from that lion. So you encounter a lion, you run. You make it back to your group of people where you are safe, and you celebrate, and you dance, and you hug. And that is completing the stress cycle because you are essentially processing all of that stress. And you are telling your body in a body-focused language that I am safe now, and everything is fine. So you can move back, and anything that was in a hibernation state, all of that dump of adrenaline and cortisol can be worked out of your system, and everything can go back to a normal state. Most of us aren't encountering lions, but we do encounter jerks in meetings or really stressful commutes. And whenever we have survived that meeting, or we've gotten through our commute to the other side, we don't have that moment of celebration where we really let our body know that hey, we've made it through that moment of stress, and we are away from that stressor, and we can actually process everything. So if you're interested in this, the book's really great. It talks about ways that you can process that stress and how important it is to do so. Otherwise, it will literally build up in your system, and it can make you sick. And it will manifest in ways that will let us know that we haven't dealt with that stress. And one of the top methods that they recommend is exercise and movement. That's a really great way to let your body know that you are no longer in an unsafe state, and your body can start to relax. There's also a lot of other great ways. Art is a really big one. It could be hugging someone. It could be calling someone that you love. There are a number of ways that you can process it. But I hadn't recognized how important it is that once you have removed yourself from a stressor, that doesn't necessarily just mean you're done, and you can relax. You actually have to go through that physical process, and then you can relax. So I started incorporating that more into my day that when I'm done with work, I always find something to do, and it's typically to go for a walk, or it's go for a run. And I have found that now I really haven't felt that ill-feeling where I'm trying to relax, but I just feel sick. Saying that out loud, I feel like I'm a mess on Fridays. [chuckles] CHRIS: I feel like you're human. It was interesting when you asked the question at the beginning. You were like, "Is this a thing that other people experience?" And my answer was certainly, yes; I have experienced this. I think there's something about me that I think is useful where I don't think I'm special at all on any axis whatsoever. And so whenever there's something that's going on, I'm like, I assume that this is just normal human behavior, which is useful because most of the time it is. And this is the sort of thing where if I'm having a negative experience, I will look to the external world to be like, I'm sure other people have experienced this, and let me pull that in. And I've found that really useful for myself to just be like, I'm not special. There's nothing particularly special about me. So let me go look from the entirety of the internet where people have almost certainly talked about this. And I've not read the book that you're describing here, but it does sound like it does a great job of describing this. There is a blog post that I found that has stayed in the back of my mind and informed a little bit of my day-to-day approach to this sort of thing which is a blog post by Cal Newport, who I think at this point we've mentioned him a handful of times on the show. But the title of the post is Drastically Reduce Stress with a Work Shutdown Ritual. And it's this very interesting little post where he talks about at the end of your day; you want to close the book on it. I think this is especially pointed now that many of us are working from home. For me, this is a new thing. And so, I've been very intentional with trying to put walks at the beginning and end of my day. But in this particular blog post, he describes a routine that he does where he tidies things up and makes his list for the next day. And then he has a particular phrase that he says, which is "schedule shut down, complete." And it's a sort of nonsense phrase. It doesn't even quite make sense grammatically, but it's his phrase that he internalized, and somehow this became his almost mantra for the end of the day. And now when he does it, that's like his all right, okay, turned off the brain, and now I can walk away. I know that I've said the phrase, and I only say the phrase when I have properly set things up. And so it's this weird structure that he's built in his mind. But it totally works to quiet those voices that are like, yeah, but what about…Do we think about…Do we complete…And he's got now this magic phrase that he can say. And so I've really loved that. For myself, I haven't gotten quite to that level, but I've definitely built the here's how I wind down at the end of the day. Here's what I do with lists and what I do so that I can ideally walk away comfortably. Again, this is one of those situations where I sound like I know what I'm doing or have my act together. This is aspirational me. Day-to-day me is a hot mess like everybody else. [laughs] And this is just what I...when I do this, I feel better. Most of the time, I don't do this because I forget it, or because I'm busy, or because I'm stressed, [chuckles], and so I don't do the thing that reduces stress, you know, human stuff. But I really enjoyed that post. STEPH: I haven't heard that one. I like a lot of Cal Newport's work, but I haven't read that particular blog post. Yeah, I think the idea of completing the stress cycle has helped me tremendously because by giving it a name like completing the stress cycle has been really helpful for me because working out is important to me. It's something that I enjoy, but it's also one of those things that's easy to get bumped. It is part of my wellness routine. And so, if I'm really busy, then I will bump it from the list. And then it's something that then doesn't get addressed. But recognizing that this is also important to my productivity, not to just this general idea of wellness, has really helped me recenter how important this is and to make sure that I recognize hey, it's been a stressful day. I need to get up and move. That is a very important part of my day. It is not just part of an exercise routine, but this is something that I need to do to close out my day to then make sure I have a great day tomorrow. So bringing it back, it's been a week that's been filled with a lot of discussions around burnout and then ways that we can measure it and then also address it. And I've really enjoyed reading this book. So I'll be sure to drop a link in the show notes. On that note, shall we wrap up? CHRIS: Schedule shut down, complete. The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeeeeee!!! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

The Voicebot Podcast
Hannes Heikenheimo Co-founder and CTO at Speechly - Voicebot Podcast Ep 228

The Voicebot Podcast

Play Episode Listen Later Sep 28, 2021 84:55


Hannes Heikenheimo co-founded Speechly in 2016 with the vision to create a low-latency, real-time streaming speech recognition API. Today, Speechly offers an API that it says is the fastest voice UI for the web and other platforms. Prior to Speechly, he was a data science partner at Reaktor, a language engineer working on Siri for Apple, the analytics lead at game-maker Rovio, a Senior Data Scientist at Nokia, and a machine learning researcher at Helsinki University of Technology where he earned his PhD.

Android Developers Backstage
Episode 176: Android 12 - S stands for System UI

Android Developers Backstage

Play Episode Listen Later Sep 27, 2021 42:35


In this episode, Chet, Romain and Tor have a chat with Selim, Vadim and Lucas from the Android system UI team, discussing many of the new features in Android 12's user interface. Top row: Vadim, Selim and Romain. Bottom row: Lucas, Tor and Chet.   Some relevant links for the Splash screen discussion: https://goo.gle/3APByre  https://goo.gle/3zGDVeB    Selim: @selimcinek Vadim: @vadimcaen Chet: @chethaase Romain: @romainguy Tor: @tornorbye

The InfoQ Podcast
Sam Newman on Information Hiding, Ubiquitous Language, UI Decomposition and Building Microservices

The InfoQ Podcast

Play Episode Listen Later Sep 27, 2021 38:47


In this episode of the InfoQ podcast Charles Humble talks to Sam Newman, an independent consultant focusing on microservices, cloud and CD, about the 2nd edition of Newman's book Building Microservices, published by O'Reilly. They discuss information hiding; ideas from Domain Driven Design including aggregates, bounded contexts and ubiquitous language; UI decomposition; and team structure drawing on ideas from Team Topologies. Read a transcript of this interview: https://bit.ly/3lXqBxx Subscribe to our newsletters: - The InfoQ weekly newsletter: bit.ly/24x3IVq - The Software Architects' Newsletter [monthly]: https://www.infoq.com/software-architects-newsletter/ Upcoming Virtual Events - https://events.infoq.com/ InfoQ Live: https://live.infoq.com/ - October 19, 2021 QCon Plus online conference: https://plus.qconferences.com/ - November 1-12, 2021 Follow InfoQ: - Twitter: https://twitter.com/infoq - LinkedIn: https://www.linkedin.com/company/infoq/ - Facebook: https://www.facebook.com/InfoQdotcom/ - Instagram: @infoqdotcom - Youtube: https://www.youtube.com/infoq

Useful Idiots with Matt Taibbi and Katie Halper
How the 24-Hour News Cycle Ruined Journalism

Useful Idiots with Matt Taibbi and Katie Halper

Play Episode Listen Later Sep 24, 2021 68:02


Subscribe at http://usefulidiots.substack.com During the first Gulf War, there was a transformation to an era of constant new news. The face of this change was CNN reporter and Useful Idiots Hero Charles Jaco. Views went from checking the news once or twice a day to constantly staying plugged in, anchors got famous and the whole thing became a spectacle. Jaco's response? “What the devil is going on?” Jaco, who's the star of the weekly UI segment "Jaco of the Week,” discussed the negative impacts of unending news. “We should've put up slides that said, ‘Look, this is being brought live. The first draft of history is always wrong. Take this with a grain of salt and we'll try to sort this out.'” With the need to always have fresh news, time for fact checking went out the window. And since the early 90s, trust in media has plummeted. Jaco says that's why. We also discuss the shift from focusing on in-the-field reporters to idolizing talking heads in the studio: “One of the things that really annoys me now is that you've got these platforms that can give you 24-hour news, but on the three major channels, CNN, MSNBC, and Fox, it's degenerated into just talking heads rather than using the expertise of the reporters in the field. It's irritating as hell to those of us who did it for so long.” It's a fun interview with our charming and funny UI hero. And check back on Monday for the extended interview where Charles discusses teabaggers, conspiracy theories, and the impending US civil war (sense a trend?) Plus, we find out just how much Dems and Republicans suck as Biden lets Haitian migrants get whipped and McConnell plans to let the government default. Ugh. It's all this, and more, on this week's episode of Useful Idiots. Check it out. Learn more about your ad choices. Visit megaphone.fm/adchoices

OFF-KILTER with Rebecca Vallas
“It's Just Been Like This Rolling Cliff:” What's Next for America's Crumbling Unemployment Insurance System?

OFF-KILTER with Rebecca Vallas

Play Episode Listen Later Sep 24, 2021 59:54


For all the talk about what's in “Build Back Better” recovery legislation that Democrats are trying to move through Congress, one thing that's not currently in the bill, in what many workers' advocates say is a glaring omission, is anything to do with Unemployment Insurance—which was badly in need of a refresh long before the COVID-19 pandemic, to ensure that when workers lose a job, they have the protection they need.  In fact, workers' advocates and progressive think tanks have been ringing the alarm bells for years about how few jobless workers were protected by our UI system. The pre-pandemic share of jobless workers actually helped by UI in their time of need? Just 1 in 4, a record low. One of the most important lessons from the pandemic is without question the structural failings in America's Unemployment Insurance system—gaps that were in many cases briefly filled by temporary expansions of jobless protections that have since been allowed to expire, leaving millions of still-jobless workers with less than they need to get by, or worse, nothing at all to keep them and their families afloat. For a look at the state of Unemployment Insurance now that recent expansions have been allowed to run out, what jobless workers are facing right now, and the long-needed UI fixes that workers' advocates are hoping might still be included in upcoming recovery legislation… for this week's Off-Kilter, Rebecca sat down with a panel of UI experts and advocates who have been leading the charge: Rebecca Dixon, executive director of the National Employment Law Project; Andy Stettner, senior fellow at The Century Foundation; and Stephanie Freed, a freelancer turned UI organizer who founded and serves as the executive director of Extend PUA, which has organized tens of thousands of jobless workers in the fight to extend federal UI expansions during the pandemic. Read Rebecca Dixon's statement on why UI reforms must be included in “Build Back Better” recovery legislation  Read more from Andy Stettner on the 7.5 million jobless workers who went over a UI benefits cliff on Labor Day Learn more about the story behind ExtendPUA.org—and how Stephanie Freed went from being a freelancer to organizing tens of thousands of jobless workers Jobless benefits protected 4.7 million people from poverty in 2020, according to NELP analysis Here's a deep dive into how workers' advocates say UI needs to be fixed (by NELP and allies) And here's an op-ed Rebecca (Vallas) wrote early in the pandemic about Florida's broken-by-design UI system

Game Pass Gamecast
Have Halo Infinite's Progression Issues Been Addressed Properly? - Episode 117

Game Pass Gamecast

Play Episode Listen Later Sep 24, 2021 88:30


Join the Bonus Accessory crew every Friday as they dive head first into all things Xbox, Xbox Game Pass, & PC gaming. Halo's formula has seen some changes over the years, both good and bad, ranging from small changes like UI and HUD teaks to more large scale iterations like art design and advanced movement, but one thing that has stayed relatively similar was progression: until the upcoming Halo Infinite that is. While many have praised the battle pass implementation of 343, are they handling changes to progression properly? This week, we examine new follow up info to progression in Halo Infinite, as 343 Industries explains why their previous announcement of completing challenges being your main form of account progression in the game applies best to Halo Infinite. Does the reported 16-18 hours of daily challenges sound better on paper, or will they not fall into the trap of becoming too similar and bland? We lay it all out. Plus, former Halo and Destiny composing legend Marty O'Donnell is facing pretty steep legal fines, almost 500 Xbox & Dreamcast prototypes have just been released to the public, and much more, coming up on the newest jam-packed episode of the Game Pass Gamecast! Be sure to subscribe and turn on notifications so you never miss a show when they drop every Friday morning!

HawkFanatic Podcast
Hawkeye Hotspot Podcast 9-23-21

HawkFanatic Podcast

Play Episode Listen Later Sep 23, 2021 88:10


Scott Dochterman from The Athletic and Rob Howe are back with the latest episode of the Hawkeye Hotspot Podcast. They review the Kent State game, preview the Colorado State game, discuss Iowa men's basketball and UI adding women's wrestling, and catch up with the Hawkeyes in the NFL.

The Keynote by CNBC Events
The State of The American Workforce with U.S. Labor Secretary Marty Walsh

The Keynote by CNBC Events

Play Episode Listen Later Sep 23, 2021 21:35


U.S. Labor Secretary Marty Walsh on the Biden Administration's vaccine mandate and initiatives to get Americans back to work. Plus, the department's programs to build a skilled labor force, alleviate the labor shortage, and the fight against wage disparity.

Syntax - Tasty Web Development Treats
From React To SvelteKit

Syntax - Tasty Web Development Treats

Play Episode Listen Later Sep 22, 2021 55:27


In this episode of Syntax, Scott talks with Wes about moving Level Up Tutorials from React to SvelteKit — why he did it, how, benefits, things to watch out for, and more! Prismic - Sponsor Prismic is a Headless CMS that makes it easy to build website pages as a set of components. Break pages into sections of components using React, Vue, or whatever you like. Make corresponding Slices in Prismic. Start building pages dynamically in minutes. Get started at prismic.io/syntax. Sentry - Sponsor If you want to know what's happening with your code, track errors and monitor performance with Sentry. Sentry's Application Monitoring platform helps developers see performance issues, fix errors faster, and optimize their code health. Cut your time on error resolution from hours to minutes. It works with any language and integrates with dozens of other services. Syntax listeners new to Sentry can get two months for free by visiting Sentry.io and using the coupon code TASTYTREAT during sign up. Cloudinary - Sponsor Cloudinary is the best way to manage images and videos in the cloud. Edit and transform for any use case, from performance to personalization, using Cloudinary's APIs, SDKs, widgets, and integrations. Show Notes 07:28 - Thoughts Apples to oranges, so unfortunately, no super legit ability to compare. SvelteKit isn't analogous with a custom React setup that uses CSR SSR is usually going to be faster - we can ship less JS Some big things changed beyond React → SvelteKit Apollo → GFetch Plyr → Vime HLS starts grabbing chunks immediately, so it's hard to get accurate load time and transfer. Whole conversion took a couple of months. Hardest part was making UI choices and changes, straight up converting components one by one wasn't actually that tough 16:14 - Converting React components to Svelte useState becomes just a straight-up variable Graphql calls were hooks now just imported generated functions Remove extranous fragments Convert {things && } to {#if thing}{/if}  becomes  24:06 - Spark joys State Our checkout flow became way more transparent, way easier with Svelte stores Render flow Was never something we needed to really think about. Didn't think about memoizing, or worrying about too many renders down the line, just never needed to Overall developer experience It's honestly a joy to work in and I don't want to go back Making a library Package dir, new SvelteKit project, svelte-kit package I made svelte-toy - https://github.com/leveluptuts/svelte-toy svelte-element-query - https://github.com/leveluptuts/Svelte-Element-Query svelte-simple-datatable fork Creating a sitemap was extremely easy, because of server-side routes. file.returnformat.ts ie sitemap.xml.ts CSS without a css-in-js library for scoping is a dream. CSS props are now 100% via CSS variables using the https://svelte.dev/docs#style_props Animations are all done with Svelte's internal animations lib 32:45 - Hosting adapter-node Hosted on render.com as a straight-up node process $7/m for more than enough RAM and CPU, Lots of other options for static, Vercel, workers whatever, I like having just a straight-up node app you can host anywhere 35:50 - Things to do Admin tools Pancake lib for charts 37:00 - Challenges ESM is not always smooth sailin Import has from ‘lodash/has' didn't working in dev, but import has from ‘lodash/has.js' didn't work in prod. Solution was to use lodash.has as the dependency Apollo included all React as a dep unless you import from @core TS is great, but there was once where I wanted to define the entire props ts object for a spread prop, but was not possible Drag animations Cloudinary 42:46 - Wes' questions What about the ecosystem? What about forms + DOM data? Serverless functions? Do you always bind to state? Or just access directly? formData = writable({ title: "yo" }) {$formData.title} Is it stable? Deno - Snel Links https://leveluptutorials.com/ https://vitejs.dev/ ××× SIIIIICK ××× PIIIICKS ××× Scott: The Skeptics Guide To The Universe Podcast Wes: Pressure Washer Nozzle Shameless Plugs Scott: Web Components 101 - Sign up for the year and save 25%! Wes: All Courses - Use the coupon code ‘Syntax' for $10 off! Tweet us your tasty treats! Scott's Instagram LevelUpTutorials Instagram Wes' Instagram Wes' Twitter Wes' Facebook Scott's Twitter Make sure to include @SyntaxFM in your tweets

Greater Than Code
251: Diplomatic Accessibility Advocacy with Todd Libby

Greater Than Code

Play Episode Listen Later Sep 22, 2021 46:41


01:09 - Todd's Superpower: Advocacy For Accessibility * Getting Started * Designing With Web Standards by Jeffrey Zeldman (https://www.amazon.com/Designing-Web-Standards-Jeffrey-Zeldman/dp/0321616952) * The A11Y Project (https://www.a11yproject.com/) * W3C (https://www.w3.org/) 06:18 - Joining The W3C * The W3C Community Page (https://www.w3.org/community/) 07:44 - Getting People/Companies/Stakeholders to Care/Prioritize About Accessibility * Making A Strong Case For Accessibility by Todd Libby (https://www.smashingmagazine.com/2021/07/strong-case-for-accessibility/) * Diplomatic Advocacy * You Don't Want To Get Sued! / $$$ * “We are all temporarily abled.” 15:20 - The Domino's Pizza Story * Supreme Court hands victory to blind man who sued Domino's over site accessibility (https://www.cnbc.com/2019/10/07/dominos-supreme-court.html) 18:21 - Things That Typically Aren't Accessible And Should Be * The WebAIM Million Report (https://webaim.org/projects/million/) * WCAG (https://www.w3.org/WAI/standards-guidelines/wcag/) * Color Contrast * Missing Alt Text on Images * Form Input Labels * What's New in WCAG 2.1: Label in Name by Todd Libby (https://css-tricks.com/whats-new-in-wcag-2-1-label-in-name/) * Empty Links * Not Using Document Language * Triggering GIFS / Flashing Content * Empty Buttons – Use a Button Element!! * Tab Order * Semantic HTML, Heading Structure 26:27 - Accessibility for Mobile Devices * Target Size * Looking at WCAG 2.5.5 for Better Target Sizes (https://css-tricks.com/looking-at-wcag-2-5-5-for-better-target-sizes/) * Dragging Movements 28:08 - Color Contrast * Contrast Ratio (https://contrast-ratio.com/) 33:02 - Designing w/ Accessibility in Mind From the Very Beginning * Accessibility Advocates on Every Team * Accessibility Training 36:22 - Contrast (Cont'd) 38:11 - Automating Accessibility! * axe-core-gems (https://github.com/dequelabs/axe-core-gems) Reflections: Mae: Eyeballing for contrast. John: We are all only temporarily abled and getting the ball rolling on building accessibility in from the beginning of projects going forward and fixing older codebases. Mandy: Using alt-tags going forward on all social media posts. Todd: Accessibility work will never end. Accessibility is a right not a privilege. This episode was brought to you by @therubyrep (https://twitter.com/therubyrep) of DevReps, LLC (http://www.devreps.com/). To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode (https://www.patreon.com/greaterthancode) To make a one-time donation so that we can continue to bring you more content and transcripts like this, please do so at paypal.me/devreps (https://www.paypal.me/devreps). You will also get an invitation to our Slack community this way as well. Transcript: JOHN: Welcome to Greater Than Code, Episode 251. I'm John Sawers and I'm here with Mae Beale. MAE: Hi, there! And also, Mandy Moore. MANDY: Hi, everyone! I'm Mandy Moore and I'm here today with our guest, Todd Libby. Todd Libby is a professional web developer, designer, and accessibility advocate for 22 years under many different technologies starting with HTML/CSS, Perl, and PHP. Todd has been an avid learner of web technologies for over 40 years starting with many flavors of BASIC all the way to React/Vue. Currently an Accessibility Analyst at Knowbility, Todd is also a member of the W3C. When not coding, you'll usually find Todd tweeting about lobster rolls and accessibility. So before I ask you what your superpower is, I'm going to make a bet and my bet is that I'm 80% positive that your superpower has something to do with lobster rolls. Am I right? [laughter] Am I right? TODD: Well, 80% of the time, you'd be right. I just recently moved to Phoenix, Arizona. So I was actually going to say advocacy for accessibility, but yes, lobster rolls and the consumption of lobster rolls are a big part. MAE: I love it. That's fantastic. MANDY: Okay. Well, tell me about the advocacy. [chuckles] TODD: So it started with seeing family members who are disabled, friends who are disabled, or have family members themselves who are disabled, and the struggles they have with trying to access websites, or web apps on the web and the frustration, the look of like they're about ready to give up. That's when I knew that I would try to not only make my stuff that I made accessible, but to advocate for people in accessibility. MAE: Thank you so much for your work. It is critical. I have personally worked with a number of different populations and started at a camp for children with critical illnesses and currently work at an organization that offers financial services for people with disabilities – well, complex financial needs, which the three target populations that we work with are people with disabilities, people with dementia, and people in recovery. So really excited to talk with you today. Thanks. TODD: You're welcome. JOHN: When you started that journey, did you already have familiarity with accessibility, or was it all just like, “Oh, I get to learn all this stuff so I can start making it better”? TODD: So I fell into it because if you're like me and you started with making table-based layouts way back in the day, because what we had—Mosaic browser, Netscape Navigator, and Internet Explorer—we were making table-based layouts, which were completely inaccessible, but I didn't know that. As the web progressed, I progressed and then I bought a little orange book by Jeffrey Zeldman, Designing with Web Standards, and that pretty much started me on my journey—semantic HTML, progressive enhancement in web standards, and accessibility as well. I tend to stumble into a lot of stuff [laughs] so, and that's a habit of mine. [laughs] MAE: It sounds like it's a good habit and you're using it to help all the other people. So I hate to encourage you to keep stumbling, but by all means. [laughter] Love it. If you were to advise someone wanting to know more about accessibility, would you suggest they start with that same book too, or what would you suggest to someone stumbling around in the dark and not hitting anything yet? TODD: The book is a little outdated. I think the last edition of his book was, I want to say 2018, maybe even further back than that. I would suggest people go on websites like The A11Y project, the a11yproject.com. They have a comprehensive list of resources, links to learning there. Twitter is a good place to learn, to follow people in the accessibility space. The other thing that, if people really want to dive in, is to join The W3C. That's a great place and there's a lot of different groups. You have the CSS Working Group, you have the accessibility side of things, which I'm a part of, the Silver Community Group, which is we're working on the Web Content Accessibility Guidelines 3.0, which is still a little ways down the road, but a lot of great people and a lot of different companies. Some of those companies we've heard of—Google, Apple, companies like that all the way down to individuals. Individuals can join as individuals if your company isn't a member of the W3C. So those are the three things that I mainly point to people. If you don't really want to dive into the W3C side of things, there's a lot of resources on the a11yproject.com website that you can look up. MANDY: So what does being a member entail? What do you have to do? Do you have to pay dues? Do you have to do certain projects, maybe start as an individual level, because I'm sure we have mostly individuals listening to the show. Me as a newbie coder, what would I do to get started as a member of this initiative? TODD: Well, I started out as an individual myself, so I joined and I can get you the link to The W3C Community Page. Go to sign up as an individual and someone will approve the form process that you go through—it's nothing too big, it's nothing complicated—and then that will start you on your way. You can join a sub group, you can join a group, a working group, and it doesn't cost an individual. Companies do pay dues to the W3C and if your company is in the W3C, you get ahold of your company's liaison and there's a process they go through to add you to a certain group. Because with me, it was adding me to The Silver Community Group. But as an individual, you can join in, you can hop right into a meeting from there, and then that's basically it. That's how you start. JOHN: What are the challenges you see in getting not only the goals of a W3C, but I'm assuming specifically around accessibility? TODD: Some of the things that I've seen is buy-in from stakeholders is probably the number one hurdle, or barrier. Companies, stakeholders, and board members, they don't think of, or in some cases, they don't care about accessibility until a company is getting sued and that's a shame. That's one of the things that I wrote about; I have an article on Smashing Magazine. Making A Strong Case for Accessibility, it's called and that is one of few things that I've come across. Getting buy-in from stakeholders and getting buy-in from colleagues as well because you have people that they don't think about accessibility, they think about a number of different things. Mostly what I've come across is they don't think about accessibility because there's no budget, or they don't have the time, or the company doesn't have the time. It's not approved by the company. The other thing that is right up there is it's a process—accessibility—making things accessible and most people think that it's a big this huge mountain to climb. If you incorporate accessibility from the beginning of your project, it's so much easier. You don't have to go back and you don't have to climb that mountain because you've waited until the very end. “Oh, we have time now so we'll do the accessibility stuff,” that makes it more hard. MAE: John, your question actually was similar to something I was thinking about with how you developed this superpower and I was going to ask and still will now. [chuckles] How did you afford all the time in the different places where you were overtime to be able to get this focus? And so, how did you make the case along the way and what things did you learn in that persuasion class of life [chuckles] that was able to allow you to have that be where you could focus and spend more time on and have the places where you work prioritize successful? TODD: It was a lot of, I call it diplomatic advocacy. So for instance, the best example I have is I had been hired to make a website, a public facing website, and a SAAS application accessible. The stakeholder I was directly reporting to, we were sitting down in a meeting one day and I said, “Well, I want to make sure that accessibility is the number one priority on these projects,” and he shot back with, “Well, we don't have the disabled users,” and that nearly knocked me back to my chair. [laughs] So that was a surprise. MAE: There's some groaning inside and I had to [chuckles] do it out loud for a moment. Ooh. TODD: Yeah, I did my internal groaning at the meeting so that just was – [chuckles] Yeah, and I remember that day very vividly and I probably will for the rest of my life that I looked at him and I had to stop and think, and I said, “Well, you never know, there's always a chance that you're able, now you could be disabled at any time.” I also pointed out that his eyeglasses that he wore are an assistive technology. So there was some light shed on that and that propelled me even further into advocacy and the accessibility side of things. That meeting really opened my eyes to not everyone is going to get it, not everyone is going to be on board, not everyone is going to think about disabled users; they really aren't. So from there I used that example. I also use what I call the Domino's Pizza card lately because “Oh, you don't want to get sued.' That's my last resort as far as advocacy goes. Other than that, it's showing a videotape of people using their product that are disabled and they can't use it. That's a huge difference maker, when a stakeholder sees that somebody can't use their product. There's numbers out there now that disabled users in this country alone, the United States, make up 25% of the population, I believe. They have a disposable income of $8 trillion. The visually disabled population alone is, I believe it was $1.6 billion, I think. I would have to check that number again, but it's a big number. So the money side of things really gets through to a stakeholder faster than “Well, your eyeglasses are a assistive technology.” So once they hear the financial side of things, their ears perk up real quick and then they maybe get on board. I've never had other than one stakeholder just saying, “No, we're just going to skip that,” and then that company ended up getting sued. So that says a lot, to me anyways. But that's how I really get into it. And then there was a time where I was working for another company. I was doing consulting for them and I was doing frontend mostly. So it was accessibility, but also at the same time, it was more the code side of things. That was in 2018. 2019, I went to a conference in Burlington, Vermont. I saw a friend of mine speaking and he was very passionate about it and that talk, and there was a couple others there as well, it lit that fire under me again, and I jumped right back in and ever since then, it's just then accessibility. MAE: You reminded me one of the arguments, or what did you say? Diplomatic advocacy statements that I have used is that we are all temporarily abled. [chuckles] Like, that's just how it is and seeing things that way we can really shift how you orient to the idea of as other and reduce the othering. But I was also wondering how long it would be before Pizza Hut came up in our combo. [laughter] MANDY: Yeah, I haven't heard of that. Can you tell us what that is? TODD: [chuckles] So it was Domino's and they had a blind user that tried to use their app. He couldn't use their app; their app wasn't accessible. He tried to use the website; the website wasn't accessible. I have a link that I can send over to the whole story because I'm probably getting bits and pieces wrong. But from what I can recall, basically, this user sued Domino's and instead of Domino's spending, I believe it was $36,000 to fix their website and their app, they decided to drag it out for a number of years through court and of course, spent more money than just $36,000. In the end, they lost. I think they tried to appeal to the Supreme Court because they've gone up as high as federal court, but regardless, they lost. They had to – and I don't know if they still have an inaccessible site, or not, or the app for that matter because I don't go to Domino's. But that's basically the story that they had; a user who tried to access the app and the website, couldn't use it, and they got taken to court. Now Domino's claimed, in the court case, that he could have used the telephone, but he had tried to use the telephone twice and was on hold for 45 minutes. So [laughs] that says a lot. JOHN: Looks like it actually did go to the Supreme Court. TODD: Yeah. Correct me if I'm wrong, I think they did not want to hear it. They just said, “No, we're not going to hear the case.” Yeah, and just think about all these apps we use and all the people that can't access those apps, or the websites. I went to some company websites because I was doing some research, big companies, and a lot of them are inaccessible. A little number that I can throw out there: every year, there's been a little over 2,500 lawsuits in the US. This year, if the rate keeps on going that it has, we're on course for over 4,000 lawsuits in the US alone for inaccessible websites. You've had companies like Target, Bank of America, Winn-Dixie, those kinds of companies have been sued by people because of inaccessible sites. MAE: Okay, but may I say this one thing, which is, I just want to extend my apologies to Pizza Hut. [laughter] MANDY: What kinds of things do you see as not being accessible that should be or easily could be that companies just simply aren't doing? TODD: The big one, still and if you go to webaim.org/projects/million, it's The WebAIM Million report. It's an annual accessibility analysis of the top 1 million home pages on the internet. The number one thing again, this year is color contracts. There are guidelines in place. WCAG, which is the Web Content Accessibility Guidelines, that text should be a 4.5:1 ratio that reaches the minimum contrast for texts. It's a lot of texts out there that doesn't even reach that. So it's color contrast. You'll find a lot of, if you look at—I'm looking at the chart right now—missing alt texts on images. If you have an image that is informative, or you have an image that is conveying something to a user, it has to have alternative text describing what's in the picture. You don't have to go into a long story about what's in the picture and describe it thoroughly; you can just give a quick overview as to what the picture is trying to convey, what is in the picture. And then another one being another failure type a is form input labels; labels that are not labeled correctly. I wrote a article about that [chuckles] on CSS-Tricks and that is, there's programmatic and there's accessible names for form labels that not only help the accessibility side of it, as far as making the site accessible, but also it helps screen reader users read forms and navigate through forms, keyboard users also. Then you have empty links and then a big one that I've seen lately is if you look up in the source code, you see the HTML tag, and the language attribute, a lot of sites now, because they use trademarks, they don't have a document language. I ran across a lot of sites that don't use a document language. They're using a framework. I won't name names because I'm not out to shame, but having that attribute helps screen reader users and I think that's a big thing. A lot of accessibility, people don't understand. People use screen readers, or other assistive technologies, for instance, Dragon NaturallySpeaking voice input. But at the same time, I've got to also add accessibility is more than just deaf, or blind. I suffer from migraines, migraine headaches so animation, or motion from say, parallax scrolling can trigger a migraine. Animations that are too fast, that also trigger migraine headache. You have flashing content that can potentially cause seizures and that's actually happened before where an animated GIF was intentionally sent to someone and it caused a seizure and almost killed the person. So there's those and then the last thing on this list that I'm looking at right now, and these are common failures, empty buttons. You have buttons that don't have labels. Buttons that have Click here. Buttons need to be descriptive. So you want to have – on my site to send me something on the contact form, it's Send this info to Todd, Click here, or something similar like that. MAE: Can you think of any, John that you know of, too? I've got a couple of mind. How about you, Mandy? MANDY: For me, because I'm just starting out, I don't know a whole lot about accessibility. That's why I'm here; I'm trying to learn. But I am really conscious and careful of some of the GIFs that I use, because I do know that some of the motion ones, especially really fast-moving ones, can cause problems, migraines, seizures for people. So when posting those, I'm really, really mindful about it. JOHN: Yeah, the Click here one is always bothers me too, because not only is it bad accessibility, it's bad UX. Like HTML loves you to turn anything into a link so you can make all the words inside the button and it's just fine. [laughs] There's so many other ways to do it that are just – even discounting the accessibility impact, which I don't want it. TODD: Yeah, and touching upon that, I'm glad you brought up the button because I was just going to let that go [chuckles] past me. I have to say and I think it was in the email where it said, “What's bothering you?” What bothers me is people that don't use the button. If you are using a div, or an anchor tag, or a span, stop it. [laughs] Just stop it. There's a button element for that. I read somewhere that anchor tag takes you somewhere, a div is a container, but button is for a button. MAE: I love that. The only other ones I could think of is related to something you said, making sure to have tab order set up properly to allow people to navigate. Again, I liked your point about you don't have to be fully blind to benefit from these things and having keyboard accessibility can benefit a lot of people for all kinds of reasons. The other one is, and I would love to hear everybody's thoughts on this one, I have heard that we're supposed to be using h1, h2, h3 and having proper setup of our HTML and most of us fail just in that basic part. That's another way of supporting people to be able to navigate around and figure out what's about to be on this page and how much should I dig into it? So more on non-visual navigation stuff. TODD: Yeah, heading structure is hugely important for keyboard users and screen reader users as well as tab order and that's where semantic HTML comes into play. If you're running semantic HTML, HTML by default, save for a few caveats, is accessible right out of the box. If your site and somebody can navigate through using let's say, the keyboard turns and they can navigate in a way that is structurally logical, for instance and it has a flow to it that makes sense, then they're going to be able to not only navigate that site, but if you're selling something on that site, you're going to have somebody buying something probably. So that's again, where tab order and heading structure comes into play and it's very important. JOHN: I would assume, and correct me if I'm wrong, or if you know this, that the same sort of accessibility enhancements are available in native mobile applications that aren't using each HTML, is that correct? TODD: Having not delved into the mobile side of things with apps myself, that I really can't answer. I can say, though, that the WCAG guidelines, that does pertain to mobile as well as desktop. There's no certain set of rules. 2.2 is where there are some new features that from mobile, for instance, target size and again, I wrote another article on CSS-Tricks about target size as well. So it's if you ever noticed those little ads that you just want to click off and get off your phone and they have those little tiny Xs and you're sitting there tapping all day? Those are the things target size and dragging movements as well. I did an audit for an app and there was a lot of buttons that were not named. A lot of the accessibility issues I ran into were the same as I would run into doing an audit on a website. I don't know anything about Swift, or Flutter, or anything like that, they pretty much fall into the same category with [inaudible] as far as accessible. JOHN: I also wanted to circle back on the first item that you listed as far as the WebAIM million thing was color contrast, which is one of those ones where a designer comes up with something that looks super cool and sleek, but it's dark gray on a light gray background. It looks great when you've got perfect eyesight, but anybody else, they're just like, “Oh my God, what's that?” That's also one of the things that's probably easiest to change site-wide; it's like you go in and you tweak the CSS and you're done in a half hour and you've got the whole site updated. So it's a great bit of low-hanging fruit that you can attach if you want to start on this process. TODD: Yeah. Color contrast is of course, as the report says, this is the number one thing and let me look back here. It's slowly, the numbers are dropping, but 85.3%, that's still a very high number of failures and there's larger text. If you're using anything over 18 pixels, or the equivalent of 18—it's either 18 points, or 18 pixels—is a 3:1 ratio. With that color contrast is how our brains perceive color. It's not the actual contrast of that color and there are people far more qualified than me going to that, or that can go into that. So what I'll say is I've seen a lot of teams and companies, “Yeah, we'll do a little over 4.5:1 and we'll call it a day.” But I always say, if you can do 7:1, or even 10:1 on your ratios and you can find a way to make your brand, or whatever the same, then go for it. A lot of the time you hear, “Well, we don't want to change the colors of our brand.” Well, your colors of your brand aren't accessible to somebody who that has, for instance, Tritanopia, which is, I think it's blues and greens are very hard to see, or they don't see it at all. Color deficiencies are a thing that design teams aren't going to check for. They're just not. Like you said, all these colors look awesome so let's just, we're going to go with that on our UI. That's one thing that I actually ran into on that SAAS product that I spoke about earlier was there was these colors and these colors were a dark blue, very muted dark blue with orange text. You would think the contrast would be oh yeah, they would be all right, but it was horrible. JOHN: You can get browser plugins, that'll show you what the page looks like. So you can check these things yourself. Like you can go in and say, “Oh, you're right. That's completely illegible.” TODD: Yeah. Firefox, like I have right here on my work machine. I have right here Firefox and it does this. There's a simulator for a visual color deficiencies. It also checks for contrast as well. Chrome has one, which it actually has a very cool eyedropper to check for color contrast. If you use the inspector also in Firefox, that brings up a little contrast thing. The WAVE extension has a contrast tool. There's also a lot of different apps. If you have a Mac, like I do, I have too many color contrast because I love checking out these color contrast apps. So I have about five different color contrast apps on my Mac, but there's also websites, too that you can use at the same time. Just do a search for polar contrast. Contrast Ratio, contrast-ratio.com, is from Lea Verou. I use that one a lot. A lot of people use that one. There's so many of them out there choose from, but they are very handy tool at designer's disposal and at developers' disposal as well. JOHN: So I'm trying to think of, like I was saying earlier, the color contrast one is one of those things that's probably very straightforward; you can upgrade your whole site in a short amount of time. Color contrast is a little trickier because it gets into branding and marketing's going to want to care about it and all that kind of stuff. So you might have a bit more battle around that, but it could probably be done and you might be able to fix, at least the worst parts of the page that have problems around that. So I'm just trying to think of the ways that you could get the ball rolling on this kind of a work. Like if you can get those early easy wins, it's going to get more people on board with the process and not saying like, “Oh, it's going to take us eight months and we have to go through every single page and change it every forum.” That sounds really daunting when you think about it and so, trying to imagine what those easy early wins are that can get people down that road. TODD: Yeah. Starting from the very outset of the project is probably the key one: incorporating accessibility from the start of the project. Like I said earlier, it's a lot easier when you do it from the start rather than waiting till the very end, or even after the product has been launched and you go back and go, “Oh, well, now we need to fix it.” You're not only putting stress on your teams, but it's eating up time and money because you're now paying everybody to go back and look at all these accessibility issues there. Having one person as a dedicated accessibility advocate on each team helps immensely. So you have one person on the development team, one person on the dev side, one person on the marketing team, starting from the top. If somebody goes there to a stakeholder and says, “Listen, we need to start incorporating accessibility from the very start, here's why,” Nine times out of ten, I can guarantee you, you're probably going to get that stakeholder onboard. That tenth time, you'll have to go as far as maybe I did and say, “Well, Domino's Pizza, or Bank of America, or Target.” Again, their ears are going to perk up and they're going to go, “Oh, well, I don't really, we don't want to get sued.” So that, and going back to having one person on each team: training. There are so many resources out there for accessibility training. There are companies out there that train, there are companies that you can bring in to the organization that will train, that'll help train. That's so easier than what are we going to do? A lot of people just sitting there in a room and go, “How are you going to do this?” Having that person in each department getting together with everybody else, that's that advocate for each department, meeting up and saying, “Okay, we're going to coordinate. You're going to put out a fantastic product that's going to be accessible and also, at the same time, the financial aspect is going to make the company money. But most of all, it's going to include a lot of people that are normally not included if you're putting out an accessible product.” Because if you go to a certain website, I can guarantee you it's going to be inaccessible—just about 99% of the web isn't accessible—and it's going to be exclusive as it's going to – somebody is going to get shut out of the site, or app. So this falls on the applications as well. Another thing too, I just wanted to throw in here for color contrast. There are different – you have color contrast text, but you also have non-text contrast, you have texts in images, that kind of contrast as well and it does get a little confusing. Let's face it, the guidelines right now, it's a very technically written – it's like a technical manual. A lot of people come up to me and said, “I can't read this. I can't make sense of this. Can you translate this?” So hopefully, and this is part of the work that I'm doing with a lot of other people in the W3C is where making the language of 3.0 in plain language, basically. It's going to be a lot easier to understand these guidelines instead of all that technical jargon. I look at something right now and I'm scratching my head when I'm doing an audit going, “Okay, what do they mean by this?” All these people come together and we agree on what to write. What is the language that's going to go into this? So when they got together 2.0, which was years and years ago, they said, “Okay, this is going to be how we're going to write this and we're going to publish this,” and then we had a lot of people just like me scratching their heads of not understanding it. So hopefully, and I'm pretty sure, 99.9% sure that it's going to be a lot easier for people to understand. MAE: That sounds awesome. And if you end up needing a bunch of play testers, I bet a lot of our listeners would be totally willing to put in some time. I know I would. Just want to put in one last plug for anybody out there who really loves automating things and is trying to avoid relying on any single developer, or designer, or QA person to remember to check for accessibility is to build it into your CI/CD pipeline. There are a lot of different options. Another approach to couple with that, or do independently is to use the axe core gems, and that link will be in the show notes, where it'll allow you to be able to sprinkle in your tests, accessibility checks on different pieces. So if we've decided we're going to handle color contrast, cool, then it'll check that. But if we're not ready to deal with another point of accessibility, then we can skip it. So it's very similar to Robocop. Anyway, just wanted to offer in some other tips and tricks of the trade to be able to get going on accessibility and then once you get that train rolling, it can do a little better, but it is hard to start from scratch. JOHN: That's a great tip, Mae. Thank you. TODD: Yeah, definitely. MANDY: Okay. Well, with that, I think it's about time we head into reflections; the point of the show, where we talk about something that we thought stood out, that we want to think about more, or a place that we can call for a call of action to our listeners, or even to ourselves. Who wants to go first? MAE: I can go first. I learned something awesome from you, Todd, which I have not thought of before, which is if I am eyeballing for “contrast,” especially color contrast, that's not necessarily what that means. I really appreciate learning that and we'll definitely be applying that in my daily life. [chuckles] So thanks for teaching me a whole bunch of things, including that. TODD: You're welcome. JOHN: I think for me, it's just the continuing reminder to – I do like the thinking that, I think Mae have brought up and also Todd was talking about earlier at the beginning about how we're all of us temporarily not disabled and that I think it helps bring some of that empathy a little closer to us. So it makes it a little more accessible to us to realize that it's going to happen to us at some point, at some level, and to help then bring that empathy to the other people who are currently in that state and really that's, I think is a useful way of thinking about it. Also, the idea that I've been thinking through as we've been talking about this is how do we get the ball rolling on this? We have an existing application that's 10 years old that's going to take a lot to get it there, but how do we get the process started so we feel like we're making progress there rather than just saying, “Oh, we did HTML form 27 out of 163. All right, back at it tomorrow.” It's hard to think about, so feeling like there's progress is a good thing. TODD: Yeah, definitely and as we get older, our eyes, they're one of the first things to go. So I'm going to need assistive technology at some point so, yeah. And then what you touched upon, John. It may be daunting having to go back and do the whole, “Okay, what are we going to do for accessibility now that this project, it's 10 years old, 15 years old?” The SAAS project that I was talking about, it was 15-year-old code, .net. I got people together; one from each department. We all got together and we ended up making that product accessible for them. So it can be done. [laughs] It can be done. JOHN: That's actually a good point. Just hearing about successes in the wild with particularly hard projects is a great thing. Because again, I'm thinking about it at the start of our project and hearing that somebody made it all through and maybe even repeatedly is hard. TODD: Yeah. It's not something that once it's done, it's done. Accessibility, just like the web, is an ever-evolving media. MANDY: For me. I think my reflection is going to be, as a new coder, I do want to say, I'm glad that we talked about a lot of the things that you see that aren't currently accessible that can be accessible. One of those things is using alt tags and right now, I know when I put the social media posts out on Twitter, I don't use the alt tags and I should. So just putting an alt tag saying, “This is a picture of our guest, Todd” and the title of the show would probably be helpful for some of our listeners. So I'm going to start doing that. So thank you. TODD: You're welcome. I'm just reminded of our talk and every talk that I have on a podcast, or with anybody just reminds me of the work that I have to do and the work that is being done by a lot of different people, other than myself as well, as far as advocacy goes in that I don't think it's ever going to be a job that will ever go away. There will always be a need for accessibility advocacy for the web and it's great just to be able to sit down and talk to people about accessibility and what we need to do to make the web better and more inclusive for everybody. Because I tweet out a lot, “Accessibility is a right, not a privilege,” and I really feel that to my core because the UN specifically says that the internet is a basic human and I went as far as to go say, “Well, so as an accessibility of that internet as well.” So that is my reflection. MAE: I'll add an alt tag for me right now is with a fist up and a big smile and a lot of enthusiasm in my heart. MANDY: Awesome. Well, thank you so much for coming on the show, Todd. It's been really great talking with you and I really appreciate you coming on the show to share with us your knowledge and your expertise on the subject of accessibility. So with that, I will close out the show and say we do have a Slack and Todd will be invited to it if he'd like to talk more to us and the rest of the Greater Than Code community. You can visit patreon.com/greaterthancode and pledge to support us monthly and again, if you cannot afford that, or do not want to pledge to help run the show, you can DM anyone of us and we will get you in there for free because we want to make the Slack channel accessible for all. Have a great week and we'll see you next time. Goodbye! Special Guest: Todd Libby.

The Bike Shed
309: Naming the Change

The Bike Shed

Play Episode Listen Later Sep 21, 2021 35:28


Steph talks about a new GitHub feature and Twitter account (@RubyCards (https://twitter.com/RubyCards)) she's really excited about and Chris talks about his new job as a CTO of a startup and shifting away from writing code regularly. GitHub (https://docs.github.com/en/codespaces/developing-in-codespaces/web-based-editor) RubyCards (https://twitter.com/RubyCards) Resilient Management (https://resilient-management.com/) The Manager's Path (https://www.amazon.com/Managers-Path-Leaders-Navigating-Growth/dp/1491973897) Transcript: CHRIS: Oh God, my computer is so stupid slow. I need a new computer. STEPH: Come on, little computer, you can do it. You know you could just buy a new one. You don't have to wait for the fancy-schmancy M1. CHRIS: I want to wait for the fancy. I want it so bad. STEPH: [laughs] CHRIS: Do you know how long I've had this computer? And if I can hold out one more month, I want the fancy stuff. I've waited this long. Why would I give in now when I'm right on the cusp of victory? STEPH: One more month. I'm going to send you...as a kid, did you ever make those construction… CHRIS: Oh yeah. STEPH: They look like chain links bow construction paper. So we would make those for a countdown to special days. I'm going to send you one that's all crumpled and folded in the mail. It would be delightful. And you'll be able to snip off a little chain each day as your countdown to your new fancy-schmancy. [laughs] CHRIS: I love it. Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Chris Toomey. STEPH: And I'm Steph Viccari. CHRIS: And together, we're here to share a bit of what we've learned along the way. So, Steph, what's new in your world? STEPH: Hey. Well, I just got back from vacation. So getting back to work is what's new in my world. And vacation is nice. I miss it already. But it's also nice to be back, and see everybody, and see what they've been up to. CHRIS: I've heard wonderful things about vacation. STEPH: Yeah. Have you had one recently? I know you've been quite busy. CHRIS: I have. I think it's hard to tell, especially because everything just kind of blends together these days. But I think I took off a few days recently. I haven't had an extended vacation since much earlier on in the summer, I think. And so I think I'm due for one of those sometime in the not too distant future. But it's one of those things where you got to plan it. And you got to think ahead, and I haven't been doing that of late really with anything. So kind of living for the moment, but that's not how you take a vacation. So I got to rethink some strategies here. [chuckles] STEPH: Yeah, I've been trying to schedule more vacation time just further out. Because then if I don't want to take it, like if I decide that I don't want the staycation or I don't need the day off, then I can just change my mind, and that's pretty easy to do. But I'm like you; if I don't plan it, then I don't feel like I have the energy to plan a vacation, and then it just doesn't happen. So I know that's one thing that I've been doing. I've also been mentoring or coaching others, just checking in with them to say, "Hey, when's your next vacation? Have you scheduled any days off? Do you want to schedule a day off next month?" And saying that to other people has also been a very helpful reminder to me to do so. CHRIS: Oh, I like that a lot as a recurring one-on-one question of, so what can you tell me about vacation? What do you got in the works there? Because that's the most important thing, [chuckles] which it kind of is. It's the way that we keep doing the work that we do. STEPH: And I think so many people just haven't been taking a vacation. I mean, in 2020, we were all locked in and going through a pandemic, so then a lot of people weren't taking those breaks. And so part of it is just reminding people that even if you can't go somewhere, still please take some downtime and just know that you can step away from work and should step away from work. But for us, we did go somewhere. So we went out to Seattle, which I've never...I've been out to the West Coast, but it's more like I've been out to L.A., Santa Monica. But this time, we went to the Northwest region. We went to Seattle, and we explored and did a lot of hiking and camping around the Northern Cascades and then Mount Rainier. And both of those are amazing. And I've never flown with camping gear, but that went really well. It worked out nice. We had an Airbnb every so often just for showers and having a roof over your head. That's really nice. But for most of the trip, we did a lot of camping and hiking. CHRIS: That sounds like an awesome trip. STEPH: Yeah, it was really cool. I'd love to go back to the Olympic National Park because there are just so many national parks that are around Seattle and in Washington that we couldn't begin to do it all. But Olympic National Park is still on my list. And I'm really grateful to have also seen the Northern Cascades and Mount Rainier. But switching gears a bit, I have something that I'm really excited to share with you because I don't think you've seen it yet. I'm excited to find out if you have. But it's a new GitHub feature that came out, I think about a month ago, but there doesn't seem to have been much fanfare from GitHub about announcing this new feature. And I happened to find out through Twitter because someone else found it, and then they were really excited. And so now I think it's really gaining some more traction. But it still seems like one of those sneaky feature releases, but it's really cool. So GitHub has added the ability to open up a web-based editor that allows you to view the source code for a repo, view it in syntax, highlighting, make a code change, and commit the change. And it's free for everybody. And there's a couple of ways to get there, but I'll pause there. Have you seen this yet? Have you interacted with it? CHRIS: I think I've seen it and poked around ever so gently with it. I want to say this is GitHub Codespaces. Is that the name of this feature? STEPH: Yep. That's it? CHRIS: Yes. I poked around with it just a tiny bit, and I'm very excited about it. But it's very much in the like, huh, okay, cool; I'll look at that someday down the road and figure out what I want to do with it. But have you actually dug into it particularly deeply? STEPH: I used it to make a change for a personal project, just because I wanted to see the whole flow. So I went to a personal project, and there are two ways that you can open it up for anyone that hasn't seen this yet. So you can either press the period button that's on your keyboard, and that will open it up, or you can just alter the URL. So instead of github.com, replace that .com with .dev, and then that will also open up the browser. And so I made a change to a personal project, and it worked really well, and it commits the change to main. And it was nice. It was easy. In my case, I was just making a change to make a change. I think I actually went to an older project where I was still using the underscore target to force users that when they clicked on a link that it opened a new tab, and I was like, perfect. This is a good thing to just change. And I could do it from my iPad. I didn't have to be at my computer. And it was really nifty. I was very impressed with it. And they also mentioned that it's very easy to integrate your own VS Code settings and environment. I'm not a heavy VS Code user, so I haven't tried that. But I've heard really positive things about how easy it is to sync your settings between your local VS Code and then GitHub's editor. But overall, it was really easy to use. CHRIS: That's super cool. My very limited understanding of it is like GitHub has had the ability to edit files and things like that for a while. But it was very much like a simple web editor where it's a big text box that happens to contain the code. And they've added some stuff for like browsing with syntax highlighting and even some context-aware show usage and things like that. But as far as I understand it, this is like a whole VS Code instance in the cloud that is running it. And then I think what you're saying about you can have your VS Code settings in there, but even your project settings and the ability to run the tests, I'm not sure where the edges of it are. But my understanding with Codespaces it's like this is how your team can develop. Everyone gets one of these Codespaces. You're developing in the cloud. But it does VS Code remote sync type stuff. I'm very intrigued to see where it goes and that idea of...obviously, I like Vim. That's the thing that's probably known and true about me. So I will probably be one of the later adopters of this. But the idea of being able to bottle up the development environment for your projects and have those settings, and the ability to run the test and all of that packaged up as part of the repository, and then allow people to run with that, especially in the cloud, and be able to carry that with them as they move around, that's really intriguing. And the idea of having this very easy on-ramp, especially for open-source projects and things like that. If you want people to be able to contribute easily but with the linting, and the configuration, and the settings, and all the stuff, well, now you can have that packaged up. And that is very interesting to me. So I'm super intrigued to see where it goes. Again, I will probably be one of the later adopters of this platform for reasons. But I am super interested, and I continue to like...the work with VS Code is so interesting in the way it keeps expanding out and the language server stuff and now the Codespaces stuff. And it's super interesting developments across the board. STEPH: Yeah, I'm with you. I don't actually see this replacing my current development that I do day-to-day, but it's more generally nice to have access. So if I needed to make a change and I don't have my laptop or if it's just something small and I don't want to have to go through…I guess essentially, if I don't have my laptop, but I wanted to make a change, then I could do this realistically from something that doesn't have my full local dev setup. I don't know if you have the ability to run tests. I didn't explore that far as to whether you can actually have access to run those types of commands or processes. I did see some additional notes while reading through GitHub's documentation about this new editor. And they included some notes that talk about how the editor runs entirely in your browser's sandbox. So it doesn't actually clone the repo, but instead, it loads your code by invoking the services API directly from the browser. So then your work is saved in the browser's local storage until you commit it, and then you can persist your changes by then committing it back to the repo. And because there's no associated compute, you won't be able to build and run your code or use the integrated terminal. Ah, I think that actually answers the question about running tests. So only a subset of extensions can run in the web will appear in the extensions panel and can be installed. So this does impose certain limitations for particular programming languages and full functionality, things that we may need like running tests. CHRIS: Interesting. That now puts it back more on the uncanny valley for me where it's like, oh, it's just VS Code, except it can't do a bunch of the stuff. So yeah, I'll probably be hanging out in Vim for a while. But again, I'm super interested to see where they can push this and what the browser platform allows, and then how they're able to leverage that and so on and so forth. STEPH: There is one flow that I was testing out because I was reading someone else mentioned that not only can you use this for looking at source code and then changing that source code but also for a pull request. And so I went to a pull request and changed the URL to dev. And I do have the ability to make changes, but I'm not quite sure if I could commit my changes and if that would go to the branch or how that would work. It wasn't obvious to me how I could save my changes. But it was obvious to me that I could make changes. [laughs] So that part feels weird to me, and I will have to test that out. But I'm going to wait until I have my own PR before I start fooling around [laughs] so I don't ruin somebody else's PR. CHRIS: Ideally, the worst case is you just push commit to a branch, and commits are reversible. You can throw them away. You can reset, and you can do all sorts of stuff. But I agree with you that maybe I'll do this on my home turf first before I start messing around with somebody's PR. STEPH: That way, someone doesn't reach out to me and say, "Steph, what is this commit that I have on my PR?" And I'm like, "Oh, I'm just testing." [laughs] But that's something that I was excited to talk about and share with you. What's new in your world? CHRIS: Well, what's new in my world? I think we've talked about this a little bit, but to give a little bit of context on what's new in my world, I joined a startup. I am now engineer number one. I'm also CTO, a very fancy title, but again, I'm the team of one, so count it as you will. But we do have some consultants working with us. So there is a small team that I am managing, and very quickly, I found myself shifting away from the code or having to balance that trade-off of maker versus manager time. Like, how much of the time am I actually coding and shipping features versus managing and communicating, and trying to figure out the work to be done and triaging the backlog? And all of those sorts of things. I've also just been coding less, and I think that's a trend that will almost certainly continue, and I'm intrigued by that. And that's a thing that I want to poke at just a little bit. And then I've also noticed that my work has become much more reactive than it used to be, where there are lots of things in Slack. And there's stuff that I'm kind of the only person that can do certain things because I have certain access levels and yadda yadda. And I want to make sure other folks aren't blocked. So I'm trying to be as responsive as possible in those moments. But I'm also struggling with that that trade-off between reactive versus proactive. My ideal version I think of the work is gather all of the information, all of the different permutations, and what are all the features we want? And then I think about them holistically, and then I respond once solidly as opposed to little one-off interactions and things like that. So there are just a lot of subtle differences. And I think there are trends that will continue. And so I'm trying to just take a step back, observe them from a distance and say, "How do I feel about these?" But probably most interesting to me is the moving away from code. Have you noticed that at all in your work? Or is that something you've thought about, something you'd be interested in, opposed to? How do you feel about that space in the coding world? STEPH: That is a wonderful question. It's one that I have wrestled with for a while because I really love my current position. I love being a team lead because I feel like there's this wonderful balance between where I get to code a lot of the time, but then I also get to learn how to be a manager, and help those around me, and provide some coaching or mentoring or just help people find the resources that they need essentially. And I really like that balance. That feels like the right balance to me, where I still get to grow in both areas. But then, as you'd mentioned, it still feels like one tries to take over the other with time. Like you find that more responsibilities are growing as CTO of the company. And so you feel more responsible to do more of the managerial task or unblocking others and taking on that role, and then that reduces your time for coding. And I often find myself in that space where I think it's just how I'm wired. I'm very interested and empathetic towards how people are doing and how they're feeling. So I'm always looking for ways to support others and to help unblock them and make sure that they're having a very positive experience with our project. And so then that may mean I'm coding less because then I'm more focused on that. But then, it's still also a very valid part of my job to code. So finding the right balance between those is frankly hard. To answer your other question, I don't think I want to give that up. I've considered for myself if I'm going to head towards more of a manager path, and I'm going to reserve the right to change my mind. But currently, I still like maintaining most of my individual contributor status with a dash of management sprinkled in there and then some responsibilities for making sure that the team is doing well and that people are enjoying their work. Along that line, as I've been having conversations with others around, tell me more about your job as a manager, and what does that look like? What responsibilities do you have? How much coding do you still get to do? There have been a couple of books that have been recommended to me that really help someone define are you interested in management? Is that a place that you see yourself going? This is really an honest look at what it means to be a manager. The fact that a lot of your fulfilling work isn't necessarily work that you get to produce, but it's actually helping someone else produce that work and then getting to see them succeed. That is your new fulfillment or a big part of it. So you are losing that closeness of being a maker,, but instead, you are empowering someone else to be the maker, and then that becomes your win. And that becomes an indication of your success. Versus as an individual contributor, it's really easy to see our wins in a different light: how many tickets have we addressed? How many PRs have we reviewed? That type of work. So there is an interesting dichotomy there, and I can't remember the books off the top of my head, but I will find them and I'll add a link to them in the show notes. CHRIS: Yeah, definitely interested to see the book recommendations. And generally, yeah, everything you're saying makes sense to me. I think I'm somewhat on the adventure right now. I very much intentionally chose this, and I want to lean into it and explore this facet of the work and doing more of the management and leading a team. But I have to accept that that comes with letting go of some of the individual contributor parts. And I was coding a bit over the weekend. I was just rediscovering the flow of that. And I was like, oh yeah, I really like this. Huh, that's interesting. What am I going to do with that? But I think, again, it's an exploration. And there are facets of both sides that I really like. And I've spent a lot of time deeper in the individual contributor side. And I've explored the manager side somewhat but not quite as much. And so this is very much about that I want to push on those edges and try and find what feels true to me. So the moving away from code and then moving more into management, I think I like that overall. Although I know there's the small amount in the back of my head that I'm like, I know there's a cost there. That is a trade-off. And so do I find more time in my evenings and weekends to do personal coding projects and things like that just to have that enjoyable work for myself? The maker versus manager stuff is interesting, though, where my day is now split up into smaller pieces. And even if I'm not coding, there's still writing up docs, or there are things that still require structured blocks of time. And my day is now just sprinkled with other things. And so trying to find that heads down of I want to just do the work right now, and I want to think hard about something is just fundamentally harder to do with more meetings and things speckled throughout the day. So that's one that I think I just don't like overall. But it's sort of a trade-off inherent to the situation. So I think there's also a version of trying to be intentional about that and saying, you know what? I need some heads-down time. And so Tuesday and Thursday afternoons those are going to be mine. I'm going to wall those off on my calendar and try and protect that time so that whatever necessary heads-down work that I need to do this week fits into those blocks of time and then fit the rest of things around that. But I think I have to make that intentional choice to do that. Mid-roll Ad And now we're going to take a quick break to tell you about today's sponsor, Orbit. Orbit is mission control for community builders. Orbit offers data analytics, reporting, and insights across all the places your community exists in a single location. Orbit's origins are in the open-source and developer relations communities. And that continues today with an active open-source culture in an accessible and documented API. With thousands of communities currently relying on Orbit, they are rapidly growing their engineering team. The company is entirely remote-first with team members around the world. You can work from home, from an Orbit outpost in San Francisco or Paris, or find yourself a coworking spot in your city. The tech stack of the main orbit app is Ruby on Rails with JavaScript on the front end. If you're looking for your next role with an empathetic product-driven team that prides itself on work-life balance, professional development, and giving back to the larger community, then consider checking out the Orbit careers page for more information. Bonus points if working in a Ruby codebase with a Ruby-oriented team gives you a lot of joy. Find out more at orbit.love/weloveruby. STEPH: Your mention of having more meetings really resonates with me. And it also made me think of a recent episode of a new TV show I just started watching. Have you seen the TV show called Schmigadoon!? CHRIS: I have indeed. STEPH: Okay. We need to have a whole conversation about Schmigadoon! in an upcoming episode. I'm very excited about this show. It's delightful. [laughs] There's a particular line that Keegan-Michael Key says that I just love so much where he says that he became a surgeon because he wanted to help people without talking to people. And I was like, oh, that's a developer. [laughs] I'm the same way. And I really enjoyed that. Although I do like talking to people but still, it just made me think about when you're talking about more meetings and then increasing the amount of talking that needs to be done as you progress into more of a management role. Also, circling back, I really like what you said earlier about you're noticing the changes that are happening. You're letting those changes happen, and then you're reflecting on how you feel about it. I really like that approach. Do you think that's working well for you? Does it feel too loose because then you don't feel in control enough of those changes? Or do you actually feel like that's a really good way to explore a new role and then find out if you like those changes? CHRIS: Now that you are restating it back to me, I'm like, oh yeah, I guess that is a good way to do things. But to clarify, I'm not doing nothing with it. I am trying to proactively, where I can, structure my days and do things like that or recognize that right now, I'm probably not the right person to be moving code along. And so I'm saying okay, that is true. And I'm actively choosing to not pick up the bigger pieces of work or to pair with someone else so that they can then run with it but not having me being the person that owns it. So it's not completely letting it happen, but it is almost like meditation to invoke that idea of I'm observing that I'm having these thoughts, and I'm just going to let them go. And it's more about the thinking and the response to it. So I'm trying to name the thing and be like, oh, this is interesting that this is happening. And I'm noticing an immediate visceral reaction to it where it's like, you're taking away my coding? And I'm like, well, hey, it's not them, it's you; you chose to do this. But let's just spend a minute there. That's okay. How do we feel about this? And so it's trying to not have it be a purely reactive response to it but have it be a more intentional, more thoughtful, and more observing, and then giving it a little bit of time to ruminate and then see a little bit more what I think. And also, some of it is purposefully pushing myself out of my comfort zone. I think I'm happy, and I do a reasonable job when I'm the person moving the code along. But I also have really enjoyed being at the edge of an engineering team and working with sales or working with other groups and facilitating the work that's happening. And so, if I explore that a little bit more, what's that going to look like for me? So this period of my career, I'm very intentionally trying to do stuff that I'm like, well, this is a little bit different for me, or this is stretching a little bit, but that is the goal. And I hope good things will come out of it across the board. But it may be that I find like, you know what? Actually, I really miss coding, and I need to find a way to restructure that. And I have seen examples of individuals who are even in CEO positions that are like, no, no, no, I still make some time to code. Like Amir, the founder of Todoist talks regularly about the fact that he is a CEO who still codes. And that organization has a very particular approach to work. And they're very much about async remote, et cetera. So having these blocks of times and being intentional about how they work. So it's not surprising that he's been able to do that and a purposeful thing that he's structured. I don't think that will make sense for me immediately. But I could see a version down the road where I'm like, this is who I am. I need to get this thing back. But for now, I'm purposefully letting it happen and seeing how I feel from there. Also, as I'm saying all of this, it sounds like I'm totally on top of this and really thinking it through. I'm like, no, no, no, this is in the moment. I'm noticing some stuff and being like, oh, okay, well, that's interesting. And some of it I intentionally chose. Again, intentionally chose to get out of my comfort zone. So I think I'm just actively out of my comfort zone right now and saying things about it. And then I think I'm telling the story of how I want to respond to it moving forward but not necessarily perfectly achieving that goal immediately. STEPH: I think that's a nice representation of essentially how you and I have processed things. We've highlighted before that you and I...it's funny, I just made the joke about not talking to people, but it's how I actually process stuff. And the best is when I'm talking out loud to somebody else. And so it totally makes sense that as you were noticing this and reflecting on it, that then this is another way that you are then processing those changes and reflecting on it and thinking through is this a good change? Is it something that I'm going to enjoy? Or am I really going to miss my street coding creds? I need to get back to the editor. CHRIS: I just need that precious flow state that comes from drinking some Mountain Dew and coding for hours. STEPH: Do you drink Mountain Dew? CHRIS: No, I gave it up years ago. STEPH: [laughs] CHRIS: I don't drink soda broadly. But if I'm going to drink soda, it's going to be Mountain Dew because if we're going to do it, let's do this thing. I'm pretty sure that stuff is like thermonuclear, but that's fine. STEPH: [laughs] That's funny. I know we've had this conversation before also around Pop-Tarts where you're like, hey, if I'm going to have a Pop-Tart, I'm going to have the sugariest (Is that a word - sugariest?) Pop-Tart possible. CHRIS: To be clear, that means it has icing on it because some people in the world, namely you, would prefer the ones without icing. Although we recently learned that the ones without icing have a higher fat and calorie content, so I don't know. The world's murky. I wish it were all just clear, and we could just work with it. But it turns out even Pop-Tarts icing versus not is not a simple question. STEPH: It's a very simple question. You just need to be on the right side, which is the non-frosted side. [laughs] I can simplify this for you because fat is delicious. Fat trumps sugar; that's my stance. That's my hot take. CHRIS: I'm saying both, a little from column A, a little from column B. You got yourself a stew. STEPH: [laughs] You got a fat sugar stew. CHRIS: Yeah. That was in Arrested Development. All right, we're veering way off course now. [laughter] To bring it back, what you were highlighting of I'm definitely someone who thinks through stuff by talking out loud, and so it's been wonderful. I've learned so much about myself while talking to you on this podcast. I'll say something, and I'll be like, wait, I actually believe that thing I just said. This is fantastic. Now I can move forward with the knowledge that I've just gained for myself by talking about it on a podcast. So highly recommended: everybody should get a podcast. STEPH: Plus one. I also have a very real, maybe silly, follow-up question for you as we are, like you just said, exploring the things that we believe or not. My question for you is part of the transition to management and moving away from coding. Isere some fear in the back of your mind where you're like, if I stopped coding, I'm going to lose this skill? CHRIS: Honestly, no. And I feel kind of bad saying that because I feel like I should say, "Yeah, I feel like it'll fade away and whatnot." But I think I have an aptitude and an interest towards this work. And if I were to ignore it for two years, then frankly, I also know myself. And I'm still going to keep an eye on everything for a while. So I think I'll be aware of what's going on and maybe just haven't spent as much time with it. But I think if I need to two years from now, I'm like, all right, I got to rebuild my coding muscle. I'll skip a couple of JavaScript frameworks, which will be nice, and I'll be on to the 15th iteration that's new now. But I hope that I could revisit that not trivially, not with no effort. It's the wonderful nature of coding. It's one of the things that I love about it so much is that there are blog posts and YouTube tutorials. And it's so individually discoverable that I'm not really worried about that aspect. My concern, if anything, isn't so much that I'm going to lose my skills or not be able to code anymore; it's that I really enjoy coding. It's a practice that I find very enjoyable. A workweek is enjoyable when it contains big blocks of me putting on my headphones, listening to music, and digging into a problem, and then coding and producing a solution. And those tiny little feedback loops of test-driven development or running something and then going to the browser and clicking around like that, there's a directness there that has always really worked well for me. And so the more I'm abstracted away from that sort of thing, and the more of my work is I'm helping a team, and I'm directing strategy, or whatever it is, that just feels so indirect. And so I'm very interested to find out how I respond to that sort of thing. I've definitely enjoyed it in the past, and so that's why I'm intentionally leaning into it. But I know that I'm giving up a part of the work that I really love, and giving up is too strong of a word as well. I'm going to find what shape makes sense moving forward. And I expect I'll still be pairing with the other developers on the team and helping to define architecture and things like that. So it's not like it's 100% gone. But for now, I think the world where most of my week was spent coding is no longer the case. And so just naming that and being intentional about it. And yeah, that's the game. STEPH: Cool. Yeah, that makes a lot of sense. I was mainly interested in that question because that is a question that I've asked myself from time to time that I think I do have that worry that if I step away from coding for too long, then it won't be easy to jump back into. And I've talked myself out of that many times because I don't think it's true for all the reasons that you just said. But it is something that I have considered as like, well, if I take this leap of faith into this other direction, how easy is it for me to get back if I decide to change my mind and go back to being more of an individual contributor? And one other thing that weighs on me as I'm splitting my time between two areas that I really want to grow…So I'm constantly trying to grow as a developer. I'm also trying to grow as a manager, and I don't want to do a bad job at either. I want to do a great job at both, and that's frankly not always possible. And at times, I have to make trade-offs with myself around okay, I'm going to focus a little heavier this day or this week on being a really great manager or focus a little bit more on being a developer and to pick and choose those topics. And then that sometimes means doing like B+ work in one area, and that's really hard for me. I'm an A-work person. So even downgrading to a B+ level of effort is challenging. But I have found that that's a really great space to be because then I'm doing well in both areas, not perfect, but doing well enough. And often, that's really what counts is that we're doing well enough and still pursuing growth in the areas that are important to us. CHRIS: Yeah, I think that intentional switching back and forth between them is the space that I'm in. I expect my work will remain very technical, and I hope that that's true. And I think to a certain extent; I get to shape it and determine that. And so how much of it is strategy and planning and things like that? Versus how much of it is helping the team with architecture and defining processes as to how we code, and what are our standards, and what are our languages and frameworks and all of that? I expect I'm still going to be involved in the latter. And again, I think to a certain extent; I get to choose that. So I am actually interested to see the shape that both naturally the organization needs out of the role that I'm in. But also, what sort of back pressure I can apply and be like, but this is how I want it to be. Is there room for that, or is there not? And it's all an experiment, and we're going to find out. But personally, for me, I'm going to keep reading Twitter and blog posts every day, and I'm probably going to code on the weekends and things. So the idea of my coding muscle atrophying, I don't know, that one doesn't feel true. But we'll see what I have to say a year from now or after what that looks like. But I expect...this has been true of me for so long, even when I had an entirely different career that I was just reading blogs and other things all the time because this is a thing that deeply interests me. So we will see. STEPH: Yeah, I'm excited to hear how it goes. And I think there's something to be said for the fact that you are also a CTO that's very close to the work that's being done. So being someone that is very involved in the technical decisions and the code that's being written but then also taking on more of the management responsibilities. And that feels more of a shift where you still have a lot of your coding skills. And you are writing code day-to-day at least based on what you're saying, but then you are also acquiring a lot of these management skills to go along with it. Versus if someone were going into management and maybe they're at a really large company and then they are very far away from the development team. And they're focused on higher-level themes and discussions, at least that's my guess. But I'm very excited to hear more about your updates and how this experiment is going and to find out who is the true Chris? CHRIS: Who's the true Chris? That feels complicated. I feel like I contain multitudes. But yeah, you know what? I'm excited to find out as well. Let's see what's going on there. But yeah, so that's a grand summary of the things that are going on in my head. And I expect these are topics that will be continuing to evolve for me. So I think we'll probably have more conversations like this in the future but also some tech stuff. Because like I said, I don't know, I can't stop. Mid-roll Ad And now a quick break to hear from today's sponsor, Scout APM. Scout APM is leading-edge application performance monitoring that's designed to help Rails developers quickly find and fix performance issues without having to deal with the headache or overhead of enterprise platform feature bloat. With a developer-centric UI and tracing logic that ties bottlenecks to source code, you can quickly pinpoint and resolve those performance abnormalities like N+1 queries, slow database queries, memory bloat, and much more. Scout's real-time alerting and weekly digest emails let you rest easy knowing Scout's on watch and resolving performance issues before your customers ever see them. Scout has also launched its new error monitoring feature add-on for Python applications. Now you can connect your error reporting and application monitoring data on one platform. See for yourself why developers call Scout their best friend and try our error monitoring and APM free for 14 days; no credit card needed. And as an added-on bonus for Bike Shed listeners, Scout will donate $5 to the open-source project of your choice when you deploy. Learn more at scoutapm.com/bikeshed. That's scoutapm.com/bikeshed. STEPH: Yeah, that's actually the perfect segue as we were talking earlier about just ways that we're looking to grow as developers. And I saw something that I really enjoyed, and it's published by another thoughtboter. Their name is Matheus Richard. And Matheus runs a Twitter account that's called @RubyCards. And I don't recall the exact cadence, but every so often, Matheus will share a new snippet of either Ruby or Rails code and then will often present the information as a question. So I'll give you an example, but the highlight is that it teaches you something, either about Ruby or Rails. Maybe you already knew it, maybe you didn't. But it's a really nice exercise to think through okay, I'm reading this code. What do I think it's going to return? And then respond to this poll and then see how other people did as well. Because once the poll closes, then Matheus shares the actual answer for the question. So one example that I saw recently highlights Ruby's endless method definition, which was introduced in Ruby 3. So that would be something like def, and then let's say the method name is message. And then you have closing, but empty parenthes equals a string of "Hello, World." And so then the question is if you call that method message, what would that return? And then the poll often has options around; it would return "Hello World," or it's going to return a syntax error. It's going to return nil. And then it highlights, well, because of Ruby's endless method definition, this would return "Hello, World." And then I also saw a new method that I hadn't used before that's defined in Ruby's Hash class that's called store. And so you can use it calling it on a Hash. So if you have your hash equals and then curly brackets, let's say foo is equal to an integer of zero, then you can call hash.store and then pass in two arguments. The first argument's going to be the key. The second argument is the value. And then, that would essentially be the same syntax that we use for assigning a value to a hash. But I just hadn't actually seen the method store before. So there are fun snippets of Ruby or Rails code. A little bit of a brain teaser helps you think through how that code works, what it's going to execute, what it's going to return. And I really enjoy it. I'll be sure to include a link to it in the show notes so other people can check it out. CHRIS: Oh, that sounds fun. I hadn't seen that, but I will definitely be following. That's the word on Twitter, right? You have subscribing, subscribe and follow, smash that like button, all of the things. I will do all of the things that we do here on the internet. But I do like that model of the question and answer, and it's slightly more engaging than just sharing the information. So yeah, super interested to see that. STEPH: Yeah, I like the format of here's some code, and then we're going to ask you what does it return? So that way, you get a moment to think it through. Because if I read something and it just shows me the answer, my brain just doesn't absorb it. And I'm like, okay, that makes sense, and my brain quickly moves on. But if I actually have to think about it and then respond with my answer, then it'll likely stick with me a lot longer. At least we'll find out; that's the dream. On that note, shall we wrap up? CHRIS: Let's wrap up. The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes,; maybe as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. All: Byeeeeeeeeeee! Announcer: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

The Product Design Podcast
Jake Taylor - How soft skills can help advance your product design career

The Product Design Podcast

Play Episode Listen Later Sep 21, 2021 45:16


In this episode of The Product Design Podcast, Seth Coelen interviews Jake Taylor, a Principal Product Designer who lives just outside of Denver, Colorado. Jake has had experience in pretty much every single role you can imagine in the UI, UX, product design space, so he has loads of advice to share!During our interview with Jake, you will learn:

Software Social
Software Social University?

Software Social

Play Episode Listen Later Sep 21, 2021 36:47


Michele Hansen  0:01  This episode of Software Social is brought to you by Reform.As a business owner, you need forms all the time for lead capture, user feedback, SaaS onboarding, job applications, early access signups, and many other types of forms.Here's how Reform is different:- Your brand shines through, not Reform's- It's accessible out-of-the-box... And there are no silly design gimmicks, like frustrating customers by only showing one question at a timeJoin indie businesses like Fathom Analytics and SavvyCal and try out Reform.Software Social listeners get 1 month for free by going to reform.app/social and using the promo code "social" on checkout.Colleen Schnettler  0:51  So Michelle, how are things going with your book tour?Michele Hansen  0:54  So the book tour itself is going well, I did indie hackers build your SAS searching for SAS one end product? I just recorded another one. yesterday. No, no, no, today? No, that was I feel like I'm doing a lot with it. Because that's what says because I had I love it. Let's see yesterday, no Tuesday, I did a session with founder summit. And then I also had a call with someone about being on their podcast yesterday. That'll be in November, and then I've scheduled another one for October. And then I did another group session today. And then yeah, actually, it was when I got off of that and Mateus was like, you know what you just did? And I was like, What? Like, he was like, you just did consulting? And I was like, No, I did. Like cuz it was Yeah. No, I did. I was like, it wasn't personalized. It was just like a workshop and people asked like questions, like, I just, I just talked about the book. And I was like, No, it wasn't he was like, yeah, it wasn't like that. No, it wasn't. Um, yeah, I think I actually kind of need to like, Cool it a bit on the promotion stuff. Like dude, like, this week, I spent like two days this week, creating a Google Sheets plugin for geocoder Oh, it was so nice to like, be playing around with spreadsheet functions again, like, after doing all this like writing and then talking about this stuff I wrote like, it was very comfortable. It was much more comfortable than talking about.Colleen Schnettler  2:42  Like, I don't know, it was your happy was when you went Excel.Michele Hansen  2:46  It really is. Um, but actually, so I have another spreadsheet that doesn't have any fun functions in it is the number of books I have sold, adding up, you know. Okay. For 490 400Colleen Schnettler  3:03  my gosh, that's amazing.Michele Hansen  3:07  I know, it's so close to 500. And it's been so close to 100 500 for like days. And like, the other day, I was like, maybe I'm, like, tapped out the market for this at 490. Like, that's really good. Like the average book sells like 300. So like, that's really good. Um, and, yeah, so so I'm going to do like, I'm going to be on some other podcasts and whatnot. And like, I remember seeing once. Rob Fitzpatrick once, I think actually, it's in his new book. He has a graph of the revenue of the mom test and like, the growth of that book is I mean, a case in compounding.Colleen Schnettler  3:52  Okay, so, right. SoMichele Hansen  3:54  you know, it's not all like in the beginning, and like, there's really positive signs, like people are recommending to other people, people are writing reviews, like, so. So yeah, I feel good. But man, I really want to get to 500. I don't know, I haven't been thinking about the numbers very much. I mean, it's only six but like, I really, I really want to get to 500. I don't know why, like it's like getting to like, you know, 1000 or what it like that's that's not even like remotely like a possibility to me, like I don't even really think about it. But now it's like so close. And like that would be so awesome.Colleen Schnettler  4:25  I wager a guess that by the time this podcast airs on Tuesday, you will be at 500.Michele Hansen  4:31  That's only six more books. Maybe Maybe. And by the way, if people want a free copy of this of the book, so if you are listening, when it comes out on on Tuesday or Wednesday, transistor.fm is running a little giveaway on their Twitter account. I think Justin saw my like, I think 490 is all I'm ever gonna sell. Okay. And I was like, no. So they're giving away five copies of the book. You just have to go retweet the tweets about the book. So yeah, nice. Yeah. If you just go to the deploy wonderful,Colleen Schnettler  5:05  that'll help expand your reach.Michele Hansen  5:07  Yeah, it was interesting hearing that I was like helping you interview people on podcast. I'm like, Yeah, I guess you could. I mean, it doesn't have to just be for. for customers.Colleen Schnettler  5:19  Anyway, oh, yeah, your book applies to so much. So that's where the,Michele Hansen  5:23  that's that's where the book is. But I gotta say, I think I think I need to give myself a little break on promotion. Otherwise, I'm gonna, I'm gonna burn out on thatColleen Schnettler  5:33  for right now. Yeah, I was thinking about that when you were talking about like, how you're hitting it so hard. I was like, wait, Isn't this what happened with writing the book? And then afterwards, you're like,Michele Hansen  5:43  Yes, I have a pattern. Yes. way overboard. And then I exhaust myself.Colleen Schnettler  5:53  So maybe we should approach it like a marathon instead of a sprint? Yeah,Michele Hansen  5:57  I think so. I haven't scheduled anything for next week. So I don't have anything scheduled until the first week of October. So okay. Yeah, kind of just, yeah. So so you know, hopefully by the, you know, yeah. Bye. By the time I'm on again, because I'm off next week. I vacation. Yeah. Oh my god, dude, I'm going to American, I'm so excited. So happy for you. Okay, um, I can't wait to just go to Target and Trader Joe's anyway.Colleen Schnettler  6:34  So if you're not have target, and then we do notMichele Hansen  6:36  have target, we have a story that's inspired by target or like more like, inspired by Walmart. But like, it's just like, there's just nothing like getting a Starbucks and walking around target. You know, it's just true story. Anyway, um, what's going on with you?Colleen Schnettler  6:52  So I did quite a bit of work on simple file uploads. Since we last talked, I actually spent a good chunk of time doing some technical work, some cleanup work that needed to be done. But I have gotten the demo on my homepage. Oh, it's really exciting. Yeah,Michele Hansen  7:10  the like, code pen demo thing that we've been talking about for a while, right? Correct.Colleen Schnettler  7:15  Okay, instead of putting a code pen up, I actually just put a drop zone. So you can literally, if you go into my site, it just says drop a file to try it. And you can drop a file. Wait, so that is something I know. Right? So that's something I've been talking about doing for a long time, which I finally got done. So that's exciting. Yeah. And there was some other stuff with like the log on flow, that wasn't really quite correct. It wasn't wrong, it just wasn't really right. So I just spent a lot of time kind of getting that cleaned up. Oh, and the API for deleting events. So that was a real hustle for me, because I have someone who reached out to me, and they were like, Hey, we totally want to use your thing. But we have to be able to delete files, you know, from our software, not from the dashboard. And so that external forcing function of this potential customer just made me do it. And so I have that done. So I Oh, I feel now that I have like a completely functioning piece of software. Did they buy it? So that's exciting? Not yet. They claim that they're going to start their project like next month? I don't know if they will or won't, but we'd have developed kind of like, relatively frequent ish email communication and stuff. So I think it'll be good. Either way, it forced me to kind of do it. So I'm happy to have that because that is something I really wanted to do. Because I wanted to make sure I had that before I allow multiple uploads. So the question now Oh, and we had a huge I mean, a huge spike. We don't the site doesn't get tons and tons of visitors. But we had a huge spike in visitors because we're actually publishing content. Oh, yeah. So like things are I'm doing things. So that's exciting to get the documentation stuffMichele Hansen  9:03  done that we talked about.Colleen Schnettler  9:05  So I decided that it wasn't worth my time to completely rip out the documentation and redo it. So but I did go in there and try to take what I had, which as your to your point, I think last week or two weeks ago, is you said, you know, it's fine. It kind of looks like a readme like it's not beautiful, but it's functional. So I tried to make it more functional by adding more documentation. And then I hired a developer to write a blog post, I shouldn't say almost more like a tutorial, how to use this in react. So his article is up. So I've been putting a lot of content on the site the past week.Michele Hansen  9:41  You are on fire.Colleen Schnettler  9:44  I know girl, I'm feeling good. I mean, part of it is like hiring my own sister has been so good for me because she can call me on my bullshit, because she works for me, but she's also like my best friend. So she's like, just stop whining and just do it. I'm like, okay, I joke like she's part marketing expert part like life coach, like,Michele Hansen  10:06  it sounds like you've got the fire under you now.Colleen Schnettler  10:11  I do. I mean, I have not seen. Okay, so it's only been a week right. So we've seen an increase in the ticket people coming to the site. I have not seen any kind of great increase in signups signups are still. Well, actually, I have not seen a great increase in signups. But what I have seen is my file uploader hit 10,000 files uploaded this week, like people are using, right. Right. So what has happened is remember the beginning I was really concerned because all these people were signing up and then like 30% of the people were using it. So all those non users have turned. So the people who are paying me now are actually using it actively. So that's good. Yeah, that's really good. Yeah. So I'm not seeing an increase my MRR still bouncing around 1000. Again, nothing to sneeze at. Like, it's a good number. But I haven't seen any kind of great jumps. But I think part of that is because the people who aren't using it have left and then the people who are using it, you know, the people who have signed up or actually committed to using it.Michele Hansen  11:14  Right. But new people have not come in that have replaced the people have checked who have turnedColleen Schnettler  11:20  right, not really like a couple. But you know, at one point, I had three people paying me 250 bucks a month. Like That was pretty awesome that now I only have one personMichele Hansen  11:28  is that is that the the whale that we talked about that like wasn't using it and wasn't Replying to Your Yeah.Colleen Schnettler  11:33  So I've had three of those people come in and come out. One is still there. Again, not using it not responding to emails. But I'm not trying to hassle them. So Alright, if that's what you wanted? Yeah. So I'm trying to figure out so I'm fit. I mean, the energy there is really good. And I feel like I've made a lot of I've done a lot of things. I haven't seen yet. The the response from that from a revenue standpoint, but I feel like if I just keep pushing in this direction, I'll get there. So I'm trying to decide what to do next. So why for so long, I had this list of things. And every time we talked, I felt like getting advice from you on what to do next wasn't really useful, because I hadn't even done the other things I was supposed to do. But now I have done the other things. So I'm trying to decide if you should focus on other ways to use it. So now that I have an API for deletion, I can open up multiple file uploads, which is kind of cool. I already do it for a client, like on the on the download secretly because I control their site, but I could. So I could write more content, showing people how to actually use it and like, and kind of go in that direction. Or I could make the UI more flashy and add a, like an image modifier editing tool, which would be kind of cool. Or I could, I don't know, that's what I got right now.Michele Hansen  12:58  What are you? What are your customers Asia doColleen Schnettler  13:01  my customer search. So we are trying to do another round of customer interviews. So I did, we offered a $25 amazon gift card. And we're going around to everyone who's actively using it to see if anyone wants to talk to us. So we are doing that we are trying to do and that was another thing. Like I'm kind of proud of myself, just because when we moved here, our schedule is so variable, I couldn't really get like solid work hours like this is when I can work. But we did send out those emails requesting customer interviews. So that is on the docket.Michele Hansen  13:34  Because like I could sit here and be like, Oh, yeah, like that sounds good. But like, Don't listen to me. Like I don't I don't know, like, you know, I have a question for you. That's kind of kind of a different topic, but I feel like you are so you're so enthusiastic right now. And I have to wonder whether working on stuff for your like, quote, unquote, day job, which was you know, the consulting before and then was the other company and now and now is Hammerstone like, like, I kind of have to wonder if like working on stuff during like work is likeColleen Schnettler  14:15  ifMichele Hansen  14:16  if that is working on something you're excited about during the day is energizing you for your side project because I just feel like the energy that I am hearing from you is like so much more than it has been before. Like you're just like,Colleen Schnettler  14:35  I fired up. I totally am Michelle, I someone had you know, all those there's always tweets like oh, all the things, the best decisions I've ever made in my life or you know, all that stuff. I saw one the other day and it was the two most important decisions you're going to make in your life are who you marry and what you do for a living. And I can tell I mean I'm literally for the first time in ever I'm in my late 30s first time in ever doing exactly what I have always wanted to do. And it's amazing. I mean, and the coolest thing is like the Hammerstone stuff. So I'm working on that I'm working with people I think are awesome. I go to sleep, and I wake up and my business partner has like, done this amazing stuff because he's just like cranking out code like a rock star. And I'm like, oh, Aaron's like, oh, while you were sleeping. I made this totally amazing thing. I'm like, glad I partnered with you, buddy. Because you know, what's up?Michele Hansen  15:32  Every day, Aaron has like some new like, thing. And yeah, who is he? When do you sleep? Like what he was? Was twins. Yeah, like newborn twins. Like not just twins, but like not like, born like, I mean, I guess babies do some kind of sleep a lot at weird times. Oh, gee, I don't know. And he has been jaw. There's also like, there's kind of the like, we want we launched you akoto when Sophie was four months old. And I feel like there was like this, we got this, like motivation from it. Because it was like, you know, she would go to bed at like seven or 730. And then, you know, we knew she was gonna wake up at like, midnight or two or whatever. But it was like, Oh, my God, we finally have two hours to ourselves. Let's use it as productively as possible. Like this thing I've been thinking about this whole time while I was changing diapers, I can do it now. Like, and it was weirdly motivating, and also incredibly exhausting, and a blur, but I don't know. Yeah, yeah. Aaron, like, dude, you're a machine?Colleen Schnettler  16:34  Yeah, it's so impressive. I think part of that too, might be you know, with that thing, if you only have three hours to do something like, you get that thing done in three hours. versus if you give yourself 30 days to do it. It'll take you 30 days. Yeah. But I think for me, I mean, my journey, you know, has been from a job, I didn't really like to all kinds of bouncing around doing different things, to learning how to code years ago, always the goal when I was learning how to code was to get to where I am right now. And I'm finally here. And it is super awesomely exciting. Like, I'm literally working with someone I have wanted to not, I mean, also Aaron, but like, not just him, working with someone I've always wanted to work with on something that's exciting. And it's like our business, I can't imagine a better knock on wood. I can't imagine a better work scenario for me. And I think that energy that comes from that scenario, absolutely bleeds into simple file upload, like, honestly, you know, a couple weeks ago, I was like, I should just sell it and be done with it. Like I was just kind of over it. And then hiring my sister really helped because she's really excited. And like, just having a higher level of energy in general, for this thing. It's been really fun. You know,Michele Hansen  17:50  I feel like I've heard you talk a little bit about how when you were first starting out, and then working as an engineer, like electrical engineer, rather. And you were like talking to people at work about how like, you know, they had all these like hopes and dreams when they got out of college. And then like, those things never happened. And then they were it was 30 years later, and they were just miserable. And you were like, Oh my god, I'm not like, I can't do that. And I like I wonder what was the moment when you realized that? Like, your solution to that was like learning how to code like, what made that happen? And but like, inspired you to not only realize that it was possible, but like, but then you acted on it, like?Colleen Schnettler  18:45  Well, I think part of it for me is I worked for a big, firm, a big company. And via I mean, that wasn't just like one of the middle managers that was like, all of the middle managers, right? Clearly these guys, they had started at 23 or 22, because they wanted to pay off college loans. They started working, it was a very comfortable job, right? They paid us well, we don't want to say we didn't work that hard, but we really didn't work hard. It was a lot of very bureaucratic, right, like lots of meetings, lots of organizing. And you know, before they know it, before they knew it, these guys were comfortable. And then they got married and they had kids and you know, most of them, their spouse stayed home. So then they felt that they were in this position where they were totally stuck. And they I mean, 30 years, I'm not exaggerating, like these guys had been there for 30 years. And they kind of it was just like this pervasive energy of like, real like, you know, the whole energy was just kind of like, everyone was just kind of bummed about their situation like no, it was sad, but they were definitely, like, felt the weight of this really boring job they'd done for 30 years. And so for me, it was really hard because like, again, it's so comfortable like they loved me. They paid me well. didn't have to, you know, wasn't all that stressful. But like my first of all, it wasn't hard at all, like your brain when you don't get to think or you don't get to be like, in you intellectually stimulated. It's just like murrah, blah, blah, blah. And I didn't know if I could, I mean, what I'm doing now has always been the dream. I couldn't see that eight years ago. Like, if you had told me I'd be doing what I did eight, I'd be here. Eight years ago, I would have been like, there's no way like, it felt like a freakin mountain to climb. I mean, like, it would never, I would never ever get there. And, I mean, I think a lot of it was just like, you know, obviously, all the work I put in seeing it as a vision I could reach and the community I was part of, and, you know, the communities I built along the way, but I couldn't see it. I mean, that's why, you know, I kind of make that parallel sometimes with what I'm doing now. Because like, back then I couldn't see I could not, couldn't see it. Like, just, I'm still amazed. And I can't see myself, my friend the other day, who has a business said, Oh, I think it's way easier to go from 1k to 5k. And I was like, I can't even see that right now. Like, that feels like a million dollars to me. And he's like, Oh, it's way easier to go from one to 5k than zero to 1k. And I was like, Really? So? I don't know. I mean, yeah, there's a lot there. Yeah, IMichele Hansen  21:23  was thinking about the other day, cuz I was talking to someone who, who has had a hard life, but it turned out that they, you know, I was talking to them about what they do. And you know, they're, and, and they, and they're like, Oh, you know, but I kind of know how to edit videos, and, you know, do some graphic design and stuff. And I was like, dude, like, if you have a little bit of technical competency, and like turnout, they've done like little bit of like Python stuff. I was like, run with that. But I realized, like, I didn't actually know where to, like, send them. Like I told him about, like, indie hackers and you know, other stuff. And I was, but I was like, I was like, I don't actually know, like, where to send you to, like, learn how to like code or like, no code. Like, I think I said, I told him about bubble. And like, I mean, it was worth the reason why like we do this podcast in the first place is to kind of like, demystify this whole thing about like running your own little internet company, which is still a weird job. And, like, show people that it's possible, I guess, um, and that, you know, they don't have to be in a dead end job or selling leggings as you are.Colleen Schnettler  22:38  Yeah, we watched the die.Michele Hansen  22:40  Lula documentary, we started it. I thought of you the whole time. Yeah, I really, I didn't even know where to send them. And it just got me thinking about your story. And it's like, you're in a dead end job. Like, not only like, like, what? I don't know, like, what was that? Like? What inspired you to be like, yeah, I have to do something about it. And here's what I'm gonna do.Colleen Schnettler  23:08  So I think for me, it was a lot of things happened at once. But it was I was at a dead end job where I had some real jerks that I worked with. And it was like, I don't have to put up with this. Like, I'm out. Yeah. And so then it was, it went when I decided to go back to work. They want to be back. I mean, they want to take me back with no, no interviews, like no hard shit, like, just come on back. And man, that was tempting, because the money is so good, was good. But I saw those guys, those guys were always in my mind, like the guys who never took a shot. And I was like, I'm not gonna, I'm not going to be that person who never takes a shot. But to your friends point. This is what is so hard about making this kind of career change. There is no roadmap. I mean, the reason people wanted to sell leggings is because they tell you what to do. Trying to like start a career in tech. There's literally no roadmap. There's no you. It's like, overwhelmingly hard. Not only everyone's like, oh, there's tons of resources on the internet. That doesn't help. There's too many resources on the internet. There needs to be a framework where it's like, here is where you go, this is what you need to do. Here are the steps. Yeah, because no one, everyone's journey is different. And there aren't any steps. And so what happens I see this all the time, because I mentor, some people that are trying to get into software, and they are totally lost, just like I was because there's no roadmap. There's no steps, like what do you do next? Like, sure, no code, what the heck do I make with a no code tool? Like what should I do? What are people going to pay for? How do I find those people? Like, it just feels like so nebulous? And I think that's why although you hear all these great success stories, I think that's why making the transition is so hard. And for me, I took a ridiculous pay cut for four years before I've now exceed my previous income but significant exceed.But, I mean, that was years. I mean, there was probably three to four years where I had taken this, I mean, you know, ridiculous paycut to rebuild, and not everyone makes it on the rebuilding stage, like, there's just so many stages, you can get stuck, and you just can't. It's just not it's just not knowing the path forward, like now that I'm speaking this to you, that would be useful to people like,Michele Hansen  25:37  where do you do? Yeah, like,Colleen Schnettler  25:38  Where do you think I'm thinking?Michele Hansen  25:40  Like, there's Okay, there's like, there's programming courses, you know, there's 30 by 500. Like, there's kind of all you know, there, there's zero to some, you know, our recalls book, but like, I mean, it's almost like, you know, there's so many things that go into it, and it's so nebulous, it's almost like you should be able to, like, go to college for starting an internet business, except you can't, because there's so many things that go into it. And like, so when you were so like you so so so let me understand this correctly. So you worked the dead end job. And then you quit, and you stayed home with your kids for a while. And then you went back to work. And then you did. So you didn't, and you decided you weren't going to go back there. And basically, it sounds like the real, like, the light bulb for you that you weren't going to do that was you know, your own self worth. It sounds like, um, and that you just couldn't do that to yourself. And you felt like you deserved better. But then so when you went back to work, did you get an engineering job? Like it like an electrical engineering job? And then like, did you learn to code at night or something? Like, how did you tackle this?Colleen Schnettler  26:56  Yeah, so I never went back to work. So the first thing I did back what this 10 years ago now, I wrote an iOS app. Because this was back in the day when people were making millions of dollars off of stupid iOS.Michele Hansen  27:07  Yeah, I was coming up in that era. And I think the most we ever made was 400 bucks a month.Colleen Schnettler  27:13  Right? This was maybe 11 1011 years ago. So I wrote an iOS app. And, you know, totally taught from scratch, there was only like one tutorial site at the time, all of this other stuff, treehouse, and all this stuff didn't exist. There was this guy, I think his name is Ray wonderlic. He had this iOS. And this was before Swift. So this is like Objective C days. I wrote an iOS app. I got it in the App Store. I made $65. And I realized I could make money on the internet. And then I was like, oh, okay, there's something here. This iOS stuff, though, is not the path because not only would I have to learn Objective C, that's decent, I then would have to learn all of these other things about like, building and selling an iOS app. And that is way too overwhelming. In the beginning, trying to learn how to code and learn how to run a business, these are not the same skill set, like learning these at the same time, when you come from a baseline of zero, I do not think it's a good idea. I kind of feel like you should pick one or the other. So being technical minded, I picked learning to code. So I literally started listening to every inspirational learning to code podcast I could find. And in one of the podcast, it was one of those real tech bro guys who's like, you could do it kinda like Gary, Gary, what's his name? It wasn't Gary, what's his name, but it was someone like that. Who was like you can do it, you know, you can start internet business. All you got to do is learn Ruby on Rails. So I was like, cool. So I started, what was the resource Back then, I think I got a book on Ruby on Rails and started building some apps. And I'm still, you know, I'm doing this at night, right? Because I still have the kids, I have three little kids at home, or maybe two at the time, I guess I only have two at the time. And then from there, Women Who Code had a bounty bug program, so they would pay you $75 to solve issues. And this was like, tremendous for me, because the $75 that doesn't sound like a lot now. Right? That was huge. Because that could pay for babysitting for like, hour. Yeah. So I mean, it would take me under these things would take me like 15 hours, I had no idea what I was doing. I mean, like, but that was tremendous. For me also finding social groups, like I got involved in some open source. And the social groups are tremendous. And by social, I mean, you know, on Slack, and from there, and from there, I ended up getting a job as a Rails developer. So it felt like clawing my way through a path that did not exist is what it felt like, right? There was no like, as an engineer previously, it was like, go to college get a job. There was no you know, the path was very clear. Where's the path here? It was like I started contributing this open source. I got so overwhelmed. I just stopped And like six months later, one of the guys just reached out to me individually and said, Hey, I see you took this issue on six months ago and you haven't solved it. Do you need help? And I was like, Yes, I need all the help. Like, I am so confused. I didn't know what I'm doing. So that guy who don't know don't keep in touch with no idea where he is in the world, but like, he was tremendous in helping me not to quit. Isn't that amazing hack someone that youMichele Hansen  30:26  don't know, over the internet just like shows up and is like, Hello, can I help you? And then you don't even keep in touch with this person or know them. But they had this like, massive v here without this influence on your life?Colleen Schnettler  30:41  I should, I should hunt him down. Be like, Hey, remember me?Michele Hansen  30:48  It's amazing.Colleen Schnettler  30:49  Yeah, it is. It is amazing. But I also think like, to this point, to your friend's point, and to me, like trying to get help my sister figure out what she wants to do for remote business. There's no path. I mean, it's so hard because you don't know what to do. Like people can work hard, I think motivated people. Absolutely. There's so many people who could change their career trajectories, because people will work hard for what they want. But when you don't know which vector Yeah, you know which direction to apply the work. You just spin around in circles, like I would love for there to be a better way to help people start internet businesses, because from our perspective, having done this for like, you know, eight years now, or whatever, it's like, oh, you just do this thing? And no, if you don't know what to do, just start with something. It's so even, I mean, everything is hard in the beginning, right? Like, how do you send emails?Michele Hansen  31:45  Like I we still don't send emails, so I don't know if I like we technically have tools.Colleen Schnettler  31:53  I think you could think of like now that I'm talking to you about this, like a fully encompassing course, Oh, my gosh, great new idea. Here, were to build out aMichele Hansen  32:02  course or something for like, for your, you know, learn to code instead of selling leggings, like you like that. Like, like that is like I feel like that is your like life's mission is to help.Colleen Schnettler  32:13  I know, right? All about going down. But here's the thing is, this is kind of my life mission. Yeah, but But the thing that I think I thought I'd make a course to teach people how to be a Rails developer. The thing is, it's really hard to learn software, well, like it's not going to happen. And here's my new thought, Oh, my gosh, it's just coming to me, you're not gonna learn software? Well, in six months, especially if you have, you know, if you're working during the day, you're just not this is not, you're not going to become a good rails developer in six months. So originally, I thought, my way was to help people learn to code. But I think what makes more sense, is actually to help people learn using probably no code tools, how to build online businesses, because that more aligns with the demographic of people I'm trying to help. Not how to learn to code, but like, how do you like cuz, you know, the joke is, every military spouse is a photographer, it's like the most prevalent, it's a very prevalent occupation. But teach these help these people learn how to like, build a site and send emails and use a no code tools. So they can you know, accept payments on their website and like basic stuff, so that people who want online businesses can still pursue what their individual passion is, because I'm finding like, I push people to try learn to code, a lot of people don't want to learn to code that's not their jam.Michele Hansen  33:36  You know, it reminds me of the something we say a lot. And then the sort of jobs to be done world is that nobody wants a quarter inch drill. They want a quarter inch hole so they can put a nail in it so they can hang a picture on their wall, right? Like learning Ruby on Rails like is not the end goal. The end goal is hanging the picture on the wall, which is building the business.Colleen Schnettler  34:02  Right? And if you want to have a real business, you got to know how to use the internet'sMichele Hansen  34:10  how to use the internet. I think my university like nothing, I think I looked into like, like, oh, like, Can I take like an HTML or like, whatever, like class, and there was literally class that was like, This is the internet, you will learn how to use a browser and I was like, and then then, and then everything else was like C Programming. I was like, This is not looking good. LikeColleen Schnettler  34:34  Yeah, Michelle. Think about this, though. You're absolutely right. Like, I approached it incorrectly thinking oh, I need to teach the world how to code. Well doesn't want to learn how to code world wants to make money doing something they're already passionate about, whether that is selling something they make or whether that is being a photographer or you know, running a home catering business. But that's what we could do. We could To help teach people how I mean, you could have a course. Okay, I have to learn I'm sure you know, no code. That's the whole point is it's not that painful, right? You could have a course that basically walked someone through how to use no code tools to set up a website where you can do things like accept money, and do things like send automated emails. Dude,Michele Hansen  35:23  Do either of us know how to use the new code stuff?Colleen Schnettler  35:27  No. Okay. But yeah,Unknown Speaker  35:29  I mean, we don't have time right now.Michele Hansen  35:31  When we put ourselves through, which is how to use No, you know, what I just realized? Is that like, you came into this conversation, like fired up, and then somehow you were even more fired up right now. And I didn't think that was possible.Colleen Schnettler  35:47  I love this though. I feel like I'm adding shalon Pauline University. We don't have time for it now. But we're so first social University. Oh, my gosh, that's coming.Michele Hansen  36:02  Um, well, before we get more, you know, ideas out there. Maybe we should wrap up also, for apparently a lot of people listen to this podcast while running. And I have been tagged in the fact that we're usually around 30 minutes is like people like great, I can go out and like, I know how long of a run that is. So we're already five minutes over, we usually plan for it. So.Colleen Schnettler  36:26  Alright, guys, it's because of all my great ideas. Well, IMichele Hansen  36:29  so I will see you in two weeks. So yes, yes, I will be drinking started wandering through target next week. So but I know Colleen has exciting plans and then we'll we'll talk to you later.

The Good Practice Podcast
263 — The Mind Tools Book Club: Moneyball

The Good Practice Podcast

Play Episode Listen Later Sep 20, 2021 39:16


Published in 2003, Michael Lewis' Moneyball charts efforts by the Oakland Athletics baseball team to use analytics and statistical methods to assemble a competitive team on a comparatively small budget. This week on The Mind Tools L&D Podcast, Ross G, Owen, Ross D and Nahdia share their thoughts on the book and it's relevance to L&D and HR professionals. We discuss: how General Manager Billy Beane transformed his team's approach to scouting talent the impact of statistics and subjective judgement on decision making the challenges inherent with implementing a statistical approach to L&D. Show notes Moneyball, by Michael Lewis, is available from all good booksellers. Some of the criticism directed at Moneyball is covered in The Atlantic: theatlantic.com/entertainment/archive/2011/09/the-many-problems-with-moneyball/245769/ For details of Mind Tools' 77-page workbook, 'Becoming a Positive Leader' - free to new members - visit MindTools.com. In 'What I Learned This Week', Owen discussed potential UI improvements to the Tesco loan calculator: chrisannetts.com/blog/tesco-loan-calculator  Nahdia discussed the colour of Sesame Street's Big Bird across different cultures: buzzfeed.com/natashajokic1/big-bird-international-colors  And Ross G revealed that he'd had a most epic morning listening to Hidden Citizens: hiddencitizens.com/  For more from us, including access to our back catalogue of podcasts, visit emeraldworks.com. There, you'll also find details of our award-winning performance support toolkit, our off-the-shelf e-learning, and our custom work. Connect with our speakers If you'd like to share your thoughts on this episode, connect with our speakers on Twitter: Ross Dickie - @RossDickieEW Owen Ferguson - @OwenFerguson Ross Garner - @RossGarnerMT (new handle!) Nahdia Khan - @_nahdia_khan

Enjoy the Vue
Episode 76: Enjoy the Interview with Laurie Barth

Enjoy the Vue

Play Episode Listen Later Sep 20, 2021 63:09


This week's episode is sponsored by Cloudflare Pages (https://enjoythevue.io/cloudflare-pages)! Laurie Barth, or Laurie on Tech as she is well-known in the dev industry, is a software engineer who started as a mathematician, currently working as a Senior Software Engineer at Netflix. Additionally, Laurie is a content creator and technical educator across various mediums. She is also a frequent conference speaker, speaking at events across the globe, and a technical blogger contributing to publications such as CSS Tricks, Smashing Magazine, and A List Apart, as well as an active member of the TC39 Educator's committee and a Google Developer Expert. In today's episode, we share some of our more memorable job interview experiences, both good and bad, but mostly terrible, and we dive into how those experiences could be improved upon, starting with the company setting realistic expectations for potential candidates from the beginning. We also touch on unnecessary and unfair technical demonstrations, the value of affording candidates the option to show themselves in their best light, and the inherent biases that exist when interview panels aren't diverse, and Laurie highlights the power that candidates actually have given the shortage of engineers making this appeal to listeners: take some of that power back! Tune in today for all this and so much more, including, of course, our weekly picks. Key Points From This Episode: Laurie shares a terrible technical interview that stands out from her experience. Why a generic interview format very rarely makes sense for any company. Why companies need to set their expectations at the beginning of the interview. The importance of recognizing how much time it takes to develop a technical interview. Why you can't steal an interview from elsewhere rather than writing one yourself. The value of judging what is important based on the signal a company is looking for. Alex talks about one of the more memorable (read: terrible) interviews he has been through. Ari reflects on a pair programming interview that she describes as ‘interesting'. The pressure that is put onto incoming developers to demonstrate their technical skills when it isn't necessary for the role they will fill. Laurie emphasizes why companies should be looking for someone to augment their team. Why it's not about working with people ‘smarter' than you, but people you can learn from. Laurie's frustration with the use of trivia questions and the benefits of offering candidates options to present themselves in their best light. Tessa's turn to share her experience with a terrible interview that featured live UI coding. The disconnect that exists between hiring managers, recruiters, and candidates. Laurie highlights the power that candidates hold given the shortage of engineers and urges listeners to take that power back. What Ari calls ‘douchebag alert' questions, how people answer, and what it says about them. The gender bias that typically exists when interview panels aren't gender diverse. Why it's important for team members to meet potential candidates and vice versa. Tessa shares the acronym, REACTO: repeat, example, approach, code, test, optimize. How interviews tend to cater towards those who are extroverted, outgoing, and talkative. Laurie highlights some positive interview experiences and what companies can do better. Alex shares a tip about asking the same question of everybody, such as “what is the focus of your company?” Tweetables: “People can't read your mind. You need to preface, you need to set your expectations at the beginning [of the interview].” — @laurieontech (https://twitter.com/laurieontech) [0:07:45] “I want to work with people who are smarter than I am, but here's the trip: everyone is smarter than I am. It depends what the measuring stick is and what category we're talking about.” — @laurieontech (https://twitter.com/laurieontech) [0:26:51] “The goal of an interview, in my mind, should be for people to show you what they know instead of what they don't know. If you're giving people options, you are giving them the opportunity to present themselves in their absolute [best light].” — @laurieontech (https://twitter.com/laurieontech) [0:29:59] “Right now, in this moment in time, unless you are an entry level candidate, the candidates have all the power. There's such a shortage of engineers. I would like to see people taking that power back a little bit.” — @laurieontech (https://twitter.com/laurieontech) [0:38:41] “Interviews, pretty much no matter what you do, will always somewhat cater to people who are extroverted and outgoing and talkative. The only way I challenge that is I think people who can't communicate about their code at all are probably not great engineers.” — @laurieontech (https://twitter.com/laurieontech) [0:48:47] Links Mentioned in Today's Episode: laurieontech.com (https://laurieontech.com) @laurieontech on Twitter (twitter.com/laurieontech) Fortnite (Windows, macOS, Nintendo Switch, PlayStation 4, PlayStation 5, Xbox One, Xbox Series X/S, iOS, Android) (https://www.epicgames.com/fortnite/en-US/home) LEGO (https://www.lego.com/) Wingspan (https://stonemaiergames.com/games/wingspan/) (Boardgame) Heal & Glow Facial Serum (https://www.shopplantbasedbeauty.com/shop-our-store/organic-heal-and-glow-facial-serum) How Not to Be Wrong (https://bookshop.org/books/how-not-to-be-wrong-the-power-of-mathematical-thinking/9780143127536), Jordan Ellenberg Special Guest: Laurie Barth.

SD-WAN 360
UX: How Humans Interact with Products

SD-WAN 360

Play Episode Listen Later Sep 17, 2021 49:26


UX: How Humans Interact with Products Great products generally overcome great design challenges. Users want products to be simple, eliminating the need for a lab guide or an operating manual. As a result, designers must think outside the box to make products easy to consume. For example, since the advent of the smartphone in 1994, its design has radically evolved over the years, adding applications that are easier than ever to use due to consumer demand. Across industries, enterprises are placing more and more emphasis on user experience (UX). But defining UX can be complicated. In this episode, we will demystify the term and cut through the tech talk so anyone can easily understand it. Our panel of design experts will share their unique points of view on the definition of UX, focusing on accessibility and ease of use, which have become industry standards for many products.  Additionally, our panel will do a deep dive into the design process, which spans the research phase and the collection of user pain points to scoping the end-to-end flow to troubleshooting.In this exciting episode, we will explore: ·       What is UX? ·       Why is product design and functionality so important?·       What's the design process and what does it encompass?·       How does VMware SASE assist with UX design?Support the show https://sase.vmware.com/resources/podcasts       Support the show (https://www.velocloud.com/sd-wan-resources/podcasts/sd-wan-360)

Illini Inquirer Podcast
Ep. 321 - Arrelious Benn

Illini Inquirer Podcast

Play Episode Listen Later Sep 16, 2021 33:47


Illini Inquirer's Jeremy Werner catches up with Illinois football great Arrelious Benn, who is returning to the UI campus for the first time since entering the NFL. Benn discusses his thoughts on returning to campus, first-year Illini coach Bret Bielema, seeing his former Illini coaches Mike Locksley and Ron Zook on the Maryland sideline. Then Benn discusses why he picked Illinois over college football powerhouses, how that impacted him, his highs and lows during his Illini and NFL career, plus his post-playing career. Learn more about your ad choices. Visit megaphone.fm/adchoices

This Week in Google (Video HI)
TWiG 629: Tastes Like Pikachu - Amazon's big raise, Instagram's impact on teens, update Chrome now!

This Week in Google (Video HI)

Play Episode Listen Later Sep 16, 2021 152:48


Facebook Knows Instagram Is Toxic for Teen Girls, Company Documents Show. Facebook sent flawed data to misinformation researchers. Instagram's Met Gala 2021 Table Took the Best Class Photo With Meg Thee Stallion, Saweetie & More. Announcing the 2021 Ig Nobel Prize winners. Intuit is buying Mailchimp for $12 billion to focus on small businesses. Ryan Reynolds and Will Ferrell posted their own take on TikTok's a cappella 'Grace Kelly' challenge. How to watch the Inspiration4 launch, SpaceX's first fully private mission to space. Amazon boosts hourly pay to over $18, to hire 125,000 workers. Amazon to pay full college tuition for front-line employees. Amazon Launches Its First TVs: Fire TV Omni Series with 4K Ultra HD. Amazon CEO Andy Jassy says it's 'hard to argue' its retail business is a monopoly. Amazon CEO Andy Jassy: 'It's still early days for us in media'. The next Big Tech battle: Amazon's bet on healthcare begins to take shape. Amazon gives Kindle e-readers a rare user interface overhaul. Update Google Chrome Immediately. South Korea Fines Google for Abusing Smartphone Dominance. Otherworldly 'time crystal' made inside Google quantum computer could change physics forever. Google's voice assistant in new EU antitrust investigation, MLex reports. Germany's 'sovereign cloud' is coming—and it's provided by Google. Google finishes laying a giant undersea internet cable stretching 3,300 miles from New York to the UK and Spain. Google hypes the Pixel 6 in Japan with bag of 'Google Original [Potato] Chips'. Google hosting 'Search On' 2021 keynote later this month. Hands-on with Google Assistant Driving Mode's long-awaited home screen UI. Google Photos will now ship individual prints directly to your door. Google search is finally officially getting dark mode on desktop. Area 120's 'Museletter' turns your Google Docs, Sheets, & Slides into paid newsletters. Google now lets you ask to join 'Pixel Superfans' with a simple sign-up form. Google One quietly adds 5TB storage plan for $24.99/month following Photos changes. Picks: Stacey - Luci for making power wheelchairs smart Jeff - 12 billion doses in arms are required to get the majority of adults vaccinated. We stand at about 5.5 billion & have been averaging 1 billion/month Jeff - Pixel Buds Series A Jeff - Back to the office Ant - Wanderers Photo Workshop Moved Ant - Dry Bar is Underrated and also Greg Morton Hosts: Leo Laporte, Jeff Jarvis, Stacey Higginbotham, and Ant Pruitt Download or subscribe to this show at https://twit.tv/shows/this-week-in-google. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: nureva.com/twit CrowdStrike.com/twit wealthfront.com/twig

This Week in Google (MP3)
TWiG 629: Tastes Like Pikachu - Amazon's big raise, Instagram's impact on teens, update Chrome now!

This Week in Google (MP3)

Play Episode Listen Later Sep 16, 2021 152:05


Facebook Knows Instagram Is Toxic for Teen Girls, Company Documents Show. Facebook sent flawed data to misinformation researchers. Instagram's Met Gala 2021 Table Took the Best Class Photo With Meg Thee Stallion, Saweetie & More. Announcing the 2021 Ig Nobel Prize winners. Intuit is buying Mailchimp for $12 billion to focus on small businesses. Ryan Reynolds and Will Ferrell posted their own take on TikTok's a cappella 'Grace Kelly' challenge. How to watch the Inspiration4 launch, SpaceX's first fully private mission to space. Amazon boosts hourly pay to over $18, to hire 125,000 workers. Amazon to pay full college tuition for front-line employees. Amazon Launches Its First TVs: Fire TV Omni Series with 4K Ultra HD. Amazon CEO Andy Jassy says it's 'hard to argue' its retail business is a monopoly. Amazon CEO Andy Jassy: 'It's still early days for us in media'. The next Big Tech battle: Amazon's bet on healthcare begins to take shape. Amazon gives Kindle e-readers a rare user interface overhaul. Update Google Chrome Immediately. South Korea Fines Google for Abusing Smartphone Dominance. Otherworldly 'time crystal' made inside Google quantum computer could change physics forever. Google's voice assistant in new EU antitrust investigation, MLex reports. Germany's 'sovereign cloud' is coming—and it's provided by Google. Google finishes laying a giant undersea internet cable stretching 3,300 miles from New York to the UK and Spain. Google hypes the Pixel 6 in Japan with bag of 'Google Original [Potato] Chips'. Google hosting 'Search On' 2021 keynote later this month. Hands-on with Google Assistant Driving Mode's long-awaited home screen UI. Google Photos will now ship individual prints directly to your door. Google search is finally officially getting dark mode on desktop. Area 120's 'Museletter' turns your Google Docs, Sheets, & Slides into paid newsletters. Google now lets you ask to join 'Pixel Superfans' with a simple sign-up form. Google One quietly adds 5TB storage plan for $24.99/month following Photos changes. Picks: Stacey - Luci for making power wheelchairs smart Jeff - 12 billion doses in arms are required to get the majority of adults vaccinated. We stand at about 5.5 billion & have been averaging 1 billion/month Jeff - Pixel Buds Series A Jeff - Back to the office Ant - Wanderers Photo Workshop Moved Ant - Dry Bar is Underrated and also Greg Morton Hosts: Leo Laporte, Jeff Jarvis, Stacey Higginbotham, and Ant Pruitt Download or subscribe to this show at https://twit.tv/shows/this-week-in-google. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: nureva.com/twit CrowdStrike.com/twit wealthfront.com/twig

All TWiT.tv Shows (MP3)
This Week in Google 629: Tastes Like Pikachu

All TWiT.tv Shows (MP3)

Play Episode Listen Later Sep 16, 2021 152:05


Facebook Knows Instagram Is Toxic for Teen Girls, Company Documents Show. Facebook sent flawed data to misinformation researchers. Instagram's Met Gala 2021 Table Took the Best Class Photo With Meg Thee Stallion, Saweetie & More. Announcing the 2021 Ig Nobel Prize winners. Intuit is buying Mailchimp for $12 billion to focus on small businesses. Ryan Reynolds and Will Ferrell posted their own take on TikTok's a cappella 'Grace Kelly' challenge. How to watch the Inspiration4 launch, SpaceX's first fully private mission to space. Amazon boosts hourly pay to over $18, to hire 125,000 workers. Amazon to pay full college tuition for front-line employees. Amazon Launches Its First TVs: Fire TV Omni Series with 4K Ultra HD. Amazon CEO Andy Jassy says it's 'hard to argue' its retail business is a monopoly. Amazon CEO Andy Jassy: 'It's still early days for us in media'. The next Big Tech battle: Amazon's bet on healthcare begins to take shape. Amazon gives Kindle e-readers a rare user interface overhaul. Update Google Chrome Immediately. South Korea Fines Google for Abusing Smartphone Dominance. Otherworldly 'time crystal' made inside Google quantum computer could change physics forever. Google's voice assistant in new EU antitrust investigation, MLex reports. Germany's 'sovereign cloud' is coming—and it's provided by Google. Google finishes laying a giant undersea internet cable stretching 3,300 miles from New York to the UK and Spain. Google hypes the Pixel 6 in Japan with bag of 'Google Original [Potato] Chips'. Google hosting 'Search On' 2021 keynote later this month. Hands-on with Google Assistant Driving Mode's long-awaited home screen UI. Google Photos will now ship individual prints directly to your door. Google search is finally officially getting dark mode on desktop. Area 120's 'Museletter' turns your Google Docs, Sheets, & Slides into paid newsletters. Google now lets you ask to join 'Pixel Superfans' with a simple sign-up form. Google One quietly adds 5TB storage plan for $24.99/month following Photos changes. Picks: Stacey - Luci for making power wheelchairs smart Jeff - 12 billion doses in arms are required to get the majority of adults vaccinated. We stand at about 5.5 billion & have been averaging 1 billion/month Jeff - Pixel Buds Series A Jeff - Back to the office Ant - Wanderers Photo Workshop Moved Ant - Dry Bar is Underrated and also Greg Morton Hosts: Leo Laporte, Jeff Jarvis, Stacey Higginbotham, and Ant Pruitt Download or subscribe to this show at https://twit.tv/shows/this-week-in-google. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: nureva.com/twit CrowdStrike.com/twit wealthfront.com/twig

Radio Leo (Audio)
This Week in Google 629: Tastes Like Pikachu

Radio Leo (Audio)

Play Episode Listen Later Sep 16, 2021 152:05


Facebook Knows Instagram Is Toxic for Teen Girls, Company Documents Show. Facebook sent flawed data to misinformation researchers. Instagram's Met Gala 2021 Table Took the Best Class Photo With Meg Thee Stallion, Saweetie & More. Announcing the 2021 Ig Nobel Prize winners. Intuit is buying Mailchimp for $12 billion to focus on small businesses. Ryan Reynolds and Will Ferrell posted their own take on TikTok's a cappella 'Grace Kelly' challenge. How to watch the Inspiration4 launch, SpaceX's first fully private mission to space. Amazon boosts hourly pay to over $18, to hire 125,000 workers. Amazon to pay full college tuition for front-line employees. Amazon Launches Its First TVs: Fire TV Omni Series with 4K Ultra HD. Amazon CEO Andy Jassy says it's 'hard to argue' its retail business is a monopoly. Amazon CEO Andy Jassy: 'It's still early days for us in media'. The next Big Tech battle: Amazon's bet on healthcare begins to take shape. Amazon gives Kindle e-readers a rare user interface overhaul. Update Google Chrome Immediately. South Korea Fines Google for Abusing Smartphone Dominance. Otherworldly 'time crystal' made inside Google quantum computer could change physics forever. Google's voice assistant in new EU antitrust investigation, MLex reports. Germany's 'sovereign cloud' is coming—and it's provided by Google. Google finishes laying a giant undersea internet cable stretching 3,300 miles from New York to the UK and Spain. Google hypes the Pixel 6 in Japan with bag of 'Google Original [Potato] Chips'. Google hosting 'Search On' 2021 keynote later this month. Hands-on with Google Assistant Driving Mode's long-awaited home screen UI. Google Photos will now ship individual prints directly to your door. Google search is finally officially getting dark mode on desktop. Area 120's 'Museletter' turns your Google Docs, Sheets, & Slides into paid newsletters. Google now lets you ask to join 'Pixel Superfans' with a simple sign-up form. Google One quietly adds 5TB storage plan for $24.99/month following Photos changes. Picks: Stacey - Luci for making power wheelchairs smart Jeff - 12 billion doses in arms are required to get the majority of adults vaccinated. We stand at about 5.5 billion & have been averaging 1 billion/month Jeff - Pixel Buds Series A Jeff - Back to the office Ant - Wanderers Photo Workshop Moved Ant - Dry Bar is Underrated and also Greg Morton Hosts: Leo Laporte, Jeff Jarvis, Stacey Higginbotham, and Ant Pruitt Download or subscribe to this show at https://twit.tv/shows/this-week-in-google. Get episodes ad-free with Club TWiT at https://twit.tv/clubtwit Sponsors: nureva.com/twit CrowdStrike.com/twit wealthfront.com/twig

Podcast Beyond - IGN's PlayStation Show
Deathloop Is a Masterpiece, and PS5 Gets a Major Update - Podcast Beyond Episode 717

Podcast Beyond - IGN's PlayStation Show

Play Episode Listen Later Sep 15, 2021 66:27


 On this week's episode of IGN's PlayStation podcast, Podcast Beyond!,  host Jonathon Dornbush is joined by Brian Altano, Lucy O'Brien, and Matt Purslow to discuss all the latest PS5 updates, PS5 games, and more. First, we discuss the release of the newest PS5 console exclusive, Deathloop, as we jump into Matt's Deathloop review and his overall thoughts about Deathloop's gameplay, world, and unique multiplayer. Jonathon, Lucy, and Brian also offer their Deathloop impressions, taking a look at what we've enjoyed about our early hours of the gameplay so far, and how it sits alongside other Arkane games. Plus, we jump into the news around the new PS5 update, and what this PlayStation 5 firmware means for both the UI and PS5 SSD expansion. We dissect a bit of how this opens the door to new PS5 hard drives from third-parties, the changes to how PS5 trophies are displayed, and our hopes for what other updates we might see to the PS5 UI. We also briefly touch on some updated news on Insomniac's Marvel's Wolverine, the new Marvel game from the Spider-Man developers, its mature tone, and what our early expectations are for it. Plus, we discuss some of the other PS5 games we've been playing, Matt shares a wonderful Memory Card story, and more.

Screaming in the Cloud
Security in the New Normal with Ev Kontsevoy

Screaming in the Cloud

Play Episode Listen Later Sep 15, 2021 44:18


About EvEv Kontsevoy is Co-Founder and CEO of Teleport. An engineer by training, Kontsevoy launched Teleport in 2015 to provide other engineers solutions that allow them to quickly access and run any computing resource anywhere on the planet without having to worry about security and compliance issues. A serial entrepreneur, Ev was CEO and co-founder of Mailgun, which he successfully sold to Rackspace. Prior to Mailgun, Ev has had a variety of engineering roles. He holds a BS degree in Mathematics from Siberian Federal University, and has a passion for trains and vintage-film cameras.Links: Teleport: https://goteleport.com Teleport GitHub: https://github.com/gravitational/teleport Teleport Slack: https://goteleport.slack.com/join/shared_invite/zt-midnn9bn-AQKcq5NNDs9ojELKlgwJUA Previous episode with Ev Kontsevoy: https://www.lastweekinaws.com/podcast/screaming-in-the-cloud/the-gravitational-pull-of-simplicity-with-ev-kontsevoy/ 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: This episode is sponsored in part by our friends at VMware. Let's be honest—the past year has been far from easy. Due to, well, everything. It caused us to rush cloud migrations and digital transformation, which of course means long hours refactoring your apps, surprises on your cloud bill, misconfigurations and headache for everyone trying manage disparate and fractured cloud environments. VMware has an answer for this. With VMware multi-cloud solutions, organizations have the choice, speed, and control to migrate and optimizeapplications seamlessly without recoding, take the fastest path to modern infrastructure, and operate consistently across the data center, the edge, and any cloud. I urge to take a look at vmware.com/go/multicloud. You know my opinions on multi cloud by now, but there's a lot of stuff in here that works on any cloud. But don't take it from me thats: vmware.com/go/multicloud and my thanks to them again for sponsoring my ridiculous nonsense.Corey: You could build you go ahead and build your own coding and mapping notification system, but it takes time, and it sucks! Alternately, consider Courier, who is sponsoring this episode. They make it easy. You can call a single send API for all of your notifications and channels. You can control the complexity around routing, retries, and deliverability and simplify your notification sequences with automation rules. Visit courier.com today and get started for free. If you wind up talking to them, tell them I sent you and watch them wince—because everyone does when you bring up my name. Thats the glorious part of being me. Once again, you could build your own notification system but why on god's flat earth would you do that?Corey: Welcome to Screaming in the Cloud. I'm Corey Quinn. Roughly a year ago, I had a promoted guest episode featuring Ev Kontsevoy, the co-founder and CEO of Teleport.A year has passed and what a year it's been. Ev is back to tell us more about what they've been up to for the past year and, ideally, how things may have changed over in the security space. Ev, thank you for coming back to suffer the slings and arrows I will no doubt be hurling your way almost immediately.Ev: Thanks for having me back, Corey.Corey: So, it's been a heck of a year. We were basically settling into the pandemic when last we recorded, and people's security requirements when everyone is remote were dramatically changing. A year later, what's changed? It seems like the frantic, grab a bucket and start bailing philosophy has largely been accepted with something that feels almost like a new normal, ish. What are you seeing?Ev: Yes, we're seeing exact same thing, that it's really hard to tell what is normal. So, at the beginning of the pandemic, our company, Teleport was, so we were about 25 people. And then once we got the vaccines, and the government restrictions started to, kind of, disappear, people started to ask, “So, when are we going to go back to normal?” But the thing is, we're 100 employees now, which means that three-quarters of the company, they joined us during the pandemic, so we have no normal to go back to. So, now we have to redefine—not redefined, we just basically need to get comfortable with this new, fully remote culture with fully remote identity that we have, and become comfortable with it. And that's what we're doing.Corey: Beyond what, I guess, you're seeing, as far as the culture goes, internally as well, it feels like there's been a distinct shift in the past year or so, the entire security industry. I mean, I can sit here and talk about what I've seen, but again, I'm all over the place and I deal with a very select series of conversations. And I try not to confuse anecdotes with data. Anecdata is not the most reliable thing. You're working in this space. That is the entire industry you're in. How has the conversation in the industry around security shifted? What's new? What trends are emerging?Ev: So, there are several things actually happening. So, first of all, I wouldn't call ourselves, like, we do all of security. So, we're experts in access; like, how do you act this everything that you have in your cloud or in your data centers? And that space has been going through one transformation after another. It's been basically under the same scaling stress as the rest of cloud computing industry.And we can talk about historical changes that have been happening, and then we can talk a little bit about, kind of, latest and greatest. And in terms of what challenges companies have with secure access, maybe it helps if I just quickly describe what ‘access' actually means.Corey: Please, by all means. It's one of those words that everyone knows, but if you ask three people to define it, you'll get five definitions—Ev: [laugh]. Exactly.Corey: —and they don't really align. So please, you're the expert on this; I am here to listen because I guarantee you I am guilty of misusing the term at least once so far, today.Ev: Can't blame you. Can't blame you. We are—I was same way until I got into this space. So, access basically means four things. So, if you want to have access done properly into your cloud resources, you need to think about four things.First is connectivity. That's basically a physical ability to deliver an encrypted packet from a client to destination, to a resource whatever that is, could be database, could be, like, SSH machine, or whatever it is you're connecting to. So, connectivity is number one. So, then you need to authenticate. Authentication, that's when the resource decides if you should have access or not, based on who you are, hopefully.So, then authorization, that's the third component. Authorization, the difference—like, sometimes people confuse the two—the difference between authentication and authorization is that authorization is when you already authenticated, but the resource decides what actions you are allowed to perform. The typical example is, like, is it read-only or read-write access? So, that's authorization, deciding on which actions you're allowed to perform. And the final component of having access properly is having audit or visibility which is, again, it could be real-time and historical.So ideally, you need to have both. So, once you have those two solved, then you solved your access problem. And historically, if you look at how access has been done—so we had these giant machines, then we had microcomputers, then we had PCs, and they all have these things. So, you login into your Mac, and then if you try to delete certain file, you might get access denied. So, you see there is connectivity—in this case, it's physical, a keyboard is physically connected to the [laugh] actual machine; so then you have authentication that you log in in the beginning; then authorization, if you can or cannot do certain things in your machine; and finally, your Mac keeps an audit log.But then once the industry, we got the internet, we got all these clouds, so amount of these components that we're now operating on, we have hundreds of thousands of servers, and load-balancers, and databases, and Kubernetes clusters, and dashboards, all of these things, all of them implement these four things: connectivity, authentication, authorization, audit.Corey: Let me drive into that for a minute first, to make sure I'm clear on something. Connectivity makes sense. The network is the computer, et cetera. When you don't have a network to something, it may as well not exist. I get that.And the last one you mentioned, audit of a trail of who done it and who did what, when, that makes sense to me. But authentication and authorization are the two slippery ones in my mind that tend to converge a fair bit. Can you dive a little bit in delineate what the difference is between those two, please?Ev: So authentication, if you try to authenticate into a database, database needs to check if you are on the list of people who should be allowed to access. That's authentication, you need to prove that you are who you claim you are.Corey: Do you have an account and credentials to get into that account?Ev: Correct. And they're good ways to do authentication and bad ways to do authentication. So, bad way to do authentication—and a lot of companies actually guilty of that—if you're using shared credentials. Let's say you have a user called ‘admin' and that user has a password, and those are stored in some kind of stored—in, like 1Password, or something like Vault, some kind of encrypted Vault, and then when someone needs to access a database, they go and borrow this credentials and they go and do that. So, that is an awful way to do authentication.Corey: Now, another way I've seen that's terrible as been also, “Oh, if you're connecting from this network, you must be allowed in,” which is just… yeee.Ev: Oh, yeah. That's a different sin. And that's a perimeter security sin. But a much better way to do authentication is what is called identity-based authentication. Identity means that you always use your identity of who you are within the company.So, you would go in through corporate SSO, something like Okta, or Active Directory, or even Google, or GitHub, and then based on that information, you're given access. So, the resource in this case database, [unintelligible 00:07:39] say, “Oh, it's Corey. And Corey is a member of this group, and also a member of that group.” And based on that it allows you to get in, but that's where authentication ends. And now, if you want to do something, like let's say you want to delete some data, now a database needs to check, ah, can you actually perform that action? That is the authorization process.And to do that, usually, we use some mechanism like role-based access control. It will look into which group are you in. Oh, you are an admin, so admins have more privileges than regular people. So, then that's the process of authorization.And the importance of separating the two, and important to use identity because remember, audit is another important component of implementing access properly. So, if you're sharing credentials, for example, you will see in your audit log, “Admin did this. Admin did that.” It's exact same admin, but you don't know who actually was behind that action. So, by sharing credentials, you're also obscuring your own audit which is why it's not really a good thing.And going back to this industry trends is that because the amount of these resources, like databases and servers and so on, in the cloud has gotten so huge, so we now have this hardware pain, we just have too many things that need access. And all of these things, the software itself is getting more complicated, so now we have a software pain as well, that you have so many different layers in your stack that they need to access. That's another dimension for introducing access pain. And also, we just have more developers, and the development teams are getting bigger and bigger, the software is eating the world, so there is a people-ware pain. So, on the one hand, you have these four problems you need to solve—connectivity, authentication, authorization, access—and on the other hand, you have more hardware, more software, more people, these pain points.And so you need to consolidate, and that's really what we do is that we allow you to have a single place where you can do connectivity, authentication, authorization, and audit, for everything that you have in the cloud. We basically believe that the future is going to be like metaverse, like in those books. So, all of these cloud resources are slowly converging into this one giant planetary-scale computer.Corey: Suddenly, “I live on Twitter,” is no longer going to be quite as much of a metaphor as it is today.Ev: [laugh]. No, no. Yeah, I think we're getting better. If you look into what is actually happening on our computing devices that we buy, the answer is not the lot, so everything is running in data centers, the paradigm of thin client seems to be winning. Let's just embrace that.Corey: Yeah. You're never going to be able to shove data centers worth compute into a phone. By the time you can get there, data centers will have gotten better. It's the constant question of where do you want things to live? How do you want that to interact?I talk periodically about multi-cloud, I talk about lock-in, everyone is concerned about vendor lock-in, but the thing that people tend to mostly ignore is that you're already locked in throught a variety of different ways. And one way is both the networking side of it as well as the identity management piece because every cloud handles that differently and equating those same things between different providers that work different ways is monstrous. Is that the story of what you're approaching from a Teleport perspective? Is that the primary use case, is that an ancillary use case, or are we thinking about this in too small a term?Ev: So, you're absolutely right, being locked in, in and—like, by itself is not a bad thing. It's a trade-off. So, if you lack expertise in something and you outsourcing certain capability to a provider, then you're developing that dependency, you may call it lock-in or not, but that needs to be a conscious decision. Like, well, you didn't know how to do it, then someone else was doing it for you, so you should be okay with the lock-in. However, there is a danger, that, kind of, industry-wide danger about everyone relying on one single provider.So, that is really what we all try to avoid. And with identity specifically, I feel like we're in a really good spot that fairly early, I don't see a single provider emerging as owning everyone's identity. You know, some people use Okta; others totally happy tying everything to Google Apps. So, then you have people that rely on Amazon AWS native credentials, then plenty of smaller companies, they totally happy having all of their engineers authenticate through GitHub, so they use GitHub as a source of identity. And the fact that all of these providers are more or less compatible with each other—so we have protocols like OpenID Connect and SAML, so I'm not that concerned that identity itself is getting captured by a single player.And Teleport is not even playing in that space; we don't keep your identity. We integrate with everybody because, at the end of the day, we want to be the solution of choice for a company, regardless of which identity platform they're using. And some of them using several, like all of the developers might be authenticating via GitHub, but everyone else goes through Google Apps, for example.Corey: And the different product problem. Oh, my stars, I was at a relatively small startup going through an acquisition at one point in my career, and, “All right. Let's list all of the SaaS vendors that we use.” And the answer was something on an average of five per employee by the time you did the numbers out, and—there were hundreds of them—and most of them because it started off small, and great, everyone has their own individual account, we set it up there. I mean, my identity management system here for what most of what I do is LastPass.I have individual accounts there, two-factor auth enabled for anything that supports it, and that is it. Some vendors don't support that: we have to use shared accounts, which is just terrifying. We make sure that we don't use those for anything that's important. But it comes down to, from our perspective, that everyone has their own ridiculous series of approaches, and even if we were to, “All right, it's time to grow up and be a responsible business, and go for a single-sign-on approach.” Which is inevitable as companies scale, and there's nothing wrong with that—but there's still so many of these edge cases and corner case stories that don't integrate.So, it makes the problem smaller, but it's still there rather persistently. And that doesn't even get into the fact that for a lot of these tools, “Oh, you want SAML integration? Smells like enterprise to us.” And suddenly they wind up having an additional surcharge on top of that for accessing it via a federated source of identity, which means there are active incentives early on to not do that. So it's—Ev: It's absolutely insane. Yeah, you're right. You're right. It's almost like you get penalized for being small, like, in the early days. It's not that easy if you have a small project you're working on. Say it's a company of three people and they're just cranking in the garage, and it's just so easy to default to using shared credentials and storing them in LastPass or 1Password. And then the interesting way—like, the longer you wait, the harder it is to go back to use a proper SSO for everything. Yeah.Corey: I do want to call out that Teleport has a free and open-source community edition that supports GitHub SSO, and in order to support enterprise SSO, you have to go to your paid offering. I have no problem with this, to be clear, that you have to at least be our customer before we'll integrate with your SSO solution makes perfect sense, but you don't have a tiering system where, “Oh, you want to add that other SSO thing? And well, then it's going to go from X dollars per employee to Y dollars.” Which is the path that I don't like. I think it's very reasonable to say that their features flat-out you don't get as a free user. And even then you do offer SSO just not the one that some people will want to pick.Ev: Correct. So, the open-source version of Teleport supports SSO that smaller companies use, versus our enterprise offering, we shaped it to be more appealing for companies at certain scale.Corey: Yeah. And you've absolutely nailed it. There are a number of companies in the security space who enraged people about how they wind up doing their differentiation around things like SSO or, God forbid, two-factor auth, or once upon a time, SSL. This is not that problem. I just want to be explicitly clear on that, that is not what I'm talking about. But please, continue.Ev: Look, we see it the same way. We sometimes say that we do not charge for security, like, top-level security you get, is available even in the open-source. And look, it's a common problem for most startups who, when you have an open-source offering, where do you draw the line? And sometimes you can find answers in very unexpected places. For example, let's look into security space.One common reason that companies get compromised is, unfortunately, human factor. You could use the best tool in the world, but if you just by mistake, like, just put a comma in the wrong place and one of your config files just suddenly is out of shape, right, so—Corey: People make mistakes and you can't say, “Never make a mistake.” If you can get your entire company compromised by someone in your office clicking on the wrong link, the solution is not to teach people not to click on links; it's to mitigate the damage and blast radius of someone clicking on a link that they shouldn't. That is resilience that understand their human factors at play.Ev: Yep, exactly. And here's an enterprise feature that was basically given to us by customer requests. So, they would say we want to have FedRAMP compliance because we want to work with federal government, or maybe because we want to work with financial institutions who require us to have that level of compliance. And we tell them, “Yeah, sure. You can configure Teleport to be compliant. Look, here's all the different things that you need to tweak in the config file.”And the answer is, “Well, what if we make a mistake? It's just too costly. Can we have Teleport just automatically works in that mode?” In other words, if you feed it the config file with an error, it will just refuse to work. So basically, you take your product, and you chop off things that are not compliant, which means that it's impossible to feed an incorrect config file into it, and here you got an enterprise edition.It's a version that we call its FIPS mode. So, when it runs FIPS mode, it has different runtime inside, it basically doesn't even have a crypto that is not approved, which you can turn on by mistake. It will just not work.Corey: By the time we're talking about different levels of regulatory compliance, yeah, we are long past the point where I'm going to have any comments in the slightest is about differentiation of pricing tiers and the rest. Yeah, your free tier doesn't support FedRAMP is one of those ludicrous things that—who would say that [laugh] actually be sincere [insane 00:18:28]?Ev: [laugh].Corey: That's just mind-boggling to me.Ev: Hold on a second. I don't want anyone to be misinformed. You can be FedRAMP compliant with the free tier; you just need to configure it properly. Like the enterprise feature, in this case, we give you a thing that only works in this mode; it is impossible to misconfigure it.Corey: It's an attestation and it's a control that you need—Ev: Yep. Yep.Corey: —in order to demonstrate compliance because half the joy of regulatory compliance is not doing the thing, it's proving you do the thing. That is a joy, and those of you who've worked in regulated environments know exactly what I'm talking about. And those of you who have not, are happy but please—Ev: Frankly, I think anyone can do it using some other open-source tools. You can even take, like, OpenSSH, sshd, and then you can probably build a different makefile for just the build pipeline that changes the linking, that it doesn't even have the crypto that is not on the approved list. So, then if someone feeds a config file into it that has, like, a hashing function that is not approved, it will simply refuse to work. So, maybe you can even turn it into something that you could say here's a hardened version of sshd, or whatever. So, same thing.Corey: I see now you're talking about the four aspects of this, the connectivity, the authentication, the authorization, and the audit components of access. How does that map to a software product, if that makes sense? Because it sounds like a series of principles, great, it's good to understand and hold those in your head both, separately and distinct, but also combining to mean access both [technical 00:19:51] and the common parlance. How do you express that in Teleport?Ev: So, Teleport doesn't really add authorization, for example, to something that doesn't have it natively. The problem that we have is just the overall increasing complexity of computing environments. So, when you're deploying something into, let's say, AWS East region, so what is it that you have there? You have some virtual machines, then you have something like Kubernetes on top, then you have Docker registry, so you have these containers running inside, then you have maybe MongoDB, then you might have some web UI to manage MongoDB and Grafana dashboard. So, all of that is software; we're only consuming more and more of it so that our own code that we're deploying, it's icing on a really, really tall cake.And every layer in that layer cake is listening on a socket; it needs encryption; it has a login, so it has authentication; it has its own idea of role-based access control; it has its own config file. So, if you want to do cloud computing properly, so you got to have this expertise on your team, how to configure those four pillars of access for every layer in your stack. That is really the pain. And the Teleport value is that we're letting you do it in one place. We're saying, consolidate all of this four-axis pillars in one location.That's really what we do. It's not like we invented a better way to authorize, or authenticate; no, we natively integrate with the cake, with all of these different layers. But consolidation, that is the key value of Teleport because we simply remove so much pain associated with configuring all of these things. Like, think of someone like—I'm trying not to disclose any names or customers, but let's pick, uh, I don't know, something like Tesla. So, Tesla has compute all over the world.So, how can you implement authentication, authorization, audit log, and connectivity, too, for every vehicle that's on the road? Because all of these things need software updates, they're all components of a giant machine—Corey: They're all intermittent. You can't say, “Oh, at this time of the day, we should absolutely make sure everything in the world is connected to the internet and ready to grab the update.” It doesn't work that way; you've got to be… understand that connectivity is fickle.Ev: So, most—and because computers growing generally, you could expect most companies in the future to be more like Tesla, so companies like that will probably want to look into Teleport technology.Corey: This episode is sponsored in part by “you”—gabyte. Distributed technologies like Kubernetes are great, citation very much needed, because they make it easier to have resilient, scalable, systems. SQL databases haven't kept pace though, certainly not like no SQL databases have like Route 53, the world's greatest database. We're still, other than that, using legacy monolithic databases that require ever growing instances of compute. Sometimes we'll try and bolt them together to make them more resilient and scalable, but let's be honest it never works out well. Consider Yugabyte DB, its a distributed SQL database that solves basically all of this. It is 100% open source, and there's not asterisk next to the “open” on that one. And its designed to be resilient and scalable out of the box so you don't have to charge yourself to death. It's compatible with PostgreSQL, or “postgresqueal” as I insist on pronouncing it, so you can use it right away without having to learn a new language and refactor everything. And you can distribute it wherever your applications take you, from across availability zones to other regions or even other cloud providers should one of those happen to exist. Go to yugabyte.com, thats Y-U-G-A-B-Y-T-E dot com and try their free beta of Yugabyte Cloud, where they host and manage it for you. Or see what the open source project looks like—its effortless distributed SQL for global apps. My thanks to Yu—gabyte for sponsoring this episode.Corey: If we take a look at the four tenets that you've identified—connectivity, authentication, authorization, and audit—it makes perfect sense. It is something that goes back to the days when computers were basically glorified pocket calculators as opposed to my pocket calculator now being basically a supercomputer. Does that change as you hit cloud-scale where we have companies that are doing what seem to be relatively pedestrian things, but also having 100,000 EC2 instances hanging out in AWS? Does this add additional levels of complexity on top of those four things?Ev: Yes. So, there is one that I should have mentioned earlier. So, in addition to software, hardware, and people-ware—so those are three things that are exploding, more compute, more software, more engineers needing access—there is one more dimension that is kind of unique, now, at the scale that we're in today, and that's time. So, let's just say that you are a member of really privileged group like you're a DBA, or maybe you are a chief security officer, so you should have access to a certain privileged database. But do you really use that access 24/7, all the time? No, but you have it.So, your laptop has an ability, if you type certain things into it, to actually receive credentials, like, certificates to go and talk to this database all the time. It's an anti-pattern that is now getting noticed. So, the new approach to access is to make a tie to an intent. So, by default, no one in an organization has access to anything. So, if you want to access a database, or a server, or Kubernetes cluster, you need to issue what's called ‘access request.'It's similar to pull request if you're trying to commit code into Git. So, you send an access request—using Teleport for example; you could probably do it some other way—and it will go into something like Slack or PagerDuty, so your team members will see that, “Oh, Corey is trying to access that database, and he listed a ticket number, like, some issue he is trying to troubleshoot with that particular database instance. Yeah, we'll approve access for 30 minutes.” So, then you go and do that, and the access is revoked automatically after 30 minutes. So, that is this new trend that's happening in our space, and it makes you feel nice, too, it means that if someone hacks into your laptop at this very second, right after you finished authenticating and authorization, you're still okay because there is no access; access will be created for you if you request it based on the intent, so it dramatically reduces the attack surface, using time as additional dimension.Corey: The minimum viable permission to do a thing. In principle, least-access is important in these areas. It's like, “Oh, yeah, my user account, you mean root?” “Yeah, I guess that works in a developer environment,” looks like a Docker container that will be done as soon as you're finished, but for most use cases—and probably even that one—that's not the direction to go in. Having things scoped down and—Ev: Exactly.Corey: —not just by what the permission is, but by time.Ev: Exactly.Corey: Yeah.Ev: This system basically allows you to move away from root-type accounts completely, for everything. So, which means that there is no root to attack anymore.Corey: What really strikes me is how, I guess, different aspects of technology that this winds up getting to. And to illustrate that in the form of question, let me go back to my own history because, you know, let's make it about me here. I've mentioned it before on the show, but I started off my technical career as someone who specialized in large-scale email systems. That was a niche I found really interesting, and I got into it. So did you.I worked on running email servers, and you were the CEO and co-founder of Mailgun, which later you sold the Rackspace. You're a slightly bigger scale than I am, but it was clear to me that even then, in the 2006 era when I was doing this, that there was not going to be the same need going forward for an email admin at every company; the cloudification of email had begun, and I realized I could either dig my heels in and fight the tide, or I could find other things to specialize in. And I've told that part of the story, but what I haven't told is that it was challenging at first as I tried to do that because all the jobs I talked to looked at my resume and said, “Ah, you're the email admin. Great. We don't need one of those.”It was a matter of almost being pigeonholed or boxed into the idea of being the email person. I would argue that Teleport is not synonymous with email in any meaningful sense as far as how it is perceived in the industry; you are very clearly no longer the email guy. Does the idea being boxed in, I guess—Ev: [laugh].Corey: —[unintelligible 00:27:05] resonate at all with you? And if so, how did you get past it?Ev: Absolutely. The interesting thing is, before starting the Mailgun, I was not an email person. I would just say that I was just general-purpose technologist, and I always enjoyed building infrastructure frameworks. Basically, I always enjoyed building tools for other engineers. But then gotten into this email space, and even though Mailgun was a software product, which actually had surprisingly huge, kind of, scalability requirements early on because email is much heavier than HTTP traffic; people just send a lot of data via emails.So, we were solving interesting technical challenges, but when I would meet other engineers, I would experience the exact same thing you did. They would put me into this box of, “That's an email guy. He knows email technology, but seemingly doesn't know much about scaling web apps.” Which was totally not true. And it bothered me a little bit.Frankly, it was one of the reasons we decided to get acquired by Rackspace because they effectively said, “Why don't you come join us and we'll continue to operate as independent company, but you can join our cloud team and help us reinvent cloud computing.” It was really appealing. So, I actually moved to Texas after acquisition; I worked on the Rackspace cloud team for a while. So, that's how my transition from this being in the email box happened. So, I went from an email expert to just generally cloud computing expert. And cloud computing expert sounds awesome, and it allows me to work—Corey: I promise, it's not awesome—Ev: [laugh].Corey: —for people listening to this. Also, it's one of those, are you a cloud expert? Everyone says no to that because who in the world would claim that? It's so broad in so many different expressions of it. Because you know the follow-up question to anyone who says, “Yeah,” is going to be some esoteric thing about a system you've never heard of before because there's so many ridiculous services across totally different providers, of course, it's probably a thing. Maybe it's actually a Pokemon, we don't know. But it's hard to consider yourself an expert in this. It's like, “Well, I have some damage from [laugh] getting smacked around by clouds and, yeah, we'll call that expertise; why not?”Ev: Exactly. And also how frequently people mispronounce, like, cloud with clown. And it's like, “Oh, I'm clown computing expert.” [laugh].Corey: People mostly call me a loud computing expert. But that's a separate problem.Ev: But the point is that if you work on a product that's called cloud, so you definitely get to claim expertise of that. And the interesting thing that Mailgun being, effectively, an infrastructure-level product—so it's part of the platform—every company builds their own cloud platform and runs it, and so Teleport is part of that. So, that allowed us to get out of the box. So, if you working on, right now we're in the access space, so we're working closely with Kubernetes community, with Linux kernel community, with databases, so by extension, we have expertise in all of these different areas, and it actually feels much nicer. So, if you are computing security access company, people tend to look at you, it's like, “Yeah, you know, a little bit of everything.” So, that feels pretty nice.Corey: It's of those cross-functional things—Ev: Yeah, yeah.Corey: —whereas on some level, you just assume, well, email isn't either, but let's face it: email is the default API that everything, there's very little that you cannot configure to send email. The hard part is how to get them to stop emailing you. But it started off as far—from my world at least—the idea that all roads lead to email. In fact, we want to talk security, a long time ago the internet collectively decided one day that our email inbox was the entire cornerstone of our online identity. Give me access to your email, I, for all intents and purposes, can become you on the internet without some serious controls around this.So, those conversations, I feel like they were heading in that direction by the time I left email world, but it's very clear to me that what you're doing now at Teleport is a much clearer ability to cross boundaries into other areas where you have to touch an awful lot of different things because security touches everything, and I still maintain it has to be baked-in and an intentional thing, rather than, “Oh yeah, we're going to bolt security on after the fact.” It's, yeah, you hear about companies that do that, usually in headlines about data breaches, or worse. It's a hard problem.Ev: Actually, it's an interesting dilemma you're talking about. Is security built-in into everything or is it an add-on? And logically—talk to anyone, and most people say, “Yeah, it needs to be a core component of whatever it is you're building; making security as an add-on is not possible.” But then reality hits in, and the reality is that we're running on—we're standing on the shoulder of giants.There is so much legacy technologies that we built this cloud monster on top of… no, nothing was built in, so we actually need to be very crafty at adding security on top of what we already have, if we want to take advantage of all this pre-existing things that we've built for decades. So, that's really what's happening, I think, with security and access. So, if you ask me if Teleport is a bolt-on security, I say, “Yes, we are, but it works really well.” And it's extremely pragmatic and reasonable, and it gives you security compliance, but most of all, very, very good user experience out of the box.Corey: It's amazing to me how few security products focus on user experience out of the box, but they have to. You cannot launch or maintain a security product successfully—to my mind—without making it non-adversarial to the user. The [days of security is no 00:32:26] are gone.Ev: Because of that human element insecurity. If you make something complicated, if you make something that's hard to reason about, then it will never be secure.Corey: Yeah.Ev: Don't copy-paste IP table rules without understanding what they do. [laugh].Corey: Yeah, I think we all have been around long enough in data center universes remember those middle of the night drives to the data center for exactly that sort of thing. Yeah, it's one of those hindsight things of, set a cron job to reset the IP table rules for, you know, ten minutes from now in case you get this hilariously wrong. It's the sort of thing that you learn right after you really could have used that knowledge. Same story. But those are the easy, safe examples of I screwed up on a security thing. The worst ones can be company-ending.Ev: Exactly, yeah. So, in this sense, when it comes to security, and access specifically, so this old Python rule that there is only one way to do something, it's the most important thing you can do. So, when it comes to security and access, we basically—it's one of the things that Teleport is designed around, that for all protocols, for all different resources, from SSH to Kubernetes to web apps to databases; we never support passwords. It's not even in the codebase. No, you cannot configure Teleport to use passwords.We never support things like public keys, for example, because it's just another form of a password. It's just extremely long password. So, we have this approach that certificates, it's the best method because it supports both authentication and authorization, and then you have to do it for everything, just one way of doing everything. And then you apply this to connectivity: so there is a single proxy that speaks all protocols and everyone goes to that proxy. Then you apply the same principle to audit: there is one audit where everything goes into.So, that's how this consolidation, that's where the simplicity comes down to. So, one way of doing something; one way of configuring everything. So, that's where you get both ease of use and security at the same time.Corey: One last question that I want to ask you before we wind up calling this an episode is that I've been using Teleport as a reference for a while when I talk to companies, generally in the security space, as an example of what you can do to tell a story about a product that isn't built on fear, uncertainty, and doubt. And for those who are listening who don't know what I'm referring specifically, I'm talking about pick any random security company and pull up their website and see what it is that they talk about and how they talk about themselves. Very often, you'll see stories where, “Data breaches will cost you extraordinary piles of money,” or they'll play into the shame of what will happen to your career if you're named in the New York Times for being the CSO when the data gets breached, and whatnot. But everything that I've seen from Teleport to date has instead not even gone slightly in that direction; it talks again and again, in what I see on your site, about how quickly it is to access things, access that doesn't get in the way, easily implement security and compliance, visibility into access and behavior. It's all about user experience and smoothing the way and not explaining to people what the dire problems that they're going to face are if they don't care about security in general and buy your product specifically. It is such a refreshing way of viewing storytelling around a security product. How did you get there? And how do I make other people do it, too?Ev: I think it just happened organically. Teleport originally—the interesting story of Teleport, it was not built to be sold. Teleport was built as a side project that we started for another system that we were working on at the time. So, there was a autonomous Kubernetes platform called Grá—it doesn't really matter in this context, but we had this problem that we had a lot of remote sites with a lot of infrastructure on them, with extremely strict security and compliance requirements, and we needed to access those sites or build tools to access those sites. So, Teleport was built like, okay, it's way better than just stitching a bunch of open-source components together because it's faster and easier to use, so we're optimizing for that.And as a side effect of that simplification, consolidation, and better user experience is a security compliance. And then the interesting thing that happened is that people who we're trying to sell the big platform to, they started to notice about, “Oh, this access thing you have is actually pretty awesome. Can we just use that separately?” And that's how it turned into a product. So, we built an amazing secure access solution almost by accident because there was only one customer in mind, and that was us, in the early days. So yeah, that's how you do it, [laugh] basically. But it's surprisingly similar to Slack, right? Why is Slack awesome? Because the team behind it was a gaming company in the beginning.Corey: They were trying to build a game. Yeah.Ev: Yeah, they built for themselves. They—[laugh] I guess that's the trick: make yourself happy.Corey: I think the team founded Flickr before that, and they were trying to build a game. And like, the joke I heard is, like, “All right, the year is 2040. Stuart and his team have now raised $8 billion trying to build a game, and yet again it fails upward into another productivity tool company, or something else entirely that”—but it's a recurring pattern. Someday they'll get their game made; I have faith in them. But yeah, building a tool that scratches your own itch is either a great path or a terrible mistake, depending entirely upon whether you first check and see if there's an existing solution that solves the problem for you. The failure mode of this is, “Ah, we're going to build our own database engine,” in almost every case.Ev: Yeah. So just, kind of like, interesting story about the two, people will [unintelligible 00:38:07] surprised that Teleport is a single binary. It's basically a drop-in replacement that you put on a box, and it runs instead of sshd. But it wasn't initially this way. Initially, it was [unintelligible 00:38:16], like, few files in different parts of a file system. But because internally, I really wanted to run it on a bunch of Raspberry Pi's at home, and it would have been a lot easier if it was just a single file because then I just could quickly update them all. So, it just took a little bit of effort to compress it down to a single binary that can run in different modes depending on the key. And now look at that; it's a major benefit that a lot of people who deploy Teleport on hundreds of thousands of pieces of infrastructure, they definitely taking advantage of the fact that it's that simple.Corey: Simplicity is the only thing that scales. As soon as it gets complex, it's more things to break. Ev, thank you so much for taking the time to sit with me, yet again, to talk about Teleport and how you're approaching things. If people want to learn more about you, about the company, about the product in all likelihood, where can they go?Ev: The easiest place to go would be goteleport.com where you can find everything, but we're also on GitHub. If you search for Teleport in GitHub, you'll find this there. So, join our Slack channel, join our community mailing list and most importantly, download Teleport, put it on your Raspberry Pi, play with it and see how awesome it is to have the best industry, best security practice, that don't get in the way.Corey: I love the tagline. Thank you so much, once again. Ev Kontsevoy, co-founder and CEO of Teleport. 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, whereas if you've hated this podcast, please leave a five-star review on your podcast platform of choice along with a comment that goes into a deranged rant about how I'm completely wrong, and the only way to sell security products—specifically yours—is by threatening me with the New York Times data breach story.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.

Inside Outside
Ep. 264 - Wayne Li, Director of Design Bloc & Professor of Design and Engineering at Georgia Tech on Design, Design Thinking and Changing Trends

Inside Outside

Play Episode Listen Later Sep 14, 2021 25:14


On this week's episode of Inside Outside Innovation, we sit down with Wayne Li, Professor of Practice of Design and Engineering, School of Industrial Design at Georgia Tech and Director of Design Bloc. Wayne and I talk about the growing importance of design and design thinking, and we explore some of the changing trends when it comes to technology, tools, and tactics for building new products and services that matter. Let's get startedInside Outside Innovation is the podcast to help you rethink, reset, and remix yourself and your organization. Each week, we'll bring you latest innovators, entrepreneurs, and pioneering businesses, as well as the tools, tactics, and trends you'll need to thrive as a new innovator.Brian Ardinger: Welcome to another episode of Inside Outside Innovation. I'm your host Brian Ardinger. And as always, we have another amazing guest. Today we have Wayne Li. He is Professor of Practice of Design and Engineering, School of Industrial Design at Georgia Tech, Director of Design Bloc. Welcome to the show, Wayne.Wayne Li: Hi thanks. Thanks Brian. Thanks for having me. Brian Ardinger: Hey, I'm excited to have you on, because you have had a long career in this whole world of design and innovation. You were a founding class member at the Stanford d.school. You've worked with great companies like Ford and Pottery Barn and VW. And I think you were a part of the original team that helped develop the original Tesla Roadster. I think I'll start off the conversation with where you're currently at with Design Bloc and how it got has origin. Wayne Li: Design Bloc is a multidisciplinary Design Thinking initiative on Georgia Tech Campus. So, you can think a center. We try to bridge different schools and colleges. Think like a large university, they're separated in different units or colleges. You have a college of engineering and college of design, college of natural sciences.And what Design Bloc tries to do is to teach in a multidisciplinary type of way. And so we partner with professors from all over the Institute to try to offer courses that teach not only Design Thinking, but do it in a way that bridges more than one unit, more than one college. We have things like Bio-inspired Watercolor Painting all the way to Transportation Design.Community Engagement and Service, like a humanitarian design project. And again, you can see that those problems exist. They exist beyond just the sphere of one unit. For example, you're saying, okay, I'm going to address developing countries energy grid. That's not just engineering that requires public policy. It requires cultural engagement and community knowledge. You have structure or architecture there. So, you can see a problem like that is multifaceted. We shouldn't be teaching in a siloed or singled mono disciplinary manner. You know, I learned this really early on, probably back when I was still in college, actually. But I worked at IDEO product development very early on in my career.You know, I think the reason why it came to be like, you mentioned, like, you know, what is it, how did it get started? Was that when I went to undergraduate, I was both a fine arts and engineering major. I kind of saw how the perception of an object, its beauty, its appearance, had a cultural relevance to it.And then you coupled that with how well it was engineered. How well it was built. What it was actually intended to function as and whether or not those mesh together well. And I think that's kind of what got me to my work at IDEO. But I think that was the benefit. And so about almost seven years ago, an alumnus from Georgia Tech, Jim Oliver, went back and visited the Institute and just notice that the College of Engineering and the College of Design really didn't talk to each other that much. Even though he himself had had a similar background. In undergraduate, he also had a mechanical engineering and industrial design background just like me.So, he basically put out a search and said, I want someone. I will donate a certain sum of money. And I want someone to establish this kind of initiative, whose goal it is to teach students in a more well-rounded way. And so, I'm very lucky and very blessed after a nationwide search that I managed to get it. That's kind of how it came to be.So, we started about six, seven years ago with basically one class. With 8 students to 12 students in it. And now we teach about 20 classes a year, with about a thousand to 2000 students. Right? So, it has grown. It's wonderful to see it. I love being the director of it and seeing it grow and getting partners and collaborators who are really psyched about it.And the cool thing is, yeah, you actually see professors who have a PhD in something, so they're very, very intelligent about something. All of a sudden get intrigued, like I never thought of myself as a designer. Well, everyone, little d design. Brian Ardinger: That's an interesting point because obviously people are beginning to understand that design is a core component of every facet of their life nowadays. But tell me a little bit about like what's the process of Design Bloc and how do you go from an idea to creating something valuable in the market? So, walk me through the whole process of Design Bloc. Wayne Li: Design Bloc, the initiative, right? Is you, like you mentioned, I did my graduate work at Stanford. We were in the class that helped to found the Stanford d.school. So, let's take like the little d design. Don't think like I'm a fashion designer or I'm a software designer or I'm a car designer. Let's take the little d design. So, design, if we just think about design process, right. Stanford has a certain method for their design process. They call it Design Thinking Process. But if we just think of it as a process, when anyone goes through steps or goes through mindsets or phases in order to create something, they go through a design process. Design is a very flexible word. It's like Smurf, it's the only word where you can almost use it like six or seven times and still get the actual understanding.Like I could say, well, I'm designing a design that will design a design to design. So, and you'll be like, what? But that would make sense, right? I'm designing a design; I'm creating a blueprint that will create a robot that will actually learn and make something of use. That's what it is. The idea of course, is that when they build anything. They're going through what we consider a process, a design process. And again, this isn't something that necessarily is taught at an Institute. You know, an Institute will teach physics, or it'll teach mathematics or Latin. They're not actually teaching the process of how you create novel, useful, effective ideas, right, for society. The Design Thinking processes that Stanford created along with the Hasso-Plattner Institute in IDEO. Talks about how can you hone and better your design process regardless of what it is. Regardless of what you're building. So, I think in that sense, Design Bloc is also trying to create courses that allow students to learn about the design process, hone it, and foster good mindsets and behaviors as they go through it.Like for example, with pick something relatively trivial, but let's just for kicks. You get up in the morning and you want to make eggs for your partner or your wife or your spouse. That's a design process, right? You're making something that serves a need or a benefit to someone or some entity. So technically you went through a design process.Now the question is, if you think about it, if you really wanted to make eggs well for your spouse or partner, what would you have to do? Well, you kind of needed to know what they like. So, if they love poached eggs and you give them hard-boiled, they might not like that. And then you also have to be creative.You have to know how many different ways can you make eggs. You also have to think about whether or not it gets well received. Obviously, if you don't know your partner or spouse very well, and you make horrible eggs for them, they'll let you know about it. So sooner or later, and of course that last part is the cycles, the iteration, the more and more you do it, the better you get at it.Right. The better you get at making eggs, the better you get at making the eggs the way your partner or your spouse likes them. So, you can imagine that's another, like a semi trivial one day activity. But whether or not you're making eggs, an electric car, a public policy, a courtroom drama, novella, all of those are design processes. Now apply it to something more serious and you get my drift. Brian Ardinger: Is there a standard iteration of step one, do this step two do this. Or is a lot of it driven by the learnings that you find by moving the idea forward in the first place? Wayne Li: Yeah, no, this is great because I mean, there are many design practitioners and researchers and, you know, people who are designed professors, people who study design, and the people who practice it, who have put terminology around their design process. You might hear these in the industry, right. You know, Google will say, well, we use Design Sprint, it's an Agile Methodology. You might hear maybe a traditional company say, well, we use a double diamond approach, right? Where we go out and we go in, they have their terminology. And of course Stanford's Design Thinking Process is empathize, define, ideate, prototype, test, or evaluate. And they've put words to that. I think when people get a little bit tripped up on is when they hear things defined with either a series of words or a diagram that like, it looks like it moves to the right.It's like, oh, arrow, arrow, arrow moves to the right. They get into this mindset that if I blindly follow a process from start to finish, I will be guaranteed a great result. And that's where I think practitioners understand that the design process is not linear. It's messy, it's cyclical. It repeats it folds on itself. It goes backwards. You jump two steps forward or back. Part of it is the sense and respond. That's why, what I mentioned before, the more and more you practice your design process through experience, and through each phase, you get better at understanding how the design process is going to affect the final result.And that takes some skill. It takes experience. You know, it can also be taught. It can be learned. As you go through a phase, are you sensing how it's going? Do you understand the implications of what you're doing at the time? And then can you respond? For example, if you're in a ideate phase, it is a creative phase. I need to know how many different types of eggs I can make to address my partner.Let's say I only know how to make one. I only know how to boil eggs. I don't know how to poach them. I don't know how to fry them. I don't how to scramble. If you only make one solution and then go get that tested, chances are you're wrong. You know, one out of 10 shot that or one out of seven shot that that's right. If you're not creative by nature or your company doesn't have a creative culture in it, then blindly going through that phase of creating or ideating, isn't going to help.So, if you don't know how to ideate, you're going to be in trouble because that phase will result in the same ideas you always come up with. Part of that is again the sense and respond. Knowing how you execute. Knowing what your strengths and weaknesses are in each phase and whether or not you can cultivate those.If you know, you're not a very creative person in the sense that you very quickly drill down to one possible solution, and then you're very dogmatic about it, then realize that's a weakness in your creative process. It's a weakness of your design process. At the same time, if you're really blue sky and you just love imagining all day and at the end of the day, you need to put something in front of someone, otherwise this product doesn't get built, then you're going to have to learn about your execution and critical thinking skill.At a certain point, I think we try to instill in our students is that, you know, the design process is fluid, it's living and it's part of you. You need to understand how you use it, and then you need to understand how companies use it. Cause that's not always the same thing. Brian Ardinger: That's an interesting point. Are there particular areas that you find, doing these workshops and working people through a process, where people tend to get stuck? What's the biggest aha moments about teaching a process and how to think about designing? Wayne Li: A lot of this is cultural, right? A lot of this deals with people, and of course you see this right with various established or rigid companies that have very, very well-documented well hewn, traditional processes. They love buying out startups. Why? Because the startups are small four employee kind of entities that are usually young. They take risks. They don't know what they can't do because they've never been slapped on the wrist so many times. For them like big companies who are really staid, who don't encourage or empower all levels of their company to come up with ideas, will usually get into this group thing. Like, well, I can't possibly be right. No one values my opinion. The only person that's valued is the CEO or the executive management or the senior vice president. So, then that just destroys a kind of innovative culture because the creativity is not fostered. It's not empowered across all levels. I see that often, usually when I'm brought in to consult with a company or a company comes in and wants a project with a Design Bloc and we do projects for companies. You know, they're always like looking for something like, let's just show something we don't know. That they usually, something will surprise them. And part of that is because young students don't know what they can't do. When they come up with an idea, a lot of the times, the reason that large companies can't or companies that don't have an innovative culture, they don't ask that question anymore.Right. So, like maybe three generations ago, they stopped doing it a certain way because they learned something. But now the business environment has shifted and no one's bothered to really question why they can't do it that way. Or why they can't do it in a new way. Right. It's always so we've always done it that way.Well, yeah, that's the group thing, right? No, one's empowered to ask and go, wait a minute. Yeah, that was true 20 years ago, but the technology has shifted around you. The audience has shifted around you, the people that use your product has shifted around you. Why not go back and question some of those baseline assumptions.Brian Ardinger: Have you learned any techniques that you could help folks that are in that particular environment to open up their thinking or open up their exploration and not fall into this typical traps? Wayne Li: There are a lot of different ways that you can do that, Brian. What I tend to always ask is when someone is in kind of that group think is to say, okay, wait Taguchi calls it Root Cause Analysis.I think Dev Patnaik  uses, who teaches Needfinding at Stanford has taught like a Contextual Ladder, which is like a How Why Ladder. If you're confronted with a problem, do you understand the constraints with which you are assuming are already frozen. Taguchi method is just, why does that exist as a root problem?That's not necessarily creative, but what it does is it tries to ask, do you understand your context? If you're confronted with, I only know one way to do this, or this is the way that we think the company always wants to work, then at least questioning that constraint to say, well, why do we do it this way? What assumptions are we making about either our processes or our customers, that make us decide that we should be doing it this way? Brian Ardinger: And basically being okay with the fact that let's assume that this is an assumption. And then like, how do we find evidence to figure out is this assumption true or false? I think a lot of people don't go back to that process, like you said, and just double-check like, I know we've been doing this 20 years like that, does it still hold true. Its an important part of the process.Wayne Li: And one thing I always love is just pushing constraints, right? I mean, ultimate creativity is having no constraints. But it's difficult in a business environment because you always have some type of like time and money are always going to be constraints. You don't have infinite time. You don't have infinite money.If you had those, you can make anything you wanted and take as long as you want it to make. So you always have some type of constraint. But what I always like to do is push against it. So if you say something like we can't build that, that's too expensive. Then if you say, okay, well we'll hold on a second.What are those assumptions? And then say, there's inherent assumptions in that way. You're building it the same way. That's one assumption. If you built it with a different material or different process, you could maybe save money. If you built it with a different volume, it could be cheaper. So you're like, well, you're assuming that we can only sell that to 10,000 people.What if we sell to 10 million? Or you're assuming no one will pay for it at a higher cost. So again, really, it is about pushing on that constraint to say, we can't do this. Flip that and reframe it. What are all the different ways that we can actually push beyond that boundary? And I take each, sometimes I'll take the top three constraints and kind of see if they're related and in tandem, push against them.Sometimes I'll take each constraint and basically brain on each one separately. Right. But ultimately I'm always asking why is this assumption here and why is this constraint here? And, you know, sometimes somebody will say, well, that just defies the laws of physics. I'm like, no, that just defies the laws of your creativity of your brain.Right. You're not framing it well enough. The only meaningful attribution you have is that that must be a mechanism that follows the laws of physics or follows the laws of finance. Like it has to, you know, supply demand. You must sell something for more than you make it. But those laws are inherent in a human assumption.Somebody is using that device. So the laws of physics change if a 10 year old uses it versus a 30 year old. So if you're like making a shovel, a kid's plastic shovel is way different than a 30 year olds Gardener's shovel. So one shovel is made out of metal costs, maybe $25, and one's made out of plastic and cost two. So again, your physics law didn't change, but your framing did. Part of that is understanding your framing when you'd make an assumption, Brian Ardinger: I'd lIke to switch gears a little bit and talk a little bit about some of the things that you're seeing, what are some of the interesting trends in UX, UI design, and maybe even technology that you've seen and where do you see this whole I guess, industry going Brian?Wayne Li: That's a great question. I mean, I work with industrial design students and mechanical engineers, electrical engineers, computer scientists, human computer interaction, math graduate students. Definitely the thing you see faster and faster and faster for UI and UX is both portability and anticipation. So let me kind of explain what that means.Portability in the sense that devices get smaller, they get more personal, right? No, one's out of client terminal. There's no client terminal relationship anymore. So the portability meaning your ability to consume data, manipulate software, has to be more and more flexible, more and more intuitive. You basically be at the will it like, you know, sooner or later, you might not even use your hand.It's going to be so fluid and so natural. Then you can talk to it. You can gesture at it. The interactions will be more and more natural and quicker, faster, smaller. Now the other thing, like I said is the anticipation. Everything you do is being logged so sooner or later between the machine learning algorithm and the companies that are constantly monitoring your data, they'll be able to truly understand what you are based on your behavioral pattern. If you've read the Singularity Is Near, they basically say, you know, pretty much by 2045, your consciousness will be digitized. So in that sense, if we, if we got what 20 some odd years, 24, some odd years to get there, that basically means AI will be conscious by then, in the sense that hopefully if I live long enough, I could go back and go, what did Wayne think in 2019, every thought that you put into Instagram, Facebook, anything you put into your computer will be logged and kept. So every thought you've ever had. You may no longer corporally exists, but someone got a, what would Professor Li have thought in 1998, about this vehicle. And based on the machine learning though, well, Wayne said this about certain vehicles. And this vehicle and this vehicle people are very similar. So even if I'm not alive in 2080, and there's a 2080 sports car, they're going to go, well, what would Wayne have thought about this 2080 sports car?And they would probably, the machine learning algorithm will say, well Wayne talked about these vehicles or design these sports cars. And these were his thoughts on them because they've all been logged. And by the weighting metric I have, he would have liked it. Or he would have said blah-blah-blah send it.  Sooner or later, we'll have digital avatars that anyone can consult. And so that's the anticipation part. If you can anticipate that now how will that change, what you do Brian Ardinger: Tomorrow is Tesla's AI day. And they're gonna be talking a little bit about some of the new mind of the car stuff that they're working on. Similar to what you're saying, where the car can anticipate based on its surroundings, what's happening and self-driving and everything else around that.But you know, you take that beyond just transportation. You take that to everything else and how does that change the world and what we're looking at? Even things like I think about technology and how it's accessible to anybody now. So I have to be a coder, for example. A lot of no code tools and things along those lines that allow you to experiment and build and try things that 10 years ago, 15 years ago, you had to have a design development team to make that happen. So it'll be interesting to see where that trend takes the world of design as well. Wayne Li: Yeah, no, absolutely Brian. I mean, going back to what you said. I mean, obviously the sort of research area of mine, because I have an automotive interface, a human machine interface lab at Georgia Tech, right. That looks at futuristic automotive experiences. And absolutely you're right. I mean, thinking about it this. Not only can all the cars, right now is 5g. Like let's just think, think about 5g. If 4g was something like, oh, it was novel for us to have one HD movie streaming on our phone. Like that's the data of 4g, without major compression. 5g is like 40 simultaneous HD streams. So for example, if we just take some of that bandwidth and each car is communicating to the 15 nearest cars next to it, and those cars are connected and getting next to the internet enabled lampposts signage traffic stops, then that information is being shared very, very quickly.So if there's something that optimizes traffic flow like a stop says, well, this is open, right now. And there's really no need for a green light or a red light or a yellow light anymore, because everyone's already talking to each other. Brian Ardinger: Tie that into a person's phone and you realize, well, Joe's a crappy driver and he's, he's in the lane next to me. I probably need to adjust for that. Wayne Li: Yeah. Every car in the compass directions around you will notice that, right. Or based on your driving pattern already know that you're a bad driver based on your previous driving history. Right? So that economists levels between semi and fully is tricky. But that data, if it's freely shared, is there. The same thing and will be the minute you tell your car where you're going. So if you say, oh, I'm going to work and it's like, great, I'm driving you there. That's great. It will then ping everyone who's also going to work with you. And so it'll just say, oh, well, you know your neighbor down the street who works at the same company, why don't y'all platoon together.And all of a sudden you match up and you can streamline your traffic. Right? So, same thing, if you, all of a sudden, you tell the car out, I'm going to a concert. It's a new thing. It'll ping everyone on the internet who's interested in that same topic, who's going to the concert with you. And your windshield will turn into a screen.We actually have this in the lab, a windshield that is an augmented reality screen. And then you can then meet 15 people who will meet you at the door. Cause you'll be all dropped off at the same time to the same concert. So now you can go to the concert with not only the friends in your own car, but feel close kinship to 15 other cars that have the same people going at the same concert.It's an interesting concept when you can share that much data that quickly, and you see that as a trend. Yes, privacy is an issue, but you don't really see people pushing against it that much. They're sharing their information. Brian Ardinger: I love what you're doing and some of the things that you've seen in the past, and that. If people want to find out more about yourself or more about Georgia Tech or Design Bloc, what's the best way to do that?Wayne Li: My email's fine. That's just my name. W A Y N E . L I @ design . G A T E C H - Georgia tech.edu. If you want to know more about Design Bloc, basically design bloc without the K so D E S I G N B L O C.ga tech.edu. So they can go to our website and then see what we do. There's a contact us button there.Obviously, if you're a Georgia tech student or a prospective high school student, plenty to learn about what we do, which classes you can take. We do do workshops and not only for students, but we have done workshops for other entities. And so we are in the process of getting those things approved by the Institute. Right. But we have mechanisms in which we do give workshops to companies or groups like the Georgia Tech Alumni Association. We've done Design Thinking workshops for them. So you'll see a list of all the workshops we tend to give. And if it's something that you are interested in or you're interested in giving to your company or entity, then there's a connect to us button and we can talk about that.Brian Ardinger: Wayne, thanks again for being on Inside Outside Innovation, look forward to seeing what the future brings Wayne Li: Me too. It's been a pleasure. Thanks so much for having me on.Brian Ardinger: That's it for another episode of Inside Outside Innovation. If you want to learn more about our team, our content, our services, check out InsideOutside.io or follow us on Twitter @theIOpodcast or @Ardinger. Until next time, go out and innovate.FREE INNOVATION NEWSLETTER & TOOLSGet the latest episodes of the Inside Outside Innovation podcast, in addition to thought leadership in the form of blogs, innovation resources, videos, and invitations to exclusive events. SUBSCRIBE HEREYou can also search every Inside Outside Innovation Podcast by Topic and Company.  For more innovations resources, check out IO's Innovation Article Database, Innovation Tools Database, Innovation Book Database, and Innovation Video Database.  

Raw Data By P3
Shelly Avery

Raw Data By P3

Play Episode Listen Later Sep 14, 2021 67:14


Shelly Avery is a member of Microsoft's Healthcare Solution Acceleration Team, helping Healthcare customers digitally transform their businesses.  As you listen to this conversation you'll realize, as we did, that Shelly knows the tech AND the human side of the tech very well! References in this episode: FHIR Tom Scott - There is No Algorithm for Truth   Episode Timeline: 4:30 - The high value of customization and integrations in BI in the current era of Middleware, Microsoft Teams and how good it is at connecting humans, The speed of Innovation at MS (some of which is directly customer influenced) 32:10 -  Microsoft's FHIR (Fast Healthcare Interoperability) is revolutionizing the rather large problem of interoperability in the Healthcare space 49:30 - Microsoft Viva is born from My Analytics, Rob gets into Headspace, using data for nefarious purposes Episode Transcript: Rob Collie (00:00:00): Hello friends. Today's guest is Shelly Avery. We've had a lot of Microsoft employees on the show and Shelley continues that tradition. The reason we have that tradition is because there are so many interesting things going on at Microsoft these days. And Shelley brought some super fascinating topics and perspectives to our conversation. For instance, she has a deep background and history with the Teams product for Microsoft. And so we got into the question of what is it that makes Teams so special? I really, really, really appreciated and enjoyed her answer. Rob Collie (00:00:31): And given her current focus on the healthcare industry and on health solutions, we talked a lot about how Microsoft's business applications and Power Platform strategy is actually a perfect fit for what's going on in healthcare today. We did touch on some familiar themes there, such as the new era of middleware, how a 99% solution to a problem is often a 0% solution to a problem. How even 100% of a solution itself is a moving target. And my only slightly partisan opinion that may be Microsoft's competitors in all of these spaces should just save themselves the trouble and tap out now. We talk about the virtual teams that exist on the Teams team at Microsoft. Sorry, I just had to work that into the intro. Rob Collie (00:01:17): I learned a new acronym, FHIR, which is the new upcoming regulatory and technological standard for data interoperability in the healthcare space. We talk a little bit about Veeva. Have you heard of Veeva? I hadn't. It's one of those technologies with a tremendous amount of potential to be used in a positive way and maybe a little bit of potential to be misused if we're not careful. And that conversation was also the excuse for our first ever sound effects here on the Raw Data Podcast. We spared no expense. An iPhone was held very close to a microphone. All in all, just a delightful conversation. I smiled the whole time. We also had the ever upbeat and awesome Krissy in the co-pilot's chair for the duration of this conversation. And with that completely unintentional rhyme out of the way, let's get into it. Announcer (00:02:04): Ladies and gentlemen, may I have your attention please? Rob Collie (00:02:11): This is the Raw Data by P3 Adaptive Podcast, with your host, Rob Collie. Find out what the experts at P3 Adaptive can do for your business. Just go to p3adaptive.com. Raw Data by P3 Adaptive is data with the human element. Welcome to the show. Shelly Avery, how are you doing this morning? Shelly Avery (00:02:35): Hey guys, doing good today. Rob Collie (00:02:37): Well, thanks so much for being here. Another brave soul, first time meeting us. You're willing to have it recorded. That's into the breach. I like it. Shelly Avery (00:02:45): It's good to meet you guys. I'm happy to talk to you today. Rob Collie (00:02:48): We brought Krissy today. Krissy Dyess (00:02:49): How's everybody doing? Rob Collie (00:02:51): How are you Krissy? I mean, it's earlier your time. Krissy Dyess (00:02:53): It is early. Yeah. So normally we do these in the afternoon, but it's early. I'm enjoying the sunrise this morning. Rob Collie (00:03:00): Oh, fantastic. Krissy Dyess (00:03:00): Doing good. Rob Collie (00:03:01): Yeah. A cup of joe, maybe. Krissy Dyess (00:03:03): I don't drink coffee. Shelly Avery (00:03:04): I've had two today. Rob Collie (00:03:05): Shelly, I actually already noticed that. I had noticed before we started recording that the color of your coffee cup changed. That, yeah, she just hot swaps the coffee. Shelly Avery (00:03:16): Travel mug to drop off the kids this morning and then real mug once I got back to the home office. Rob Collie (00:03:22): So Shelly, why don't you tell us what you're doing these days. Give us your CV. Shelly Avery (00:03:25): I am at Microsoft now. I am in a new role that Microsoft has created. I am on a team that is called the Healthcare Solution Acceleration team. And our job is to really help our healthcare customers digitally transform their businesses, hopefully using Microsoft technology. But I've been here five years. I started as a technical specialist, helping customers migrate from on-premise server base infrastructure to Office 365, Exchange and SharePoint in OneDrive. And then Microsoft Teams came around because it wasn't around. It didn't exist when I started, and I became a Microsoft Teams technical specialist. I thoroughly enjoyed it. I loved it. Shelly Avery (00:04:12): Teams has really empowered the world to figure out how to do work different. It created lots of opportunities for people to create new ways of solving their business problems. And it was a lot of fun to be able to partner with our customers and really help them understand how technology can be an advocate for them and just help them do things faster and more efficiently and on their own terms. And so that was super fun, especially working with healthcare. I learned through that about some other features that Microsoft had, not that I didn't know, they didn't exist, but Power Platform, Power BI, Power Automate, Power Apps, and then later Power Virtual Agents. Shelly Avery (00:05:00): And using those inside of the UI of Microsoft Teams to even further enhance what Teams does, which is communication and collaboration, but then putting apps, low-code, no-code apps, and BI and data at the fingertips of these individuals to really, really step up their game and how they're solving their business problems. It's just been super fun and I thoroughly enjoy it. And so taking all of that into my new role, specifically working with healthcare and trying to help them accelerate solutions in their organization to solve their business problems. I thoroughly enjoy what I do every day. Rob Collie (00:05:41): Do you think that your recent background in Teams was a selection criteria for going into health? It would really seem to me like that strong basis in Teams is really quite an asset for you in the healthcare specific role. Shelly Avery (00:05:55): Well, I of course would love to say yes. And I think it is for me, that's how I learned. It's a background that I feel like I'm an asset to my customers, but my new team is comprised of people from all different backgrounds. And so what our new team hopes to be is people who are deep in various different technology areas so that we can lean on each other's expertise when a solution isn't bound by Microsoft Teams. So maybe we need to create a bot in Azure and build it off of a SQL database and put it in Teams. And so we're crossing the entire Microsoft stack. And so, yes, I'm deep in Office 365 and Teams and getting much better into the Power Platform, but as soon as I need to build a bot in Azure, I'm like, "What, how do I do that?" Shelly Avery (00:06:59): So I need that other person on my team who is deep in that area. We're here with you guys. I know y'all are deep in Power BI. We have data scientists on our team and experts in Power BI, which I am not that, but I leverage them because when I talk to my customers, they want to create dashboards and reports that they can have actionable insights on. And so I understand the use case or the problem they're trying to solve. And then I work with my data scientists on the team to help. We come together and bring our skills together to help the customer. So it's just a super fun team. We all geek out in our own area. Rob Collie (00:07:38): Yeah. I mean, it is really a perfect little microcosm of what Microsoft is trying to do with the Power Platform in general. Isn't it? Years ago when they renamed, they Microsoft renamed the Data Insights Summit to be the Business Applications Summit, it wasn't really clear what was going on. There just seemed like one of those funky Microsoft renames. You know how Microsoft changes the acronyms for all you folks in the field, every 18 months, just for yucks. It seemed like one of those, but no, that wasn't it at all, right? There actually was a really long-term grand plan that was already clear behind the scenes there, that just wasn't really clear on the outside. Rob Collie (00:08:18): And all of these technologies coming together, the low-code, no-code or rapid development, whatever you want to call it, right? All of these tools, they enable something to come to life that every single environment, every single customer is different and their needs are different. Their fundamental technological systems that they use, all their mind of business applications, all of those are different and unique. They're unique mix. Plus then you add in the unique challenges that are going on in their particular environment. Rob Collie (00:08:45): You want something off the shelf, but at the same time, if it's not incredibly flexible, if it's not incredibly customizable, it's never ever, ever going to meet the needs of that reality. And I think Microsoft has one of the strongest long-term bets I've ever seen Microsoft make. And it's been really interesting to see it come into focus over the years. Shelly Avery (00:09:06): I'm glad you see that and a lot of people do, but we have a lot of customers. I keep saying health because that's who I work with, that there are health care pointed solutions that are out there that have a single purpose and they are off the shelf. And they do usually do a great job at what they do, but they only do one thing. And we find that almost every application or SaaS that they subscribe to or purchase, has to be connected to data or systems or things like that. And then they have 50 different apps all connected to 50 different things, and it becomes complex. And you have service contracts and everything has to be managed. And so we are pushing that we have a turnkey solution. Shelly Avery (00:09:54): We're actually saying the opposite. We have a solution that gets you 80, 85% of the way there, but then that last bit is fully customizable to make it exactly like you want. And so sometimes that's hard to tell a customer that, "Hey, you're going to pay for something and then you have to build it," or, "You have to pay someone else to help you build it." And they have to be able to see the benefit of that to keep costs down and reduce complexity and app sprawl is something that we see a lot. And so being able to streamline that is something that we definitely try to do and help our customers understand the benefit of. Rob Collie (00:10:33): Sometimes 99% rounds to zero. You have a 99% solution to something, but you simply cannot do the last 1%. And a lot of cases, that's just a failure. I think a lot of off the shelf software, even if it got to 99% of what you need, which is a phenomenal number, it's still not doing it. Plus we also got to remember that the 100% target is also not static. Things change. Even if you're 100% today, your needs tomorrow are going to be different. The ability to customize, the ability to create new integrations and new applications, even if they're lightweight within your environment, is an ongoing must. Rob Collie (00:11:16): I think approaching this as a platform while at the same time making that platform very humane, it doesn't require me to sit down and write C-Sharp every single time I need something new, that's just amazing. I think if you zoom back on all of this, it's almost obvious once you know what to look for. All of the individual systems that we buy, and this is even true of our business here at P3. We're, "Best of breed," in terms of all the line of business software that we've adopted. Best of breed, AKA, whatever we stumbled into at that particular point in time. All those little silos, those line of business silos are very competent. Maybe not excellent all the time, but they're very competent at what that silo is supposed to do. Rob Collie (00:11:59): But an overall business environment, an overall team environment doesn't stop at those silos. It's like the whole thing. It's the whole picture. It's the whole organic total across all of those silos. That's where you live. You don't live in one of them. And so integration across them of various flavors. I think we're in this new second or third era of middleware right now. And Microsoft is just so, so, so well positioned in this game. I didn't see this coming. I just woke up one day and went, "Oh, oh my gosh. Look at what my old buddies are up to." Checkmate. It's been really cool to watch. Shelly Avery (00:12:40): Yeah. It's been really awesome to be here and live it. Sometimes when you're in it, you don't see it happening. And then you look back and you say, "Wow, we've come a long way in the last three years or five years." Rob Collie (00:12:52): Yeah. Let's talk about Teams a little bit more before we switch back into health. Shelly Avery (00:12:57): Yeah, sure. Rob Collie (00:12:57): I find the Teams phenomenon to be just fascinating, which is another way of saying that I missed it a little way, right? Back when I worked on the Excel team, every few years whenever office would finish a release, there'd be like this open season of recruiting. People could move around within office, like a passport free zone. You could just go wherever you wanted. I always struggled to get people who had never worked on Excel to come work on Excel. It was scary. Rob Collie (00:13:24): They've been working on things like Outlook or Word or something like that. It's easy to be, "An expert user of Outlook." It's easy to be an expert user of Word. In other words, the difference between the 80th percentile user of those apps and the 99th percentile user of those apps, it's hard to even distinguish. You can't even really tell the difference between them and practical usage. That's not true for Excel though, right? Shelly Avery (00:13:44): Right. Rob Collie (00:13:45): An Excel expert is like a magician compared to an amateur. And so that was really intimidating, I think. That was the fundamental reason why people struggled to take the leap to come to the Excel team. They felt more comfortable where they were, but a pitch I always gave, which were about a 20% success rate, was data fits through a computer really well. A CPU can improve data. It's built for that. Whereas Outlook and Word, even PowerPoint, I've revised my opinion on all of these since then, but this is me in my early 30s. Going, all those other things, those are about ideas, and communication, and collaboration. Rob Collie (00:14:25): And that's all human stuff. And human stuff doesn't really fit through a CPU all that well. It doesn't come out the other side, enriched in the same way that data does it. Hubris in hindsight, right? I said, "There's never an end to how the improvement that can happen in Excel." Whereas something like Outlook or Word, might be essentially nearing its end state. Then comes Teams, right? Teams is the kryptonite to that whole pitch. I hear myself back in the early 2000s, Teams is all about human interaction. I guess that's what it does. Rob Collie (00:15:02): I guess, to me, it's this alien form, Teams has just exploded. People love it. It's everywhere. I mean, this is an impossible question to answer, but I'm going to ask it anyway, because it's fun to do. What is it? Why are people so excited about Teams? For a while there, it's like SharePoint held a fraction of this excitement. It's in a similar spot, the hub for collaboration in the Microsoft ecosystem. It feels like Teams has said, "Here, let me show you what that really looks like." Shelly Avery (00:15:36): Yeah. I'll do my best to try, but this is my opinion. I don't know what anybody else thinks, but I think it takes the best of the consumer world and the best of the enterprise or commercial world and puts it together all in one app. It has things that when you chat with somebody, it's like you're using a text message. So it's no different than, if you're an Apple user, you open your phone and you go to the green text message app or you go to the Teams app and it looks exactly the same. It has gifts and it has reactions, and you can put stickers and memes in there. And so it's super fun. Shelly Avery (00:16:19): But then you take that enterprise and you can also share a OneDrive link or create a meeting or send someone an Outlook invite or whatever. So it takes that enterprise and mushes it with consumerism. And so it's like taking Facebook and LinkedIn and Office and SharePoint and smashing it all into one app. And so you can have fun with it. You can build relationships with your colleagues or even people external to your organization, but then you can also build presentations and dashboards and create, and even use the Power Platform from a low-code dev perspective, right inside of Teams. Shelly Avery (00:17:02): It spans the spectrum of fun to developing brand new stuff. And so everybody can get something out of it and they can use it the way they want to use it for the purpose that they need to work on, whatever they're doing for the day. And so it can be great for various different people in various different ways. Rob Collie (00:17:28): I love that answer. Krissy Dyess (00:17:29): I have a different perspective. I came from a background of data and technical and all of that type of thing, but this Teams, really with everything transitioning to remote in a hurry over the last year, I feel like it really helps with a level of organization and communication and assets that you talked about, Shelly, to centralize all that because in a difference of data coming at you from many places, now we have communications, now we have remote teams. Krissy Dyess (00:18:05): And I love, like you said, it is fun, it's interactive. Here's where I'm struggling a little bit with Teams. I love it, but what is proper Teams etiquette in terms of like meetings and conversations? For example, I'm having a meeting and I don't want to interrupt somebody, so I'm going to put it in the chat. But then sometimes people feel like, well, the chat is still a form of interruption. I see it as a form of participation. And so I think people are still learning how to embrace these tools. Shelly Avery (00:18:38): Yeah. Well, I think that it also comes to culture. Krissy Dyess (00:18:41): Sure. Shelly Avery (00:18:41): And Microsoft has an amazing culture. We have been on a journey through Satya, our CEO, on really changing the culture of inclusivity and a growth mindset. And it's interesting when we interact with customers who don't have a very friendly and open culture. But I think you use it the way it works for you and for the people that you're working with and your culture. So if you're in a small team setting and it's friendly people, you should feel comfortable to use it the way that it makes you feel comfortable. Shelly Avery (00:19:23): But if you're in a quarterly business review with executives, I mean, think about it. If you're going to lunch with your buddies, you're going to act different than if you're going to a formal dinner with executives, right? And so you use the technology in a way that you would use real life. And so if I'm going to lunch with my buddies, I'm going to be cutting up and giving them funny gifts and patting them on the back. And if I'm in a business meeting with executives, I'm going to have my best dress on and my polite manners. So I'm going to act that way in a meeting too. Krissy Dyess (00:19:51): I totally agree with you. I've had the opportunity recently to work with the Microsoft team and I agree there's a completely different culture than what we see, even from my background, even from our culture, I mean, we're all friendly and stuff. Every organization does have their own culture and exactly what you pointed out, even within that organization, there are different levels and cadences. Shelly Avery (00:20:13): Yeah, it's crazy. So I spent the last three years helping IT organizations deploy Microsoft Teams. And I did that in the midst of COVID, in healthcare. So when you say remote work overnight, literally help telecare organizations enable 35,000 individuals for Teams over a weekend. To the question about culture, it was very difficult for some of the IT organizations to say, "Well, what should we allow our users to do?" There's sensitivity that you can set on gifts in a team. You can say, do we want them to be explicit or PG-13 or PG or G? Shelly Avery (00:20:58): And I had one organization that if there was anything to do with a gift that had to do with politics, that was seen offensive, because what if I sent you a Trump gift and you were a Biden person. I mean, how dare you do that? And so that company was very, very sensitive and they would only allow gifts at a G rating. And a G rating were like cartoons and stickers, where other organizations are like, whatever. If you don't like it, don't use it. Shelly Avery (00:21:29): So there's definitely different cultures and different organizations across the country. And so luckily, there are the controls in the back end and the administrative section on those kinds of things. And then for data too, do you want data to be shared externally or do you want people to be able to chat externally or not? And who do they want to be able to chat with? So there's lots of governance and data protection controls in the background. Krissy Dyess (00:21:58): And being a data person, what is really cool about Teams and all these things that you just described is on the backend, all of that stuff is just data. That's why you can control. That's why you can help your organization with these. And I think that's really cool. I am super excited about Teams. I was excited about Power Pivot in Excel, and I was excited with Power BI Desktop, and what you explained too, how it starts to integrate the Power Apps, the bots, all of that into this changing ecosystem of how we work, the ability to bring that from the top level all the way down to the frontline workers, to impact and drive actions, I am super excited about Teams. I can't wait to see how organizations learn more, how that they can adopt these tools, because I think there's so much that people just don't know because it is so new and it's a different way, just like Power BI was. Shelly Avery (00:22:57): I'll give you an example about that. We have this one group inside of Microsoft, it's called the [SLATE 00:23:04] team. And you know how Microsoft is with making acronyms. I have no idea what SLATE actually stands for, but what they do is they work with customers who have a unique idea and they help them build low-code or apps inside a Teams. And they built this one app called the Company Communicator. Basically what it is, is it's like a mass texting app, where I can create a little message and push it out via chat or via a Team to everyone in the organization or to a subset of people. Shelly Avery (00:23:39): And it created a cute little adaptive card where you could put a headline and a picture, and then a little message. After that got so popular, Microsoft built it into the product, right? It started from a customer, it went through a program. It was customer purpose built. Then it got so much organic growth through all of our customers loving this idea of pushing notifications. So we turned it into code and now it's in the product. I think that, that is so cool, how Teams is democratizing the ability for customers to influence product and future releases that now everybody in the world gets to take advantage of. Shelly Avery (00:24:28): So that's another thing that I just, I love about it as a product, but also we call it the Teams team at Microsoft, is they're innovating so fast and I'm just a few months out of that role and I already feel behind. I just saw a blog with what's new in Teams in August. And I'm like, I need to go and read this to make sure I know everything that's new because they just come out with so much new stuff every month. And it closes the gap, Rob, you mentioned earlier, when a product's only 99%, it's really zero. Shelly Avery (00:25:03): I think the bet on Microsoft is, it might be 99% today, but it's probably going to be 100% in a couple of months because we're innovating so fast. And your 99% today, isn't going to be your 99% in six months. And so it's a moving target, not only for the customer, but for Microsoft too. And so we want to catch up with features that are on the backlog, but the backlog just keeps growing and growing. And so the faster we can innovate and build these into the product, we will. Rob Collie (00:25:33): I just feel like if you're watching a really high stakes chess match, which I never do, but imagine that you did, to the untrained eye, this is an even game. And all of a sudden, one of the chess masters just resigned, just tips the king over and says, "Yeah, I've lost." I just feel like as a software industry, we should just take a moment and say, "Hey, Salesforce, all your other, your SAP, do y'all just want to call it, you want to just tip your Kings over, save us all a lot of trouble." I don't even work for Microsoft and I'm looking at this going, "Oh, boy." Remember, I'm not paid to say this. I really think Microsoft has really, really, really dialed it in. Rob Collie (00:26:16): I'd like to also go back to your answer about why Teams is so special. I think it was a perfect answer. Rewind 10 years, 11 years, I'm struggling to explain to people why this whole DAX and tabular data modeling thing that was only present at that time, only in the Excel environment, and only as an add in, it was, in some ways the most primitive exposure possible of this new technology. I was trying to explain to people why this was so special. And it was particularly difficult to explain it to people who had intimately known it's [4Runner 00:26:49], which was the analysis services multi-dimensional. Rob Collie (00:26:52): And really, technologically speaking, there wasn't too much about this new thing that was superior. If you looked that gift horse in the mouth and examined its lines and everything, you'd be like, there's really not much different here or it's clearly better. Now it had one thing that was clearly better, which was the in-memory column oriented compression. And that was pretty sci-fi. That was pretty cool, but it wasn't the tech. It wasn't like one of these was able to make the CPU scream at 500% capacity or something like that. It wasn't that at all. It was that this new tech fit the way humans work so perfectly. It met the humans where they were, whereas the previous one forced the human world to bend to its will. The humans had to come to it and meet it where it was. And this is a very subtle and nuanced point. Rob Collie (00:27:49): But in practice, it is everything. In practice, it means that a company like ours, that operates completely differently than the data consulting firms and BI professional services firms of the past, and really honestly, today, I think most firms are still operating that old way. We're a completely different species of a company. And we exist because these tools work a different way for the humans. And over and over and over again, this is why the ROI from Power BI is so insane when you use it the right way, when you really lean into it strikes. Your explanation about Teams, it echoed that for me. It's professional tool that fits the humans really well. Rob Collie (00:28:36): And you don't typically talk about stuff like that. If you're a technology professional, those kinds of answers, you're always looking for some sort of more hardcore answer. It's capabilities. Look at the check boxes it's got on the box, right? This other description of it fits the humans really well, it's not a good sales pitch, but in reality, it's everything. It's a difficult thing to do, right? Rob Collie (00:28:59): One of its chief strengths is also just, doesn't make a good sound bite or like, oh, okay. So now you have to wait and see it for yourself. You have to experience it. And I think that's what we've seen. Is that the people who've really leaned into Teams, they all have this surprised reaction, or they say, six to 12 months after really getting into it, as they describe how much they like it, there's this undertone of, "Yeah, it's really turned out to be amazing." You can tell that they didn't quite expect it. And now they're a convert. Shelly Avery (00:29:31): Well, I think a lot of IT organizations, they push applications out and Teams to the masses is, oh, it's just another application that IT is forcing us to use. And they're resistant to change because the last app IT pushed out wasn't great. And then they finally get in there and they do what you and I are talking about. They chat in it, they text in it, they meet in it, they have fun in it. And then six months later, they're like, "How did I do my job without this?" They enjoy it. It's easy to use, it's very accommodating and friendly to different personalities and different work types. And it's so unique in the way that you and I and Krissy can all use it all day long, every day, and we use it completely differently, and yet we all have the same opinion of it, is it works great for me. Rob Collie (00:30:30): That's the whole mark of a successful product. And one that spreads itself, right? It develops impassioned evangelists. Again, just like everyone else, I would not have seen that coming. Shelly Avery (00:30:41): You were at Microsoft from an Excel Power Pivot perspective and you now are not, and have started your own business and they're successful in that. I know people that worked at Microsoft and literally quit Microsoft just to be a YouTube star on how awesome Teams is and all the cool stuff you can do with it, and they've made a living out of it because it's a product that does so much and it's never ending in the way that it can be used and how unique it is. It blows me away when I actually saw a gentleman who was at Microsoft as a product manager and I followed him on YouTube, and then one day he said, his YouTube post was, "I am retiring from Microsoft." And he was younger than I am. I'm like, "How are you mean you're retiring?" Krissy Dyess (00:31:32): I followed the same story that you did, Shelly. I know exactly who you're talking about. What I really love, what the appeal of it to me is, is it's always these little things that people don't know that make the biggest impact. And when you're in an environment where you're not exposed to people doing those neat tips and tricks, having the ability of finding somebody out onto YouTube sharing that, and then you can bring it into your organization and start to spread it, it's really impactful because a lot of times people think, "Oh, it needs to be this complicated technical solution." And honestly, it's always the little things that people are like, "Wow, I didn't know I could do that." Shelly Avery (00:32:12): Agreed. Rob Collie (00:32:13): So let's turn the corner. Let's talk about health, Shelly. Where should we start? Shelly Avery (00:32:16): Well, when you were talking earlier about how Microsoft Teams is this new thing, I think people had an aha moment and I think there is an aha moment that is about to come in health. And I'd love to talk about that for a minute. I think it plays into your audience well because it's about data. Rob Collie (00:32:41): Very important question. Are there people involved? Shelly Avery (00:32:43): There are people involved. Rob Collie (00:32:45): Oh, okay then. We're good. We're good. Shelly Avery (00:32:46): Yeah, yeah. Rob Collie (00:32:47): Okay. All right. Shelly Avery (00:32:48): Yeah. There is interoperability of data in health. So think about, from a human perspective, heaven forbid you get in a car accident and you go to an ER and they have to bandage you up. That ER is owned by some health organization and they now have data on you, but it's not the same health organization where you go to see your primary care physician. And so how does your primary care physician know about your ER visit and how do they know what medicines that you were given and whether those had adverse reactions to you or not? Shelly Avery (00:33:22): Well, without interoperability of data, that just doesn't happen. And there is an old version of healthcare interoperability called HL7. Again, another acronym, but the new interoperability standard is called FHIR, Fast Healthcare Interoperability. The idea of FHIR is supposed to be universal so that that ER can digitally transfer that information to your PCP, your primary care physician. And so your medical record and your information can stay up-to-date with all the people that are medically treating you or for even you, like if you move to another city and you want to say, "Hey, I need all my information. I'm going to take it to my new doctor." Shelly Avery (00:34:10): And so this idea of interoperability, it's not a Microsoft thing. It's a healthcare standard that is happening in the industry. But what Microsoft has done is we have gone full steam ahead on this FHIR interoperability and built a stack of technology solutions based on ingesting data through FHIR. And we have a bunch of healthcare APIs, FHIR API being one of them, to now take all those low-code, Power Platform, Microsoft Teams, bots, and hydrate those apps with all of this data from healthcare to now be able to really unleash this data. Shelly Avery (00:35:02): So you need an app to have a rounding solution bedside in a hospital. You now have the ability to suck that data in from Rob, that he's been to the ER and his primary care physician, and now you're in for knee surgery. And so I have all that information that's aggregated from all over, and now it's in this cute little rounding app that we built off of Power Platform, or same thing with Power BI, or a chat bot in Teams. We can chat this health data and say, "Hey, is Rob's labs ready yet?" And the chat bot goes and sucks that data in and says, "Yes, here's Rob's labs. Here's the link to it." Shelly Avery (00:35:44): And so just being able to unleash that and build these apps or bots or experiences for the human to be able to interact with that data is really what we are trying to do. And so I'm super excited about it. This is a new team that I'm on and this is really what we're trying to drive. So I think it's going to be game changer for the industry. Rob Collie (00:36:09): So this is my first time hearing of this new interoperability standard. First of all, FHIR, it sounds cool. I like it. It definitely sounds like it's useful for sharing healthcare and patient information across organizations. Do you also see it as something that's going to be useful even within an organization, like between the silos, between these different systems within a single entity? Shelly Avery (00:36:32): Yes. And it will do that first before it goes across organizations. And- Rob Collie (00:36:37): Okay. Shelly Avery (00:36:38): This is a challenge internally too, because there's software technology that these electronic medical records, that your medical record, my medical records sit in at each of these organizations. And most large healthcare providers have multiple instances of these electronic medical records. Sometimes they have multiple different types through mergers and acquisitions and growth over time, or this department got an upgrade, but the other department didn't. And even amongst themselves, they can't share information with each other. And so if a call center services 10,000 patients, but they have four different electronic medical records, when Rob calls into that call center, how the heck do I know which one you're in and who you are and all that? Shelly Avery (00:37:30): So if we can use this FHIR interoperability to aggregate all of that and have it in a single place, now we've built this great call center app that knows that Rob is calling in and who you are. And I immediately have your information. I could say, "Oh, Rob, are you calling about the meds that you got from your ER visit last week?" It's very personalized. So let's personalize care. Let's have better patient engagement. Let's round with our patients and have the right information where we need it, regardless of where the original data sits. Rob Collie (00:38:01): So it's a new standard, FHIR, right? Shelly Avery (00:38:04): Yes. Rob Collie (00:38:04): And so let's pretend I'm a healthcare organization and I have, again, these, "I've got a best of breed set up." I've got a jillion different siloed line of business systems. Some of them are new, some of them are not. These older systems that I have, they're not going to be playing nice with this new FHIR standard. They haven't even heard of it, that software. So- Shelly Avery (00:38:24): That's correct. Rob Collie (00:38:25): How do I, as an organization, connect those wires when some of my more long-ended two systems aren't going to be supporting the standard natively? Shelly Avery (00:38:36): And that's part of our challenge right now. A lot of the customers that we're talking to, they see the future, they like the vision that Microsoft is painting. They want these human interactions like we're discussing, but they'll say to us, "We aren't ready for FHIR," or, "We haven't made that transition yet." Our comment back to them is we can help you get there. And it is a requirement that they get there by a certain date in the future. So why not have a company like Microsoft help them? Shelly Avery (00:39:11): Now, it's not necessarily an easy task. There are data mappings that have to happen. And a lot of these electronic medical systems are in the old standard, which we can map from the old standard to the new standard. It takes a little bit of manual work, but you only have to do it once, because once you do it once, it's in the standard and now you've unleashed that data. There's also custom fields though. Some developers- Rob Collie (00:39:38): Of course. Shelly Avery (00:39:38): Have gone into these electronic medical records and they built some custom field that doesn't map to FHIR. So then you got to have somebody who knows that. And so there is hard work to do it in the beginning. I'm not trying to say that there isn't, but we do have healthcare interoperability partners, and system integrators, and Microsoft to help these organizations get into that standard. And the new marketed term for all of this is the Microsoft Cloud for Healthcare. Shelly Avery (00:40:10): And so it's all about ingesting that data and then unleashing that data to create these great, either apps or applets, or bots, or scenarios that empower the people who either work at these systems or even for patients to be able to interact with and have better experiences for themselves. And so, you only have to do the hard work once and then it's in there. And so you're right. It isn't a turnkey, there is work that has to be done, but they're going to have to do it eventually. So we'd love to be able to partner with them and help them get to meet those regulatory compliances that are coming in the near future. Rob Collie (00:40:52): Yeah. Another example of where it's good to have a platform, right? Shelly Avery (00:40:55): Right. Rob Collie (00:40:56): If that missing 1% is interoperability, that's a big 1% that a platform like Microsoft is very, very, very prepared to help you connect those dots. It also, it's really helpful that these older systems that we're talking about, if they already had to, as you pointed out, if they already had to play ball with an older interoperability format, that's end sharp contrast to your average line of business software that has no interest in interoperability at all. T Rob Collie (00:41:26): he average line of business system is like, no, no, no, no, no. We are a silo and we like being a silo. And why would we ... Mm-mm (negative), no. We are here to hoard the valuable data that is collected in here. Mm-mm (negative), no. Even though it sounds rightfully like labor intensive, one time investment, compared to the average interoperability game that happens across the world, across all industries, it sounds like there's already a really, really, really strong starting point. That's a big, big, big point in your favor. Plus if it's going to be a regulatory standard in the future, that is unheard either. Shelly Avery (00:42:00): Right. Krissy Dyess (00:42:01): I'm curious though, as to what changed, because honestly, it is one of the reasons why I'm appointment averse, is because every time you go into a different doctor and it's really common for people to move nowadays. And you're like, oh, I got to fill out all the same forms, over and over again. In my mind, I always thought it's somewhere. Why can't it be everywhere? I guess I thought maybe there was some privacy reason that was the blocker. Has something changed there? Shelly Avery (00:42:28): You're absolutely right. And no, there is still what's called the HIPAA regulations. And so the entire Microsoft Cloud for Healthcare is HIPAA compliant. It does meet all of the requirements for that. And so the FHIR standard, FHIR mandate is under that HIPAA compliance. And so that's a U.S. regulation. It's not in the EU or others. They have their alternative to HIPAA around keeping healthcare information protected. And it's important to be able to do that. And so the old HL7 standard of interoperability was highly customizable and the new FHIR standard is less customizable, and that is how it is able to have more liquid interoperability. Shelly Avery (00:43:27): I'll give you an example. Sex and gender are two completely different things. And we know that in this day and age, but in the FHIR standard, there is a born sex and it is one or another, and you can't really change it. But in the HL7, you could add seven or eight or nine or 10 different categories for that. So when you have the FHIR standards met, born sex is a one or a zero, basically. Right now they have the other category of gender that there's a bunch of options there. And then they even have another category. And so it's creating the standard that everyone in healthcare has to meet as opposed to going in and making it where I can make 37 customizations because in my hospital, I allow them to have 37 choices. Shelly Avery (00:44:28): Religion is another one. Religion is huge. I mean, there's endless amounts of religions. In the FHIR standard, there's a set amount and then in other. And so you have to fall into either the set amount or other, and that allows for that more liquid interoperability, or that is the goal. That's the goal of FHIR. Now, I'm getting a little deeper into more of the regulatory compliance and how the standards work. There's tons more deep technical experts on healthcare compliance than I am. I'm more of a technologist than a healthcare compliance expert, but knowing how it works a little bit helps you understand why the technology is empowering or we hope in the future has the potential to empower the industry to be able to do more with this data. Rob Collie (00:45:18): Even that little deep dive there, I mean, that really, for me and for the listeners, you really just certified your bonafides there. If anyone was wondering how deep you were into this stuff. You always got to be careful. You're not the expert on that. There are people who know it much better than you. The fact that you know that much while also being on top about all those other stuff, you're in the right role. Like Holy cow. Shelly Avery (00:45:41): For my role, they did require healthcare expertise. And we have another team that partners with us that actually are folks from the industry. So we have MDs, PhDs, ex-CIOs and nurses with their RNs, from industry that work at Microsoft as the healthcare industry team, that partner with us around more of these deep healthcare needs. And when we're talking to chief medical officers or chief nursing officers, who doesn't like their title to be matched. Shelly Avery (00:46:18): So when we have a chief medical officer like Dr. Rhew at Microsoft, or a chief nursing officer, or ex-CIOs of healthcare organizations to come in and talk to current CIOs, they feel like we're talking to them from their shoes. And so my team partners with that industry team. Not that they aren't technical and don't understand how the technology works, but we are supposed to understand healthcare enough and how the technology fits for those healthcare scenarios and use cases that they need help with. Rob Collie (00:46:52): To use a metaphor, if you're going to build re race cars, it helps to hire some people who drive race cars. Shelly Avery (00:47:00): Exactly. Rob Collie (00:47:00): Right. I've seen this evolution on the Excel team over the years too. There's more and more people on the Excel team who came up not originally as software engineers, but as people in finance and things like that. Whereas I was a computer science major that had to learn Excel in order to work on the Excel team. And so it was, if you populate a team with nothing but me, back then anyway, you end up with a team of mechanics who has no idea what it's like to go into turn three cars ride. I'm using a racing metaphor. I don't even watch racing. I find it incredibly dull, but I love a good metaphor though. Shelly Avery (00:47:40): Sure. Absolutely. I think Microsoft has done that and is continuing to expand that industry team, even our president of health and life sciences comes from the industry. A lot of our leaders from even a marketing perspective or from a product development perspective, they're starting to hire from the industry. Rob Collie (00:48:03): That's wisdom. That's humility. I think 20 years ago, we would've probably seen Microsoft put some up and coming computer science guard in that role. And you still need those people for sure. Someone who grew writing C++ isn't going to know everything that they need to know. It's again, there's this whole notion of collaboration. The thing we keep coming back to. It takes a lifetime to amass the expertise to be truly good at something. Rob Collie (00:48:29): And so, guess what, you're never going to find everything that you need in one person. You're going to need people with different histories in order to be successful. And so it's simple. And yet I don't take it for granted, when I see teams being assembled this way, I've learned to respect it, that it is a necessary and good thing. It's always worth praising even if it seems like it's table stakes. A lot of people don't view it as table stakes. Still, they've got some things to learn. Krissy Dyess (00:48:55): So Teams is empowering, it's a central hub, it's a window into all these other applications, the Power BI that brings the insights, the bots, the Power Apps, the drives actions. Tell me a little bit about the Veeva. I hear about Veeva, that whole human side. Tell me how you're seeing Veeva start to make its way to help balance, I think. Rob Collie (00:49:21): And what is Veeva? Krissy Dyess (00:49:21): Yes. Veeva. Shelly Avery (00:49:23): Yeah, sure. Microsoft Veeva is what we have marketed the name of our employee experience platform. If you're a Microsoft E, you've probably seen in the past years something in Outlook called MyAnalytics. MyAnalytics was the very early stages of what is now Microsoft Veeva. MyAnalytics was a analytics engine that had some AI in it that would give you insights about your day, or your week, or your month. It would tell you, "Hey, Shelly, you were meeting with Krissy like every week for a few weeks and you haven't talked to her in a while. Do you think it's about time to reach out?" And then it will even give you a button that says, chat with Krissy now, or schedule a meeting with Krissy now. Krissy Dyess (00:50:18): And I love that. Shelly Avery (00:50:19): Yeah. It would pop open your calendar- Krissy Dyess (00:50:21): Because I would forget. You have all your lists and you have all your things. And honestly, when those things would come across, I was like, "Oh, yeah, you're right." And I was like, wait a minute. The technology is getting on top of all this stuff that I can't keep track of. It's amazing. Shelly Avery (00:50:34): Yeah. That was the beginning of it. Microsoft also came out with another tool called Workplace Analytics, which was the next step of MyAnalytics, where it would anonymize the data and send it to your manager or to your direct report and it would go up the chain all the way. So if my manager had 10 people on it, he would get a daily or weekly report that said, "Hey, your 10 people, this is what they're doing. They're multitasking in their meetings or they're working after hours. Hey, maybe you should encourage them to close the lid of their laptop at night. Let them have better work-life balance." It provides the manager with insights. Right? Krissy Dyess (00:51:17): That's right. Because these are important. This is important to your overall health of your business, your company, your culture. Shelly Avery (00:51:24): Exactly. So Microsoft Veeva took MyAnalytics and turned it into what is now called Veeva Insights. And then there is Manager Insights and Workplace Insights. And so insights is really just a rebranding and a movement from MyAnalytics in Outlook. And it's now insight of Microsoft Teams. Because Teams has that developer side of it, there's so much more that you can do with that information in Teams than it is within Outlook. And so it gives you nudges also to set focus time on your calendar or set learning time on your calendar, and it updates your status, your green, yellow, red, to focusing or away or things like that. And so it uses AI to help you know maybe when you're overworking or who you might need to collaborate with. Recently, Microsoft made a investment with a meditation company, Headspace. Krissy Dyess (00:52:30): Yes. Yes. See, this speaks to me. I love it. Shelly Avery (00:52:33): Yeah. It's built into Microsoft Veeva. What I use it for is there's a feature called your Virtual Commute. We all used to drive in and drive out of the office and you had, and I forgot about it, but you had that me time in the car. We could listen to a podcast or veg out on the radio or something, but it was some me time while you were in the car, going home from work. And we lost that when we all went remote. It's like I literally shut my computer and then I walk in the kitchen and start cooking dinner. It's like, where is that me time? And so I use the Virtual Commute and I don't use it every day. It's about a five to seven minute decompression. It says, are you ready to wrap up your day? Krissy Dyess (00:53:17): I need this. Shelly Avery (00:53:17): Do you have any last minute emails you need to send? Do you need to create any to-dos? And it integrates with Microsoft to-dos, so you can click on things and say, add to my to-do. And then it walks you through a little meditation. Yeah, Rob's got it on right now. Krissy Dyess (00:53:38): This feels amazing. You just took this conversation to a new place and adding in the music. I'm feeling it. This is just taking work to a new level. Rob Collie (00:53:50): Imagine a world of Raw Data. Data with the human element. Krissy Dyess (00:53:58): No, no. Make it come back. Shelly Avery (00:54:00): Yeah. Krissy Dyess (00:54:00): Oh, no. Can we get that? Rob Collie (00:54:06): I couldn't help it. Krissy Dyess (00:54:08): No. This is what people need. Honestly, when I heard about this, and I'm surprised when I say Veeva, people are like, "What's Veeva?" And I loved your explanation because it gave so much more detail and history, people need this. Think about like, it gives tap it into how long you've been sitting and giving you that balance. This is amazing. Wow. I'm even more excited about this. Shelly Avery (00:54:31): Well, and I think- Krissy Dyess (00:54:33): I think I can make it another 50 years in the work environment now, like [inaudible 00:54:37]. Rob Collie (00:54:37): I said, that was the plutonium battery that you needed. Shelly Avery (00:54:41): Well, and it's so cool because just like there's a Teams team, there's a Veeva team and they are just getting started. They're integrating LinkedIn learning into Veeva learning and all these other learning platforms. So you can learn right in the UI of Teams and you don't have to single sign on and then MFA and forget your password to log into all these other learning tools. And it allows you to share it right inside of Team, say, "Hey, team, I just did this great learning. I think it'd be great for you." Shelly Avery (00:55:11): And customers can upload their own learning modules to it. There's Veeva topics, which is this Wikipedia where it's self-curated information. And what is great, like we've talked about acronyms at Microsoft, every acronym has a topic page now at Microsoft. So anytime you type an acronym, it hyperlinks it. So I'm chatting you in Teams and I say FHIR. And it's like, what the heck is FHIR? You hyperlink it and it gives you an explanation of what FHIR is. Krissy Dyess (00:55:43): That's game changer in itself. Rob Collie (00:55:46): So, does it also pick up pop culture, like if I type IKR, I know, right? And someone else doesn't know what that means. Usually I'm on the receiving end of this. Someone used an acronym yesterday in a chat with me that I'm sitting there going like, "Oh, what new hipsters saying is this?" And it turned out, no, no, no, no, no. That's the customer, Rob. Krissy Dyess (00:56:08): Here's something really weird too. I love this Veeva thing. I love Teams and all this productivity and pulling all the pieces together. Gosh, back in the day, when I moved from back east to Phoenix out west and I started working at the company I was with, they actually had a meditation person that would come in every so often and they would have us stand up and do exercises. And then even to just like little chair massages and it all- Rob Collie (00:56:41): Please continue. Krissy Dyess (00:56:42): Right. Oh, this is just as amazing. I don't even know what track you got, what meditation track, but I just need this in my day. And so many other people do. Rob Collie (00:56:55): Do you see that? I feel compelled to not even hold the phone steady. I have to move it in a circle, a very gentle circle as I play it into the microphone. I didn't even know I was doing that. Shelly Avery (00:57:06): It makes you want to sway. Rob Collie (00:57:11): Yeah. In the middle of the meditation music, you heard my reminder for my next meeting go off. Oh, it really spoiled the mood. Krissy Dyess (00:57:21): And you haven't reviewed that 50 page slide deck. And then- Rob Collie (00:57:25): That's right. Krissy Dyess (00:57:26): Here it goes. Reality comes right back in. You're like, "Oh, okay. Veeva, Veeva, help me." Shelly Avery (00:57:32): I Mean, not to pitch, I'm not selling Veeva anymore. I'm a user of it, but those are also things it does. It gives you alert in the beginning of the day that says, "Hey, Shelly, here's what your day looks like. You got these six meetings. Here's a PowerPoint that you were working on, that might go with this meeting. Do you need to review it?" The Outlook team has also built in, I don't know if you guys have seen this. In Outlook now, you can create 25 minute meetings, 45 minute meetings or 55 minute meetings that either start five minutes late or in five minutes early to give that bio break meeting buffer between meetings. Krissy Dyess (00:58:14): That's right. Shelly Avery (00:58:14): Because when you're fully remote, all I do is sit around and I click the join button all day. I need to go refresh my drink, I need to stand up, I need to stretch. And so, again, we talked about culture at Microsoft earlier, and Satya has been on multiple news outlets talking about how we were the customer zero for Veeva and for this workplace balance. And it's so incredibly crazy to me how much people care about people. It's what we need to do as a human race. We just need to care about people more and allowing technology to play a part in that. It's so cool that we have that. Hopefully organizations take advantage of it for their employees. So more people can have ... It's just the little things- Krissy Dyess (00:59:06): It is the little things. Shelly Avery (00:59:06): You mentioned, Krissy, earlier, it's the little things, like five minute less meetings. It's a sign of respect. Let me use the restroom. Don't be mad at me if I'm not on at the top of the hour. I need two minutes to jump from my last meeting to switch my train of thought to get into the next one. And I think that it's super cool that I get to be a part of a company that's offering that to others. And I hope the rest of the world sees it and gets to take advantage of it. Krissy Dyess (00:59:35): This week, just recently, because I am seeing the five minute grace period, the meetings start five after, but I just, this week, because now people are starting to creep in at 10 after. So it's like everybody expects that five minute because exactly like you said, you're on back-to-back meetings, you don't get a break, but now that five minutes, now it's okay if you're 10 minutes after. Then it's going to be 15. Right? Rob Collie (00:59:59): Yeah. It's like back when I used to teach classes, I would tell people we're going to take a five minute break and we'll resume in 10. Right? Shelly Avery (01:00:08): Yeah. Krissy Dyess (01:00:09): That's right. Rob Collie (01:00:10): But if I tell you it's a 10 minute break, it becomes a 15 minute break. You can't have that. So just say, "Five minute break, but I'll see you in 10 minutes." Krissy Dyess (01:00:17): When I was training, there was no break. So all my students out there- Rob Collie (01:00:20): You just powered through? Krissy Dyess (01:00:22): Because there was so much cool things that I ... I was like, "No breaks. Let's keep going." And they're looking at me. Rob Collie (01:00:28): In the morning, everybody please come in, sit down at a seat that has a book in front of it. And in the bag next to it, is your astronaut diapers for the day. Krissy Dyess (01:00:38): Don't drink water or you might have to go. Rob Collie (01:00:41): Yeah, yeah. We have capitas. Krissy Dyess (01:00:43): I was a different person back then. Now I'm embracing the Veeva and the breaks. I feel sorry for all my students, but that's what I did, because there was so much cool stuff. No breaks. Rob Collie (01:00:52): While we're on this topic, just briefly, this Veeva thing, it seems like one of those technologies that it's not the only thing like it, for sure. But it can be used for good, but it could also be used in a very dark way, if we're not careful. When we were talking to Jen [Stirrup 01:01:08] on a recent podcast, even dashboards reports and things can be used as a form of workplace surveillance. I do see all of the glass half full potential here. Are there any concerns about customers saying, "Yeah, yeah, yeah, we'll use this for the positive, the meditation and the humane," but then they just turn around and roll it out as like the Amazon horror stories of the driver's not allowed to take bathroom breaks. And this is a means of enforcing that. Shelly Avery (01:01:36): Yeah. I think there is fear of that. I mean, I know a ton of people they put duct tape over their cameras and they don't want windows hello because they think the world's spying on them. There are just people that have that fear. Rob Collie (01:01:49): I don't know any of those. Shelly Avery (01:01:51): Yeah. But I think Microsoft is trying to protect customers a little bit in this area, that you are the only one that can see your data. Everything else is anonymous. Now, if you're a team of one and you report to your manager, obviously the manager is going to know it's you or a team of two, there are those things. But as you go up from a manager one to an M two, to a director, to a VP, and then all the way up to HR, unless you're a very, very small company, the data is segregated into demographics, and geographies, and departments, and roles, and skills, and tenure. And they slice and dice that data to learn insights as to how one population is performing or working over another population. Shelly Avery (01:02:42): I think it was one engineering group at Microsoft that was really, really being overworked. Not that they weren't all being overworked. I'm sure everybody is overworked in every position at every company everywhere. But there was this one in particular organization at Microsoft, I think they were putting in like 18 hour days. It was ridiculous. And the feedback they got from these individuals was, "We have to work after hours because we are in meetings all day." And they were individual contributor. They were coders. They needed that three to four hours to get that line of code written or tested or whatever. Shelly Avery (01:03:17): They made a meeting free Wednesdays. They literally wouldn't allow people to have meetings. Now you could collaborate with people and set your own, but no internal or manager type meetings those days. And the productivity of that group after three or four months, just completely changed. And so using the data, that's what the data is meant to be there for. Now, there are people in the world that are just going to make Ponzi schemes. They're just evil people. Data can be used, I'm sure in malicious ways. I think Microsoft is trying their best to make it so they can't be super micromanagement at least down to the individual level. Rob Collie (01:04:02): It's a certainly a very, very challenging frontier for a technology company, right? We're going there as an industry. It's inevitable. It's happening. There's no point in trying to say, "Oh, no, let's put up the firewall here." We're seeing this thing. This goes back to my original, something I said a long time ago in this discussion about how certain things don't go through a computer very well. I think this is one of those examples. We're seeing it with Facebook and YouTube. Technology companies, they're in the position now, these companies, of being the arbiters of truth and there's no algorithm. Rob Collie (01:04:36): There's actually a really great YouTube video, or this one guy in the UK talks about, there is no algorithm for truth, but we've created these platforms that are the primary disseminators of information in the world and they're completely and forever ill equipped to be arbiter of truth. Wow, look at the world that we're in. So, I don't think this particular topic is on that scale. It doesn't have that same reach. I don't think as the other things, but I think it's a cousin of those problems in some ways. It's a more solvable problem, I think, than the Facebook and YouTube problem that we're seeing. But this is where the real stuff is. Is like, how do we deploy these things in a way that is a net benefit to humanity? And not just as a net benefit to shareholders. Shelly Avery (01:05:27): Exactly. Rob Collie (01:05:28): That's attention, especially I think in the United States. It's a very different dynamic like in Europe, for instance. I can imagine the adoption profile of something like Veeva in Europe will be very different than in the USA. Shelly Avery (01:05:40): Well, it will have to meet European standards. European has GDPR around privacy laws. And so there might be different settings or features that can or can't be enabled in a product like Veeva in UK or in Europe to comply with those. Rob Collie (01:05:58): A lot of consumer products in the United States, they have to meet California standards. Shelly Avery (01:06:03): Exactly. Rob Collie (01:06:04): And then because of that, the whole country is California in terms of its standards, because you're manufacturing product. Software's a little different, it can be tuned differently in different places. Shelly, I have really enjoyed this conversation and thank you so much for making the time. You also get a gif of yourself. Why don't have to be mentioned that. Krissy Dyess (01:06:19): A G-I-F not G-I-F-T. Gif. Rob Collie (01:06:22): Right. Not a gift, but it is a gift- Krissy Dyess (01:06:24): It's a gift or a gif. Rob Collie (01:06:29): Or a gif. Yeah. Shelly Avery (01:06:29): Yay. Fun. Rob Collie (01:06:29): Yeah. Krissy Dyess (01:06:29): And you could frame it. Rob Collie (01:06:29): It needs to be a movable frame. We could sell it as a