A weekly show for developers and technologists that are interested in technology, life-long learning, and the people behind the tech. This is not an ordinary technology show as it goes beyond the latest tools and frameworks and shines a spotlight on the humans that create and use it.
This show is for entertainment purposes only.a
Are you stressed? Burnt out? Or on your way to burnout? Or do you just want to become healthier?My new course will teach you what stress is. How to recognize a burnout. And how to prevent it and recover from it, by working on the pillars of health (sleep, food, exercise, clean living, active relaxation) and by changing your life (work, relationships, environment). Even if you are not burnt out or stressed, you can use these tactics to become healthier and live a longer and happier life.Check it out at https://app.pluralsight.com/library/courses/recognize-prevent-manage-burn-out/If you want to learn more about health and wellness, check out https://www.improvingbarry.com/, and subscribe to my newsletter.
I have been using Windows 10 for years now and I recently took the time to learn how to be more productive with it. There are lots of shortcuts and tools in Windows 10 that help me throughout the day. Do you also want to be more productive with Windows 10? Then check out my Udemy course called Windows 10 Productivity Booster. About Tom:Tom Kerkhove works for Codit as an Azure Architect, is a member of the AZUG crew and has been a Microsoft MVP & Azure Advisor since 2014. He turns coffee into scalable & secure cloud systems.Show resources:Find Tom and his projects on GitHubSponsor Tom's workTom's blogConnect with Tom on Twitter
Are you stressed? Burnt out? Or on your way to burnout? Or do you just want to become healthier?My new course will teach you what stress is. How to recognize a burnout. And how to prevent it and recover from it, by working on the pillars of health (sleep, food, exercise, clean living, active relaxation) and by changing your life (work, relationships, environment). Even if you are not burnt out or stressed, you can use these tactics to become healthier and live a longer and happier life.Check it out at https://www.azurebarry.com/burnout/ About Jurgen:Jurgen Kevelaers is an independent software architect and developer working on scalable solutions that run in the cloud. His main focus is the Microsoft Azure and .NET ecosystem. Jurgen was involved in projects in small and large companies, in various sectors, such as education, health, maritime, meteorology, energy and security. Through his years of experience, he has developed a pragmatic approach and a thorough understanding of designing and implementing maintainable applications.Resources:Jurgen's BlogFollow Jurgen on Twitter Connect with Jurgen on LinkedInCheck out Jurgen's Pluralsight courses
Are you stressed? Burnt out? Or on your way to burnout? Or do you just want to become healthier?My new course will teach you what stress is. How to recognize a burnout. And how to prevent it and recover from it, by working on the pillars of health (sleep, food, exercise, clean living, active relaxation) and by changing your life (work, relationships, environment). Even if you are not burnt out or stressed, you can use these tactics to become healthier and live a longer and happier life.Check it out at https://www.azurebarry.com/burnout/ Alex Thissen:Alex is an application development enthusiast since the late nineties and works as an architect, lead developer and mentor at large enterprises and small companies. He spends his time teaching other developers the details of the Microsoft development platform and frameworks, and coaches architects to design and build modern distributed applications at cloud scale. He has received the Microsoft Most Valuable Professional award for Visual Studio and Development Technologies 13 times. In his spare time Alex likes to participate in all kinds of sport, and loves playing and programming new and retro video games.Resources:Follow Alex on TwitterAlex's Sessionize profile with all his events
Are you stressed? Burnt out? Or on your way to burnout? Or do you just want to become healthier?My new course will teach you what stress is. How to recognize a burnout. And how to prevent it and recover from it, by working on the pillars of health (sleep, food, exercise, clean living, active relaxation) and by changing your life (work, relationships, environment). Even if you are not burnt out or stressed, you can use these tactics to become healthier and live a longer and happier life.Check it out at https://www.azurebarry.com/burnout/ Show resources:Oura ringBarry's Pluralsight coursesBarry's book "200 Things Developers Should Know" on Amazon
Are you stressed? Burnt out? Or on your way to burnout? Or do you just want to become healthier?My new course will teach you what stress is. How to recognize a burnout. And how to prevent it and recover from it, by working on the pillars of health (sleep, food, exercise, clean living, active relaxation) and by changing your life (work, relationships, environment). Even if you are not burnt out or stressed, you can use these tactics to become healthier and live a longer and happier life.Check it out at https://www.azurebarry.com/burnout/ Roland is a Microsoft MVP enjoying a constant curiosity around new techniques in software development. His focus is on all things .NET and browser technologies. As a long-time trainer, he led many courses on these topics and spoke about them at international conferences. He also travels around the globe to offer his self-developed workshops. The word that comes to mind when he thinks about software development is passion! Roland lives in The Netherlands with his wife and two boys.Resources:Roland's blog: www.rmgsolutions.nlFollow Roland on TwitterConnect with Roland on LinkedInRoland's Pluralsight courses
Are you stressed? Burnt out? Or on your way to burnout? Or do you just want to become healthier?My new course will teach you what stress is. How to recognize a burnout. And how to prevent it and recover from it, by working on the pillars of health (sleep, food, exercise, clean living, active relaxation) and by changing your life (work, relationships, environment). Even if you are not burnt out or stressed, you can use these tactics to become healthier and live a longer and happier life.Check it out at https://www.azurebarry.com/burnout/ About René Schulte:René Schulte is Director of Global Innovation at Valorem Reply working with teams across the globe on emerging technologies like 3D volumetric video streaming, the AR Cloud enabling large, cross-platform user experiences with real-world persistence.He is a creative developer and thought leader with a passion for UX and deep technical knowledge from more than 15 years in VR/AR/MR/XR/Spatial Computing technology and 3D programming, developing for the Microsoft HoloLens since 2015, was featured on Forbes and is listed as dev influencer. He also coded AI deep learning neural networks before it was cool and is leveraging modern AI to empower humans. Also working on applied Quantum Computing impact.He is a frequent keynote and session speaker and panelist at conferences like //build, Ignite, Uni Heidelberg, Unite, Vision VR/AR Summit, VRDC (GDC), AWE, ESA, RTC, VRARA and more. Blogs about many topics. He also created popular open source libraries like WriteableBitmapEx and the AR library SLARToolKit.He was honored several times for his dev community work with the Microsoft MVP award, recognized as Microsoft Regional Director and Advisory Board member for the VR/AR Association and XR Bootcamp.He lives in Germany with his wife and their 5 children.Show resources:Follow René on TwitterConnect with René on LinkedInCheck out René's blog and videos on Valorem Reply
Are you stressed? Burnt out? Or on your way to burnout? Or do you just want to become healthier?My new course will teach you what stress is. How to recognize a burnout. And how to prevent it and recover from it, by working on the pillars of health (sleep, food, exercise, clean living, active relaxation) and by changing your life (work, relationships, environment). Even if you are not burnt out or stressed, you can use these tactics to become healthier and live a longer and happier life.Check it out at https://www.azurebarry.com/burnout/ Research, business design, system design, project design are fundamental aspects every engineering discipline applies to get to a suitable solution to a problem. Most of these aspects are missing in software projects nowadays. This leads to inefficiencies, bad quality code, inadequate architecture, schedule slippage and a lot of wasted money and talent. As the driving force behind innovation the software industry must regain a real engineering vigor.Koen helps teams and organizations integrate business design, system design, project design back into their development practice. As process and design lead he gives people clear guidance in their pursuit to change team trajectory, meet company goals and ultimately change their careers.Koen has over 10 years of experience in software and has guided teams in different industries ranging from industrial automation to financial industry to health care, from startups to international companies, in the role of architect, advisor and chief architect.Although every project is a team effort, everything starts with the individual. A person who is able to put in the work, thinks like an engineer and applies engineering processes. Change management skills and a healthy life-style are crucial to make this transition successful. If this resonates with you we have a match. ResourcesThe IDesign Architects masterclassIDesign websiteConnect with Koen on LinkedIn
Are you stressed? Burnt out? Or on your way to burnout? Or do you just want to become healthier?My new course will teach you what stress is. How to recognize a burnout. And how to prevent it and recover from it, by working on the pillars of health (sleep, food, exercise, clean living, active relaxation) and by changing your life (work, relationships, environment). Even if you are not burnt out or stressed, you can use these tactics to become healthier and live a longer and happier life.Check it out at https://www.azurebarry.com/burnout/ Richard Versluis (Rotterdam, 1971) is principal systems engineer at TNO and engineering lead of the quantum computing division at QuTech, the cooperation between the University of Delft and TNO. The missions of the quantum computing division is to build scalable prototypes of a quantum computer. Richard is also the system architect of Quantum Inspire, Europe’s first public online quantum computing platform. Quantum Inspire include a 5 qubit processor named Starmon-5, and provides the world’s first public access to a spin qubit based processor named Spin-2. With this it is also a unique platform giving direct access to two different qubit technologies.Resources:Find Richard's scientific papers on Google ScholarFind out more about Quantum InspireQuantum Development Kit
Hey friends,Are you stressed? Burnt out? Or on your way to burnout? Or do you just want to become healthier?My new course will teach you what stress is. How to recognize a burnout. And how to prevent it and recover from it, by working on the pillars of health (sleep, food, exercise, clean living, active relaxation) and by changing your life (work, relationships, environment). Even if you are not burnt out or stressed, you can use these tactics to become healthier and live a longer and happier life.Check it out at https://www.azurebarry.com/burnout/ Denise R. Jacobs is a Speaker + Author + Creativity Evangelist who speaks at conferences and consults with companies worldwide. As the Founder + CEO of The Creative Dose, she promotes techniques to unlock creativity and help people become engaged contributors, synergistic collaborators, and authentic leaders. Denise is the author of Banish Your Inner Critic, the premier handbook on silencing fears to unleash creativity. She is also the Head Instigator of The Creativity (R)Evolution, and the founder of Rawk The Web. Resources:Find Denise on her website and blog https://denisejacobs.com/Check out the book "Banish Your Inner Critic"Denise's courses on LinkedIn learning
Hey friends,Are you stressed? Burnt out? Or on your way to burnout? Or do you just want to become healthier?My new course will teach you what stress is. How to recognize a burnout. And how to prevent it and recover from it, by working on the pillars of health (sleep, food, exercise, clean living, active relaxation) and by changing your life (work, relationships, environment). Even if you are not burnt out or stressed, you can use these tactics to become healthier and live a longer and happier life.Check it out at https://www.azurebarry.com/burnout/ Justin Barnett is an emerging leader in the virtual reality space. You may know him from his YouTube channel where he posts tutorials for VR developers and discusses various virtual reality tips and tricks. Alongside YouTube, Justin also works as a full-stack software engineer for Improving Enterprises developing background check system applications. He holds a degree in Software Engineering from Kennesaw State University and currently resides in Alpharetta, Georgia.Resources:Check out Justin's YouTube channelConnect with Justin on LinkedInFollow Justin on Twitter
Hey friends,Are you stressed? Burnt out? Or on your way to burnout? Or do you just want to become healthier?My new course will teach you what stress is. How to recognize a burnout. And how to prevent it and recover from it, by working on the pillars of health (sleep, food, exercise, clean living, active relaxation) and by changing your life (work, relationships, environment). Even if you are not burnt out or stressed, you can use these tactics to become healthier and live a longer and happier life.Check it out at https://www.azurebarry.com/burnout/ Jason Alba started his IT career as an intern developing tools for a large company’s robust intranet. He transitioned to an IT manager at another company where his job included more IT, PC, networking, support, and strategy functions. His role changed again when that company acquired a software vendor, and Jason became VP and then general manager at the newly formed company. He currently manages a team that works on a site he conceptualized called JibberJobber which is a CRM-like system for individuals managing their careers. JibberJobber helps you organize and manage a job search and long-term professional networking. Jason has authored three books, is a popular blogger and speaker, and earned a CIS undergraduate and an MBA. Jason specializes in careers and professional development topics. His courses are featured in the following Learning Paths: Being a Better Employee, Job Seeker, and New Hire.Resources:Follow Jason on TwitterConnect with Jason on LinkedInThe jibberjobber.com websiteJason's blogJason Alba's Six Week Job Search Program – The Job Search ProgramJason's Pluralsight courses, including "Developing Your Personal Brand"
Hey friends,Are you stressed? Burnt out? Or on your way to burnout? Or do you just want to become healthier?My new course will teach you what stress is. How to recognize a burnout. And how to prevent it and recover from it, by working on the pillars of health (sleep, food, exercise, clean living, active relaxation) and by changing your life (work, relationships, environment). Even if you are not burnt out or stressed, you can use these tactics to become healthier and live a longer and happier life.Check it out at https://www.azurebarry.com/burnout/ Simon is a staff author at Pluralsight. With over three decades of software development experience, he's programmed in every discipline: from finance to transportation, nuclear reactors to game development. Prior to joining Pluralsight, Simon was the principal developer author at lynda.com. His first video course released back in 2002: since then, his popular courses have been viewed by hundreds of thousands of developers. His current focus is both on the new — the latest iOS and Mac development technologies — and on the old: fundamental computer science topics. He obsesses on making complicated subjects accessible, memorable, and easier to learn.Resources:Follow Simon on TwitterSimon's courses on PluralsightSimon's website
I have been using Windows 10 for years now and I recently took the time to learn how to be more productive with it. There are lots of shortcuts and tools in Windows 10 that help me throughout the day. Do you also want to be more productive with Windows 10? Then check out my new Udemy course called Windows 10 Productivity Booster.Edwin van Wijk:Edwin has been working in IT since 1999 and is currently working as Principal Software Architect and Microsoft Community Lead at Info Support in The Netherlands. He is a Microsoft MVP in the Developer Technologies category (since 2016). His primary areas of expertise are: building distributed systems, systems integration, (cloud-native) software architecture and patterns, software craftsmanship, .NET (Core) development, Azure and DevOps. Edwin likes to share his experience and knowledge about these subjects by publishing videos (www.youtube.com/dotnetflix) and speaking on conferences.Sander Molenkamp:Sander Molenkamp is principal cloud architect and Microsoft Azure MVP with over 20 years of professional experience. He works for Info Support (www.infosupport.com) designing and developing customer solutions using cloud native architectures. Sander is passionate about community and is co-organizer of the Dutch Azure Meetup and a host on the dotnetFlix podcast (www.youtube.com/dotnetflix).Resources:Edwin's BlogFollow Edwin on TwitterSander's websiteFollow Sander on TwitterCheck out their video podcast dotnetflixLearn about DaprFree eBook Dapr for .NET DevelopersMicrosoft eShopOnWeb ASP.NET Core Reference Application
I have been using Windows 10 for years now and I recently took the time to learn how to be more productive with it. There are lots of shortcuts and tools in Windows 10 that help me throughout the day. Do you also want to be more productive with Windows 10? Then check out my new Udemy course called Windows 10 Productivity Booster.Maurice is a software consultant and trainer, specializing in JavaScript, React, and ASP.NETCore.His work includes a large, global, safety application for the oil and gas industry. This is completely done with React. He has also worked on many other applications. He is also active in the open source community. You can check out his GitHub account.When not building applications himself, he teaches other developers. The topics vary from JavaScript, TypeScript and React to ASP.NET.Maurice received Microsoft’s Yearly Most Valuable Professional Award since 2005. He is also active in the dotNed user group and helps organize its meetings.Resources:Follow Maurice on TwitterMaurice's webistehttps://reactjs.org/
I have been using Windows 10 for years now and I recently took the time to learn how to be more productive with it. There are lots of shortcuts and tools in Windows 10 that help me throughout the day. Do you also want to be more productive with Windows 10? Then check out my new Udemy course called Windows 10 Productivity Booster.Abel Wang is a Principal Cloud Advocate and DevOps Lead with a background in Azure and application development. He is currently part of Donovan Brown’s League of Extraordinary Cloud DevOps Advocates. Before joining Microsoft, Abel spent seven years as a Process Consultant and a Certified Scrum Master helping customers globally develop solutions using agile practices and Team Foundation Server. Prior to that, Abel founded and sold his own software company. When not working, Abel is either writing code (yes, that’s what he does for fun), playing his guitar or training for The Great Wall Marathon. Recently winning his battle against cancer, Abel spits in the face of cancer and will never quit.Show resources:Follow Abel on TwitterAbel's blogAzure DevOpsDevOps on Microsoft LearnDevOps on Microsoft DocsMicrosoft Ignite
I have been using Windows 10 for years now and I recently took the time to learn how to be more productive with it. There are lots of shortcuts and tools in Windows 10 that help me throughout the day. Do you also want to be more productive with Windows 10? Then check out my new Udemy course called Windows 10 Productivity Booster.Troy Hunt is an Australian Microsoft Regional Director and Microsoft Most Valuable Professional for Developer Security. He doesn't work for Microsoft, but they're kind enough to recognize his community contributions by way of their award programs which he has been a part of since 2011. You'll regularly find him in the press talking about security and even testifying before US Congress on the impact of data breaches.Resources:Visit Troy's website and blogFind Troy on TwitterTroy's Pluralsight coursesHave I been pwned? website
I have been using Windows 10 for years now and I recently took the time to learn how to be more productive with it. There are lots of shortcuts and tools in Windows 10 that help me throughout the day. Do you also want to be more productive with Windows 10? Then check out my new Udemy course called Windows 10 Productivity Booster.Scott Duffy has taught Microsoft Azure certification training to over 450,000 students online over the past 6 years. He has helped hundreds of thousands of people to attain Microsoft Azure and AWS certification through his video courses. Before getting into teaching, he worked with companies to design and develop their IT systems as a consultant in Toronto, Canada over a 20-year career. He has written books, spoken at conferences, and likes to travel the world. He lives in Toronto, Canada. Resources:Visit Scott's website at https://softwarearchitect.ca/ for links to all his courses and practice labsFollow Scott on Twitter at @scottjduffyFollow Scott on Instagram at @softwarearchitect.ca
I have been using Windows 10 for years now and I recently took the time to learn how to be more productive with it. There are lots of shortcuts and tools in Windows 10 that help me throughout the day. Do you also want to be more productive with Windows 10? Then check out my new Udemy course called Windows 10 Productivity Booster. Josh Duffney is an ex-SRE at Stack Overflow, Pluralsight author, former Microsoft MVP, and has recently joined Microsoft as a Senior Content Developer. After writing his first book, become Ansible, he decided to change the trajectory of his career to pursue a calling. He put down his pager to picked up the pen, changing his career from engineering to technical writing. Knowing his job isn't his career, he seeks to master his craft but without the sacrifice of his family or his performance at work. To do that he spends time reading, researching, and implementing habits of self-improvement and improved productivity. He lives by the mantra of "More hours isn't how you get ahead. Show resources:Josh's awesome website and blog: https://duffney.io/Sign up for Josh's newsletterBook: "Become Ansible"Pre-order the book "Reclaim"Follow Josh on TwitterBook: "The Shallows: What the Internet Is Doing to Our Brains"
I have been using Windows 10 for years now and I recently took the time to learn how to be more productive with it. There are lots of shortcuts and tools in Windows 10 that help me throughout the day. DO you also want to be more productive with Windows 10? Then check out my new Udemy course called Windows 10 Productivity Booster. As a Microsoft Cloud Solution Architect / Technical Evangelist, Mike is an Azure goto for ISV’s (independent software vendors) and Partners. He’s been active in the IT industry for more than 20 years and has performed almost all types of job profiles, going from coaching and leading a team to architecting and systems design and training. Today he’s primarily into the Microsoft Cloud Platform and Application Lifecycle Management. He’s not a stranger to both dev and IT Pro topics, they even call him the perfect hybrid solution. In January 2012 he became a crew member of AZUG, the Belgian Microsoft Azure User Group. As an active member he’s both involved in giving presentations and organizing events (like ITProceed, Techorama and Global Azure Bootcamp aka GAB). Mike was also a Microsoft Azure MVP (awarded 5 times since 2013, received his Fifth in July 2017! ) and Microsoft Azure Advisor. Helping out in the community and introducing new & young people into the world of Microsoft and technology is also one of his passions. Show resources:Follow Mike on TwitterMike's About.me pageThe Pluralsight skill path for the AZ304 exam (Microsoft Azure Architect Design)
I have been using Windows 10 for years now and I recently took the time to learn how to be more productive with it. There are lots of shortcuts and tools in Windows 10 that help me throughout the day. DO you also want to be more productive with Windows 10? Then check out my new Udemy course called Windows 10 Productivity Booster. Julie Lerman is a Microsoft Regional director, Docker Captain and a long-time Microsoft MVP who now counts her years as a coder in decades. She makes her living as a coach and consultant to software teams around the world. You can find Julie presenting on Entity Framework, Domain Driven Design and other topics at user groups and conferences around the world. Julie blogs at thedatafarm.com/blog, is the author of the highly acclaimed “Programming Entity Framework” books, the MSDN Magazine Data Points column and popular videos on Pluralsight.com. Follow Julie on twitter at julielerman. Resources:Find Julie at her BlogCheck out the Entity Framework Core 5 updatesJulie's Pluralsight coursesFollow Julie on Twitter
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/AboutAlex Mang is a regular conference and user groups speaker focusing mostly on cloud-computing topics, thus aiming to help developers better understand the implications of cloud-computing as a whole. Alex dedicates a lot of his time developing his ISV involved in the event management and ticketing industry and also invests lots of time teaching software architectural and cloud computing patterns at user groups, conferences and privately-owned companies around Europe. Whenever he’s not in the office, he’s either recording video tutorials with popular video training providers, giving software development trainings, writing articles or working on open-source Azure-related libraries in GitHub repos.Show resources:KeyTicket website https://www.keyticket.eu/Follow Alex on TwitterConnect with Alex on LinkedInFind Alex on GitHub
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/AboutDale Meredith has been a Certified Ethical Hacker/Instructor EC-Council for over 15 years, and Microsoft Certified Trainer for over 20 years. Dale also has an additional 10 years of senior IT management experience and worked as a CTO for a popular ISP provider. Dale's expertise is in explaining difficult concepts and ensuring his students have an actionable knowledge of the course material. Straddling the line of fun and function, Dale's instruction is memorable and entertaining. Dale's knowledge and understanding of current trends in technology and applications have led to many opportunities, such as: training various Inc 500 companies, universities, and Divisions of the Department of Homeland Security for the United States government.Along with authoring for Pluralsight, consulting, and IT classroom training, you can catch Dale on stage speaking at IT conferences, helping IT teams keep their companies safe, relevant, and "breach" aware. Outside of the professional sphere, Dale spends quite a bit of his time giving back by speaking at adult and youth non-profit community gatherings and posting on his 'Dale Dumbs IT Down' social media sites. Dale uses these speaking engagements and social media sites to 'Dumb Down IT' concepts with the intent to help everyone be safe and smart with their technology and personal devices.Show resources:Dale's Pluralsight coursesEthical Hacking Fundamentals path on PluralsightFollow Dale on Twitterdaledumbsitdown YouTube channel
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/AboutMads is the lead designer of the C# language, and a Program Manager at Microsoft since 2005. Over the years he’s helped design TypeScript, Visual Basic and even Java.Show resources:Follow Mads on TwitterWhat's new in C# 9 on Microsoft Docs
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/AboutScott is a web developer who has been blogging at https://hanselman.com for over a decade. He works in Open Source on ASP.NET and the Azure Cloud for Microsoft out of his home office in Portland, Oregon. Scott has three podcasts, http://hanselminutes.com for tech talk, http://thisdeveloperslife.com on developers' lives and loves, and http://ratchetandthegeek.com for pop culture and tech media. He's written a number of books and spoken in person to almost a half million developers worldwide.Scott's website and blogThe Hanselminutes podcastScott's YouTube channelAzure Friday on YouTubePluralsight course The Art of SpeakingToastmasters
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/AboutSteven believes in a bright future where companies play the long-term game with their customers. His passion is spreading ideas about the future of customer experience. Steven believes in the combination of common sense, new technologies, an empathic human touch, playing the long-term game and taking your social responsibility to win the hearts and business of customers over and over again.Steven is the author of multiple international bestselling books including ‘The Conversation Manager’, ‘When Digital Becomes Human’, ‘Customers the Day after Tomorrow’, ‘The Offer You Can’t Refuse’.Steven's website and blog Find Steven on TwitterSteven's booksSteven on YouTube
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/AboutMichael Crump works at Microsoft on the Microsoft Learn team focusing on security, compliance and identity. He is a coder, blogger, live-streamer and speaker of various security and cloud development topics. He’s passionate about helping developers understand the benefits of the cloud in a no-nonsense way. You can reach him on Twitter at mbcrump or by checking out his Twitch channel at https://twitch.tv/mbcrumpMicrosoft LearnFind Michael on TwitchFind Michael on YouTubeFollow Michael on TwitterCheck out Azure Tips and TricksCheck out the free Azure Developer's Guide
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/AboutShawn Wildermuth has been tinkering with computers and software since he got a Vic-20 back in the early ‘80s. As a Microsoft MVP since 2003, he’s also involved with Microsoft as an ASP.NET Insider and ClientDev Insider. You may have taken one of his more thantwenty courses on Pluralsight. He’s authored eight books and innumerable articles on software development. You can also see him at one of the local and international conferences he’s spoken at including TechEd, Oredev, SDC, NDC, VSLive, DevIntersection, MIX, Devteach, DevConnections and Dev Reach. He's currently a .NET Foundation Board Member. He is one of the Wilder Minds. You can reach him at his blog at wildermuth.com. He’s also making his first, feature-length, documentary about software developers today called “Hello World: The Film”. You can see more about it at helloworldfilm.com.Shawn's blog wildermuth.comShawn's courses on PluralsightFollow Shawn on TwitterCheck out the website for Hello WorldFollow the Hello World film on TwitterShawn's next film project
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/About Marilag is a solution architect who puts the building blocks together to solve problems through software. She is a Microsoft Azure MVP and the co-owner of Dewise, a development company based in Copenhagen and Manila. One of her passion is giving back to the community by organizing events for Azure User Group Denmark and The Philippines. She lives two lives on each side of the planet, defying distance, abolishing cross-cultural barriers and scaling walls, to work, play and spend time with wonderfully diverse people. Follow Marilag on TwitterConnect with Marilag on LinkedInThe Dewise website
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/AboutRoland is a Microsoft MVP enjoying a constant curiosity around new techniques in software development. His focus is on all things .NET and browser technologies. As a long-time trainer, he led many courses on these topics and spoke about them at international conferences. He also travels around the globe to offer his self-developed workshops. The word that comes to mind when he thinks about software development is passion! Roland lives in The Netherlands with his wife and two boys.Roland's blog: www.rmgsolutions.nlFollow Roland on TwitterConnect with Roland on LinkedInRoland's Pluralsight courses
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/About Cesario Ramos works on large scale Agile product development all over the world in banking, insurance, and high tech industries. He started back in 1999 with eXtreme Programming and started his first Scrum Team back in 2002 and was the CTO at codecentric NL, a product manager at Atos, a consultant at Xebia, a hard-core Java developer and the lead software architect at PANalytical.Cesario is the author of the book ‘EMERGENT – Lean & Agile adoption for an innovative workplace’ and co- author of the book 'A Scrum Book’. He is a frequent invited speaker at conferences around the world and organizer of the international Large Scale Scrum (LeSS). He is also a Professional Scrum Trainer at scrum.org and a certified Life Coach and Team Coach. Show resources:AgileXConnect with Cesario on LinkedInCesario's book "Emergent" on Leanpub
This episode is brought to you by me. If you like this show and want to support it, please visitmy courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/About Richard Campbell wrote his first line of code in 1977 and still isn't over it. He's had a bunch of jobs in computing, built a few companies along the way and these days does a little consulting, makes the podcasts .NET Rocks and RunAs Radio, is one of the folks behind the DevIntersection conferences as well as being chief cheerleader for the charity Humanitarian Toolbox. Show resources:Find Richard here Check out the .NET Rocks podcastAnd the RunAsRadio podcastSupport the Humanitarian Toolbox
This episode is brought to you by me. If you like this show and want to support it, please visitmy courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/About Elton is a freelance trainer and consultant, focusing on Docker, Kubernetes and Microsoft Azure. He spent a decade designing and building large enterprise applications using the Microsoft technology stack, then discovered the container revolution, joined Docker and worked with the team for three fast and furious years. Now he helps people break up those old enterprise apps and build new cloud-native apps - and run them all in Docker and Kubernetes. He speaks and runs workshops at conferences around the world, writes books and video courses and helps organizations at every stage in their container journey. Elton's an 11-time Microsoft MVP and a Docker Captain. Show resources:Elton's Container Show: https://eltons.show/Elton's excellent Pluralsight coursesElton's blogElton's booksGet a 35% discount on all Manning content by going to https://www.developerweeklypodcast.com/elton with code poddevweekly20Leave a review of the show and win a free copy of Elton's books
This episode is brought to you by me. If you like this show and want to support it, please visitmy courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/About Maarten Louage is a true .NET XPRT, currently working at XPRTZ. He has designed and developed large-scale distributed applications but finds also real pleasure in small applications. Besides solid knowledge of .NET, Maarten has a profound love for all things web related, both frontend and backend. Show resources:Follow Maarten on TwitterFollow Maarten on GitHubGraphql.comAppolloserver GraphQl
This episode is brought to you by me. If you like this show and want to support it, please visitmy courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/About Steve Gordon is a Pluralsight author, Microsoft MVP and senior software engineer, based in the UK. Steve is passionate about community and all things .NET related, having worked with .NET for over 18 years. He enjoys sharing his knowledge through his blog, in videos and by presenting talks at user groups and conferences. Steve is excited to be a part of the .NET community, and in 2017 he founded .NET South East, a .NET Meetup group based in Brighton. He enjoys contributing to and maintaining OSS projects. You can find Steve online at his blog www.stevejgordon.co.uk and on Twitter as @stevejgordon. Show resources:Follow Steve on TwitterSteve's blog at www.stevejgordon.co.ukSteve's Pluralsight courses
This episode is brought to you by me. If you like this show and want to support it, please visitmy courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/About Elizabeth is a self-taught engineer with a decade of working with DevOps patterns and practices. As a senior consultant with Microsoft Consultant Services, she helps clients with .NET, Kubernetes, and Azure. As an out Trans woman with Asperger's, Elizabeth advocates for neurodiversity and LGBT issues in the tech industry. In her free time, Elizabeth maintains the open-source project ZendeskAPI_v2 (https://github.com/Speedygeek/ZendeskApi_v2). Show resources:Follow Elizabeth on TwitterElizabeth's talk about neurodiversity at QconThe Atlassian Balanced Teams Diversity AssessmentEmpathy vs. Sympathy videos
This episode is brought to you by me. If you like this show and want to support it, please visitmy courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/About Barry is an independent software architect and developer with a passion for the cloud. He is also a Pluralsight author and a podcast host. He has worked for lots of companies throughout the last decades and is keen to share his knowledge with the community. He has a broad and deep knowledge of the Microsoft stack with a special interest on web technology and the cloud. He currently teaches people about the benefits of the cloud. He lives in the Netherlands with his beautiful wife and kids and loves to play with their two Siberian huskies. You can reach Barry on Twitter @AzureBarry and through his website at https://www.azurebarry.com and check out his podcast “Developer Weekly” in your favorite podcast app or at https://www.developerweeklypodcast.com.Let me know what you think of the show by rating at in your favorite podcast player. You can easily do this by going to https://ratethispodcast.com/developerweekly. Show resources:Azure Tips and TricksThe book "Limitless" by Jim KwikBarry's Pluralsight coursesBarry's book "200 Things Developers Should Know" on Amazon
This episode is brought to you by me. If you like this show and want to support it, please visitmy courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/About Gerald Versluis (@jfversluis) is a software engineer at Microsoft from the Netherlands. With years of experience working with Azure, ASP.NET, DevOps, Xamarin and other .NET technologies, he has been involved in a number of different projects and has been building several real-world apps and solutions.Not only does he like to code, but he is also passionate about spreading his knowledge – as well as gaining some in the bargain. Gerald involves himself in speaking, providing training sessions and writing blogs (https://blog.verslu.is) or articles,live codingand contributing to open-source projects in his spare time. Twitter:@jfversluis| Website:https://gerald.verslu.isShow resources:Gerald's blogGerald's YouTube ChannelGerald on TwitchFollow Gerald on TwitterLet me know what you think of the show by rating at in your favorite podcast player. You can easily do this by going to https://ratethispodcast.com/developerweekly.
This episode is brought to you by me. If you like this show and want to support it, please visitmy courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/About Emily is a Project Manager with over 10 years experience in managing projects in a variety of international, complex situations. She specializes in working with remote teams and different cultures. Her passion is sharing knowledge and helping other Project Managers develop and overcome their difficulties. Show resources:Emily's blog: www.emthepm.comFollow Emily on TwitterConnect with Emily on LinkedInLet me know what you think of the show by rating at in your favorite podcast player. You can easily do this by going to https://ratethispodcast.com/developerweekly.
This episode is brought to you by me. If you like this show and want to support it, please visitmy courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/About Oren Eini is the CEO of RavenDB, a NoSQL Distributed Database that's Fully Transactional (ACID) both across your database and throughout your database cluster. RavenDB Cloud is the Managed Cloud Service (DBaaS) for easy use.Oren Eini, aka Ayende Rahien, is a frequent blogger at ayende.com. He has over 20 years of experience in software development with a focus on the Microsoft and .NET ecosystem.Oren has been awarded Microsoft's Most Valuable Professional. He's an internationally acclaimed presenter appearing at DevTeach, JAOO, QCon, Oredev, NDC, Yow! and Progressive.NET conferences as well as authoring "Inside RavenDB", published by Hibernating Rhinos.He remains dedicated and focused on architecture and best practices that promote quality software and zero-friction development.Show resources:The RavenDB website https://ravendb.net/Follow Oren on TwitterOren's blogConnect with Oren on LinkedInFallacies of distributed computingLet me know what you think of the show by rating at in your favorite podcast player. You can easily do this by going to https://ratethispodcast.com/developerweekly.
This week, I talk with Megan Bloemsma about data science. We get into what data science is, what a data scientist does all day, what tools they use and also touch on services in Azure that you can use for data science. Please rate this podcast to let us know how we are doing: RateThisPodcast.com/developerweeklyMegan Bloemsma is a data scientist working for Microsoft, where she helps companies innovate through Azure technology. Making most of your data, and using algorithms to make the machines work for YOU is incredibly exciting. And she can't wait to share her learnings.Show resources:Follow Megan on TwitterMegan's personal website and blogwww.datacamp.comhttps://channel9.msdn.com/A Developer's Introduction to Data Science Video Series
This week, I talk with Scott Hunter about .NET 5. We talk about the .NET Ecosystem and what the next version, .NET 5, is going to bring and how it fits into the bigger picture. We also touch on .NET 6, which will make the ecosystem even more simple by absorbing the Xamarin runtimes. During our conversation, Scott talks about cool new features that are already available to use today. You don't want to miss this!Please rate this podcast to let us know how we are doing: RateThisPodcast.com/developerweeklyScott Hunter is responsible for the Microsoft’s .NET platform, which includes the .NET Framework, .NET Core, ASP.NET, Entity Framework, .NET Tools, Web Tools and the managed languages (C#, F# and VB). Prior to leading the .NET Platform, Hunter helped the Azure Developer Experience team build the Azure SDK’s, App Service Tooling, Azure Cache for Redis, Azure API Management, ASP.NET, Entity Framework and the Web Tooling. In his spare time he loves hiking mountains in Washington State and around the world. Show resources:Follow Scott on TwitterThe .NET blogThe latest edition of .NET Conf
This week, I talk with Pinal Dave about SQL and a lot more. We talk about blogging every day for 13 years and creating a personal brand and consultancy and pricing your work. In the second half of the episode, we talk about SQL. We touch on tools to use when working with SQL, SQL best practices and which SQL Server feature people should really use. Please rate this podcast to let us know how we are doing: RateThisPodcast.com/developerweekly Pinal Dave is a SQL Server Performance Tuning Expert and an independent consultant. He has authored 12 SQL Server database books, 34 Pluralsight courses and has written over 5100 articles on the database technology on his blog at a https://blog.sqlauthority.com. Along with 17+ years of hands-on experience, he holds a Masters of Science degree and a number of database certifications. Show resources:Follow Pinal on TwitterEmail Pinal at pinal@SQLAuthority.comPinal's Pluralsight coursesPinal's blog: https://blog.sqlauthority.com/Pinal's YouTube channel SQL in Sixty SecondsPinal's books on Amazon Azure data studio
In this episode I talk with Gill Cleeren about creating and maintaining community events. We talked about the history of Techorama, running a usergroup and how that is different from running a big conference and how to grow and maintain a community. Gill Cleeren is a Microsoft Regional Director, MVP and Pluralsight author. Gill is a freelance solution architect living in Belgium. He focuses on web and mobile development and loves Xamarin. He's also a frequent speaker at many international conferences. Gill also founded Techorama, the biggest IT conference in Belgium and the Netherlands. You can find his website at www.snowball.be. Show resources:Gill's Pluralsight coursesFollow Gill on TwitterGill's blogThe Techorama websiteThe VISUG website and their upcoming virtual eventFull transcript:Barry Luijbregts 0:20 Welcome to another episode of developer weekly. This week. I'm talking with Gil clear and about creating community meetups and an incredible tech conference. Gil is a Microsoft Regional Director, MVP and Pluralsight author. He also founded Techorama, which is the biggest IT conference in Belgium and the Netherlands. Welcome, Gill, how are you doing today? Gill Cleeren 0:43 Hi, Barry. I'm good. How are you? Barry Luijbregts 0:45 Yeah, I'm very good. I'm very good. Thank you very much. You know, I think it's going slightly better here in the Netherlands. COVID wise than in Belgium. I think you guys are closing down a little bit more. Gill Cleeren 0:49 We are indeed closing down again. So they're older. The initial plans that I was making already for the fall are, yeah, pretty much out of sight again. So I don't think lots of these will actually be able to get through. So yeah, we're not doing that well, at this point. Barry Luijbregts 1:13 Well, you know, we just have to live with this stuff. And it's gonna be while I guess, I think so. Yeah. I don't think it will definitely get worse before it gets better. Gill Cleeren 1:22 Yeah. But it will get better at some point. Gill Cleeren 1:37 Yeah, I like to working from home. But yeah, there's something that says You've been inside too much and and not traveling for too long. So that is really bothering me at this point. I think that's the that's the thing I miss mostly. So the a lot of traveling just like you and yeah, that's that's probably the thing I miss most because normally I'm away from home one or two weeks a month and now that's been reduced to zero. So that is starting to hurt really so. Barry Luijbregts 2:25 Yeah, yeah, you know, first world problems. Gill Cleeren 2:28 It is a first world problem but yeah, you're used to it. So yeah. In the meantime, you were used to sitting in but there's not a lot of of cake between the days. Monday Tuesday and Sunday it's all pretty much the same now so yeah, yeah, that's that's what I miss most there's nothing really to, to look forward to. And so that that's that's, I think what a lot of people in our situation really have at this point. Barry Luijbregts 2:53 Yeah, yeah, that's the thing isn't it? Well, we're still pretty lucky I guess because we can work from home a lot as well. Because we do all of our stuff digital, so you know, we will count our blessings. Gill Cleeren 3:04 Indeed, I think, indeed we complain. But I think a lot of people are in a much worse situation than we are, sir. Oh, yeah. For us, there's not that much of a change in terms of what we can do and work we can actually still do for the customers. That's indeed a big plus. All right. Barry Luijbregts 3:19 So before we get into tech around and community stuff, I want to talk about you for a bit. So how did you first get started in technology? Gill Cleeren 3:29 So I'm, actually I graduated nearly 20 years ago now. So it'll be 20 years of time. I'm working. So I started at a at a pretty difficult time, in 2000. What am I saying? I started in 2003. So it's only I'm only 17 years so I'm, I'm younger than I was thinking. So. Anyway, so it's 17 years that I've been working in. So that was still a pretty difficult time, but that was 2000 So we're not that far away from from 911. And the.com bubble was also still pretty recent. So there's a lot of a lot of people that graduated together with me and had a hard time getting into tech and had a hard time getting that first job. I got lucky. I started the as an intern at a small company, got the first job there for about, I think, one and a half years. And so yeah, by then it it started to get better again. And I immediately started in Microsoft technology. Because at the school, I was already doing dotnet and the official official curriculum was was Java but I think in the second or third year, I started doing dotnet on my own. And that's how I also got in contact with people from Microsoft at the time. I didn't think the MSP program already existed but I got some internal contacts at macro stuff. And that's also how I got my first internship after my internship in Microsoft technology and never looked back, basically. So that's that was pretty much coinciding with dotnet dotnet the first releases of dotnet 2014 that the error, that error, I started out with it, so yeah, that that and basically, I've never looked back started doing dotnet and have been doing dotnet for 1718 years now. So that's that specific basically the, my world and has been my world and I think it will always remain my world. Yeah. And yeah, so initially, I started doing ASP, net winforms here, we didn't have a lot of other things at the time. Yeah. So it was still pretty concise. I remember at the time I was telling that to some some someone there today, at that point, I had the MSDN library printed out in some books. So that's, that's it. How limited it was at that point. That's when winforms and web forms. That's, that's all we had. So, I made the dive illusion. And basically, I've been doing consultancy for her for my entire career. That's also how I got in contact with lots of interesting projects because I could hop from from one project to the other pretty much. And started, because we're here to talk about community as well, not just about me. I started getting involved in the community. already pretty early, I think often I was working like two, three years. I got him, I got to hear that there was a couple of people here in Belgium. I'm thinking of starting a user group. And so that's that's basically my, that has been my entry, let's say into, into community. And yeah, that's, that's no 15 years ago or something. So it's also already quite a long time. time ago. Barry Luijbregts 7:02 Wow. Back then they started the community already. That is a long time ago. Yeah. might be one of the first communities. Gill Cleeren 7:07 It was actually the first user group initiative that I that yet. Like I said, I was also still pretty young in the field. But it was, I think it was really one of the first user groups that definitely around the Microsoft stack, in any case, was was created. There was a couple of people from Microsoft involved here in Belgium. So from the local sub, and then, so my, my colleague and partner in crime Peter here since he actually started it, and I joined like a couple of months after, the first thing I did was building the website for for the user group. And then I basically got involved more and more and started organizing the events. And so yeah, we I think we've been running the user group now for I think it's 2005 2000 Six years to 14 or 15 years that we've been, well, the user group. Barry Luijbregts 8:04 Yep. And this is then the VISUG usergroup, the Visual Studio user group, as well, that's still around today? Gill Cleeren 8:07 That is still around today. Yeah, that is still active. Apart from this year, which has been special, the user group runs an event pretty much every month. Usually an in person event, and has been doing that for so many years has been, I think, I think on the mailing list is about a couple thousand people, three 4000 people. It's it's also user group that has been lucky enough to always have quite a few companies that that help out with sponsorship and, and and the venue for events and stuff like that. So yeah, it's been still going well, so it's an old us, man. Yeah. Barry Luijbregts 8:54 Yeah. That is very impressive. How have you seen the user group change over the years Did you see for instance, the audience changed a lot? Gill Cleeren 9:02 That is something that the audience is an interesting one. So Peter and I, and my wife is now also involved. So my wife also helps out. And she actually does a lot of the management of the user group now, because I'm more involved with with my own company and an antique aroma. But it's something that that we discussed not too long ago is that Yeah, there's a couple of people that I think have been coming for 15 years have close to 15 years, that and some faces are really familiar. Some people have changed. And and there's definitely a younger generation, although I think it's, it's less of a group of young people than then I would hope so. There isn't. There's definitely less young people that seems to be I don't know, are they less interested in going to sessions after the working hours, I don't know. It's it's something that that strikes me that our audience also seems to be getting a little bit older. And there's not not a lot of influx, let's say, of younger people. Are they more going to meetups? I don't know, we don't do stuff via meetup, we typically do everything and still find our own website. So I'm not sure if that is really part of the issue, let's say But yeah, it's, I don't see a lot of fresh faces. I see fresh faces. But I would like to see more. And it's not always easy to figure out how you can reach those people. So but we're doing a couple of things. Together, also read Microsoft, but it's not easy to actually get people, you people. Barry Luijbregts 10:45 Yeah, to come to user groups. We saw the same thing with dotnet south, which was a user group in the Netherlands, we have and also a lot of all the people that attend there, and it was very hard to reach the younger crowd and we were at actually thinking that maybe that was because of the way we ran our social media, our marketing around the thing, because we ran it, we run the social media, like we want to see it as in via Twitter and email and LinkedIn. So basically the channels but those might be the channels that all the people might be on. Maybe we should be like on Snapchat or Facebook or whatever. Gill Cleeren 11:24 Tick tock tick tock. Yeah, yeah, like I said, it's it's it's difficult to do figure out how to reach young people and if you if you think about it, the other day, it was in a new city in Belgium that the government probably the the the Netherlands as well, where you live that the government is now also making advertisements on those channels, tik tok, and I don't know what else it was actually reach people to wear a mask on the street to reach that younger generation. So maybe that's India. Maybe we should hire some, some short social marketing expert or something that can help us be better because I'm not following tik tok and that sort of thing. I'm totally unaware of what is happening on this channel. So yeah, maybe we're getting old buddy. We're getting old man. Barry Luijbregts 12:18 Well, that's definitely true. But that that just means, you know, we just have to diversify and be more inclusive in because we kind of want to have people that are not like us in the organizations of these types of things, because they can think of stuff like Tick Tock or, or other social media channels or other ways to reach people that are not like us. Gill Cleeren 12:38 Last year for the kurama in the Netherlands. We hired a social marketing expert and yeah, she indeed. Sure Of course, it's it's her profession then. She definitely has a lot of good ideas on reaching a different type of audience. It wasn't perfect. But it gave me also some insights in indeed what what are people looking at these days? Because like you say, We are always looking at the same thing. And we always reach the same bubble of people on your social media channels. And that is definitely also part of the problem, because you have to bring the information about something that you're organizing to the people that you want to reach. And that is definitely the part of the problem. Barry Luijbregts 13:24 I agree. Interesting. So take around what you were just talking about already, what is Techorama and who is it for? Gill Cleeren 13:33 So Techorama is a an international conference that so we have been running now here in Belgium for about a year for seven years now. So we started it in 2014. So it's, it was a bit of a crazy idea. So Microsoft has had been running Dec days here for many, many years, I think close to 20 years. So thinking started in 97 or so. And so, yeah, it was a long time event that they had been running. And so they said, Well, we are a lot of people at that point or real changing jobs within Microsoft. And so they said in 2013, so this is going to be the last big days that we are hurting here in Belgium. And so, at that point we, we set because we didn't and i and i also Kevin, we, we said yeah, we have been doing events for a long time had been running a local event community day, which also reached about five 600 people. Total one day free event, so we had experience already organizing things. And we said okay, let's let's try this. Let's see, because we we want to give something bigger than just a user group. So, tech days was the only event that people went to it was kind of big. There's also, I think, at its peak around 2000 people. So we started there's definitely an audience because there's nothing here in that magnitude in, in that area, even for developers, Microsoft oriented developers. And so we said, Yeah, we're going, we're going to jump in Techorama to start something new. And so that's how the kurama was born with a with a name generator that created first Dev, Rama. And then we said, Wow, that's a bit more inclusive, lets us bring everything in. So we because initially, it was only developers. So that's, that's how Techorama was born in. Summer of 2013. I think it was, that's when the initial ID was was planted. And so we had some discussions with a lot of people to see who wanted to put some money in because yeah, it was a bit of a risk. And was this going to work? So we started a new company for it. And we started may 2014. And above all expectations, we sold out the event in well before the event was taking place. So that was a smaller venue when we were doing it. I think we had six 600 people attending the first year, so we put a cap on it. And so yeah, we sold out and we were like, wow, this is going well. And we had an amazing support from from, from people here in the community. A lot of people that that started helping out back then. Martin barrio Mike, there's a lot of people that that have been in the crew helping out all these years. also loved the event like like it was a baby. We had a lot of big name speakers in year one, including rich Campbell they joined I think Tim Huckabee joined the first years really a fantastic lineup for year one event. And also, a lot of the companies that were also already involved in the user group as partner also loved the idea of being able to reach a much bigger audience. And so yeah, starting year one, it was a huge success. And we ran it for three years in that same venue until we couldn't fit it anymore. I think we were last year was 1000 people. But that was way too much for for that small venue. So then we said, yeah, we need to move to a bigger venue. And so in the first three years, it was only developers. Audience because yeah, so Peter, Kevin, and myself. We're all in the developer space. So we we had contacts with speakers and that sort of thing. So we we knew what to do. I put on the agenda as well. And we also had help from from other crew members a lot for composing the agenda. But then again, you start with something. So I didn't know a lot of IT pro stuff. So I didn't want to include it in the agenda. So we said, Yeah, let's not do that. Let's stick to what we know. And so we did develop only. So the first three years it was deaf audience. And then in so when we moved to a bigger venue is that Yeah, so this is the this is also the time to bring back everything that the tech days was doing. So tech days had it pro audience had a data oriented audience had SharePoint. So we said, Yeah, let's widen our our horizons, and let's bring them all back in. So we talked to a lot of people from that community as well. And so they do, we're really happy that we could work on something together. And so then We jumped from 1000 to 1500 people in one day. It was at 7070. I think it was. Yeah. And so, last year, we had over 1800 people attending 150 sessions, about 100 speakers in Belgium, so it's a it's quite an organization. And then in 2017, that was, what is it? Is it 20? How can I forget? So 27, late 2017 I think it was already at that point we set out. We're going to take this to the Netherlands as well. And so then we announced that we were running it in October 2018. While there was still another conference running from Microsoft, so it might take days, but that then stopped and then tech Rama also came to the Netherlands and last year's 2019 rolls at 1200 60 people attending So with the same formula, yeah. So you've been there. So you also know, it's a lot of fun. And, yeah, we hope to run it again. Of course, again. But yeah, it's not reading this year, of course. Now I, Barry Luijbregts 20:17 I worked as a volunteer for the first Techorama Netherlands edition behind the scenes. And so I know kind of what is involved there in picking speakers and doing all this stuff. But it was a very successful first edition in a new country for you guys. So a new market, really, because you didn't know anybody there. What was your process to make sure that your conference would be a success in a new country? Gill Cleeren 20:41 Well, it's, uh, we always set and you were there as well, we set the first thing that we want to do is see if the community will support it. That also what we did in Belgium, we in Belgium, we actually only like I said, When When I got the idea of starting this thing, back in 2013, we sat together with a lot of people from the community that we knew. Sorry. And so we said, who wants to be in on this? And when we decided we are going to the Netherlands, we said, well, we're greeted in islands, but only if the community, the local user group, the local meetups are willing to back this up and are willing to help out with this because it's not something you do on your own. I see a lot of conference that that actually have difficulties reaching people that have that don't have a good link with the local community. And I was like, Yeah, those people they know the audience. They can, they can reach that audience to let them know about the conference that is happening. And so that's what what has been our blend, blend, basically Not a real, not a good way to say even because we said we're only doing this if the community is willing to be involved. And like I said, you were there as well. So we, we did a big meeting with with all the local user groups. And we said, Yeah, are you guys in? Because? Or is this something that, that you also want to start supporting in a new country? Because it's doing it the way that you wanted? It's a financial risk for us as well. So we said, well, we're only doing this if the community is involved. And I think that is what that has helped a tremendous amount, because those are the people that basically say, well, this, this new thing is coming. And as a community, we are backing this up. And we also, from day one here in Belgium, too. We have always organized a kurama as a large community event, and i think i think that that's still that's still is feasible today. It is it is not a commercially run conference, there's no, we, we we have never been. We've never let let's say any agency be getting involved into how to organize an event. We've done this only with own experience. Of course, you learn how to run a conference. But it's been, it's been something that it still has that community spirit around it. And I think that also helps making it, giving it that that cozy feeling of a large, it's large, but it's still a community conference. And that's, I think, also what successes that we had, starting from day one in the Netherlands. Barry Luijbregts 23:44 Yeah, I think so too. And the clever thing with like you said is that you leverage the the audiences of the local user groups already. They have built in audiences and built in mailing lists, and followers and so you used to those To trust that the user groups put in your conference to get all the people to the conference, which worked very well. Gill Cleeren 24:07 Yeah, indeed. And, of course, having Scott Guthrie do the opening was definitely also helpful. But yeah, if no one knew that he was there, we don't have had. We had 2000 people on the first edition. And that is in a big part, thanks to the community. Barry Luijbregts 24:27 Yeah. So how do you get speakers? speakers like that as well, and other speakers? Gill Cleeren 24:33 I simply mailed him. Yeah, the simple thing is, yeah, of course, I've been an MVP for 14 years, and a regional director. So I know a lot of people I do a lot of sessions at conferences myself. So in a normal year, I'm basically scouting at pretty much every conference that I go to. I'm scouting other speakers I attend sessions. I like to learn but I also am sitting in the audience thinking he would be he or she would be a fantastic speaker. So I sent them an email and or I go and have a chat with him. So I'm, I'm not the only one, a lot of people from the from the community also help out with the agenda. And I know they do the same. We have, we have an internal tool, where we just enter, let's say, a big dump of speakers that that we come across during the year. And we put them all together and then at some point, we we reach out to the speakers and we said, well, you want to come over and have a session. So yeah, it's a it's it's that blows of course, we have to open call for papers. So it's been a bit of a mess really. We We We are honest in that we don't do a full Blind Auditions of a blind call for papers, we invite speakers. And next to that we have an open call for speakers, which gives a tremendous amount of sessions and speakers that that we don't know. We we types to read all those golf papers. So the session submissions that are that are being sent in. The last one was was it more than 1000 sessions that were submitted? So that is a huge work. Of course, I don't do that all myself. It's a group of people that we have. And so we filtered through them, we we try to compose the best agenda based on we have a set of topics that we that we assign a number of sessions and that we try to fill up so we take the content based approach, not the speaker based approach so we tend to match speakers with content Rather than the opposite, but we got you by the number of speakers and then we have a huge pool that we can select from. And then that's how we, we we are lucky that we have an amazing pool of talent that we could can choose from. I know it's a bit of a luxury problem. And it's it's always bad day that I have to send out let's say 900 session refusals. Because some people are always disappointed and I can't I can't help it. But I would love to do 1000 sessions but yeah, that that's gonna be it's gonna be a TV conference, then I don't think people are going to be interested in that, sir. Yeah, it's a it's fantastic to see that you get so many so many people that are willing to fly from literally the other side of the world to to speak at your conference, that that's an amazing feeling. I'm always amazed that the weekend before The event that I know, okay, now people are flagging for pretty much every country in the world to take around. But that's an amazing feeling. That's, that's undescribable. Barry Luijbregts 28:09 Yeah, that is amazing. And people want to speak there, because it's just an amazing conference. And I think what also helps is that you usually organize it in a theater. So as a speaker, you get to speak in this big room where you have this enormous theater movie screen. And that's just an amazing speaker experience as well. Gill Cleeren 28:28 Yeah, you have the audio, you have the video, you are basically if you're writing code on that screen, you're literally smaller than just one character. So that's, that's, that's amazing. There's a lot of beat a speaker that actually use pictures from from Nicaragua as their profile picture where you have that huge screen behind you. Yeah, that is an amazing experience as a speaker but also as an attendee because you have good seats so you're not sitting on small chairs which are which are really, really close to each other. We have sitting comfortable seats sometimes too comfortable people fall asleep. That's that's a downside. But yeah, that happens. And you have good audio. You have a good video. Yeah, that that's, that's we're lucky that we have a venue that that supports that. Barry Luijbregts 29:22 Yeah, absolutely. Well, for this year, you probably also had booked a venue, of course, but then take around Belgium was cancelled in the Netherlands also cancelled, right? Because of it. Yeah. How do you deal with that? Like, for instance, with the venue, do you get your money back? Or did you pay? Did you did you not pay upfront? How does it work? Gill Cleeren 29:44 The good The good thing is it's a bit of an inside look. But the good thing is that the venue that we use, yeah, we've been going down for four years. So we know that we know those people really well. I think we can even call them friends, people. Have a venue also the people that are catering the AV crew. We work with them pretty much the entire year because it is not a one off. The good thing is that we were able to to cancel pretty early. Yeah, not bragging but we we already saw this thing coming in February. pretty early. We already because it's the agenda was finished. We were selling tickets. I think we sold 750 to 100 tickets by the time we canceled the conference. But we Yeah, it's it's Yeah, it's you start making expenses. That's true and you start making flight bookings. You don't want to have how much those flights cost to fly in all those beakers. But so January or February is typically the For the Belgian edition, at least the time that we booked speakers, sorry that we flies that we booked tickets for speakers. So, but because we were somehow expecting this, maybe we actually, yeah, we weren't afraid to do but then you booking, flight tickets reset. I think half of everything reset, we're gonna pause booking tickets and we had just booked like maybe five hours of them. So it's still a lot of money but it's not compared to what you typically spend on it. So we already post booking flights for speakers and we sit down with the venue, I said, well, we're not sure that this is going to happen. And we were pretty much the first ones to say, well, this might actually go the wrong way. So nothing actually was was already before the initial idea was actually moving conference over the summer in Belgium. So the original plan was doing it back to back with a grandma Netherlands so that we had flying in, flown in all the speakers anyway, that was the original plan. But that would then have been in a couple of weeks. So I think that's a good plan, either. So we in that view, we were extremely lucky that we were early. And that we had no costs, canceling anything apart from some flights. But yeah, that is as a company. We've been running this for a couple of years now that we can survive, otherwise, it would have been overnight. If this would happen a couple of weeks before the event. I've heard of other conferences, sadly, that that we're in a much worse position than we are. When we were were the way this whole thing Hit. And basically a couple of weeks before the conference, we were still three, four months away. So we were lucky that it hit at that point. And so yeah, in terms of cost, we've been able to get pretty much basically make no expenses. Oh, yeah. Lucky. We really? Yeah, that's really lucky. Because otherwise you can't survive this because you can't insure we have an insurance but they don't. By the time we actually wanted to put insurance in like, like we do every year for cancellation and stuff. It but it doesn't include pandemic sorry. So they already knew as well, so they already knew. Yeah. Barry Luijbregts 33:46 Yeah, you can't insure it against the end of the world, right. It just doesn't work Gill Cleeren 33:50 that you are insured against a lot of things. But yeah, our insurance our event insurance did not cover pandemics. So But anyway, so I don't think we would have gone on gone ahead and organize the things. Anyway. So yeah. So it. Like I said, we already sold several hundreds, I think it's between seven and 800 tickets. And so that was already a lot of work to get that all arranged. And we had, I think, already 35 companies partnering, so quite a few have, have actually a lot of people actually said, Well, I'm going to come next year, so just use this payment for next year. So it but it was a lot. Oh, that's nice. Yeah, that's nice. I looked at that a lot of people actually said, well, just just keep the money. For some companies. It's just simpler because it's already part of the budgeting anyway. So we offered people to say, well, you get a refund, if you want and so it was really, really deadly. So we did a refund by default, but if you said well, just just keep the money and give me my ticket for next year. At the Price. We we give them that option. And quite a few actually did that more than I expected. Really? Barry Luijbregts 35:07 Yeah. Very nice. Yeah. It's good to have partners like that. Gill Cleeren 35:11 Yeah, tickets as well. So both partners, and at least so there's quite a few people are registered for next year. Barry Luijbregts 35:20 People want to be here. And they want to this is a very popular conference, and it usually sells out if people are happy that's already ever ticket, of course. Yeah, indeed. So lots of these conferences and user groups are now doing virtual stuff. And I saw that you guys with the visa user group, you're also doing a virtual event, right? And that's an is that a day long virtual event that I see that correctly. Gill Cleeren 35:46 It's going to be a one day but it's so last year, it was the first time we we did the user group conference. It's a local conference. It's just with local speakers. Just isn't the correct word because they're also very good session. But so that was a, that was, I think, only An Evening with, I think, three texts, three or four text. Remember, now we're going to do that. So the plan was to actually already do it starting from from the afternoon and going into the evening as a full blown in person conference. But now we're going to do that in a virtual format. So it's also going to be indeed virtual, starting at 1pm. And then heading into the evening. So that's that's the plan. That's the plan. Barry Luijbregts 36:39 Well, and how can people attend something like that? I said, via zoom or something else? Gill Cleeren 36:44 Yeah, it's a it's a we are we've been evaluating for the user group, quite a few of those platforms, a lot of platforms. Now that that are making the off lottery the online how to find the online experience for attending a conference much more elaborate than than just watching a zoom video. So we decided on using conference to go fine. It's like it looks pretty, pretty cool. And it offers a lot of interesting things that try to mimic at least what you have in real life. So it's, it's not the, you never have the networking of all the experience that you'll have in a real life conference. But it does try to mimic a couple of things. And so we're going to try that with with the user group server. It's a it's an experiment. And so yeah, of course, the main the meat of the of the thing is, of course, still the sessions. There's going to be ways for people to, to connect to connected partners. So there's there's going to be virtual boots and that sort of thing. So yeah, it's I think The best we can do at this point, that's pretty that way. Yeah. for everyone. Barry Luijbregts 38:05 Well, but that's very good already. So as we are nearing the end of this episode, can you maybe tell us a bit about your course as well, because you have a Pluralsight course about starting a user group, right? Gill Cleeren 38:20 Yeah, indeed. It's funny that you mentioned because it's quite an old cause already. Things like five years old, but yeah, those things of course, they don't change. It's indeed a course that talks a bit about also personal experience on how to run a community. Things that you have to think of before you run a session, because even a small session, one off session needs to be organized. Well, what you have to think of finding a venue finding, find your speakers. Thinking of when you're organizing, the thing is that A big enough screen is a good audio because it's not a pleasant experience for people that they've been stuck in traffic for an hour. And to come to the to the session, and then be not be able to see it because it's a tiny screen, or your your so bad. So those are that that's all in that course. And it's things that I've basically been capturing, I'd say, over all these years that I've been doing this. And also small things, of course have. We always give a small example we always give the user or the speakers where we have a small gift we have, we've been giving out custom bottles of champagne that we had made for the user group or that sort of thing. So we always have been doing that and it's pleasant because it you don't have to. Like I said, we were lucky that we've been able to do that, thanks to partners that that help out. But it does give a little extra and that those are the things that are described in that course. Excellent. Barry Luijbregts 40:07 All right, I will include that course and also a link to the VISUG day in the show notes. And obviously, also a link to where people can find you or where people can find more of your Pluralsight courses as well. And thank you very much for for taking the time. And we will see you all next week for another episode of developer weekly. Thank you for listening to another episode of developer weekly. Please help me to spread the words by reviewing the show on iTunes or your favorite podcast player. Also visit www.developerweeklypodcast.com for show notes and the full transcript. And if you'd like to support me in making the show, please visit my blog site courses and learn something new
Steve Smith (@ardalis) is an entrepreneur and software developer with a passion for building quality software as effectively as possible. He provides mentoring and training workshops for teams with the desire to improve, and has published many courses on Pluralsight. Steve has been recognized as a Microsoft MVP for over 15 consecutive years, and is a frequent speaker at software developer conferences and events. He enjoys helping others write maintainable, testable applications using Microsoft's developer tools. Connect with Steve at https://ardalis.com/.Show resources:Follow Steve on TwitterSteve's Pluralsight coursesSteve's personal websiteWeekly Dev Tips podcastAccelerate your career with devBetterFull transcript:Barry Luijbregts 0:25 Welcome to another episode of developer weekly. This week, I'm talking with Steve Smith, also known as our Dallas about solid principles. Steve is an entrepreneur and software developer with the passion for building quality software as effectively as possible. And he also has published many courses on Pluralsight thanks for being here. Steve. How are you? Steve Smith I'm doing great. How are you doing? Barry LuijbregtsYeah, I'm doing I'm doing all right. You know, the, we don't really have a hard lockdown here in the Netherlands. So it's like an intelligent to go fit lockdown. But we might be ramping up with countermeasures. Again, as we see the cases coming up, you know, people are going on holiday. Steve Smith 1:08 Yeah, yeah, as we're recording this, it's late July of 2020. And in the United States, at least we're seeing like 60 or 70,000 new cases a day. So we're probably not as lucked out as we should be. But I'm doing my best to stay home as much as I can. Barry Luijbregts 1:23 Yeah, most people here are pretty cautious as well. Although now that it's summer, you see lots of people just, you know, they want to go out and do stuff. They also want to go on holiday. So you see people stress spreading out over Europe, they're going on holiday to France or whatever. So I'm very curious to see what's going to happen when everybody comes back from all those places. Steve Smith 1:44 Who knows, you know, we're having same things happen here, I think. And it's it's difficult because some states in the United States are trying to implement things like a quarantine for people coming from outside the state. But there's there's no borders for it. There's no there's no checkpoints at the At the state borders, there's no way to implement such a thing except voluntarily and, you know, if people are gonna take the pandemic seriously and do it voluntarily, I think they would at least be wearing masks and things. I don't think you can expect people to voluntarily self quarantine for 14 days. Barry Luijbregts 2:16 No, definitely not going to do that, please. Most people probably aren't. Yeah, that's difficult times weird times. But hey, at least we can do our thing. Online as as as most of our work, so that's a good thing. Yeah. We're very forthcoming in disguise. Yeah, absolutely. So I follow you on Twitter. And I also sometimes read things on your site weekly, Dev tips.com. I enjoy that. And I always just learn something about design patterns and code quality stuff like that C sharp. So how did you get into code quality and design patterns? Steve Smith 2:52 It's been something I've been interested in since I discovered them. So as a, as a human, a junior developer, I was always interested in trying to write Better code and just trying to get better at what I'm doing. And so I would read books that had titles that sounded like, you know, that sort of thing. So, you know, in the early days, it was design patterns and refactoring, you know, those classic hardcover books from the 90s. And then more recently, there were books like clean code, and, you know, classic books like code complete. Also from the news. But Stephen candles, get a more recent version. So all of those books just sort of try and describe ways that we can write code in a more consistent, more maintainable way. And I do my best to, to try and write code that that I can be happy with later. And of course, I always fail because I always find better ways to write my code. And if you're not, I think you're not improving. But I think the, the striving toward getting better is the important part. Barry Luijbregts 3:56 Yeah, definitely agree. It is very difficult to you know, Basically, sometimes when I create something new, it's just, it's a big, messy ball of stuff, right? And then I try to make it pretty and beautiful. But it's sometimes difficult to just know how to go about that. So it's good to learn principles and and more rigid and solid principles to do that, right? Steve Smith 4:20 Yeah, and a lot of it has just been an evolving of my understanding of object oriented design. Most of the design patterns and things that I talked about are mainly object oriented principles. And when I first was learning about object oriented design, and jointed principles, I was very much thinking of them as literal objects, like in the space of the problem that we were working with, right? So if you're, if you're working on a shopping cart, you know, application, then you might have objects like customer and carts and product or something like that. And until I started getting into design patterns, I didn't really think More abstractly than that, right? That was something that really opened my eyes to the idea that you could use objects to be these abstract things within your solution in ways that you never would have thought to do if you were strictly thinking about them as, as nouns within the requirements that you were trying to build, right? Barry Luijbregts 5:18 Yeah, I think they're very interesting things. I've also dove into the cloud design patterns, as well as I'm totally into Microsoft, Azure and other cloud providers, which are things like retry pattern and stuff like that. It's a bit different, obviously, then, things that you might do in C sharp, the classic design patterns. They're very interesting things. Steve Smith 5:41 Yeah, once you know that design patterns exist, you can apply them in any field it seems or in different subfields within software development. So I mean, the point that the the authors of the Gang of Four book make is that they borrowed heavily from a book that was on architecture and town planning. Yeah, that's where they took the their structure of how they described the different patterns from. So it's clearly not something strictly limited to software or even just one type of software modeling. Barry Luijbregts 6:12 No, absolutely not. No, I don't think so. So, and then one way of applying those patterns, I think and making better and higher quality code is then using the solid principles. Can you tell me what those are and what what those are meant for? Steve Smith 6:29 Sure. So I suspect many of your listeners probably have already heard of solid but solid is a is a convenient acronym of acronyms for some object oriented design principles. And so real quickly, they stand for the single responsibility principle, the open closed principle, the liskov substitution principle, interface segregation principle, and then the dependency inversion principle. And these have been around some of them since the 80s. That's Two of them were first coined by professors and researchers in the 1980s. And the other three, I think were in the 90s. So they're they're not anything terribly new, although the acronym itself wasn't turned into solid until, you know, I don't know, probably 15 years ago. The first time I read about them, they were described in a book that didn't put them in that order. And so if you were going to make a word out of it, it wouldn't have been solid. It would have been like, oils or something. But yeah, so having having him as a name that you can actually say and pronounce. I think it certainly helps them from a marketing perspective. Barry Luijbregts 7:40 Yeah, definitely. So these are 10 principles, is that the same as patterns as in design patterns. Steve Smith 7:48 They're not that the idea is that you have principles that you can use when you're evaluating a design. And then you can use a pattern to try and change the design. implement a particular kind of design in a certain way. And then the nice thing about design patterns is that they're reusable. And so if you are faced with the same problem later on, you might be able to apply a pattern that's that's known to work on that problem. Either because you've used it before, just because other people in the industry know that this is a well known solution to this class of problem. Right? And so you want to use both you want to have principles are more abstract, they're, they're not something that's going to directly tell you exactly what to do. They don't have like a UML diagram that says, This is what this principle looks like. Right? Whereas a pattern is more specific, still broad still, like not something you could just copy paste into your code. But it's, it's like a recipe. It's like, okay, here are the basic things that you need to use this pattern, and then to apply it correctly, and so they're related and so you can use a pattern to To implement a principle or to fix a violation of a principle, if you will, but but they're, they're different. And then the other p that often goes along with those two, principle and pattern is practices, right? And so there's a bunch of books out there that talk about patterns and practices and principles. And I think they're, they're all related, right? And practices are things you actually do in the course of writing software that can be helpful. Barry Luijbregts 9:27 That's, that's a good distinction to keep in mind. And then principles are more guiding things that tell you the direction in which you might might go, and in which you then look for solutions that you might implement with the patterns. Right. So let's get into these the solid principles, like they're not new, of course, it's always good to repeat and maybe some of our listeners haven't heard of some of the principles. Steve Smith 9:55 Sure. And, and I've taken to saying recently that if you're a senior developer Upper right even whatever that means to you, you know that maybe that means you've got five years of experience or, you know, you you have people that you're mentoring. If you're at the level that you consider to be a senior developer using an object oriented language, like C sharp or Java, you should be able to teach people the solid principles. So, you know, if you're not at the point where you just know them and can teach them to someone else, you probably want to, to get to know them a little better, I would say. So, the first one is the S is the single responsibility principle. And that one basically says that your classes should be focused on doing one thing and doing it well. They should have one responsibility that they are all about doing and they should be cohesive meaning the things that are in that class, the state and the behavior that are married together within that, that classes encapsulation boundary should all be focused on the same thing. If you look at a class and you can easily see that you know, Half of the properties and methods work together and the other half work together. But separately, maybe that's two classes, right. And you could refactor that, to split it up into two classes that each did their own thing, and didn't have to worry about the other parts that the other one was doing. Barry Luijbregts 11:16 And does this only apply to the class level or also to the methods because in a class that has a certain responsibility, you could have a method that tries to do two three things, maybe that are slightly different as well. Steve Smith 11:29 Sure. And obviously, if you're following it at the class level, you want your methods to be focused. And there's other principles that apply and code smells, which is another whole topic that apply at the method level. But generally, these principles apply at the class level. Although it's certainly true that you know, if you if you have a class that follows single responsibility, its methods should be fairly small and focused on things within the realm of that responsibility. Barry Luijbregts 11:57 Yeah, I've seen people try to get away from It weird stuff, you know, that's 2000 lines of code class, Red Hat a certain responsibility, but then the methods to do all sorts of weird stuff. Steve Smith 12:11 Yeah, well, and I don't know that it's clear what a responsibility is. So when I teach these principles, I try and lay out like, what are some examples of responsibilities, because it's all too easy for someone to say if I if I go back to the, you know, the simple shopping cart example I mentioned, it's very easy for someone to say that, you know, I've got a class called shopping cart manager. And it's only responsibilities to do anything and everything related to the shopping cart. And that includes checking out adding items, removing items, validating, checking all the prices, verifying all the sales, making sure you know, that the customer follows whatever discounts they have taken care of handling and calculating all the shipping and on and on none, right. So it's not, it's not correct to say that the responsibility is you know, everything to do with Some broad topic or some broad object within the system. Like that's, that's probably too big, you know. So things like validation or responsibility, persistence as a responsibility. interacting with other collaborators is a responsibility. deciding who your collaborators are is a responsibility. If you're if you're inside of the class and all of the things you're working with, you're newing up or calling statically. That class is deciding specifically what other things it's going to work with. And that's a separate responsibility. Right. That's something that could be done somewhere else. Barry Luijbregts 13:34 Yeah, definitely. It's it's probably difficult to find the scope of the responsibility for yourself. It's it's a bit of common sense, of course. Steve Smith 13:43 Yeah, it takes it takes experience, I think and it takes Yeah, I mean, some of you could say it's common sense, but that's common sense. Isn't that common? And a lot of what I think of is common sense is, is really just experienced, but you have a hard time. You know, saying what it is exactly right. Yeah. So it's it can be hard, right? But at the end of the day, if you are following the single responsibility principle, what you'll find if you if you compare two projects, or two designs that do or don't follow it, is that you will tend to have more classes, and those classes will tend to be smaller. Right. So when we think about how that affects our practices, and maybe our tools, that means that we should get better at finding files in classes within our solution, and organizing them in such a way that it's easy for us to work with more files that are smaller. If you're only comfortable scrolling through 2000 line long classes, and you don't really have the the muscle memory or the experience of working with lots of small classes, then it's gonna feel unfamiliar to you. It's gonna, it's gonna there's gonna be friction, right? And so, moving toward following this principle sort of requires that you skill up In in working with smaller files, which isn't necessarily what, what a lot of developers are used to. Barry Luijbregts 15:05 no, no, I see a lot of them do it. Well. So this is very good. Good principle. All right. So that's the single responsibility principle. And the second one is the open closed principle. Right? Can you tell me about it? Steve Smith 15:21 So the open closed principle is sometimes confusing, because it says that your classes should be open to extension, but closed for modification. And what that means is that you should be able to change how your class works, what it does its behavior without actually changing its source code, without having to recompile it and redeploy the code to run it. And at first, oftentimes, if you've just hearing about this principle for the first time, you might scratch your head and be like, well, how the heck does that work? How am I going to change my code? Does without changing my code. But if you think about it, we do this all the time, right? The simplest way to take some code and change what it does without actually changing the code is to provide a parameter to it some kind of input that when you change that input, it changes what the code does just a parameter. And so a lot of how you implement the open closed principle is just about how we specify behavior by passing it in, in the form of parameters either at the method level, or as a constructor parameter or a property. Barry Luijbregts 16:33 So this could mean that if you have a constructor in a class that has a certain parameter that takes, let's say, a logging mechanism or something that you might be able to inject a completely different logging system in there, then they would originally have and therefore, change the behavior of the class to lock to a different system or different output for instance. Steve Smith 16:57 Sure, imagine that you wrote some code and you literally just hard coded all of your logging. And you said, I'm going to log everything to C colon backslash log dot txt. And you do and you write that code and you and it works great and you ship it. But then somebody wants to run this code, and they want to log it somewhere else, or they want to run it on Linux that you know, doesn't necessarily have a C, colon, backslash, right, or a Mac. And so now you're stuck, like you've hard coded too much into a particular implementation. And the only way to change it now is to recompile it because you've compiled all that stuff right into that routine that class. So like you said, If you instead passed in some type of a logger, class, or abstraction, or interface, and then you can implement it in such a way that maybe for you, it's fine for it to just log to a local file on your C drive. But someone else could implement that in a different way. And instead, it could be logging in any way you can imagine, right? It could go to a database, it could go to a different location, it could go to something some debug viewer, right? Yeah. And and so Now your code is open to extension and closed to modification, meaning you don't need to modify it. You don't have to change the source code now in order to get that that extended behavior. Barry Luijbregts 18:11 Yeah. Which is a great principle. And I think you shouldn't take this too far. Obviously, as in, if you have a database layer or data access layer that uses SQL server or something, you shouldn't always make it so that it can also use all sorts of other databases, for instance, right? Steve Smith 18:30 Now, yeah, not necessarily, right, every every way in which you allow your system to be extended, makes it more abstract, makes it generally more difficult to quickly understand what it's doing. So when you look at the code itself, and you try and see what like, what does this code actually doing, if it's very abstract, and there are a lot of ways that it's hooking into other things that are being passed in through parameters or constructors or dependencies, it can start to become difficult to figure out where the actual work is being done. And that's a common criticism that gets laid against, you know, overly abstract, overly designed object oriented systems. And so there's a balance here, right. And so you don't want to try and make your system extensible in every possible way up front. Instead, you want to wait and see where the changes are going to occur and where the pain is coming from. So I like to tell developers to follow PDD pain driven development. And if it's causing you pain, then use these principles or these patterns to find a way to alleviate that pain. If you if it's not causing any pain, right? If just logging straight to a sequel and text file is fine, and nobody's asking for anything else, then leave it alone. It's working. But But after the second or third time that somebody is asking for a new way to do something, you should recognize that this is an axis of change in your system. that's likely to continue to be an axis of change. And so consider making it extensible Barry Luijbregts 19:58 Yeah. Oh, that's a great That's a great principle. Pain driven development. I love that. Yeah, but it's definitely true. Especially even for things like performance optimizations, you know, I love to do performance optimizations myself, and I can just spend weeks on it. If you just let me. It's just it's usually really not necessary. Because it's fast enough, probably by default, and nobody asks for it as well. Right? So only if it's a problem, then you should really focus on it. Steve Smith 20:28 Yep, exactly. It's a it's a premature optimization. Yeah. Barry Luijbregts 20:32 All right. So that is the open closed principle. And then the next one is liskov substitution principle. Can you tell me about that one? Steve Smith 20:40 Sure. So this is the only principle that's actually named for a real person, which is Barbara liskov, who's a professor at MIT. And she coined this back in the late 80s. And the idea is that your objects should not just be oh sorry if your objects that inherit from another object or type should not just be that thing, right, they shouldn't just have an is a relationship, like we hear so often when we first learned object oriented programming, instead, they should be substitutable for that base type, anywhere and everywhere that they might be used. And so where you commonly see violations of this principle is where you might have a fairly large class or interface that you're implementing. And you, you only need some of it right now. And so you you leave some of the bits either undone, or maybe they're throwing and not implemented exception. And so you ship your code like that. And later on, somebody comes along, and they need some, some some instance of this, this interface, this type, and they see that there's already one that's been made. There's there's a provider or an adapter or whatever you want to call it that you've created for them. And so they they inject that into their system and they expect it's just going to work. And at runtime, it blows up and it says not implemented. exception. Right. And so it wasn't fully substitutable for the parent. And that's that's the best case scenario. That's where it's, you know, obviously broken, right? Because it's giving you that exception. What's worse is when it's not really easily detectable that it's doing the wrong thing, or it's not doing what it should. And that's, that's a much tougher bug to find. One of the ways you'll see this manifest in your code, is if you're doing something that should be polymorphic. Like you have a for each over a bunch of types, but they might be not actually that type. There might be a subtype. And then inside your for each loop, or inside your method that takes an instance of this base class, you're checking to see which specific subclass they might have. Right? So you like, Hey, I'm going to print out all the employees. So I say for each employee in this collection of employees, and then inside your loop, you say, Well, if employee is manager type, then I want to do something different. Like right there. Your brain Making liskov substitution because now you're checking to see what kind of type this thing is it shouldn't matter, right? That's what polymorphism is all about is you should be able to treat it exactly like its base type. And if you can't, if you have to know what its actual type is, then you're breaking that principle of object oriented programming. Barry Luijbregts 23:18 That's it. That's a great principle. I see that a lot actually, in production API's still, yeah, that you hit something and then it's not implemented yet exception. Terrible, right? Steve Smith 23:29 And where that's really a problem is because of the duplication that it entails. So if if there's one place where you need to know that subtypes specific type, because you want to do something different, okay, that's not terrible, right? That's fine. But it tends to spread. So you know, in your application, it's not going to be just one place probably where you're checking that it's going to be everywhere, you're dealing with a set of that base type, right? There's going to be some exception for some certain type that's implemented a different way. And so now when whenever some new features comes along or some change needs to be made, you've got to remember to go to all those different places, and, you know, tweak them to make sure they work just right now. Or maybe you add another subtype, and it behaves even different still from the other ones, right? So again, you've got to go to all those places where you're not using polymorphism correctly, and make sure you've got enough checks in all the right places for that new behavior. And that's where that's where you end up missing some in bugs creeping? Barry Luijbregts 24:25 Yeah, that's definitely where the bugs creep in. Yeah. And those are difficult to find as well. Certainly. Alright. So that is a liskov substitution principle. And then the next one is interface segregation principle. What is that? Steve Smith 24:40 So really briefly, the interface segregation principle says that classes should not depend on methods that they don't use or functionality that they don't use. So if you have a class, and it depends on an interface, let's go back to that logger example. Right you you've got this method that will log a line of text But then it also has some method for, I don't know, copying the log file to a backup store, right? Well, your class doesn't care about that it only cares about logging stuff. But But now there's this other method that that's all about copying things to a different store. And if that method changes, then you're going to have to recompile your code because you depend on that, even though you're not using it. And so you end up having larger ripple effects from your changes. When you have larger interfaces. And you have classes depending on pieces of those interfaces. They don't use, they don't need. So the the general way to follow the interface segregation principle is to do two things. One is to have very small interfaces that are basically following the single responsibility principle doing just one thing well, and then to having clients control their interfaces. So instead of shipping interfaces with a framework or with some set of base classes that you know, the company Many architects put together when you're writing the actual service that needs the thing. You write the interface that exposes exactly what your service needs. And then you implement it with whatever you need to write. Barry Luijbregts 26:14 Yeah, and it's very specific. Steve Smith 26:16 Yeah. And this this way, it leads into the next principle, the dependency inversion. Because, you know, normally what, what developers, especially junior developers expect, is that someone's going to give them the the framework in which to work, right? They're gonna be like, okay, here's, here's the, the, the high level structure, you just fill in the details, including stuff like base interfaces and base objects and things like that. Yeah, interface segregation, kind of says, Hey, actually, as you're creating this service that you're writing, if there are certain things you need from other dependencies or other things, you know, create an interface that is specifically for your service, or at least specifically for services like yours. And so you may not end up with an interface for every single class that needs something that would probably be overkill. But you should have some very small, very cohesive interfaces that work with your set of services that all need sort of the same thing. The dependency inversion principle, I don't want to I don't want to skip over because I actually think it's probably the most important of these principles. And what it states is that you don't want to have your high level modules depending on low level modules. Instead, you want low level stuff to depend on high level. And that kind of presupposes that we know what high and low level means. So let's let's define that real quick. Low Level means closer to an input output, you know, closer to writing bits on disk or taking input from the user, right the user interface or the data access layer, talking to the file system. That's all low level stuff. High Level is more abstract and you know the the concepts of the overall software like, you know this, this customer wants to add this item to their cart, right? It doesn't know anything about specific operating systems or file formats or anything like that those are all low level details. All right. And then related to that the high level and low level modules shouldn't depend on specifics, they should depend on abstractions instead of the other way around. So it's what's commonly the case, if you don't follow this principle is that you write code that just depends directly on its infrastructure. So if we go back to that logging example that we've been using, you know, you write some simple console app, you want to log some stuff out. So inside of there, you just new up a file using the file system API's that are in the framework, and then start writing lines directly to that file. Right. There's no abstraction there at all. You're working directly with a low level file protocol. And you probably don't have any interface You wouldn't need any interfaces in that example, because it's just a, you know, program.cs console app. But as a result, it's it's not very testable. So very extensible. It doesn't really follow object oriented principles at all. And to get it closer to being able to do those things, which needs to do is introduce some abstractions, and then depend on those instead of the details. And where this plays in the biggest benefits. And what I've seen is when you switch from having a classic interior architecture, where you have a UI that depends on a business layer that depends on the data layer that depends on a database. That's the classic model that that folks have done for decades. That's what I cut my teeth on as a junior developer was building things like that in the late 90s, early 2000s. You if you switch that and you flip it on its head and you say, No, we're going to have the the low level, the data access layer, the file providers, all those low level two Things, instead of having the business layer depend on those, we're going to have those depend on the business layer. And if you start thinking about domain driven design, which which also have a course on Pluralsight about now that that domain model is your business layer, that's sort of the core of your application. And the infrastructure, the data access layer, depends on that core instead of the other way around. And that's, that's what the inversion is talking about the dependency inversion principle, is inverting the dependency. So instead of having your high level code depend on low level code, you flip that and it's the other way around, Barry Luijbregts 30:37 And because of that, you can also switch things out way more easy, the low level bits, or you can use another implementation or something like that writes to disk or writes to another database or whatever. Steve Smith 30:48 Right now your code is incredibly modular, and there are many seams in it that make it much easier to test. Barry Luijbregts 30:54 Alright. So those are the solid principles, which are great principles. To follow, but how do you embed those in the development process of a team? And make sure that everybody's following them? Steve Smith 31:09 I think the the best thing is to have everyone sort of know what they are, right? So have some sort of level setting, you know, some lunch and learn or everybody watch this Pluralsight course or some training or whatever, if necessary, right? If there isn't already that that understanding. But once people at least know what they are, then in whatever passes for code review on your team, whether that's pair programming, or formal code reviews, or looking at pull requests, be be very clear about which principles you're citing when you offer feedback related to those. So if you're working with someone, and you're pairing on a class, and you adding some functionality, and so you add another method to this class, and the class is getting bigger, and this new thing isn't really related to what we were doing before. You know, it would be perfectly reasonable to say, Hey, aren't we sort of breaking single responsibility principle here, maybe we should put this in a new class. Like that would be, you know, one way that you would implement it. And I think just that's, that's really the best way is for team members to keep these principles in mind when they're looking at code when they're designing code, either as they're writing it or as they're reviewing what others have written. And then use the principles as a way to evaluate the quality of the code. Barry Luijbregts 32:25 And then constantly try to identify them as well, if you see them or as you try to design your codes. Steve Smith 32:33 Yeah. I mean, if you see that they're being egregiously broken, right, then the principles are something that you can cite, right? It's not just you saying that, hey, I think that this is too big. You can say, well, this principle that's been around for decades that many people in the industry feel is a good thing suggests that maybe we should try and keep this smaller or keep this, you know, dependency at arm's length or whatever it might be. Barry Luijbregts 32:56 Exactly. That is, that is a great practice. I think lots of people already do that. Hopefully I've seen it a lot, especially during code reviews as well. I've had a lot of reviews where we also talked about the solid principles. So that's very good. And if you're not doing this yet, then please dive into these principles and to try to embed them in your, in your process. I do any additional resources that listeners might be able to visit to learn more about these principles. Steve Smith 33:31 Sure. So I've got a couple of Pluralsight courses that are relevant. I've got two different courses on solid principles. One of them has been archived, but you can still get to it from my author page on Pluralsight. If you don't have a Pluralsight subscription, you can use a trial from their homepage and you'll get like a 10 day period when you could watch whatever you want. I also have a podcast of my own, where sometimes I talk about these principles. I have some some episodes in the past. I've covered them Which is at https://weeklydevtips.com/ or on https://www.youtube.com/weeklydevtips channel. And you can also follow me if you like, I'm frequently talking about these things at conferences or on Twitter. So everywhere online, you'll find me as ardalis, which I'm sure will have a link to in the show notes. Barry Luijbregts 34:17 Absolutely. Yes, I will link to all of this in the show notes. This was delightful. Thank you very much for teaching me about the solid principles. And we'll see you next week on another episode of developer weekly. Steve Smith 34:31 Awesome. Thanks. Barry Luijbregts 34:35 Thank you for listening to another episode of developer weekly. Please help me to spread the word by reviewing the show on iTunes or your favorite podcast player. Also visit https://developerweeklypodcast.com/ for show notes and the full transcript. And if you'd like to support me in making the show, please visit my Pluralsight courses to learn something new.
David is a Webby Award winning cloud development consultant that focuses on cloud native custom development strategy. For over fifteen years as a consultant David has led custom software development on emerging platforms for companies such as FedEx, AT&T, Sony Music, Intel, Comcast, Herman Miller, Principal Financial, and Adobe (as well as many others). David regularly writes and speaks on the digital landscape with published works for Pluralsight, O’Reilly, and Lynda.com (now LinkedIn Learning). He has written for Mashable, Smashing Magazine, and VentureBeat, and he has spoken at events like AdTech, Interop, and Adobe Max.Show resources:David's blog Follow David on Twitter Pluralsight AWS Certified Cloud Practitioner PathFull transcript:Barry Luijbregts 0:20 Welcome to another episode of developer weekly. This week, I'm talking with David Ducker about getting started with Amazon Web Services or AWS. David is a cloud development consultant and author at Pluralsight, O'Reilly LinkedIn learning and much more. Thanks for being on the show. David's. How are you doing? David TuckerI'm doing excellent. Thank you for having me on. Barry Luijbregts 0:46 Yeah, I know. It's a very interesting topic. I usually get into as your topics as I I love as you and I have been playing with it since its conception. So I don't know much about AWS and I would love to Learn from you, because AWS is actually a lot older than Azure, right? David Tucker 1:05 Yeah, that's correct. And so AWS really began began this entire space. And one of the interesting things is, you know, when we look at it, they have kind of evolved the entire concept of what it means to even be a cloud provider. And so AWS, in a lot of ways has led the way in this area. But obviously, we've seen providers like Azure, come up and provide very similar services in a lot of areas. But yet, it's still confusing when you're dealing with any platform that has so many different options and services included in it. Barry Luijbregts 1:36 Yeah, absolutely. That's also what I usually try to do in Azure as in tell people which services they can use for which scenarios because that is very confusing. There are hundreds of services. For your scenario, which one do you pick, and there's lots of overlap as well. So how did you even get into the topic of AWS? David Tucker 1:56 Well, I could I could go back to almost the beginning of my career. I'll Just give a super, super quick highlight. I remember when I was working at a university here in the States, and I was helping to consult on research projects with the university. And I remember the first time I could actually fire up virtual servers, like multiple virtual servers on my own machine. And I just remember the excitement of being like I can make anything I want to make with this. And so when the cloud came out, I started to understand more about the public cloud, it really was helping with a lot of the challenges that I was seeing with my development projects, just figuring out how to handle storage, for example, and how to spin up web servers because I really my initial development was in just being a web developer. I wanted to figure out how I could go beyond what I could do just with a co located server, which was how I was doing a lot of my work. And so with that the cloud became a really a big interest for me because it enabled me to do so much more than I could do with what I had. Barry Luijbregts 2:55 Right? Yeah, the cloud is, is an amazing place. So let's just let's just start right there, as in cloud in general, why is that even interesting over, let's say, a server that's under your desk? David Tucker 3:09 Yeah, I think for I think, especially when we think about today's climate in terms of development and technology in general, the exciting thing here is, we've made it accessible to pretty much everyone. I remember when I first started as a developer, you had to have so much money to be able to set up something that could scale to even meet thousands of users. And the exciting thing here is now if you're a developer, and you have an idea, you can bring it to millions of people, and really only pay for what you're actually using. Back. When we think about traditional data centers with the ability to scale you had to predict the amount of loads we're going to have, you had to get more servers than what you needed. You had to have access to a data center. And it's just we've almost democratized getting technology in the hands of people and that to me, is what's most exciting about it? Barry Luijbregts 4:02 Yeah, that is very exciting to me as well. Because, you know, basically now if you have an idea, you can just bring it to market. It doesn't really matter if you have no budget or anything, you can just put it all in the cloud on serverless services. And it just works. It's amazing. Absolutely. Yeah, it still excites me to this day as well, because cloud services evolve quickly, as well, as in back in the day, I used to work with web applications a lot. And they also needed to be scalable, even if they would run on virtual machines on premises or wherever. So then we would build web farms, and those web farms within their be connected to each other and scale, which was a very, very difficult thing to do with sharing session state and things like that. And nowadays, it's just a slider. You just slide to scale up and down and it's just crazy how much time I have invested into learning that and actually getting things to run on that. And now it's just a slider. It kind of makes me sad, but also very excited. David Tucker 5:08 I totally agree. And I think only people like us who have lived in both of these worlds really understand the brilliance of what we have currently. And one of the interesting things is, is that it means that in some ways, we're doing less. And I think for some people, that reaction is almost, it's a little, it's almost a little troubling for them because they feel like, Well, I know how to do all this complex things. Like for example, like you're talking about setting up some type of store for doing session state and keeping that across an entire cluster of servers. But what we've learned is we get to now focus in not on all of these things required to do something but we can really focus in on the application we're building and not any of these other things. Barry Luijbregts 5:50 Exactly. The cloud takes care of the plumbing for us and we just focus on creating value for the customers.So AWS What can you do for us? Let's say I'm a dotnet developer, which I am and I create, let's say, an ASP. NET Core web application, which is just a web application that can run anywhere. Really? Where would I run that in AWS? How would that work? David Tucker 6:14 Well, that's a great question. And one of the things that I've seen because several of my clients are primarily dotnet shops as well. However, for some of them, whether it's for financial reasons, or existing relationships, they have, they've chosen to go the AWS route. And again, for most developers, that decision is going to be made, you know, by their company yet at a high level. So you could be a dotnet developer, and maybe again, you really love Azure, you use it for all of your side projects, but all of a sudden, you find yourself trying to figure out how do I work in this AWS space. And when we look at the problem, like you mentioned, trying to figure out where to run something like this A dotnet core application, that's a web application. One of the great things is just like on Azure, you have a lot of different choices depending on what you needed to do. So when we started off with eight have us, you know, there really was a couple of ways to do this. But we've seen new services expand. And so, you know, if you're looking for the serverless type approach, where you're really trying to minimize the amount of maintenance, you're going to have to have looking at a service like AWS lambda, which really, when lambda launched, it really kicked off this serverless concept across most all of the cloud platforms. And they now have some equivalent, it gives you the ability to do something closer to what we would call Functions as a Service f as within the cloud, but you still have the ability if you need to, to either spin up a container with the container service, it's available on AWS, which we call ECS. Or just spin up your virtual servers, if that's what you're more comfortable with using EC two, which is a service that's been around really since about the beginning of AWS. Barry Luijbregts 7:45 Right. So you could use lambda, which is the serverless service to run an complete website in it. David Tucker 7:54 Yeah, that's correct. And in most cases, we'll see this actually paired if you're doing a serverless approach. So if you're Looking to do, let's say maybe a single page application type approach. And so you're going to build and react or Angular or view. And you're going to host that in s3, which is the object storage service that we have within AWS. And then you're going to do all of your API calls through lambda. So if you're looking to do more of that type of web application, then you'll just see all of that logic handled within lambda, but the hosting in s3. But if you're doing more of a traditional web application, then you can look at using ECS, it's still possible to do it in lambda, but it's a little bit more complicated in that approach. So that's when you generally see people moving over to more of a containerized approach. Barry Luijbregts 8:38 And why would you use containers, really, in this case? Sure. David Tucker 8:43 So in this case, when we're thinking about, you know, building out a traditional application where, you know, you're not adopting a front end, you know, web framework that's going to handle all the rendering for you and you're doing more page based, when you're looking at running something that's going to run over an extended period of time. One of the limitations that you have in working with a solution like lambda is it even though you get the benefits of it being more of a serverless type approach, you you have specific limits for how it can run and for how much memory it can have. And so in some cases, you could build an entire an entire traditional web application to run within those constructs. However, it probably would end up feeling a little bit limiting when you, when you're running something on a container, you obviously you lose those limits, you have the ability to give it as much time as it needs to run and because it's always going to be up and running. Or you could even set it to just run based on traffic. But you also lose that memory limit as well. You have the ability to configure it to have as much memory as you needed to have. So again, it would depend on what your limits are. But you gain the ability and using a specific service within ECS called fargate. You lose the the kind of the burden of having to manage your underlying cluster that your containers are running on. So you can do it in a much more efficient way than what we use To have to do when we were managing those clusters ourselves. Barry Luijbregts 10:02 And that is fargate. Is that then a container orchestrator? David Tucker 10:07 Yes. So it pairs with the AWS service called ECS. So there's really two different approaches, you can take on AWS, if you're interested in running a container. So you have ECS, which is Amazon's native service for running containers in the cloud. They also have Eks, for people that are interested in doing the full Kubernetes workflow. But with ECS, you have the option to use this sub service called fargate. And it totally manages the underlying layer for you. And this was one of the challenges that those of us that that when we were starting off, and we were trying to use ECS over Kubernetes. The challenge was the effective way to manage that underlying layer, because initially Kubernetes just did that better. But with fargate AWS has totally built up a native service for this and managing that underlying layer. So you don't even have to think about it. As a developer, you can simply say, I want to have this container running. I want to have this menu. instance is up and running. And I want it to be able to, you know, meet this demand and the rest of it will be handled for it. Right. So if you would compare fargate to Kubernetes service, then fargate is even more platform as a service as in you don't have to do as much then Kubernetes. Absolutely. And and so you, you gain, you have a little bit less control, but you haven't been fully managed, as opposed to, you know, with Kubernetes, as you mentioned, you'd have, you'd have a lot more things you'd have to control and a lot more things that could go wrong. In some situations, that's exactly what you need. But for most cases, especially with the clients that I work with, that they actually need less control, because the platform is going to manage it efficiently for them. Barry Luijbregts 11:39 Yeah. Okay. Oh, that's a great option, actually. Because I like containers. And I like the concept of containers, and that you can just take it and run it locally. And it's the exact same thing that you run into Cloud, but I always, I'm not sure you know, because it's so Infrastructure as a Service, especially when you use Kubernetes. Because then stuff You have to manage that whole infrastructure. And that's just not what I want to do. I want to just focus on creating stuff David Tucker 12:06 Exactly. And this brings up what I think is the number one mistake that new developers make when moving into the cloud. And that's because especially if they're more senior developers, they immediately shift to the more complex option, instead of what's the option that's going to allow me to maximize the time I spend maintaining whatever I build. And I think you see that with even organizations, they'll, they'll say, Well, of course, we need Kubernetes. We need all of those controls. And yet they don't ever factor in the maintenance time to the solutions that they build. I've worked with clients that really do need those controls. But again, I would say a vast majority of them, do not. And so with the cloud, one of the things I encourage new developers with is is choose the minimum approach that will allow you to get the objectives that you need. You can always add new things in later you can always adjust your approach. But in the beginning build something for The minimum amount of maintenance that you need long term that still meets the needs of the users that are going to be using it. Barry Luijbregts 13:05 Right. Because Is it easy to migrate from service to service? David Tucker 13:09 Yeah, one of the great things about a lot of the services is you do have that ability to migrate aspects of it. So if you're using a container, so especially if let's take a look at the container services, ECS, fargate, and Eks. Within that approach, you're still using a Docker container no matter which direction you choose. So if you wanted to start off by using fargate, and then you know what we really need the controls that Kubernetes provides for us, absolutely, you can make that switch, there will be some work in switching. But it's not going to be it's a little easier to to go from a simpler solution to a more complex one than it is to work backwards and go from the more complex one to the simple one. Barry Luijbregts 13:47 All right. So that's great. That's a couple of options. And those are actually a lot less options to run your application and then as your has, which is a great thing, I think because there's so much overlap always and it's difficult to choose things from. So what about storing data? What would you use for that? David Tucker 14:04 Yeah, and this this, there are a couple of options here with this as well. And I think this is one of the things that's important to remember to those of us that have been in the cloud for a while is that chances are when we started in the cloud, there were a lot less options. And now that there's so many options, it's a little bit more overwhelming for new developers that are getting into the platform. But for most things, in terms of storage on AWS, you're going to be looking at s3, which is just one of the most important services on the entire platform. Now, if you're talking about things like where you're actually attaching volumes to virtual servers, there's there's other services that you're going to be leveraging. But when you're simply talking about storage, whether that's storing things like user generated content, from your web application or your mobile application, or whether you're talking about storing a log data or whether you're talking about you know, really storing any type of just general data In those cases, s3 is going to be the solution for you. And one of the things that I think developers can sometimes be fooled by is it's very simple to get into s3 and to go in and upload files into s3. And you might think well, that's that's all this is, right? This just stores files. But you can begin to know some of the capabilities that are provided with s3 that really do differentiate it being you know, one is there's lifecycle configuration. So you've got the ability to move your data between, you know, warm storage to cold storage to a true complete cold, cold archive storage, you've got the ability to use it for a data lake. So you've got the ability to even go in and run queries against unstructured data that's stored within your s3 buckets. There's, I mean, really, there's so much that s3 does, and it all ties in very nicely with AWS is authorization tool, which is I am so you can control who has access to it and even set up some very specific policies for things like controlling who can access it from, from a user perspective, from an IP perspective, there's there's a lot of different options. So s3 is really the powerhouse storage service that we have on AWS. And then you use that to store unstructured data. Barry Luijbregts 16:09 So normal relational data, right? David Tucker 16:10 Correct. So we can see, I know a lot of organizations that will dump For example, let's say large amounts of log data into s3 directly. And as mentioned, you can use a service called Athena to go in and actually run queries against that data. Again, you can also use it just as easily to store you know, photos that people upload as a part of your web application. And again, use that to potentially use the lifecycle rules to move that back and forth between warm storage and cold storage, for example. And one of the great things about s3 as well is built into that by default, depending on how you configure it, but you have the ability to also have URLs to every object that you store within s3. So if you want to use it as storage for your web assets, you have the ability to do that if you want to be able to just make something available to the public and throw it out there so you can have a download link. You can Do that. And then you also compare this in with another service, which is called Amazon CloudFront, which is Amazon's global content delivery network. So you can utilize pair s3 with CloudFront. And now you've distributed your content out to all of their edge locations. And you see a lot of people using this with their web applications for storing their static assets. And doing it this way, you're really optimizing the download speed. For anyone that's using your web application, we can see great increases over just using s3 by pairing it with CloudFront. Barry Luijbregts 17:30 Right. So just for the listeners, if you didn't catch that, then CloudFront is a content delivery network, which makes sure that stuff that you put in there, like static files, like JavaScript files, or images, get to be populated to edges that are very close to the user's little data centers that are always close to the user so that the data is always close to you. And therefore you have less latency and things are more performance. David Tucker 17:57 Absolutely. And so that's cool in AWS has many, many edge locations. I forget the exact number now, but I'm pretty sure we're north of 200 edge locations around the world. So you can really see your content spread out. And this is another one of the things that just gets me excited when we think about kind of how things used to be versus how they are now, the fact that virtually anyone can take and distribute their content and send it out to servers, you know, from, from Europe, to Asia, to North America, South America, you can just send it out through just really with one click of the mouse, within five to 10 minutes, you're gonna have that content all around the world. That's something that's still really excites me. Barry Luijbregts 18:32 Yeah. It's it's just a massive scale, isn't it? It's the extreme, massive scale that is so easy to use with the cloud. It's just still amazing to me. Absolutely. So what about relational data, like a SQL database? For instance, can I put that somewhere in AWS? David Tucker 18:48 Absolutely. And so there's several different approaches that you can take, but the core service for relational databases on AWS is called RDS or relational database service. And the great thing here is we're not just talking about, you know, using an AWS specific database, you have access here to SQL Server, you have access to MySQL, you have, you know, access to Postgres and Maria dB, there's several choices. But in addition to that, you also do have access to something that's AWS specific. And that's called Aurora. And that's a database engine that really was built for the cloud. So they built that themselves, but they really targeted it at being both MySQL and Postgres compatible. So you actually can pick when you create an overall database, hey, do I want it to be MySQL compatible, or Postgres compatible, and you can use all of the same libraries. So one of the great benefits is, if you're used to using either of those databases, then you simply can create a database in RDS that's Aurora, and you don't have to change any of your code to get it to work with Aurora. It just works out of the box. And one of the really exciting things that they also have developed with this is there's a concept called Aurora serverless. So if you have a database, maybe you have a side project and You're just you want to have access to a database, but you don't want to pay for one to be up all the time with serverless, you gain the ability to basically have this database spin up and spin down as needed, and even scale as needed without you having to worry about managing those underlying database instances. So we're certainly seeing a lot more in this area, there's still a few negative aspects of using the serverless approach. They're still kind of maturing that product over time. But it's really exciting to see those kind of concepts factor in now two databases as well as you know, compute resources that we have with lambda. Barry Luijbregts 20:29 Yeah, that's very exciting. What a cool name. By the way, I'll roll rock. There are cool names in AWS. David Tucker 20:36 I will give you one comment on the names. One thing you do have to be careful with when you're learning about AWS as a developer is a lot of the services have similar names. And so one of the things that I always hear back from learners when they're getting ready for certification tests is there's so many services to memorize. And we have things like cloud search versus cloud formation versus, you know, cloud trail all of these sounded the same, how do I you know, so so that's just where Other things to let developers know if you're struggling with that you're not the only one. There's, you know, 212 services right now on AWS. And sometimes it can be hard to remember all of the different names and what they mean. Barry Luijbregts 21:10 Yeah, absolutely. And they might change as well, like Microsoft Azure, they sometimes change because the marketing team just decides that another name just sounds better, or is better for the markets. Yes, definitely. So what about big data and data analytics, because you talked about that a little bit already, that you can use, it was s3, I think, also to run to store your big, non relational data and then do a bit of data analytics over that other services as well. David Tucker 21:39 Yeah, there are and there's there's actually a growing number of services in this area. This is an area that I think AWS has really placed a lot of emphasis on in the last few years. We've even seen them develop what we call specialty certifications for both big data which is now called analytics and also within machine learning. And these areas really do intersect. So if you're looking for more of a traditional data warehousing approach, this is where we have a service called redshift. And so this is what's going to give you, you know, again, column based storage for structured data, where you can store it at a petabyte scale. So large, large amounts of data. So that's where we see a lot of organizations shift. They're looking for more of that data warehouse approach. Now, if you're looking for more of that data lake approach, this is where we see organizations looking to use s3 for that type of data storage. And AWS has even tried to make this easier with a service called Lake formation, which any of their services that that end in formation are really there to help you build out an initial capability in this area to launch infrastructure. So Lake formation tries to go in and set up data lake constructs go in and actually set up some aspects of governance and they even have services you can integrate with it that will help to go through and identify using Machine Learning identify sensitive data and make sure that that's being handled properly as well. So this is an exciting area, there's so many services. You know, if you're an organization that's used to using traditional if you're if you're used to using Apache Spark, for example, you know, we have the service EMR, which is elastic MapReduce, which will allow you to have access to all of those same tools within AWS, but in a way where they're managing that for you, it's really more of a platform as a service approach when you're doing that, but there also are, you know, cloud native tools that you can interact with as well. And then we have the entire suite, with Sage maker, for example, that will enable us to go in and take all the data that we have stored in and begin to create machine learning solutions on top of what's there. Ah, very cool. Barry Luijbregts 23:43 And what about visualizing that data? David Tucker 23:47 So we have some different tools. And here's, here's where I'm going to be really honest with you, because I know that you know, some people that work in a platform like AWS, just always believe AWS is the best solution. But here you know if we have people that are used to working within power Bi and Tableau, for example. You know, AWS has a service called Quick side. And it's a really good service, it doesn't have the capabilities that you would see in a Power BI or a tableau solution. But for some organizations, the solutions there are adequate for what they need. I've moved several of my clients on to quick site, because they have some very, pretty basic needs in terms of data visualization. And with quick site, you can go in just as you can with those other services and create customized dashboards that are tied into your data. And you can do that, you know, you can marry together your structured and unstructured data into a single into a single view. And, you know, for a lot of organizations, that type of data insight is just something that you know, something that they use on a daily basis. But I will say again, if you're looking for some really advanced visualization use cases, solutions, like Power BI and Tableau are they're going to be a little bit a step ahead of what we have within quick sight. Barry Luijbregts 24:50 Okay, well, you should choose a tool that's best for you and appreciate a tool that's in your preferred platform. Barry Luijbregts 24:58 All right. So we're building quite intricate Already, we can run our websites, we can store our data, we can use containers, if we want to, we can do data analytics, if we want to. What about if I want to do something with IoT? David Tucker 25:11 Like I have a little device or I have many devices? And that sends many, many millions of messages to the cloud? Is there something for that? Absolutely. And what we see here within a service called AWS IoT is that one of the great benefits of it is that it does integrate seamlessly into a lot of the other services that we've already mentioned. And This to me is while I totally agree with what you mentioned previously, we need to use the service that's best for whatever solution we need. One of the things I will say too, is when we do pick services that are in the platform that we're in, we do usually get some advantages with that. And I think here One of the advantages in using AWS IoT is we can see this integrated in a great way with services like lambda, for example and with with some of the messaging services that We have within AWS. So it becomes very easy for us to go in and configure even if we have millions of messages coming in from our IoT devices, we can see them, you know, come in, we can analyze them, we can get analytics on them using some tools with what we call Amazon kinesis, which is the stream processing solution we have on AWS, we can then based on certain conditions, fire off a compute instance with lambda to actually perform some action on the data that's coming in. And we can store that data, even if it's unstructured in s3 and get that data lake capability that we talked about previously. So I really think the IoT example is really a strong use case for pairing some of these services together, because of all the tight integration that can happen when you're working within a platform like AWS. Barry Luijbregts 26:44 Yeah. And then from there, you have lots of data that you can then do machine learning on and use artificial intelligence to discover what's in the data or to use it for different purposes. I'll bet you guys probably have a lot of Artificial intelligence services as well like as your cognitive services that is artificial intelligence as a service, which is really a software as a service offering. What is what is there in AWS for that? David Tucker 27:11 Absolutely. So the equivalent services to the cognitive services in Azure is that on AWS, we have what they call their AI services. And they're very similar in nature. And this is one of the things I love really about both Azure and AWS, you know, for some organizations, especially if we look, you know, three, four years in the past, it was really difficult for them to get up to speed with using any aspect of machine learning or AI because it required them to have a very specific skill set, they had to have people that were really at the time kind of on the cutting edge, they had to have a lot of expensive hardware to do some GPU based processing. And and what we see here is we've really lowered the barrier for what it takes for organizations to get in and use these kind of services. So on AWS, we have a whole suite of them and it can be you know, ones like for example, AWS recognition. This is the Computer Vision service. And so with this, you can go in and get keywords back from an image. For example, if we want to just understand what is detected within that image, we can get those back. We also can go in and store faces within recognition and then detect those faces in other images, we can even go through and try to determine the emotion of someone within a particular image. And that's just that's just really the tip of the iceberg of what's possible. We also have the ability to go in and get take text and convert audio of text into into actual text that we can work with. We can take text that we submit and have it be converted into a voice actually speaking that so we have so many different things that cover you know, visual use cases from computer vision to natural language processing. To regression, we have a service called AWS forecasts that is able to actually just based on the data that you input, create a regression model and be able to predict future values. So we really see a wide range of services. that people can simply use, you know, in a SaaS based approach to fully take advantage of machine learning, but without having to build their own models and go through all the complexities that come with that. Barry Luijbregts 29:09 Yeah, I think that's a very good approach to get people into AI as well, because it's very complex to to show. And when you use these, you can just get started. And if you want to customize, you can always do that later. Barry Luijbregts 29:23 So I would like to use Visual Studio and Visual Studio code to create my applications. Are there any extensions for AWS in Visual Studio Visual Studio code so that I can easily deploy stuff or maybe talk to API's within AWS? David Tucker 29:42 Sure, that's, that's a great question. And in first, let me just, I'll throw out the irony here that, you know, for a long time, I was a developer, not in the Microsoft world. And I you know, I was on a Mac and I was, you know, I was doing iOS development for a long period of time. And it's funny if you would have ever told me that so much of what I'm doing would would shift over to the Microsoft stack, I probably wouldn't have believed you. But even me on a daily basis, I'm using Visual Studio code as my primary editor in working with AWS and in working with Azure with some of my clients. And so one of the great things we have here is there are multiple extensions that are available for AWS in terms of working with within Visual Studio code. This actually is the primary editor I see them creating extensions for so you have depending on what you're doing within within AWS, there's going to be several different extensions that you can take advantage of including just, you know, some basic extensions that that cover, you know, wide use cases and then some very specific extensions for working with specific things like for example, the the cDk, which is AWS, one of AWS tools for doing infrastructures code. So there are there are several different options that are available to you. And if you're using Visual Studio code, especially, I think you'll you'll probably feel right at home working within AWS. Barry Luijbregts 30:54 I expected as much. There probably are lots of extensions just like they offer as your Course. Yes. As in Visual Studio code in Visual Studio as well. So So Amazon just tell it's it seems like a very complete platform, of course, because it's very mature. And it has all these offerings for basically everything that you can think of. How do you best get started with it? As in? Are there guides or websites that you can go to? What's the best way to get started? David Tucker 31:25 Yeah, absolutely. I think for for most developers, there are some great resources that AWS does provide to kind of help you take those first steps. One of the things that I probably would selfishly say this is I've actually spent a lot of time thinking about how to get developers started on AWS. And a lot of this went into a path that I have on Pluralsight. And I worked very closely with Pluralsight. we'd spent about a month kind of rethinking, you know, how do we put out a path that really helps people get started in this area, and what we ended up with is a path that covers something called the cloud practitioner certification. So AWS has this an entry level certification. And this is pretty unique here. This is designed not just for developers, but really anybody who's going to be working in or around the cloud. And this is the initial certification that just shows that somebody has a good understanding of the platform, and of the different capabilities. It doesn't cover everything. It's it's a very wide, but kind of very shallow certification. It's designed to help just demonstrate that you have this wide knowledge. And one of the things I've seen is, you know, we've seen so many people take this on, especially in this current time when people aren't sure about their job status, they're trying to get new skills. They're trying to make themselves marketable within, you know, within this pandemic, to potentially new opportunities. And this certification has proved to be a great way for new developers to get into AWS. So that would be one of the things I would reference there. There's three different courses, there's even a project where you can begin to put some of those concepts in place, and while AWS has some free resources that also are very, very good. I think this would really help you get from, you know, kind of your starting point of not knowing much about the platform at all, to truly understanding the benefits of the cloud, what AWS provides. And also one of the great things about it is if you go down this path and you stick with it, you actually will end up with a certification that you can actually go out and have that on your resume be something that helps open up doors for you within your career. All right, well, that is absolutely great. Barry Luijbregts 33:25 I will put a link to this Pluralsight path in the show notes, and also to other links of yours, including https://www.davidtucker.net/. Well, thank you very much for being on the show. And we will see you next week. Thank you for listening to another episode of developer weekly. Please help me to spread the word by reviewing the show on iTunes or your favorite podcast player. Also visit https://developerweeklypodcast.com/ for shownotes and the full transcript. And if you'd like to support me in making the show, please visit my Pluralsight courses to learn something new.
This week, I'm talking with Christos Matskas about Identity in Azure. We spoke about Azure Active Directory, (AAD), AAD B2C, Azure Key Vault, ASP.NET Identity Provider, Azure Managed Service Identities and the new Microsoft.Identity.Web that you can use to secure your applications.Christos Matskas is a software devoloper, dad, blogger, husband, speaker and all around geek. He currently works as a PM in Developer Advocacy for Microsoft Identity helping developers and teams leverage the power of Azure. Before joining Microsoft, he was a successfull entrepreuner collaborating with companies such as MarkIT, Lockheed Martin and Barclays. He's been building software for over 15 years and he's a passionate Open Source advocate. He contibutes regularly to numerous OSS projects and works closely with the developer community to make the space bigger and better. @christosmatskasShow resources:Follow Christos on Twitter Connect with Christos on LinkedInBlog of Christos MatskasLearn about Azure Active DirectoryAzure Active Directory B2CLearn about Azure Key VaultManaged Service IdentityMicrosoft.Identity.WebFull transcript:Barry Luijbregts 0:23 Welcome to another episode of developer weekly. This week, I'm talking with Christos Matskas about identity in Azure and other things. Christos works at Microsoft as a program manager for Microsoft identity. Welcome. How are you doing? Christos Matskas 0:41 I'm good. Thank you for having me. Barry Luijbregts 0:45 It's definitely my pleasure. You know, at the moment, I'm actually looking at my wife who is playing with my new Oculus quest device. You know, it's a VR headsets. I bought it yesterday. It's totally off topic, but it's so funny to see It's amazing. Have you tried any VR? Christos Matskas 1:04 I've tried it a few times, I don't own any VR headsets or devices I would love to. But it means I would have to fork out a significant amount to upgrade my hardware and get the devices. I do have a PlayStation so I could get a VR headset for the PlayStation. But to be honest, these days, time is so limited. And sounds crazy because because of COVID and the pandemic, we're actually stalking the house. But it's a great opportunity for me to spend more time with the kids and the family and, you know, catching up with them. So no VR for me, but I would love to something I would definitely look into. So Barry Luijbregts 1:42 yeah, definitely. Well, we also don't have a lot a lot of time we just do it now here in this hour. We're sorry that before we go to bed, and I mean, this might be great Christos Matskas 1:53 to do a podcast on a VR environment, right? Oh, absolutely. Barry Luijbregts 1:57 Yeah, definitely. That would be awesome. This might be actually a great device because this is this is wireless. It's not even connected to PC right now. It's totally standalone. Yeah. That's why I wanted it because I don't have a big gaming PC or anything. Christos Matskas 2:12 So you don't need a beefy hardware to run it. Barry Luijbregts 2:14 Now you can do it, you can plug it into hardware, now you can run these amazing games and stuff, but you don't have to really Christos Matskas 2:22 so well. Something to look into then there you go. Definitely. Barry Luijbregts 2:26 Yeah, definitely. So well. So let's get to today's topic, and that is identity and identity in Azure. Let's say, let's just start with, you know, let's say I have an application, a web application. And I want to run that in Azure, because you know, I like to run things in Azure. Sure. How would I go about securing that? Because I have lots of options. I need ident I need to log in somewhere. And I need to make it secure. What are my options there? Christos Matskas 2:54 Well, again, security touches so many things like identity. So it's a it's available. big subject and maybe we need to scope it down a little bit from an authentication and authorization perspective, then Azure AD ease is a great solution. If you are trading line of business applications or business to business applications, then as rabies is a great solution, it provides you with a way to register your app, and then it gives you an app ID. And depending on the flow, sometimes you have a secret as well. And then you configure this in your application, you use their appropriate libraries, depending on which version of dotnet what kind of application of dotnet could be a console, it could be a web could be a demon, it could be an Azure function. All these different things have different kind of libraries to allow you to do the authentication. And then from that point onwards, once you're authenticated and you are authorized your users, you can add some additional functionality like calling into graph or calling into other API's and extending that and we have the Microsoft authentication library, Amazon these days, that allows you to do that quite easily. So you grab a token, right you get a token, that token has your permissions, your your user ID, your your API permissions as well. And then from that point onward all you do is send your token with your requests and based on your permissions can do things. So from authentication authorization perspective as radies a start for line of business. We also talked a little bit about b2c just prior to starting the show and business to consumer is for these people that are writing applications that are going to run outside the premise of an enterprise. So you know, you have your your podcast, your website, maybe you want to get people to authenticate to your website, and leave your comments or put requests to, to be on your show. In that scenario, you will be using something like BTC to allow these users to log in with their own username and password and maybe their social accounts, Facebook, Twitter, Google and then you have, again you get a token in your application and use that token to identify those users and give them appropriate permissions. Barry Luijbregts 5:06 Right. So let's see if I understand that we're talking about Azure Active Directory. And you can use that to authenticate users, but also to authorize users, right. And authorization means that you define roles or rights that they have, that you can then use in your application to say, hey, this guy is an administrator, for instance, or, yeah, power you too. And so he can see this menu and somebody else got right. And you will figure all that in Azure Active Directory, you just click some buttons included there. Christos Matskas 5:37 Correct? Yeah, I mean, we do have a straightforward process for creating roles. We can also use group assignments. So some sometimes if you are creating an application that is going to run against Azure AD for authentication, then you can also use the the group assignments or for a specific user to allocate permissions within your application. And the nice thing about ASP net and dotnet In general is the fact that they have a built in system for doing role based authentication. So once you assign a role to a user, then they get easily surface through the user object inside dotnet. And then all you have to do in your controllers is say, I want to authorize this user. So you only accept authenticated users in your solution. And then you say, I want to check on specific roles. And then as long as the user is within a set of roles that you permit in your app, then the user either has access or doesn't have access to a specific action. Barry Luijbregts 6:32 Right. And I want to dig into that a little bit more later, as well how you do that, let's say from ASP. NET, for instance, sure library using what what tax you do. So in Azure Active Directory, you then store your identities in there, that means you have the user object, including the password and everything is all in there, right as it takes care of all that. Christos Matskas 6:52 Yes, that's delegated authentication for you. So you don't have your application doesn't need to have a local database of users. It doesn't have to have a local database. So for roles and groups and permissions and what have you, so it becomes easier for enterprise that has hundreds or even thousands of applications to manage the users in one central location. And then the developers that create applications can use that centralized system to code around there permissions. So one of the one user can be in, say, invoicing or HR, then that user can access a set number of applications, but they won't have permissions to access other applications because they don't have the right roles or the right group assignments. And it becomes easier for developers to just focus on not adding quickly authentication to their solution. And then moving on to the next task, which be adding features to that application and specific functionality. Barry Luijbregts 7:46 Right. And then, once your user is in Azure Active Directory, they can then log in with, let's say, an email address and a password. Christos Matskas 7:55 Well, the nice thing about having Azure AD is if you are running an on premise, Sorry, on an enterprise environment means that you most likely get single sign on, right? So for us at Microsoft, we have so many applications, we'd only have to put a username and password, because of maybe everything that is part of the domain automatically has single sign on. At the same time, because we're using Azure AD, we also have incremental permissions. So if a specific application now needs to go and access my calendar, for example, then they can request that automatically for free for me, or on behalf of me when I try to access the application next time. They also have two factor authentication, you get all these things for free without the developers needing to explicitly code for these things. Right? Barry Luijbregts 8:49 Yeah, and that's a fun thing because you're then logged into your laptop, let's say with crystals, blah, blah@microsoft.com. And during user object is also@microsoft.com. And then Therefore, you are already logged in there with the enterprise version of Azure Active Directory. Christos Matskas 9:05 Correct? Yeah, it's a it's an Azure AD joint machine. And that means that every time I tried to access any internet application, in fact, I can't even remember my password. Let's not say that. Because Hello Barry Luijbregts 9:15 is working so great. Christos Matskas 9:17 It's surprising if you go on holiday for an extensive time, like you have paternity leave or whatever and come back. Sometimes your passwords expire. And then nothing works. Because, you know, hello, and pins work so great that people don't have to use their 16 digit character, their password. But yeah, a funny too. I have a password, and I can use it. Barry Luijbregts 9:38 Yeah, right. And now you mean Windows Hello, where you just look into the camera, and it says, Hello, you're logged in now. Yeah, exactly. Christos Matskas 9:45 Yeah. And the applications can also leverage that as well. Right. So again, it can be Hello. It can be a pain, you can have feitos you can have hardware devices for two factor authentication. So it doesn't have to be username and password and the nice thing is that libraries that we have for dotnet. And node and everything else do support this kind of a, you have an app that tries to authenticate against Azure AD, we will give you all the things for free, doesn't matter where you come from. Barry Luijbregts 10:12 Alright, so can you then also store biometric data in Azure AD to login to let's say, fingerprints and stuff? Christos Matskas 10:20 I think no, you can do that. But it's your device that defines that as a the extra factor authentication, right. So if your device has a fingerprint, login, then that becomes part of your login process. And what we store in US release your object, your object for the domain, Barry Luijbregts 10:41 right? Yeah. So as your Active Directory b2c business to consumer, that's different, right? You don't log in with your ad Microsoft account with something else. How do you log in there? Correct. So Christos Matskas 10:54 Azure AD b2c, it's a separate resource to Azure AD. Totally. To imagine that you're spinning up a new website or a new database, it's not managed by Azure AD. So it's a totally different kind of authentication system. And the whole goal there is to make it easier for developers to manage and create an authentication system, an identity provider that is centralized again, but it's aimed for consumers and anyone that needs to log into a website that is not part of their ad domain or an enterprise. So if I go to say to Walmart and I want to buy something I need to create an account, then most likely, Walmart will have a b2c tenant that I create an account for the first time I can choose to use a social media account maybe I want to log in with my facebook so I don't have to go and create everything from scratch. Or I can use a an email and password. Sometimes the login process or the signup process, may ask for additional information like my my actual name Maybe my home address. So it will make easier for me to check out from normal without having to enter that information 20,000 times. So you can have the login system, but it also becomes a bit of a database and account database where you can enrich the information of the user. So you make the hauling that action easier. Barry Luijbregts 12:18 Right? And then you basically just store all the user information in Azure Active Directory b2c, right? You don't need an additional database for that per se. Christos Matskas 12:27 Exactly. Yes, everything is managed there. Again, delegated authentication. The nice thing about this stuff is like you don't have to worry about PII. Or how how do I allow my users to sign up for GDPR requirements, right, so maybe I want to delete my account. I don't want to be there anymore. It provides you with a straightforward process. And also, as a developer, you don't have to worry about how am I storing my passwords? How am I storing my emails? Are they secure enough? What happens if an attack takes place? Am I hashing the passwords appropriately? Why am I even hashing the password because we've seen many, many companies They're not storing information securely. Barry Luijbregts 13:03 Yeah, still people not having their passwords. Oh guy. Oh, yeah, Christos Matskas 13:07 yeah, I think if you follow Troy hunt, I don't know if you ever had his database he's Have I been poned database is growing exponentially with so many attacks taking place and I don't name companies but he's still advocate advocating loud enough for center center companies that are still getting it wrong. And they're storing passwords in clear text. Barry Luijbregts 13:33 Right? So yeah, Azure AD is a really good option, right? But there are a lot of issues. You can also use your own database like if an ASP. net website and I use ASP. NET forms authentication, that that was what it was called back in the day. I don't know what it's like to know, Christos Matskas 13:53 what's the identity provider for ASP. net and ASP. NET Core. So it's still a very valid service. Are you you might not want to use Azure AD for whatever reason, or maybe you're not running on the cloud, or you can run on the cloud yet. So we do have a template straight out of studio or the COI that allows you to create a local authentication system where you have an identity provider that runs against a local database, that database houses and protects your passwords. In fact, we added GDPR to our templates, as well. So if you go to manage your account, once you create your account in that system, also allows you to delete that automatically. So developers don't really have to worry about that. But you're still running a database locally. So that can always be an issue if you are quite aware and security aware. Also, it doesn't scale as well, right? So imagine you've had thousands or millions of users, suddenly your application needs to manage that. And the other problem there's a as a company, you're probably running an identity provider Anyway, you probably have somewhere an active directory that manages your organization three, right? So now you have two systems where you need to manage users. And you have to do systems you have to manage groups and roles and what have you. So it's not particularly would advise people to do that. It's not the best solution. But if you have a small kind of an app that you have 10 users or 100 users, and you don't expect it to grow significantly, then that's that's an option. Barry Luijbregts 15:27 Right? Yeah. I don't know. There's just something icky about storing passwords in a database, even though it's secure, and hash and everything. It's just once you can query it and concedes, I don't know, I don't get a good feeling about that. Let's be able to touch Christos Matskas 15:42 exactly and also the fact that your admins now need to backup the database, they need to manage the database, they don't have visibility about what's happening in that database. So you know, if you have 10 apps, that they all have their own databases back there, then you know, it becomes a little bit of a problem because companies grow over time. Sometimes developers are not aware of other systems. I've worked in very large companies like say, Barclays in the past, where there were so many disparate teams doing their own thing. And nobody talks to each other because it's hard to have visibility across everything, that everybody had their own kind of a system that was doing those duplicating functionality. So what I'm saying here is that if you decide to go down the route of self managing the the user database, then it might not scale well as the company grows, Barry Luijbregts 16:31 right. Plus, if you have your own database, you also need to have your own login page and own password reset page and all those things that those will be part of your application, right, where as you have as your ad, you will be pointed to the Microsoft login page, which is all secure and nicely buttoned up. You don't want to do all that stuff yourself, Christos Matskas 16:51 right? Yeah, in fact, I was looking at them. These template builder allows you to because right now, if you create a new ASP net application or a snit core application and you say I want to have local authentication, it will create everything for you and but you won't see any pages, everything is actually part of a DLL. So you get a DLL that has everything compiled in there for you. So you get a sign in sign out, minus account, whatever that is all part of the dlo, there is an option to actually unravel all of that and have all these all these different pages, as actual pages in your application where you can tweak the look and feel you can change the design, you cannot additional functionality. It's about 25 pages because you have to have password resets you have to have email services, you have to if you want to send a password reset, for example, email, you have to have two factor authentication like right now you're starting to talk about I mean an email service and suddenly I need the texture which where I send the the the two factor authentication code and what have you. So it becomes very complex to start managing all this yourself, we give you all that for free. And even more like integrating two factor authentication to your office simple as going into Azure AD, flicking the switch and saying, you know, for this application, everybody needs to log in with Azure AD and have two factor authentication. So automatically your users do that. And they get the functionality out of the box. You don't have to have an email surveys and take surveys and what have you. I love that. Barry Luijbregts 18:25 Yeah, I love when other people do complicated stuff, especially with security because they don't want to be responsible for that. Christos Matskas 18:33 Yeah, leave that complexity to us. We give you a DLL. And that's all you have to do. Barry Luijbregts 18:37 So you talked about scalability as in, obviously, you can store millions and millions of user accounts in Azure AD. But what if you have users all around the world geographically distributed, what I would do with my application is I would put my application also near the users, maybe use something like Azure Traffic Manager or a CDN to make sure that my data is also close. What about Azure Active Directory? Because people then need to navigate to the Active Directory. Where is that physically located that surface? Well, we're we're doing all the hard work for you. So we make sure that we have instances all around the world. And what happens is when you try to log in, you'll be presented with a page, you don't you don't care where it's coming from. So because it's delegated authentication, you leave the website to go to another website, that's Azure AD, you do your authentication, and you come back with a token. Christos Matskas 19:30 You don't really care where that's happening. So you could have multiple that you have hundreds of instances running around the world. And we will make sure that the authentication is running flawlessly for you. You don't have to worry about scaling out Azure AD as well. We do it for you. Barry Luijbregts 19:46 Wow. So it's really identity as a service. Right? Christos Matskas 19:49 Yeah. And it scales with your with your needs, right. So you can have two users logging in can have hundreds of thousands of users logging in at the same time. You don't have to worry about performance. scalability backups. What have you. Yeah, I love Barry Luijbregts 20:03 that I, I once was, for one of my jobs. I was in Redmond at the Microsoft campus. And there we got like a customer tour of the security center Christos Matskas 20:14 that they have. I love that one. Barry Luijbregts 20:16 Yeah, that's Yeah, they have all these big screens with threats on there and botnets that Microsoft is tracking and trying to destroy with legal action and things like that. It's just amazing. And, and they're they explained as well, that's because they have so much data as an Azure Active Directory is being used so many, many millions and millions of times during the day, because everybody's logging into Outlook to Office 365 to Azure, you name it. So they have all this data. And because of that they can detect anomalies as well as if I log in from Amsterdam. And then a minute later, I log in from Australia, let's say then as your ad did. Hey, that's probably very strange. That's probably not right. But yes, up to level, maybe I'll ask for a second level of authentication, maybe you need to enter a code from your SMS or something or an email. That's just super clever. I love that. Christos Matskas 21:15 Yeah. And we had to scale significantly as, especially with COVID. And everybody's starting to work from home, we saw an explosion and on the usage of teams and the usage of Azure AD, we found that VPNs could not scale as fast as companies wanted to, you know, move hundreds of thousands or hundreds of 10s of thousands into working from home and suddenly, you know, a VPN that was working for 10 or 15 people at a time now has to manage that kind of load, which meant that we had to scale with these companies as well. And we did a lot of a lot. There's been a lot of engineering effort happening in the in the past years to make sure that we can scale with the world scaling at the same time. So you know, teams, as you said, teams are using as rabee everything Like, right now I have probably 10 different apps running on my machine, and all logged in against Azure AD. So you can see how that can take a toll from, you know, so many people working remotely, but we know we scale there were no issues, no outages, or whatever. And that's fantastic for my division to know that we're doing so. Well. Barry Luijbregts 22:18 Absolutely. And it's just really, really good work. So what about alternatives we've talked about, so you can have a database with the ASP. NET system. There's also third party things like there's identity server, which is also an identity product, also external, external identity store, right? corral is a different Christos Matskas 22:40 identity server is a great solution we've used in the past I've used in the past as well. I would say that for companies that cannot really leverage the clouds for an identity provider, then identity server is a lot better than running your own local database. Absolutely. And because they use the same kind of format where you know your questions A user logs in, they get your application get talking back and then get roles and permissions, it becomes very consistent. So if you eventually decide to move to the cloud, or if you eventually decide to move to say Azure AD, then it transition is easy. But I didn't say every something that you need to manage yourself, you runs somewhere on a VM or a machine or, you know, bare bones doesn't matter where it is, that the whole point there is that you point your application again to a delegated authentication provider. And then you get talking back that says that you have authenticated that these are your claims. And from that point onward, the developer needs to decide what to do with that user object. Barry Luijbregts 23:39 Right. So that would be a good option if you're not in Azure or on premises. But you also use as your Active Directory from let's say, if I'm using AWS. Christos Matskas 23:49 Absolutely, I mean, that's, that's why we are doing these days. We're talking to developers, normally care where you're running your solutions, whether they're on prem in Ws, Google Cloud, That what we want to make sure is that if you are going to authenticate your users, you need to use a robust solution. And if you're a no developer dotnet, Python Ruby go whatever language you're using, there is Azure AD for you on Azure AD b2c, right, let's not forget the business to consumer stuff. Barry Luijbregts 24:20 It's actually used a lot b2c, Christos Matskas 24:23 it is used quite a lot. And we've seen major customers implementing b2c. In effect, anytime that you need to interact with a consumer. You need to have a solution for that consumer to be able to login easily and efficiently and in a robust way that scales with your customer demand. Again, a reminder of these times is that with COVID, we had so many people that are moving to online shopping, right? People don't go to supermarkets anymore, don't do all the foods, they don't want to go and you know, eat at the restaurants or they choose to do take out or whatever all these companies that have had to deal with user registration. And you know, I want to go and buy something from Walmart again. So Walmart has to have a solution for for me to go and authenticate and prove who I am. So they can send the food to the right place. So you know that all of these customers need to have enough in identity provider. BTC is a great solution. Yeah. Barry Luijbregts 25:23 So all right, we love Azure Active Directory. I love Azure, web apps and App Service. I love this is a great solution to just pop your application in there. And then it just runs. And obviously, we can connect our application with Azure Active Directory. Let's say I have an ASP. NET Core application. That means I need to do something to the application. But there is also another option in App Service as your app service. And that's called easy authentication and authorization. tells you a little bit about that. Christos Matskas 25:53 Yeah, easy. auth is an easy way for you to actually implement authentication for you application without really having to change your code. So for example, assuming that you have a 10 year old solution that you decided to move to the cloud, it's been running perfectly fine on prem. And you didn't have any problems there. But suddenly, you have to put in the public domain because your company decided to move everything to Azure. Suddenly, as soon as you put into App Service, that solution becomes publicly available, right? There's a public endpoint. Yeah. Now you want to ensure that anyone that access to that application has the right permissions or they're the right account. So easy. auth allows you to set up authentication without really having to change the code. So you deploy your code and suddenly you say, you know what, I need to authenticate my users. Easy. auth allows you to go and choose the options that work best for you. So we do provide Azure Active Directory backed up authentication, which means that as long as your user is authenticated, or has has a token against Azure AD, they can go and access the application but we also give you access to social media account logins. So you can have a Microsoft account, you have a Google account, you have a Twitter account that can also be permitted to access the application, you can figure these in your app. And you can have multiple of them selected as well. The only caveat I would say is that if you decide to do that, then it's either all or nothing. So you have allow anonymous access, so everybody can access the solution, or you have authentication authorization that takes place across the whole solution. So before they even hit the first page, they have to authenticate first, you can say I want part of my solution to be anonymous, and then other parts of the solution to or the app to require authentication. So it's all or nothing. We use a bit of a trick solution, but for someone that didn't have authentication before, and now they get it for free without really having to do any code changes. It's a fantastic solution. Barry Luijbregts 27:54 Definitely. Yeah. And that stuff, of course, because as your Active Directory is then in front of your application, as well. authentication layer there. integrate into your application. Christos Matskas 28:03 Yeah. So it's a it's an interceptor, right. So there's a request coming in, we intercept the message, we check whether there are any tokens or whether there's an authentication header if you're creating an API or what have you. And then from that point onwards, we make sure that the users are authenticated before they even access the solution. Barry Luijbregts 28:23 Right. So and then the other option is, let's say I have an ASP. NET Core application, a web application, maybe even a blazer server application, which is also ASP. NET Core, then I can also connect it to Azure Active Directory. I usually do that with a wizard in Visual Studio. Sure What what happens there in the background? Ah, Christos Matskas 28:45 yeah, we we did try to make the onboarding into Azure AD much, much simpler. And the whole point there is if you are using Visual Studio, then as you create your application, there is usually an authentication option at the top hand corner. When you say I want to create an MVC or a razor page, at that point of the wizard, you can go and define what kind of invocation you you want to use. And if you say I want to use single tenant Active Directory backed up authentication, we will go and create the app registration for you. And then the application will also be populated. So if you go into the app settings or the web config, once that application registration is successful on Azure AD, then we will populate that information inside your app will also download the appropriate libraries for you. And why not the code, which means that as soon as the solution comes up, you can click Run, and then you'll be presented with a login page that runs against that operation you just did. All Out of the box without you having to write any piece of code, which is great. Barry Luijbregts 29:55 Yeah, that that is amazing. And then you can use we've talked about that In the beginning, then you can just simply put the authorize and authenticate attributes on your controllers, right? To define while this controller if you go here, which requests you need to log in, and maybe then you need to be an administrator to access this, right? Christos Matskas 30:18 Exactly, yes. So I will give you a, I think if you do if you follow the wizard, then as soon as you launch the application, it will request that you login, you can change that and then say, you know what, I want everybody that hits my homepage to be anonymous. I don't want them to authenticate by once they need to access other parts of my solution, then at that point, I want them to authenticate, maybe give them access to the application data or what have you. Barry Luijbregts 30:47 So then you have all sorts of configuration values that point to your Azure Active Directory tenant and your Azure Active Directory application. Is that safe to have that all of your configuration or is there a better place? Put, Christos Matskas 31:01 if you are going to do a Spinetta syndication without really hitting any other API's or what have you, then this that the information that we store in the web config or the app settings, so Jason is just your tenant ID, and well known and public endpoint for logging in. So there will be login.microsoft.com. And there will be your client ID, which again, it's just a grid, and nothing else. So you have your tenant name. And if you use a custom domain, so it could be see mascus.on match.com. They're well known login name and URL for login at macro tocom, the tenant ID, which can be, which will be agreed, and then the client ID. If you are, however, creating a single page app, if you're creating a node app, if you're creating something that requires implicit flow, or maybe you creating a console app, right, that doesn't have user interaction, which means that the console is running as a daemon Not every half an hour, that application needs to go and authenticate against Azure AD. And then get some information out from Azure, maybe something from graph or some other API, then I definitely need to have either client secret go to our certificate, we'd recommend people use a certificates over a client ID a client secret, because the client secret needs to be long character that needs to be stored and somewhere easily accessible. And it becomes a bit of an issue, right? So the certificate takes the ownership away. So you don't have to compromise anything, as long as you configure your app registration to use that same certificate. It's very easy and straightforward. In fact, I blogged about that a few weeks ago. So it's, it's a little bit more involved because you need to have a certificate but can use any certificate can be a self signed certificate, you don't have to have a proper certificate, more pay money for it and then just upload it into Azure AD and authenticate. So There's nothing really wrong with using the wizard because it doesn't compromise security. But once you have to store client secrets, then that becomes an issue. But we also have a workaround for that as well. Then if you if you're aware of managed identities and Key Vault and what have you. Barry Luijbregts 33:16 Yeah, so Key Vault is in a secure place in Azure, where you put secrets, right? You can put passwords in there or connection strings or even certificates if you want to. Christos Matskas 33:25 Absolutely. Barry Luijbregts 33:26 Yeah. And then what is managed service identity? Christos Matskas 33:30 Well, if I'm going to use keyboard, I need to have a way to connect to that securely. And in the olden days, you would have to have client secrets or a key for that. So you would use the URL to the keyboard. And then that key would allow you to authenticate and say, you know, I, I am an owner or a user of that keyboard. The problem there is that you have to store that secret somewhere. Yes, sometimes it can get to a point and for that reason, what We did is we created this thing called Manas identity. This is again, an entity inside Azure AD that we can use to provide proof. So if you are running an app service and their specific miners identity, then what that allows you to do is to go to Key Vault and retrieve the necessary information you need, say for Azure AD or whatever, at the point of the application starting up. And that takes away the the problem that we have of storing secrets somewhere. So minus identities. He's an account that the applications running under that context and that context allows you to go and hit other services. It's not just given it can also be SQL Server. It can be your event grade. And a lot of services on Azure are starting to adopt MSI minus identities as the way forward. And that simplifies your life as a developer because you don't have to worry about monitoring secrets. You don't have to Go to your admin and say, Oh, please give me the secret to the Key Vault or the secret connection string to the database. Your MSI does it. And now if you're developing locally, you might say, Well, I'm not running on Azure. So I don't have a massive empty Visual Studio and Visual Studio Code allow you to have an account. And there's a library, therefore dotnet allows you to locally develop against the services using your account. So as long as your account is authenticated inside of Visual Studio, and you logged in with that account, and that same account is also given permissions to those same services, then visit studio and use your code will use that information to go and reach out to those services. They're not actually using MSI. But the library that we use has three different ways of authenticating. So the first time it will try to look for an MSI. Luckily, you don't have an MSI. So we'll go to the next fallback option which is a Visual Studio account. And then the next one is an associate line. So if you don't have your car, you can use the Odyssey ally, login to Odyssey ally deck. It's a local file on your system, an encrypted file on your system that the dotnet library uses to speak to other services on Azure. Barry Luijbregts 36:13 Right? Oh, that's, that's just great. Yeah. So then you don't need to store any client secrets anymore. You just use Key Vault and managed service identity, which is part of the infrastructure or locally if we run Visual Studio, Visual Studio code, and then you're all good to go to connect to whatever and Azure Active Directory, for instance. Christos Matskas 36:32 Exactly. So for people that are hearing this podcast, hopefully, it's quite a few of them, then I hope I don't see secrets in your solutions going forward, because now I told you how to do it. Barry Luijbregts 36:44 Right. Yeah, of course, nobody does that. Nobody store secrets in their codes. I never know No, I've never done that before. Christos Matskas 36:53 No, I mean, we've all done it before. But now that I mean, back in the in the olden days, we didn't know better or there was no better solution. Do it. Yeah, these days, even dotnet core has really good ways of managing secrets. Like you don't have to have a keyboard or whatever, you can have a secrets file. And then if you're running on Azure, whether it's a function or an app service, you can use environmental variables to populate those secrets in your application. So again, you don't have to share those secrets anywhere. You don't have to compromise your solution. But with Key Vault, get other benefits like central auditing, so you can see where your logins are coming from. Again, as you said earlier on having a password it people in your company can have a dashboard that checks the logins and then if something comes from say, Romania, I wasn't expecting a login from Romania because our apps are running on totally different environments. Then that can be a red herring and suddenly you can see how you know either an account has been compromised, or something else and the nice thing about keyboard is that we do automatic girl key rolling the keys for you Same for MSI MSI, were all the keys for you. So you don't never ever know what your password is for these. Barry Luijbregts 38:06 Yeah, that's all automatic. That's awesome. Christos Matskas 38:09 Yeah. Barry Luijbregts 38:10 So we are coming up to the end of this episode. So last question is, what is new in identity? What's coming up? And where can people find out more about this topic? Christos Matskas 38:23 and identity in general, we, we made quite a few announcements are built for anyone that's dealing with, with identity, Azure AD in general, not just dotnet specific. We had we announced external identities, which is something that allows companies to bring external accounts into their org. So again, if you're Walmart and you're running a internal applications, you might want to have a vendor or somebody else to log into your organization that allows external identity allows you to do that. So it's not b2c. It's not aimed for consumers, but it's more about allowing other customers or businesses to log into your enterprise environment with Excel bmps. So not mydomain.com, but their domain.com account. So that's a big one. From $1 perspective, we did have a couple of big announcements. The first one is that we are actually not for just that, that's a correction not for dotnet only, but we are announced the deprecation of a doll, the older library for Azure AD. And going forward will only be supporting emsl. This is coming to an end in June 2022. So you still have plenty of time. And if you follow our stream on tweets, then part of our efforts are helping developers to you know migrate from a belt to emcell. We're doing lots of different themes and examples about how you can do that on your technology stack. So it doesn't have to be dotnet. So that's a quick announcement I'll stand for. And so ADL is Active Directory authentication library and emcell is the Microsoft authentication library. Barry Luijbregts 40:03 Right? Yes. Christos Matskas 40:03 And and their corresponding libraries in node and dotnet. And we have Angular libraries. And we have Python, what have you. So all all technologies and all languages have their own Ada library. Now we're moving away from that to Amazon. Because people might ask, like, why would I need to move to Amazon? What's wrong with dado with emcell, you get all the things that we talked about, like multi factor authentication, fito, keys, and whatever, as you want from the newest features automatically out of the box. So the same application running today, as soon as you move to emcell, you will get all these benefits. So that's the big announcement. And then from a dotnet perspective, something that is very modern and contemporary is the fact that we have a new library called Microsoft identity, the web that bridges the gap between the the authentication and the token management Just to clarify, in ASP dotnet core, you can do authentication using the local library, read the local identity provider, you don't have to use Active Directory. But then if you need to call other services, or ms graph or whatever you had to bring down and solve, the problem there was that even with a doll, you had to had a doll to authenticate against Azure AD. And then he had to have m salt to manage your tokens, grab it talking for graph and then go do the query with Microsoft did I didn't have the web would give you one library that erupts around himself, and does both the authentication to token management. So you indicate as a user, and then you say, go and grab my token for graph and, or these scopes, whatever you decide to do in your app registration, and we'll do it for you. It's all in one library. It's all oversimplified. it rots away the abstraction. So you can have authenticated web apps can have web API's I call other web API's can have a web app that goes on other web API All in one line, they're all nicely down through the standard of CS. And we have lots of blog posts. And we're going to be doing quite a few streams on our twitch channel to talk about why and how the changes are very small. So if you are using a Delta day, it takes only a couple of lines of code and a couple of nougat packages to get migrated to a new system. And it's highly recommended. So feel free to reach out to us if you have questions about any of the things that we talked today, by the way. Barry Luijbregts 42:29 Okay, that's great. A lot of stuff. So, okay, we are at the end of the episodes. So thank you very much for teaching me everything about identity and getting me up to date. Thank you very much for your time. Christos Matskas 42:44 Thank you for having me. It's a it's been a pleasure, and I appreciate your time. Barry Luijbregts 42:50 Thank you for listening to another episode of developer weekly. Please help me to spread the word by reviewing the show on iTunes or your favorite The podcast player. Also visit www.developerweeklypodcast.com for show notes and the full transcript. And if you'd like to support me in making the show, please visit my PluralSight courses and to learn something new.
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/AboutDan Appleman is an entrepreneur, author and speaker on both technology and career topics. He is currently the CTO and a co-founder of Full Circle Insights, a Silicon Valley marketing analytics company on the Salesforce platform. He is a Salesforce MVP and the author of numerous books including the best-selling book "Advanced Apex Programming". He also authors online courses on Pluralsight.com relating to the Salesforce platform as well as other technology and career topics.Show resources:Follow Dan on TwitterConnect with Dan on LinkedInDan's Pluralsight coursesDan's blogFull transcript:Barry Luijbregts 0:17 Welcome to another episode of developer weekly. This week, I'm talking with Dan appleman, about taking charge of your technology career. Dan is an entrepreneur, author and speaker on both technology and career topics. He's currently the CTO and co founder of full circle insights as Silicon Valley marketing analytics company on the Salesforce platform. And he is a Salesforce MVP, and the author of numerous books, including the best selling book, advanced Apex programming. He also authors online courses on pluralsight.com, related to Salesforce platform as well as other technology and career topics. Welcome then you really are a living legend. It's an honor to have you on the show. Dan Appleman 1:46 I very, it's it's funny, it's funny, you should use the word living legend. When I got into Salesforce. I was at a conference and you'll people who knew me from the Visual Basic days would come up to me and and there was like, Well, what are you doing with Salesforce? And there was the sort of undercurrent like, what he's still alive. So I don't know about the legend part, but living knock on wood still still with us. Barry Luijbregts 2:10 Yeah, you've been doing all of this for quite a long time. And you've pivoted a couple times as well. Dan Appleman 2:16 Anybody who's been in technology, as long as I have had better have pivoted more than once, because, you know, let's face it, the technologies I studied on and learned on and practiced for the first decade of my career are museum pieces. Now, literally museum pieces, I can go to the when I go to the local Computer History Museum in Mountain View. It's a real trip because I walked through there and said, Oh, I own that one. It's like, Oh, I wish I owned that one. And, and so yeah. Barry Luijbregts 2:47 That's how it goes.So today, I wanted to talk with you about career because I think that's a super valuable topic, and way more valuable than learning about the latest and greatest JavaScript framework. This is something that everybody can take something away from, because you are also kind of an expert on career topics as you created a bunch of little side courses on it. A lot of them I actually liked a lot, and a lot of you. So, first of all, why did you get into the career topic?Dan Appleman 3:18 Well, um, so there, there were basically two reasons. One was I had just finished my finished my first Pluralsight course, on apex. And I was thinking, wow, you know, wouldn't it be great to write create a course that would appeal to, to everyone to every developer? You know, of course, like that would do well, and, and, and I think I know a few things about a career. So I proposed to, to Pluralsight. Let me do a career course. And their reaction was, well, we've never done anything like that before. I don't know if anybody would be interested in watching it. But I had a lot of faith in it. Because you Even when I would speak at conferences, I found that speaking truth about what it is to be a developer is all too rare. And if you do speak truth about what we're really experiencing as developers, that it resonates with people, and it's important, so I did that was my first career and survival strategies for developers now for technologists because I broadened it and, and I continued to do career courses ever since because I think they are you know, as you say, we tend to focus on the technology, but the career part is so important. Yeah. Barry Luijbregts 4:40 Because technologies are transient. Like you said, you know, they they comment they go away. So you need something broader to actually keep you alive within your career and your your working life. Dan Appleman 4:51 And and all of the career skills and soft skills. I call them multipliers because they take whatever technology skills you have They multiply, they increase the effectiveness of those skills. And they last forever, they don't become obsolete. So I think that thinking strategically about your career is important. And this is something that these are all things that I wish someone had taught me because I did not know, or do or think about any of this stuff. For the longest time in my career, I would sort of Corinne from opportunity to opportunity saying, oh, time for a new job, what's out there? I didn't think strategically at all. And I really, you know, looking back, if only somebody had talked about these things, it would have been, I think it would have been valuable. Barry Luijbregts 5:43 Yeah, it's definitely not a topic that's been taught in school or a formal thing. So that that's lacking. But luckily, there's now resources out there like your pro site courses, for instance. I think when you talk about career, the first thing you should start Thinking about is well, how do you define success in a career? When is your career successful? When when are you happy with what you're currently doing? So how do you define success? Dan Appleman 6:12 It's incredibly difficult. And, you know, it's really easy to say, Well, I'm successful, because I'm making more money or because I got a title or promotion or, or, or something like that. But, you know, how many of us really know what we want in life? Right? Yeah, we have opportunities and, and, and we follow them. But, you know, do we think about what is important to us? Do we think about, you know, things like work life balance and, and what we're passionate about, and, and all of these kinds of questions, and they're very individual. So it is important to take the time to think about those things. But that doesn't mean it's easy. It's not a case where you can go to someone and say, Hey, you know, well Think about what success means to you. And he sort of dropped blank because that that requires soul searching. And it changes over time. You know, things that I considered a success, you know, 10 years ago are maybe different from what I consider successful today. Barry Luijbregts 7:16 Yeah, absolutely. I have to same thing when I was younger, I'm still pretty young. Actually. When I was younger, even, I found, I thought that I would be very successful if I had, you know, a nice car, nice house and a nice salary. But now I don't care about that as much. I just want to be home for my family for for dinner for my kids. That's how I define my success. Dan Appleman 7:41 And as a technologist, that is really, really hard because everything in our culture says, you know, if you're going to be a software developer in technology, you have to keep learning you have to keep up we have this intense pressure, that any minute that you're not spending, you're reading a textbook or Studying or something like that is is puts your career at risk. And it's all too easy to sacrifice friends and family and, and hobbies and other things to that pursuit. Barry Luijbregts 8:14 Oh, yeah, I definitely did that when I was younger as well. I just learned and worked into evenings and weekends open source thing there a side hustle there, just to just to keep up Really? Yeah, it's it's a lot of pressure. And actually, I got I got burned out. Like, five years ago, I had a burnout because of it. And because of that I had, well, first thing was to actually identify that it was a burnout. That was very difficult because I just stopped being productive. I was tired all the time. couldn't really get out of bed. didn't really see a reason to get out of bed. or sad. It just started crying out of nowhere. And then I just, my wife also said, well, you you're burned out. You're done. So I changed my life. That's Basically what I did as in, I changed how I worked, I stopped my current job, I was a freelancer, I stopped working for, for a company that was, was not fitting my purpose, because it was very frustrating to work there. I think that was a very big thing. And I had a little control over what I did. And I worked very hard. So I stopped that. And I started plural sites, and make Pluralsight courses. Dan Appleman 9:26 And, you know, it's very brave of you to say these things, because, you know, it's not something that that most developers, you know, especially in, you know, still to this day, a lot of technologists are men, right. And that's a hard thing in most cultures for men to talk about. You know, and one of the, the, I suppose, more selfish reasons that I would like to see more women in technology, aside from all of the great reasons like opportunity and so on, is it might cause a little bit of a shift of that culture to to have a greater appreciation for Being Human as a technology worker, right, and not just a coding robot, a lot of us are. So this is something I noticed. And I noticed relatively early when I was on the speaker circuit, and I'd go to all these conferences. And you know, you've been to conferences, you know that a lot of the talks are about the latest technology, the newest technology, what's coming next. Right? And officially, everybody goes to these because we're so excited about the new technology, but I think, yeah, I think the unspoken thing and this is what I started speaking about in some of my sessions was, we're attending these things because we're terrified that we're falling behind. Right, and we're gonna miss something and it'll impact our job and, and so on. And it's okay to speak to that. Right, it's okay to acknowledge that and in one of the messages that you'll see in A number of my courses is that when it comes to learning technology, the bleeding edge, which is the newest technology is the last place you want to be, unless you are a speaker or a trainer, or someone who really makes their living. Talking about the very latest technology, you really want to wait, you know, six months or a year, because if you wait, other people will get rid of the bugs. Other people will be writing blog posts, it's become so much easier to learn it, it's more stable. The bleeding edge is a terrible place to be as a working developer, it's a very inefficient place to learn technology. So unless it's a technology like right now Apex where it is my job to be right at the leading edge for everything else. I wait a year. You know, I look at the technologies about a year old. It's it's just I wasted less time dealing with that. Barry Luijbregts 12:01 Yeah, yeah, definitely Me too. I just, although some technologies I kind of have to get into as a Pluralsight author as well. And I'd like to get into like blazer, for instance, which is a new thing. But for production purposes, I stay away from it as well. And also just for peace of mind, because I don't want to deal with all that. Dan Appleman 12:21 I went through when Microsoft came out with ole and ActiveX. And they took all the component models they had, they had a VB x component model for Visual Basic, and they created this whole new calm, ActiveX thing. And it took a long time for it to come out. And the reason was that they kept changing it. I mean, we build something and they break it, we build something and they break it. It was a miserable, horrible, terrible experience for people who were trying to adopt this new technology. It was, yeah, was that I think that's where I really learned that how awfully stressful and difficult the bleeding edges. Barry Luijbregts 13:04 And we I think we've all been there. So yeah, so we just were talking about defining success and purpose. That's important. So my burnout, I took that time as well to reflect on what I actually found important two things that I felt was important in life. And that wasn't money and learning in the evening and then being the best developer. But spending more time with my family was more important. So let's, let's switch it up a little bit. So there are lots of people that are wanting to start a technology career want to become a software developer, let's say, Where should they start? I get this question a lot. Like, should I go to JavaScript? Should I go to a boot camp? Should I go to school? What should I learn? How should I learn it? What should I do? What are your thoughts on it? Dan Appleman 13:54 So I'll give you a very brief summary. So one of the early Career courses one did in fact, I just finished updating and I think the update should be published within a couple of weeks is called Learning Technology in the information age. And what I came to realize is that learning is a strategic decision, right? People say Where should I start? It is actually not a simple answer, you know, people say you should learn C sharp or c++ or you should learn JavaScript. And that's doing them a disservice. Because when really has to think about how do we learn technology? And what are the different components of learning technology? How do you balance things like fundamentals first, you know, which can be very long lasting with, with general information and, and with skills as one of the things I note in the courses, you know, people, you know, the the way I describe it is, we sort of know the cliche, knowledge is power, right? As I told cliche, we're in the information age and, and that's actually not true. Because one of the consequences of the information revolution is that knowledge is cheap. And information is cheap. I mean, we have so much access to knowledge and information, it's been devalued. So knowing something actually has very little value. The ability to do things with knowledge skills are where there is still value. So that's one aspect of, you know, it's not what do you want to learn is what skills do you want to develop? And then when you think about how do you learn something while learning isn't just I know JavaScript learning is this mix of fundamentals and information and skills and, and curation, which is, you know, what is the order? That's what the question you're being asked is, what is the order? What Where should I start? That's a question of curation, which is all important. So the answer the reason answer to that person is, you're about to invest a whole bunch of time learning technology. It's worth your while to spend a few hours to learn about learning technology to think about how you want to learn technology to think about to create a strategy. And, and that's what that course does. That course is all about, Okay, take a moment. We're going to spend a couple of hours now. And we're going to talk about learning itself, and all the ways you can learn and how to set priorities and how to figure out how to figure out for yourself the order. That makes sense. And that's why I can't really answer the question now. Because the answer is, you know, watch that course, spend a couple of hours and learn how to learn strategically, Barry Luijbregts 16:45 And then to create a strategy for yourself on what you're going to learn and how you're going to learn it. Dan Appleman 16:51 Absolutely, absolutely. And, and more important, how to do it efficiently because, you know, we're all busy. You want time Hang out with your family. So anything you can do to learn more efficiently is worth it. And, and I'm a real believer in that and, and I've gotten much better at practicing it myself and really thinking about, Okay, I'm gonna learn this technology, how am I going to go about it? What's my strategy? What's my plan? How far do I want to go? Because, you know, you don't have to become an expert, you cannot become an expert in everything. So, one of the questions to ask yourself is how, you know, what is what is the point where, okay, I've learned enough of this. Let me move on and learn something else. Barry Luijbregts 17:38 Right. And that's also the question of do you specialize in something or do you want to be a generalist more, right? Dan Appleman 17:45 When I was going to school, everyone told me you should specialize, you should specialize and I said, No, I am going to be a generalist. And in the course of my career, I have at times had expertise in certain areas. Right. But at a certain point, the technology changes or you change. You know, one of the ways I got into Salesforce was, you know, I was I was in dotnet. I was an expert in dotnet. Right, very, very familiar with, with Edyta probably a deeper level than most people. And I've, you know, you talk about personal crisis. In my case, it was about the time that my father passed away and I sort of had this you know, what do I do with myself now, you know, and in the truth is that between that and I just wasn't having fun without net, it's like, they're adding new features and they didn't seem to be, you know, providing that much value for all the effort I was spending to keep up. And then I bounced into the Salesforce world, and it was fun. And I know there are people out there who think Salesforce and think most, you know, evil language in the world, or whatever it was, it was an enormous amount of Have fun. And I was meeting people who were really enjoying being part of that ecosystem. It was a very real sense of community. A lot like I had experienced in the early days of Visual Basic, a little us against the world kind of thing. And I just sort of said, this is this is fun. You know, I'm having fun in the Salesforce platform. I am having a blast in the Salesforce platform.Pays well, too. But yeah. Barry Luijbregts 19:32 That's also important. Yeah. But but that's, that's a very important aspect of anything that you dive into. It has to be fun for yourself. Because there's so much to choose from nowadays. The world of technology is just incredible. It was much, much smaller. But now there's so much. If you look at something like Microsoft Azure, for instance, that's not just one technology. No, there are like 150 services that you can become an expert in. Dan Appleman 19:59 And plus then becoming an expert in just managing them on as your, your AWS is a whole other thing. And, you know, this is one of the things going back to somebody asking I want to get into a career in, in technology and technology's a hard career. And, you know, I didn't see that going into it originally. Because, you know, I saw that, hey, it's a career, I love technology. It's going to be a lot of fun. It's going to be interesting. I, you know, I'm, I'm as much a geek as they come. But what I didn't realize until much later is that the hard part of being a technologist isn't learning the new stuff. It's the fact that all the old stuff keeps going obsolete. And most careers don't have that, you know, like, if a doctor doesn't keep up. It's not like, the ways they treat people don't work anymore, right. Yeah. You know, most careers. Once you've gained the skill, the old stuff doesn't go away even as you're learning new things and But in technology, it is. So it's a hard career. It is, it is one that you have to resign yourself to learning, always. And in that stress of keeping up, so. So that's one aspect that people, you know, I don't necessarily discourage people from getting into tech. But I note this, you know, this is what you're getting yourself into. Barry Luijbregts 21:27 Yeah. And it has to be in your nature a little bit as well as in you have to be a lifelong learner, maybe by yourself, or you, or maybe you get into that. But if you're not, then you're gonna have a very, very difficult time in technology. Dan Appleman 21:39 But if you love technology, you want to learn it. So it's not that heavy lift. It's not that hard to do, right. But when people go into it just for the money, they discovered it, in some cases, that it becomes very costly because you're working for work and then you're also on the side in the evenings and other times struggling To keep up, and the money is costing you a lot. So Barry Luijbregts 22:05 Yeah, and is the money actually that good? Because in your course, the hidden secrets of technology careers, you explained that people in technology careers starts with a high salary, but it typically plateaus quickly. Yeah, I've seen the same thing where graduates, they have their job interviews at car dealerships, and then they pick out the lease guy right then and there. And later on, they get stuck in their jobs because then they plateau. Can you explain why that is? Why do salaries plateau in technology quickly? Dan Appleman 22:34 Why do salaries poplateau in technology quickly? You know, that's a tough one. But there is no doubt that you know, for most companies, if you want to go past that, you have to really continue to see salary increases you end up having to go into management and which is fine, you know, nothing wrong with management. But it is hard to you know, Unless a company has a real specific technology track, and, you know, part of it is because, you know, when when you've been, you know, working for, say 10 years? Well, the stuff you did five years ago is obsolete. So, you know, why shouldn't a company hire someone cheaper? Yeah. Right. You know, that knows the same things that you do, presumably, at least in the technology side. So, you know, there's a certain amount of that there's a certain, you know, there's definitely age discrimination in, in the technology field. But other companies recognize that there are advantages to hiring, you know, the older technologists because, you know, they're bringing other things to the table, especially those that developed the leadership skills and the managerial skills and the soft skills. Barry Luijbregts 23:48 Yeah, because those are the skills that actually matter. You know, obviously, the skill in the technology matters as well. But if you can't think around it, then it's Have no use? Dan Appleman 24:01 Absolutely, absolutely. Barry Luijbregts 24:03 So you say one way of breaking through that salary plateau would be to become management, maybe a development manager or whatever, what have you. That's, that seems very difficult and quite a leap. Right? Because then you really stepped out of technology. Dan Appleman 24:20 It it, you know, it's funny, because one of the things I really became to came to realize system the past few years, as I'm teaching about careers is that I actually am a rather unique character in terms of my career path, because, you know, I've held an awful lot of titles. I mean, you know, right now, I'm a CTO, and I've been an entrepreneur and a speaker and an author and manager and the VP of software development and all of these kinds of fancy titles, but most of the time when you meet someone who's been working in a career as long as I have, they will respond to exactly the way it is like, yeah, you know, I miss developing software. haven't built anything in a long time, right? they've, they've turned completely to management. But in my career, the one constant The one thing that I've been doing all the time without a break for four decades now almost, is building production software and shipping software. Right. And I say that because, you know, as someone who's in software development, you know, there's a big difference between somebody who's a hobbyist and someone who's shipping product because, you know, shipping product is is releasing things. That's the thing. And, you know, in fact, let's see to today is Sunday. I think my last I think, last week, I'm working on I'm working on a branch that's not going to be out for a while. Last Monday, I put in a commit into our code base, that will probably be in a release not This week, but next week, and it will go out to hundreds of customers, and they'll be using it. So, you know, I'm still shipping software. And I think that gives me a rather unique perspective of what it means to have a technology career. It's possible, but it's rare for someone to keep their head in the game, even while doing all the other crazy things. Barry Luijbregts 26:22 Yeah, and I think for you, obviously, that's possible because you work for yourself, you're an entrepreneur. But for people that work in a company, it might be more difficult. And that will heavily depend on your company culture. Dan Appleman 26:36 That is very, very, very true. And, but it also brings up the other thing when we talk about getting over that salary, plateau. Entrepreneurship, and, you know, I have mixed feelings about it. I couldn't go back now. And it's not for everyone, but it is accessible to everyone. And I created a course called, so you want to be an entrepreneur, which basically is, okay, here's, here's the deal, here's how to do it. And I note that, you know, in the, I think the 1800s, if you look at the United States, 90% of the population were entrepreneurs, they were all small, small business owners. It was only with the industrial age that we got into the whole factory model and employees and so on. So entrepreneurs are nothing special, anybody can do it. Right. It really is one of those things. Yeah, you're not not everyone's gonna be a super billionaire, whatever. That's takes luck and genius, but just, you know, you're an entrepreneur. You're a Pluralsight author, right? Barry Luijbregts 27:40 And I have several businesses as well. Dan Appleman 27:42 So, you know, what I'm talking about most, most entrepreneurs are like, you and I were small business small businesses, you know, or, you know, founders or co founders or, or whatever and, you know, it is possible to busts the plateau. You know, when I first took that first leap by working really hard and doing some consulting, my first year as an entrepreneur, I made about the same amount of money as I did the year before that. The year after that, I doubled it. And the year after that, I doubled it again. And it was like, whoa. Since then, there have been ups and downs. There was one year looking back that I probably should have applied for food stamps. I think that was I think that was during the.com bust during like 2000 to 2003. But that's the the secret of entrepreneurship is people say, Oh, that's so risky. That's so risky. And what they don't necessarily realize it's a different kind of risk. losing your job. You know, being an employee, if you lose your job, you've lost all your income. That's pretty high risk. At the worst of the.com bust, my income didn't drop to zero. It dropped a lot but it didn't drop to zero. Barry Luijbregts 29:00 Yeah, plus, I think also, in the worst case scenario, you could also go and find a job. Sure. Dan Appleman 29:06 You might not like it find the job. Yeah, you can find the job. You can, you know, you can write articles nowadays you can Uber well, or doordash. Because I don't think this is the other challenge right now, when we talk about someone getting new into technology is we always have to be very careful in terms of how we advise people based on our own experiences. Certainly, you know, since I have since, you know, my entry to technology was so long ago, the world has changed. And, and, and one has to be, you know, careful with one's assumptions, and really be thinking about what the world is like now for people and the challenges they're facing now. And right now, the challenge is particularly difficult, because we are now in entering this new reality we are experiencing everywhere on the planet. At a disruptive change, so people are working from home. This is a terrible time to be looking for work. Barry Luijbregts 30:05 Yeah, absolutely. Dan Appleman 30:07 It is. One has to be careful, right, you know, in terms of giving advice, because one has to question all of one's assumptions. Barry Luijbregts 30:16 Yeah, definitely. And especially, we might not be the most typical people to talk about this. Because we have very different careers and most developers that work for companies. Dan Appleman 30:28 Well, you know, I did my time. Barry Luijbregts 30:31 Yeah, Dan Appleman 30:32 I did. I did my time. I was a cubicle dweller for a lot of years. So, you know, I, my, I started my first company when I was like, 31 or so. So the first more than 10 years of my career was, you know, small business and a startup but cubicle, you know, not a not a founder or anything like that just yeah, employee. So, you know, I remember that very, very well. And Of course, Now on the flip side, I've hired people, right? So I'm in the manager position and, and, you know, I try to keep a real eye and sense of what their experiences. Barry Luijbregts 31:12 So as we come to the end of our conversation, let's talk about one more thing. And it is, to me your successful career is one that's also results in comfortable retirement, as in, you're done. And you have enough money to live when you're not working anymore, if you choose to not work, of course. So how do you go about it, you know, as an employee, you might put your money into a big bucket of 401k, or whatever that is in your country. In the Netherlands is similar. We also have a pension fund and usually, the employer also pays a little bit into that and you pay in depth into that yourself as an entrepreneur, you have to do it all yourself. What are things that you can do to make sure that you actually end up with a comfortable retirement? Dan Appleman 31:59 well, You don't end on the easy ones do you?Again, one has to be really, really careful because whenever somebody offers financial advice, they'll say, Well, you know, the stock market has done this for the past six years. And yes, this rule and all this kind of stuff. And right now I look at the US stock market. And you know, we are, we are massive unemployment businesses are shutting down every day. Every sign indicates that the economy is suffering. And yet the stock markets hitting new highs, it makes no sense to me whatsoever. And I know it doesn't make sense to anyone else. And the way I know that is because when I look at the news feeds and the finance pages, you will find exactly on the same page one person who's saying, you know, here's why this is the best time to invest them the other person saying get out of the market, get out of the market. Yeah, nobody, nobody knows. So but I question The concept of retirement in the sense, because if you're having fun, if you're doing what you love doing, and if you enjoy technology, why would you stop? Right? I mean, really, especially nowadays, when you can do stuff on the road, right? I mean, you can, you can go drive cross country, and in the evening in the hotel room, you can work on gigs, or you can work on articles or, you know, this is the this is the golden age of the gig economy and technology as well. Why would you stop? I mean, if if you are in a career, and you are looking and saying, I wish it was over and I was done and I could retire, then I would say you're asking the wrong question. What can you do now to create for yourself that income stream that will be fun that you will want to do You know, and and everyone will tell you that having purpose, when when you're retired, just retiring is a terrible thing. It's bad for your health, having a purpose, having meaning having, you know, something to keep your mind sharp, of, you know, I plan to do PluralSight courses, you know, for as long as they let me because, you know, it's fun, and I get to share my experience and knowledge and, and so on. And, you know, I'm probably will at some point stop shipping code, not because I don't want to keep up but because if you ship code, you're, you know, are responsible for it, and you have to maintain it and know that at a certain point, you don't want to have to do that. But articles, you don't have to maintain articles. You don't have to maintain, you know, blog posts, white papers, books, you know, can always write a book. Anybody can do this stuff. So, but in terms of the financial stuff, the other thing is, take the time learn personal finance, right? Just Learn it. Barry Luijbregts 35:01 Yeah, dive into it. Dan Appleman 35:02 You're all technologists, you can understand basic finance, you can understand this stuff. You know, it's not rocket science. Barry Luijbregts 35:11 Yeah. So there's definitely no magic bullet, or investment strategy. There's no such thing. But I think the best advice here that that you gave is, why would you stop? If you like what you're doing. And if you don't like what you're doing, change it. Dan Appleman 35:27 The best investment you can ever make is investing in yourself, whether it's your skills or your knowledge, or figuring out what it is that you love doing or your health. You know, even when I was still, you know, a starving student or having tough financial times. If I wanted to learn something, I just go buy a book on it, and I would never begrudge the money I would never think twice because you know, anything that you're investing in yourself. That's what pays off. Barry Luijbregts 35:59 Yeah, that is amazing. And a great way to start doing that is to visit your Pluralsight courses and start learning. Dan Appleman 36:07 Please do. Barry Luijbregts 36:10 All right, thank you very much for this enlightening conversation. I will link to all of your Pluralsight courses in the show notes as well. Dan Appleman 36:18 Thank you so much for having me. I'm very excited about this. And I'm glad that you have found this project to work on as well. And I'm sure it's going to be very successful. Barry Luijbregts 36:28 Yeah, I love doing it because it helps people. Dan Appleman 36:31 Yep. And that's sort of one of the most fun parts of this, isn't it? Barry Luijbregts 36:36 Absolutely. Okay. Thank you for listening and tune in next week for another episode.
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/AboutShow resources:Follow Caleb on TwitterConnect with Caleb on LinkedInFollow Kids Comp Camp on TwitterWindows Insider Feature of Caleb NdakaSupport the Kids Comp Camp: https://www.kidscompcamp.com/support/Full transcript:Barry Luijbregts 0:17 Welcome to another episode of Developer Weekly. This week, I’m talking with Caleb Ndaka about teaching kids how to code. Caleb is a co-founder at Kids Comp Camp. Caleb Ndaka is a 2019 Obama Leader, a 2018 Mandela Washington Fellow, a 2017 Microsoft’s Windows #Insider4Good fellow and a 2015 American Express and Ashoka Emerging Innovator. He is also a TEDx speaker and a part-time actor. Great to have you on the show, Caleb, how you doing?In your bio, it says that you are a 2019 Obama leader. Can you tell me a bit about what that means? Caleb Ndaka 1:48 Obama foundation runs a program called Africa leadership program in which they try to bring young African leaders together to have conversation today. Your support system for each other in order to create proactive and authentic leaders in Africa, because they do believe that the greatest gap we have in Africa is not about resources. It's about leadership. And so they believe invest in the young leaders so that they can build and change their communities. Barry Luijbregts 2:23 Right. That's incredible. Okay, so tell me a little bit more about yourself, like, where you from and how you got into software development. Caleb Ndaka 2:33 Great. Thank you for that question. I was born in North rift Kenya in a small slump called landers. And then soon after we moved to South Eastern Kenya, a small village called kV and that's where I grew up. I went to school there, up until I went to college when they got to come to the city of Nairobi. So generally Mama Mama village boy Who, by chance got into technology got into software development. Part of that story is between high school and college, I was out of school for four years. And the reason for that is because my parents could not afford my quality education. But then four years later, as more opportunity open to join one of the local University School of computer science and information technology, and I started with a certificate cause in it, then I proceeded to a diploma course in it, then eventually graduated with a bachelor's degree in it. And with that background, I was able to be introduced now to to software development and the passion to teach kids especially in rural areas, how they can learn about our not just to use technology, but to develop technology for themselves and for their communities. Barry Luijbregts 3:56 So that they are actually creators and can create things for other people as well. Caleb Ndaka 4:01 Yes, not just consumers, but also but also creators. But also, because I do believe change from within is a more sustainable change. And so having rural communities embracing technology for themselves, creating technology for themselves, is a dream that I hold very dear to my heart. And that's what I live for every day to see how can we, how can we equip them better to know how to use technology to address the most pressing issues in their communities? Barry Luijbregts 4:34 Right. And that's a very powerful thought, I think, as in to get the power from within and not be reliable. From all these other big companies from the United States and from Europe and all over the world, but to build your own strength, yes. Caleb Ndaka 4:49 change from within power from the from within is the most powerful energy employee they never gave to people. Barry Luijbregts 4:57 So random question, what is the internet It like over there. Oh, is it fast or is it limited? Caleb Ndaka 5:03 Oh great. Like I mentioned I come from Kenya and in the last five to 10 years Kenya as witnessed a very fast growing internet penetration. And so we can say like three quarters of the country you can get stable internet connection. And that is what we are leveraging on to create our program. So we have pretty good internet, it could get better back with what we have. We can also do some meaningful stuff. Barry Luijbregts 5:33 And is it expensive? Caleb Ndaka 5:36 According to the surveys which have been done in Africa, again, Kenya, we have the lowest rates of of accessing to the to the to the internet. But the thing also is the economic power for most people, is not that strong. So it is relatively cheap but Not very cheap to the majority of people and especially to the majority of people who live in rural communities whom we we solve, Barry Luijbregts 6:07 That can be a problem, I imagine. Yes. Okay, so Well, let's talk about the thing I wanted to talk with you about about kids comp camp. So I saw this online and I was very interested in how it got started and why you started it and how it actually works. Can you tell me a bit more about why you started and what it is? Caleb Ndaka 6:29 Yeah. So kids comp comp, is an initiative to help children in rural communities in Africa to catch up with a current digital driven society. And the way it began, it was a random idea. on a road trip. I was just about to graduate from the University and a few friends asked me if we could do a road trip and we said our boat we do that road trip with laptops in our bucks and go look for I don't know school in a village And to teach those kids out to use computers. That was in April of 2014. And so we did a rotary, we carried our laptops and we found a school in one of the rural counties in the in Kenya. The first class, we had 30 kids, but it is what shook us. Out of the 30 kids, only three kids, I'd seen a laptop before. And we were like, shocked. We thought like computers and access to technology is is a thing for everyone. Only that we realized we were only reserved from, from our band kind of setting. And so that was like, the glaring gaps that we saw, and we felt like we need to do more, we need to come back and do more and more, and 2014 to right now we've been able to train over 10,000 children, both here in Kenya and also in Rwanda. 90% of those kids, this was their first time to use computers, and 54% they were girls. Barry Luijbregts 8:08 Wow, that is amazing. And and what what kind of ages do you teach? What? How old are the kids? Caleb Ndaka 8:15 So we get between 8 years old to 18 years old. So, according to the Kenyan education system that is about primary school and high school, Barry Luijbregts 8:29 and do you then also teach adults? Caleb Ndaka 8:32 Um, yes, like I've mentioned, we started in 2014. So it's been almost five to six years. And one of the things that we realized, like three years into the program was that kids, especially in Africa, don't make decisions. The decision makers are parents and teachers, and therefore we thought, in order to make our program more sustainable, we need to involve the parents. We need to involve the teacher So apart from just the core business of train kids, we've started another supportive program to train their teachers and to train their parents so that they know the benefits. And also they have the the basics of becoming like a support system to this kids. So yes, we do have a program for children. And we also have a program for adult but especially adults around the kids that we're trying to reach out to where basically the parents and teachers, Barry Luijbregts 9:30 To get their buy in and to make them help the kids. It's a very clever, so can can every kids just join or how does it work? What What skills do kids and or adults need in order to participate in the competition Caleb Ndaka 9:46 so kids could come targets children and adults with no prior exposure to computers or technology, and therefore we start with them from ground zero. We don't require any scale Or an experience, what we just ask of them is that they need to be enthusiastic to learn. So no prior skills or knowledge is required, because we were trying to get our kids and parents who have not had access to computers or technology. And so we begin with them from ground zero. Barry Luijbregts 10:19 So you you completely start at the beginning as in this is a laptop. Caleb Ndaka 10:26 And that is a computer. This is a mouse This is are you right click this is click, we basically begin by bailing confidence just as I want any digital device. Barry Luijbregts 10:38 That is amazing. And do most of the participants. Have they seen other devices like phones, for instance? Caleb Ndaka 10:46 Oh, well, they're the data that we have so far is at 90% of the 10,000 plus beneficiaries of the program. This was their first attempt to use their computers. But when it comes to access to mobile devices, As the number changes a bit, we can almost say like 40% of them actually have access to, to a feature phone. And maybe 30% 20% of us have access to a smartphone. So more people right now they have access to mobile devices, but computers still as cost resource in the rural communities in Kenya. Barry Luijbregts 11:29 So it's really mobile first. Yeah. And then some, some kids will have have had access to the internet through mobile phones, I guess. The kids come in with no experience. They learn all this stuff from you, and what do they take away when they're done? What are the skills that they have? Caleb Ndaka 11:46 Great. That's a great question. So over time, we've been we've been trying to modify our curriculum to really meet the felt needs of these kids. And we've divided our curriculum into three big blocks. The first block is what to call get started and get started, like you've mentioned is trying to build confidence of this kid around to these machines I would do up in a computer how do you use the basics of that of that computer? How would you build clear audience around any device and the next big block is what to call get productive. Now that you know how to use our computer, how can you become more productive doing your your duties and in that time, also teach them how to access the internet, how to use productive programs like Microsoft Office, and other programs which they can use in their in their daily their daily lives. And then the last big block is what to call like, Get creative, which is a big block for us. And that's where we where we introduce them, introduce them now to Cody and just bring that whole notion of you do not To be a consumer of technology, you can be a creator of technology. Yeah. So those big blocks, it's our we we try to align our curriculum, get started, get productive and great creative. Barry Luijbregts 13:14 That's great, especially that you didn't end with the empowerment of you can do it yourself. You can just type in some text on the screen and some magic happens somewhere. And somebody can press a button and something Yes, Caleb Ndaka 13:27 for sure. For sure. One of the mentality that you've been trying to fight, especially in the rural communities that we work is that most people view technology as a concept of the West. Great. Most people think that technology is something which comes from elsewhere, and we just use it. So we are trained to change that and especially to this young kid as they grow up to take up their careers to choose up their studies to show them technology is just like a pen is a toy, which you can use to rights rights. And so technology is a tool they can use to, to empower themselves is a tool that they can use to empower their community is something that they can they can use for their for their better days to come. Barry Luijbregts 14:15 Right. So yeah, it's not only just skills, but it's mostly also attitude and confidence Caleb Ndaka 14:21 a lot, a lot. And let me tell you, that's something that we I didn't know when we were starting out, I thought like, we only need to give these kids skills, but then realize when those skills they land on not very prepared attitudes, then these in mice that you can, you can do and that's why we returned also to work in the in the mind and attitude change as much as we are giving them skills that they need for 21st century. Barry Luijbregts 14:50 So let's circle back a little bit. You said that one of the parts is then also to teach the kids how to use the internet. Now, I have to Young kids, and the oldest one is four. So she's not really understanding what the internet is, luckily for me, but I'm already dreading the time where she can actually access the internet and look stuff up. Because, you know, how do you guard them from the internet and all the bad stuff that you can find on there? And how do you make sure that they know what is real and what isn't real? Because there's so much stuff on there that is just non information and things that are just false? Yeah. Do you teach about that? Caleb Ndaka 15:32 Yes. online safety is a big thing to us. In 2016, I was able to attend the Internet Governance Forum in Mexico. And that's one of the things that I came out with that on in safety is not just a thing for the first world right after ro internet. Internet is threatening the cup like we've been saying, internet is making us to be a global village. So wherever Are you accessing the internet from my village in kaisi or whether you're in Netherlands like you are, as long as you can access the internet, then we are in one space, we are in one ecosystem. And therefore we we tend to be very intentional about online safety. And part of that is teaching teachers and parents how they can become informed guardians when it comes to internet use, right? Um, yeah, the thing about them, most of the population that we're dealing with is that most of them they do not accept the internet while at home. Most of them as the internet, were there, were they in school, or were they now a program. And that's a very big advantage to us, because we become like the first people to give them an introduction to the internet. And so therefore, we believe that I just given this kids putting into to know this is useful. It is not giving these kids an opportunity to know how they can protect themselves on very basic, but yet critical levels. That's something that we are we are very keen on trying to integrate, actually to each and every component of our of our curriculum. Barry Luijbregts 17:20 Right. Yeah. And then you get the advantage of catching them in the beginning where they first start to learn to access the internet. Caleb Ndaka 17:27 Yes, yes. And that's that's very important, because their first experience forms a big a big notion of the entire experience being online. Absolutely. Barry Luijbregts 17:39 Yeah. All right. So and then you start to teach them how to code. So what do you use for coding, what kind of languages and tools we use? Caleb Ndaka 17:48 Yeah. So like I mentioned, we target age to 18. Most of these kids are in rural Kenya. And one of the challenge that we have is just access to internet. So we try to Look for tools, which do not necessarily have to rely on Internet's we are biased towards tools you can use offline. And to fit that bill crutch as been a useful resource. You can just download it in our machines, and then we can be able to roll it out. But it also is very child friendly in terms of, you can teach the basics of programming, from conditional statement from logical thinking to how to issue out commands using very child friendly graphics. So scratch is like our main tool, which we are using to teach this kids. But we've also been able to use Minecraft when we have access to connection. And again, we're just trying to create this sparkless interest and give them the basics of how to, to reason like a programmer, you know, typically out to our problem solving, how to look when they're they're going about introduction to software development, once they have the basics of that, and especially now that we have all the kids in the program right now, we're able to do a bit of HTML and CSS, and now they tend to build small websites. And they're Barry Luijbregts 19:18 right, and then they can do it themselves. And then do you also give them a CI an example projects to make sure that they have something real world to work? Yes, Caleb Ndaka 19:27 um, our approach of learning is, is what are called project based learning. And it's the way we do it. Just to mention is that a good comp comp is a not for profit, we have a very small core group, but then we work a lot with volunteers, and most of them are university students or the volunteers from the community and we do have a mobile lab, which we move around the villages with, and so the mobile lab as 21 workstations, and we will also request volunteers when they come to volunteer with that they come with their laptops. And the more than we use for teaching is we have one volunteer Trainer with between three to five kids around the table, and they have access to a device. So we change the training from being a classroom, whereby one person is talking and like 30 or 50 or 100 people are listening to him. So we change that to making learning to be in very small teams, between three to five kids with a trainer and we make learning to be very project based learning, they are walking through a very particular program project in which they will be able to demonstrate by the end of the day, or by the end of the cup, Barry Luijbregts 20:50 then it will stick because of this. It is real world. Yes. That's a very good, good way of teaching. So you mentioned you work with volunteers. as well. So how largest is the organization? How many people work for it? So Caleb Ndaka 21:05 we are not a very big organization. We have a core team of five guys. But then we we are powered by volunteers every now and then we are We surely issue out a request for volunteers to come into work with us. So for the last five, six years, we've had over 1000 volunteers from all across the country, Kenner will be able to come in volunteers with us from a weekend to a holy day long depending on when they are available. Barry Luijbregts 21:37 Well, is it difficult to find volunteers? Caleb Ndaka 21:39 It is not. It is not because of two things. First and foremost. Most university students when it's during their long holiday, they are looking for things to keep them busy. And so right I've seen an opportunity First of all, we give them an opportunity to travel across the country, being places have never been. And we are giving them an opportunity for them to predict proactively and productively use their holiday time. So we've been able to have very good structure at comes to attracting volunteers in our program, Barry Luijbregts 22:12 and you pay for the travel as well. That's very attractive. I imagine. And are you planning to increase your core team? So you have five core people right now? Are you planning to increase that? Caleb Ndaka 22:27 Yes, definitely. For the last four, five years, we've been able to reach out to 10,000 kids. And our next milestone is trying to reach out 50,000 kids by 2030. In what we call the visual 50 k, r. And as we grow in numbers, we also want to grow the team. And so that's something that we are working towards that we can make the program more sustainable and more impactful, Barry Luijbregts 22:57 quite some goals. What do you need for the goals to happen. Like, how do you fund your organization? Caleb Ndaka 23:04 Great, great question there. We are a not for profit organization. And so before we are relied onasking for support from our friends and our family, we've also been writing grants. And we've also had different partnerships. We've been on Microsoft before, we have, but now we have General Electric's and a few organizations will be able to come to come on board. And so that is what we've relied on in the in the past, but also in the coming days, we are trying to make the program a little bit more sustainable by introducing what we're calling the income generating activity. Let me give you an example. Like we mentioned before, we only used to train kids, but then we realized this kids need that support system. And so we need to train the parents and their teachers. So one of the The income generating activities is actually by charging adults when they come to be trained, right? So we get, we get to two things that go when an adult comes to train their pain. And so we're able to make the program a little bit sustainable. But also, most of those adults, they end up becoming part of our community trainers. So that's something that we're trying to explore. We're trying to scale it up trying to see if we can make ourselves to be self sustaining in the coming days. Barry Luijbregts 24:33 So we've talked about how kids come in with, with zero skills, and maybe a bit of experience with the internet and a mobile device. And then they learn to use the internet they you learn to use computers, and they learn how to code as well and adults as well. Do you also follow up on people that you taught as in maybe a year later to see where they are and Or do you also provide them with access to traineeships? And ultimately a job? Caleb Ndaka 25:09 Yeah, that's an interesting question. It's something that I've been trying to address. So currently, this is the way we we've been doing it. We do not do what to call 181 that we don't do one comp and go away. We try to do every comp, we try to follow up and follow up and follow up. And, and part of that is because of something that we learned in our earlier years, community involvement and community ownership is very important. Right. And so we first avoid, we do not show up in communities. We wait to be invited. So we issue out a call for nomination people nominate, and then when you know minich we come and do a survey. And that's our base to establish if there's a need And what kind of supports the community is able to offer to us. In order for us to make our follow ups to be more seamless, and to be more effective. We are training more community based trainers, and most of this community based trainers, their local teachers, and that means that data will be not skewed for the next 510 or 20 years. And either most best placed person to do the follow up even after our initial phase of our training is, is done. And so by being intentional about training teachers in that community, that's the way we are trained to feel our follow up strategy, because the the locals in that communities, they are available in that communities. And if there's kills, and if they're motivated, then they become the best follow up methods to use. Barry Luijbregts 26:55 That's a very powerful way to scale your Organization has it and to keep keep the kids engaged. Caleb Ndaka 27:03 Yes. And also every after every program we do monitoring and evaluation, and one of the key areas would be trying to, to see is to ask ourselves, are we in talking to this kid when it comes to choosing careers and choosing, you know what to study and especially as you proceed to college, or as they proceed to, to high school, and so far 60% of the kids in our program, they are now more aligned to technology base, subjects and careers. And so we believe that's something that we are adding value to them, especially among gods who would just fear or our bad attitude towards, you know, Sciences and Technology. Barry Luijbregts 27:49 So you said, you run a non for profit that is, and you get some help also from partners like Microsoft and other companies. Can our listeners maybe also help you out in some way? Because I see on your website, https://www.kidscompcamp.com/support/. People can also support you with money and other things. Caleb Ndaka 28:16 Yeah, we believe that it it takes a village to raise a child. And so even in this digital driven society, it's good to take the digital village to ensure that every child is given equal fighting rights when it comes to tackling our today's digital driven society. And so if any listener feels they're there, they're able to come and help us to get more rural kids, that there are more than enough opportunities to do that and how to do that, like you just said, please visit our website https://www.kidscompcamp.com/support/. And there are a few ways you can you can be able to support us our mission, a few of them, you know, the first thing is that every year We run a campaign called donates lunchbox. So lunch box is food for one child for one camp at only $2. And the reason for that is sometimes we have kids who are walking up to 10 kilometers to be able to join our our camp. And so I keep cannot walk for all those kilometers and come and sit in a class with empty stomach, they will not concentrate, they will not enjoy. So wish I could say that kids comp come is about food, fun and computers. And so every year we are trying to raise food for this kid so that we can attract them to the camp. But also we can make them enjoy the training and through that they can be also to enjoy what technology can be able to offer for them. So if you can be able to donate one lunchbox, two lunchbox, 10 lunchbox, that's that would be great. A lot of boxes, only two to $2. And the challenge has always been if you can keep our lunch, maybe Be and donate that money to as a child in rural Kenya, that will be absolutely great. So how to do that? Visit www.kidscampcamp.com there are there ways you can you can be able to donate to us. The other way is if you have any unused or underused device, or even if you can consider donating devices to us, that will be great. First and foremost, it will help us to reduce the number of students to device ratio. Right now one device saves between three to five kids. If we can have one device, having two kids, that would be great. And that means we need to invest in more devices. So if you have a laptop, if you have a computer, if you have a smartphone, or a tablet, you feel it's going to be of benefit to our program would be most definitely happy to connect with you and try to see how we can. We can we can really connect. But most important if you can come volunteer with us. We believe that scene is better Leaving. And participating is only now one of the things that you've noticed is most of volunteers, they don't just come teach. After they teach, they go back and become our strongest support. So if we have time, a day, a weekend, a holy day, please come and volunteer with us. And like I mentioned, they can't come compounded calm is an email where you can reach out to us and we can be able to tell about the volunteer program that we have. So those are some of the ways in which we can, you know, work together and create a better world for this gift in rural Africa. Barry Luijbregts 31:57 Well, that is amazing. I think your organization is amazing, and you are doing just incredible work. Thank you so much for that. And I would urge everybody that's listening to this to take a look at the website at https://www.kidscompcamp.com/support/, and I will also put that link in the show notes. Caleb, thank you so much for your time.And see you all next time. Caleb Ndaka 31:58 Thank you so much Barry. I was pleased to share about our small journey in rural Africa and how we can make this was a better place.
This episode is brought to you by me. If you like this show and want to support it, please visit my courses on Pluralsight and buy my new book "200 Things Developers Should Know", which is about Programming, Career, Troubleshooting, Dealing with Managers, Health, and much more. You can find my Pluralsight courses and the book at www.developerweeklypodcast.com/About Tim is a Microsoft Most Valuable Professional (MVP) in Cloud and Datacenter Management who is based in Nashville, TN in the United States. His professional specialties include Microsoft Azure, cross-platform PowerShell, and all things Windows Server-related. You can reach Tim via Twitter (@TechTrainerTim), LinkedIn or his website, TechTrainerTim.comShow resources:Twitter @TechTrainerTimLinkedInwww.TechTrainerTim.comTim's YouTube channelTim's Pluralsight coursesAzure FridayAzure LearnLinux AcademyAzure Status UpdatesPluralsight course: Microsoft Azure - What to Use When?Microsoft Azure certificationsFull transcript:Welcome to another episode of developer weekly. This week I'm talking with Tim Warner about keeping up with Azure. Tim is a Microsoft most valuable professional MVP in cloud and data center management based in Nashville, Tennessee in the United States. His professional speciality includes Microsoft Azure cross platform PowerShell, and all things Windows Server related. You can reach them via Twitter, at Tech tamer at Tech trainer, Tim, LinkedIn or his website, tech trainer tim.com. Thanks for being on the show Tim. Tim Warner 1:37 You're very welcome. Very, thanks for having me. It's a pleasure. Barry Luijbregts 1:40 So you are very active with Microsoft Azure. And amongst other things, you create videos about Azure and Azure certifications and even released a new Pluralsight Azure course on Pluralsight today. Tim Warner 1:53 Yeah, that's right. I've been an IT generalist since 1998. And I've always because I'm excited In so many different aspects of it, I've kind of intentionally avoided specialization. But it just happened over the last five or six years that I got involved in Azure. And it's been a perfect fit for me professionally, because I guess, well, more than I guess I know that as your is my professional specialization, but within Azure, given that the ecosystem is so broad, I can be a generalist within Azure. And to your point, the course that we released today is actually a complete redo of a course that I recorded Originally, I think, last summer summer of 2019. It's called something along the lines of developing batch processing solutions in Azure. And originally, I centered it around as your SQL Data Warehouse. But of course, in ignite 2019 as your synapse analytics was introduced, and as your Data Explorer is now in the forefront, so I just decided to scrap the old course and redo it from scratch. Barry Luijbregts 2:58 So you came from From an infrastructure, specialty, right? Tim Warner 3:03 That's correct. As far as the DevOps continuum, I skew more towards the operations side. However, I've always, I consider myself a hobbyist programmer. I guess I'm a professional scripter. I'm proficient with PowerShell. And to an extent Python, but more in an infrastructure scenario, like you said, Barry, but I mean, I remember my first exposure to computer programming this when my dad bought one of those tiny Timex Sinclair t 1000s. It was the $99 computer and Europe. It was called the ZX Spectrum, I think. Right. And basic programming is how I originally got into the field. Barry Luijbregts 3:45 Oh, that's, that's incredible. And now it's all into clouds. You know? Tim Warner 3:48 Isn't that something? It's funny how things turn around. I remember also, just before when I was in college, before I got into it as a career I had a summer position feed These, they look like old fashioned eight track tapes into these IBM tape drives because the company was a mainframe shop. And it's funny how things are circular now with the cloud in some ways, that's almost like a return to mainframe computing, isn't it? Barry Luijbregts 4:16 Yeah, definitely. So you've then been working with the cloud for quite a long time. And you say that you're a generalist and in the cloud, but still because Microsoft Azure is so extremely broad, as in there are developer services, but there is also infrastructure services and everything in between, right? And what do you focus on within Azure? And how do you choose what to focus on? Tim Warner 4:38 Well, in my job at Pluralsight, I'm a full time author. So I have I used to have more flexibility in the subjects that I chose, but I'm more I consider my biggest benefit to the company is that as a generalist, I can kind of pitch in and help if there's a course that maybe nobody wants to cover because it's so knew, I'm happy to jump on those subject. Those subjects. That's kind of how batch processing came onto my workbench. And I've taught a course on messaging services. And those are products that tend to skew out of my infrastructure home. So it was a good opportunity to stretch. I think in general, regardless of whether you're an author or a trainer, if you're looking at Azure as a career, you really have to be committed to always learning. I can't imagine somebody who wants to go into it primarily for financial reasons. And for job security reasons. I would really warn them against unless they really enjoy what they're doing. Because with Azure, you're going to fall behind too quickly. If you're not always actively learning new stuff. Barry Luijbregts 5:47 Yeah, it goes extremely quickly. new services are added all the time and existing services change and new features are added or they get deprecated. So So how do you do that? How do you precisely keep up to date with all those changes. Tim Warner 6:02 You and I have both shared with the community on that subject of staying current with Microsoft Azure. So the first thing I'd recommend your listeners to do is to do a good old Google or Bing search for how to stay current. And they'll find your piece I've presented at some user groups over the last year on that subject. And I'm looking at my browser right now in the Azure architecture center in the cloud adoption framework section. Microsoft itself has a nice article on staying current. Some go to like most important sites that I would recommend that people have bookmarks, or the Azure updates site, which is where I don't know if I guess all the product teams are supposed to post there. I don't know if they all actually do I'd say most. The Azure updates is where you're going to see features that are in private development and then as they come into private preview, public preview in general availability and if you're all dog like myself, In your RSS, you can subscribe to the Azure updates as a feed. There's the Azure service health dashboard within the portal. If anything on Microsoft side is going to affect your services, you can see a personalized view directly on the portal by looking up service health. Let's see I think as your has a top level blog, yeah, Azure dot Microsoft comm forward slash blog. And again, it's up to each product team, how often they post there, but you can keep up to date. And honestly, lastly, as you're working, especially in the Azure portal, pay attention when you're looking through the different blades when you see preview after something Oh, that wasn't here before. I mean, I'm surprised every day and I've, I've talked to enough Microsoft employees and team members that they get surprised too, so don't feel bad as an Azure customer. If sometimes you feel blindsided because I can attest to that I've talked to plenty of full time as your engineer And team members who are also surprised. It's just that fast moving of an ecosystem. Barry Luijbregts 8:06 Right. Yeah, it's, it's crazy. And then you can also use the preview portal right? So preview? Yes. portal.azure.com. Tim Warner 8:14 Very good. Yep, definitely, of course, there's the provision or previz or warning, whatever you want to say that, depending as a general rule, features that are in public preview don't have a support service level agreement attached to them. Sometimes Microsoft will make an exception for that. But generally speaking, when you see preview after a service, consider that to be dev test and not prod. Barry Luijbregts 8:41 Yeah, right. So when do you consider a service for learning a deeper as in, they might be in private preview or in public preview and generally available? Do you only dive in when they are generally available or already when they might be in preview? Tim Warner 8:57 When I work with customers, I really am pretty concerned. About that, because of the first of all, I'll dig with them to make sure that a team is not offering a service level agreement or any kind of support when a feature is in public preview. An exception to that is Azure migrate, they were doing production support even when the server migration pieces were in public preview, as a plural site, and author, as a policy Pluralsight. And our agreement with Microsoft, we do not cover public preview features simply due to their volatility. I mean, we're already on a six month review cycle, we revisit our training courses every six months and make any changes as appropriate. It would just be too much management overhead if we included public preview features. So I tend to get into public preview features just personally as a professional development thing more than anything else. So I have a leg up to be helpful when the feature gets closer to general available. Barry Luijbregts 10:01 Yeah, yeah, the same same for me as well. Plus, I, after a couple of years of doing this, then you get kind of a sense of where things are going and if a public preview feature is going to stick, or that it might just be something fun to, to experiment with. Tim Warner 10:18 Isn't that something? Yeah, I mean, Asher blueprints is a service that I like quite a bit. It's been in preview public preview, seemingly forever. It's been in preview so long that Microsoft worldwide learning actually includes blueprints on many of the Azure certification exams so that we were joking about that just yesterday when I was chatting with them about that. Supposedly blueprints is gone is gonna go generally available someday. And then other features like as your Bastion and this is just my own personal opinion, I think they went ga on that too quickly. They announced it as a generally available service at Ignite last year. And it still is nice as Bastion, as it has some very significant limitations that I know for a fact are preventing many businesses from adopting it. Barry Luijbregts 11:05 Yeah, I guess many of these things are dependent on marketing efforts, whatever, internal goals and targets to companies. Sure. Tim Warner 11:15 Yeah. I mean, it's human, you know, human, these companies are run by fallible human beings. And when you've got a company as enormous as Microsoft, like you said, You've got all these different groups, it's a wonder that they can ship any software. Barry Luijbregts 11:32 Yeah, absolutely. So when you then go through the lists of updates and new services and things that changed, how do you do that? Do you do that once a day or every week? Or do you do you develop healthy habits around that? Tim Warner 11:50 I don't have a habit of for instance, looking in the Azure updates, but I do have a habit of reading the tech news each day. I just use Google News is my news reader and I have alerts on Azure and Microsoft and this kind of thing. And I have my Twitter feed I checked that several times a day and because I'm connected to a lot of Azure people yourself absolutely included I'm able to get a heads up on on things probably that way more directly than anything else. And once I get a heads up on on a feature service, then I'm inspired to check the documentation and see if there's anything in there look up on the Azure updates page see like you said, the preview portal dot Azure calm if it's surfaced in there, etc, etc. Barry Luijbregts 12:39 Yeah, I do. I do the same thing as well. I create my little internet bubble of like minded people that talk about Azure, for instance, in Twitter and put them on a list and then I can can just keep up to date. Yeah. So once you've selected something like you know about a new surface that you might need to make a course for Pluralsight about how do you go about learning something new like that? Tim Warner 13:04 That's a fun question. Because I'm really I consider myself a born learner, which means that I'm extra happy and Azure. And also the fact that I am one of those folks who has multiple learning preferences. I mean, some people are more visual, some people are more listening and conversational. I'm grateful that I can adapt to all of it pretty much. If it's a brand new thing for me. Then I'm going to start by just drinking from the fire hose in as many different ways as I can. I'm going to use computer based training, and listen and pay attention to what the instructors are saying. I'm going to see if Scott hanselman talk to any engineering team members on Azure Friday. I'm going to look for blog posts. I'm going to just try to like I said drink from the fire hose to get over That initial hump, that initial learning curve, that's the toughest to get over. I'm also going to be reaching out to colleagues, professional colleagues and friends who are already expert in that technology. And I know I've reached a good point when I'm able to talk intelligently and discuss the subject with people who do it for a living, then I know I've reached that point where I'm over that initial hump, and I'm ready to go to the next level. It's Um, okay, I hope that was helpful. Barry Luijbregts 14:32 Yeah, definitely. And then, do you then also use it in a real world scenario? Tim Warner 14:39 Not everything. But mostly, what's cool about Azure is that it kind of reminds me of a magnet that's picking up metal shavings. It starts collect door a snowball rolling downhill, as my skill set with Azure expands and expands then yes, in my consulting real world life that I Have, I'm able to add those in matter of fact, I've picked up some AI some Azure AI skills over the last year. So I'm going to finally have a chance to flex my muscles on that and a consulting engagement pretty soon. So yeah, definitely as, as I pick up these skills, it's important that I actually apply them in the real world. I don't have a lot of time for consulting. But it's crucial. Like you said, Barry, because there's theory. And there's practice. And the real world practice is quite a bit messier than what you see in a typical Pluralsight lesson. Barry Luijbregts 15:38 Yeah, absolutely. You know, I also create PluralSight courses and they get the chance to edit everything out and things look a bit smoother than they are in the real world. And also, when you actually start working with something, then you get to find out what all the bugs and hurdles and little things are that you don't read about in the documentation. Tim Warner 16:01 Yeah, exactly. There's nothing like feedback expand, it doesn't have to even be me working necessarily. A large part of my professional development is talking shop with people who do this work full time in the field. And by I can capitalize and really leverage their experience and add it to my own. I'm grateful for this as your thing because I remember I've struggled over the entire time I've been in the industry, between the practical hands on experience and then being a credible instructor. And it used to be a lot harder before the cloud to the point where literally, I would work full time as an instructor for a few years, then I'd go out into the industry for a few years, then I'd go back and forth. It's kind of jarring. Now with the cloud, I'm actually able to do both I'm able to do what I love teaching and writing and transferring now But I still from the comfort of the same office that I teach from, I can do real Azure work with customers. It's a beautiful thing to be able to do both of those things simultaneously. Barry Luijbregts 17:13 I have to say my same experience. Absolutely. Yeah. And, you know, there are people that are, let's say, full time authors, they create books and PluralSight courses and other things online. But I do think that you, you need to keep consulting and working in the real world. Otherwise, you don't know if what you're teaching actually works in the real world and how we write and how it affects real customers and real solutions. Tim Warner 17:38 Oh, it's invaluable to the point where, and I think this conversation is really spring, a lot of gratitude in me that I have that because I'm thinking about when I'm teaching and how I'm always thinking of use cases and real practical scenarios and I'm grateful that I can rattle those off because I do have that side. To my skill set. Barry Luijbregts 18:02 So you also have a YouTube channel with a lot of videos on there and also a lot of videos about Azure certifications on there. What do you think of as your certification? And should people take those? Tim Warner 18:18 So long story short, I'd say is Yeah, yes. And some reasons for Azure certifications are number one, it's going to be a differentiator for you in the job market. I've heard some people make the counter argument app. certs are a waste of time all they're good for us to get you past the first step of an interview process the human resources. And I'm like, yeah, that's legitimate. Right? And if you have the cert, you may get past that first step, whereas several other people who don't have the cert don't get past that first step. Another thing is, especially nowadays, the way that these badges work, they're validated very much like SSL TLS certificate. Tickets are. So instead of just claiming that you have this certification, you can actually share it in a way that's validated directly by Microsoft. And third, if nothing else, studying for these certs is a great excuse for making sure that you're current with modern Azure practices because all of these role based certifications, the skills in there are the fruit of job task analysis, or JTA. Is that Microsoft conducted with practitioners. So it's not just speaks to what we were talking about earlier, Barry, how is Asher actually used in the world not just some ivory tower theoretical thing? Barry Luijbregts 19:42 And what would you say to the argument that there might be a lot of people that cheat on these certifications as they download the answers from from the internet or pirate sites and just cheat and then they have the certification and can get into jobs relatively easily? Tim Warner 19:59 Yeah. The brain dump problem has been a problem since the very beginning. The words of the great William Shakespeare come to mind to thine own self be true, really, by using these short circuits. Ultimately you have to do the job, you'd either know how to do the job or you're not. And again, I think of Shakespeare, the truth will out, in my experience, people who rely upon the brain dumps as a way to short circuit certification and get into a job. Eventually, if they're out if they are actually weak in the skills, it's evident. And you know, what typically happens in that scenario? Not always, but I would say most of the time. Above all else, what I find most concerning about the brain dump situation is how normalized they seem to be to the point where many people I've observed. I don't I think that they genuinely don't understand that using these is a breach of the non disclosure agreement. You sign with Microsoft, there are people that believe that they're just these brain dumps, which are thefts of the actual intellectual property of the exams are just as legitimate as, say, a measure up practice tests. So I want to Yeah, educate to the point that no these brain dumps are actually stolen exam content. And by using them, you are in fact, violating your NDA with Microsoft and I have seen people permanently decertified from the program, if Microsoft learns that you've used them. So I would suggest strongly go with legitimate practice exam exam software. Barry Luijbregts 21:39 Oh, that's great. Actually, that that happens. I didn't know that Microsoft penalize people that found that out. Oh, yeah. That's great. Yeah. Because, you know, I know that a lot of people use these brain dumps and then that negates the value of the certifications. Tim Warner 21:57 Yeah, you know, I mean, I understand Your point because if somebody cheats to get in a position, and I don't get the position because of that person, I mean, there's I understand that grievance for sure. I just need to make sure that I'm doing the right thing, because the only person I have control over is myself. And I want to make sure I have a clean conscience as I go forward. Barry Luijbregts 22:20 So what is a good certification to get started with? Like, if you're going to get started in Azure as an infrastructure person or a developer? What would you start with? Tim Warner 22:31 Yeah, I get asked that question a lot. In fact, somebody sent me a DM on Twitter just last night saying, I'm a dotnet developer. And for whatever reason, he or she didn't say why, but they need to get certified. And my answer was, well, I don't know you. But top of my head, if you're a full time developer, the most closely aligned certification would be the Azure. So as your developer role, the library of these certifications is aligned to job roles. It used to be that there was just one One certification for all of Asher, which now is kind of laughable when you think about it. But now we've got this entire portfolio of certifications that aligned to roles. So if you are an infrastructure professional, there's the Azure administrator. There's one, there's a associate cert for security engineer. There's AI data platform, Microsoft 365. There's the introduction as your fundamentals, which is, I think, a great skill set. The what's neat about the Azure fundamentals or the az 900, is that it's not intended wholly for protect people. It's intended for even non technical people like sales or marketing people who may work for a company that's in the cloud, and they need to know the vocabulary, so don't discount as your fundamentals. Barry Luijbregts 23:53 Oh, right. I didn't know that. That was also a target audience. That's good to know. So how are we And prepare for one of these things. It's been ages since I've taken an exam. And when I did it, I used these very big Microsoft press books, exam prep things. I don't know, 500 pages or something. Yeah, I just crammed that way. How do people do it nowadays? Tim Warner 24:17 Those books, Microsoft press still makes the exam rafts, and those are good because they are aligned exactly to the exam objectives. But the the issue with any print book seems to me is that it's almost impossible to keep pace because as your changes so often, and Microsoft worldwide learning revisits the exams every two months, and revisits each certification program every year. So, in terms of prep, you're going to have to go with a more agile approach. Microsoft learn is an excellent place especially for Azure fundamentals. They have a learning path, it's totally free. That covers all of the objectives of course, At Pluralsight what's cool about the Pluralsight Microsoft partnership is that you don't even have to be a Pluralsight subscriber, a paying subscriber to take advantage of a whole bunch of courses Barry or any of your Azure courses in the free partnership. Do you know? Barry Luijbregts 25:16 Yes, a couple of them. I'm not sure which one I think the as your what to use when is one? Oh, yeah. Tim Warner 25:24 Yeah, I mean, a lot of this, like we were talking about earlier depends upon what your preferred learning style is. If you're more of a book reader, instead of looking for a print book, I would suggest you go certainly to the Azure docs but also Microsoft learn, because there you're going to get the most current readable material on Azure computer based training. Obviously, there's Pluralsight. And there's other computer based vendors that I personally like a lot. I like Linux Academy and cloud Academy behind that. Let me see experientially hands on is definitely important. What's Cool about Microsoft learn as well as that they have a whole bunch of hands on labs that give you free access to the Azure portal and Microsoft subscription. So you can do development administrator data, work, whatever, all without using any of your own money or subscription credits. Pluralsight also eventually will have cloud labs for both Azure and AWS. They're currently under development now. Oh, sorry, beget Barry. Last part. There's the theory. There's the hands on but then don't forget about practice exams. Like you said, Barry, especially people who have never taken a Microsoft exam before it's been years. I've seen students get blindsided because they're coming in with lots of knowledge, lots of practical experience, but because they're not accustomed to going through case studies, and different types of interactive items where you're using your mouse. This is the real value of the practice exam to give you confidence and how many Microsoft will evaluate your knowledge. Barry Luijbregts 27:03 So are these Practice Exams exactly what the exam are like?. Tim Warner 27:11 In the case of measure up, it's pretty close measure up is Microsoft's official practice test provider. And those Practice Exams are very similar in length, content and format to the live exam. Of course, you can't use Word for word, but it's pretty close. Then up besides measure up the other company I personally recommend is called whiz labs. And their practice exams are close in content, but not really for format. They don't have all of the different item types that measure up does. And that's kind of a weakness maybe with labs will evolve that over time, but either of those companies in my experience will do a good job of getting you into the frame of mind to clear the live exam when you're ready to take it. Barry Luijbregts 27:57 Alright, that's good. So Becca I took the exams and by the way, I don't take any of these exams currently because it just doesn't fit with my business model anymore as I don't need them at the moment. Yeah, but back when I did it, I needed to go physically to an office of fingers Pearson VUE and then sit behind a computer which was monitored and with cameras and everything should it could make sure that I didn't cheat and then take the exam. Is that still the case? Or can people do it differently especially in these times? Tim Warner 28:33 Pearson VUE is still Microsoft's exam provider. Until the COVID pandemic. Yes, the Pearson VUE testing centers were the way to go. I'm not sure. I guess it depends where you are in on Earth, whether Pearson VUE have begun opening their doors, but I'm really grateful to report that the online testing has evolved to be a really great solution over the last few months since this pandemic Started, I've taken probably a dozen Azure exams using the Pearson VUE online testing format. And it's so good and so reliable and so resilient that I don't plan ever again to go to a testing center. It's so convenient to be able to take these exams from your home or office. Barry Luijbregts 29:19 And then how do they check the cheating, Tim Warner 29:21 the Pearson VUE testing software runs on Windows and Mac, it's called on view. And it's a secure application that has to be the only foreground app running on your system. So the app itself is really resilient and has a lot of security built into it directly. For example, I've used the Pearson VUE software to test on both Mac OS and Windows and it on my Mac, it wouldn't let me go into the exam until I stopped a background process I was using a keyboard shortcut utility. So it does this system this check of all the processes that are running On your system to make sure that only it and the bare OS processes are alive, really impressive. The other aspects of exam security are that you have to be on a computer that's equipped with a webcam I find and I suggest you use a laptop. And a microphone has to be enabled on the webcam as well because that's how you interact with a live Proctor. The live Proctor comes over your speakers. And one time the proctor asked me to swivel my laptop 360 degrees so he could see my room. You do take as part of the preliminary check. You use your cell phone to take pictures of your work environment. You take four pictures, one facing your computer one away, one to the left and one to the right. You have to take a picture of yourself. You take a picture of your ID front and back. So it's pretty nice. It doesn't take that long. To do the check period, I would estimate takes about five minutes total. And if you're in a room that's already pretty distraction free that is, I like to do it almost in a closet, take my laptop into a small closet. You can do it on your office desk, but you want to turn off any additional monitors besides your primary, and you'll want to make sure that your desk is cleared of everything except your keyboard and your mouse. Like I said, the proctor will come online and ask for clarification if there's any situation. So, and then lastly, I'll say that the exam experience is really resilient. I haven't had any crashes this year. A few years ago, when I used the Pearson VUE, I did have a crash during the exam session. But I was able to restart the application I got connected to another Proctor and they were able to bring back my session just like it was before so I don't know exactly what kind of checkpointing they put in but it's pretty good. Good. I've never heard of anybody losing an exam session yet. Fingers crossed. Barry Luijbregts 32:05 Wow. That's very impressive. That's that's come a long way since I've used it. Tim Warner 32:08 They really have. I give Pearson VUE, lots of props. They obviously put a lot of engineering effort into that on view client. It's great. Barry Luijbregts 32:19 All right, that's great. So we've discussed a lot of things that you can use to keep up with Azure and to learn as in there is blogs, there is Twitter, there is videos, there are also certifications that you can take that help you to keep up because then requires you to learn. And then you can also show that you actually know what you're talking about. And then as a final point, I sometimes also go to conferences and local meetups to keep up. And I believe that you're also a user group organizer, is that right? Tim Warner 32:52 That's right. I'm an organizer of the Nashville Microsoft Azure Users Group here in Nashville, Tennessee. Barry Luijbregts 33:00 So people can come to your user group as well to learn and keep up to date. Tim Warner 33:05 Yeah, exactly. It's I admire every single person who participates in a user group, because by definition, they're willing to learn. And that's always near and dear to me. I'm glad that we're closing on this human factor because it is crucial. I mean, as much as these online resources can be helpful, there's nothing like hearing about something from another human being, like you say, conference, a user group. And I would say to your listeners, if they're not already plugged into meetup calm that's, in my experience, the central place to look for Microsoft Azure user groups. And one nice thing I guess about this pandemic is that most user groups have converted to an online format, which means that you're not limited by geographic area. You can present or just participate at an Azure user group anywhere on Earth. Those are great opportunities for learning new stuff, not just from the presenter, but from other people who pipe in with their own experience. And these user groups are a great place to get hooked up with technical recruiters. Obviously, technical recruiters are going to be swarming around user groups to look for job candidates. It's really a win win situation. Barry Luijbregts 34:25 Yeah, absolutely. And I think the same now goes for conferences, as well as most conferences have moved online. Some are even free now. So you can just log on to them and just learn. Tim Warner 34:38 Isn't that something? It's amazing how the world is shifting as a result of the pandemic technical conferences. Look what Microsoft did with build recently. Barry Luijbregts 34:47 Oh, yeah, yeah, absolutely. Tim Warner 34:50 And my wife told me last night that AMC which is a major movie, movie theater chain here in the states is going To a rental model, where instead of going to a physical movie theater, you can stream movies from their website or from their app. I'm like, good for them for shifting. Barry Luijbregts 35:11 Really? That is amazing. Tim Warner 35:13 Isn't that something? Barry Luijbregts 35:15 Yeah, you know, some good came out of this. Yeah. So horrible thing, obviously. But, you know, some good came out of this as in companies need to transform their business models and set and they're doing it is incredible. Tim Warner 35:28 Yeah. And look at you in this podcast, you're transforming as well. Congratulations. Barry Luijbregts 35:35 Isn't it funny, you know, you just record something, put it out there and people can listen wherever they are. Tim Warner 35:40 Yeah, it is. It's wonderful. Barry Luijbregts 35:42 All right. So what are you working on currently and what can we expect from you next? Tim Warner 35:49 Okay, um, let me see. I've got four courses in the Azure Pluralsight partnership right now that I'm updating. Yeah, we're on the it seems like once we finish a six month review cycle, it's time for the next one. But you know, it's a good thing. I'm happy. So I've finished patching a bunch of courses. I don't even remember what they were on. It's kind of a blur. But that that's been my full time stuff. And I've been enjoying posting to my YouTube channel. You mentioned my YouTube channel, I've been posting these little nugget videos about 10 minutes each covering each objective from the Azure fundamentals, az 900 blueprint that's been a lot of fun. That skill sets a lot of fun to talk about and to teach. And it's gotten good reception from people Barry Luijbregts 36:34 That is great content. We will link to that in the show notes. Great, and to all the other things as well that we talked about today. Thank you very much, Tim, for being on, and we'll see you next week.