.NET Rocks! is an Internet Audio Talk Show for Microsoft .NET Developers.
IoT Development using Particle Photon with Colleen Lavin
What can you do with a Particle Photon? While in an aluminum Airstream trailer in a thunderstorm at the Copenhagen Developers Festival, Carl and Richard talked to Colleen Lavin about her work with the Particle Photon IoT device - and its many maker possibilities! Colleen talks about making it easy to start building a device - but the struggle with so many choices to actually pick a project. The conversation also digs into making production versions of your device so that they are smaller, cheaper, and very reliable - it's a fun time to be a maker!
1/1/1 • 51 minutes
Data Science and UX with Grishma Jena
Data Science and UX should be the best of friends! While at the Copenhagen Developer Festival, Carl and Richard talked to Grishma Jena about her work in data science at IBM - and working closely with the UX teams to understand how customers use software and the opportunities to improve it. Grishma talks about the quantitative side of analytics regarding application telemetry, including the ability to predict when a customer is about to abandon an application. The conversation also digs into using modern machine learning to analyze quantitative data, such as comments in surveys - could you sort that kind of data by sentiment or actionability? Improve your UX with data!
1/1/1 • 48 minutes
Azure and GitHub with April Edwards
Azure and GitHub - better together? While at the Copenhagen Developer Festival, Carl and Richard talked to April Edwards for a special .NET Rocks Live. April talked about how Azure and GitHub work well together, discussing Azure DevOps and GitHub Actions on the CI/CD pipeline side and how other services can interact. Lots of laughter and great questions from the live audience!
1/1/1 • 56 minutes
Kubernetes Tooling with Annie Talvasto
How do you make Kubernetes easier to use? While at the Copenhagen Developers Festival, Carl and Richard talked to Annie Talvasto about her work with Kubernetes and the Cloud Native Compute Foundation. Annie talks about the easy and hard ways to work with Kubernetes and why you might choose either approach - it comes down to how much control you want. The CNCF supports many tools for Kubernetes in various stages of development to make your life easier to orchestrate containers at scale - when you need them, you'll really need them!
1/1/1 • 47 minutes
Data Sharding with Oren Eini
What is data sharding, and why do you need it? Carl and Richard talk to Oren Eini about his latest work on RavenDB, including the new data sharding feature. Oren talks about the power of sharding a database across multiple servers to improve performance on massive data sets. While a sharded database is typically in a single data center, it is possible to distribute the shards across multiple locations. The conversation explores the advantages and disadvantages of the different approaches, including that you might not need it today, but it's great to know it's there when you do!
1/1/1 • 1 hour, 4 minutes
bUnit Update with Egil Hansen
What's the latest with bUnit? Carl and Richard chat with Egil Hansen about his excellent testing library for Blazor. Egil digs into the ongoing improvements being made in Blazor and how bUnit can support those changes without having to rewrite tests - even .NET 8 shouldn't be a huge problem! The conversation also digs into the different sorts of open-source projects out there, including tooling like bUnit. Not all open source is created the same! Great thinking from an experienced builder of testing tools to make it easier to build reliable Blazor applications.
1/1/1 • 56 minutes
Observability Engineering with Charity Majors
What is observability engineering, and why do you need some? While at NDC in Porto, Carl and Richard recorded a .NET Rocks Live with Charity Majors, one of the founders of Honeycomb. Charity talked about her experiences trying to understand how complex applications worked and failed at scale over her years of experience at Facebook and other companies. Ultimately, those experiences led to a book and the creation of Honeycomb. Lots of fun insight from someone who has fought the good fight - and some great questions from the audience!
1/1/1 • 50 minutes
.NET Conf with Jeff Fritz
Are you ready for .NET Conf? Carl and Richard talk to Jeff Fritz about the latest version of .NET coming out - and the online event that celebrates it! Jeff talks about his top ten favorite sessions in the show, the ones you definitely don't want to miss. And if you have folks that are new to .NET, you want to check out the pre-event day that can help folks get started! See you online Nov 13-15!
1/1/1 • 54 minutes
Commercializing Open Source with Victoria Melnikova
How do you commercialize open-source products? While at NDC Porto, Carl and Richard talked to Victoria Melnikova about her work with Evil Martians, helping startups make open-source products and make a living at the same time. Victoria talks about various revenue strategies, but always with a mind to providing a "forever free" tier to be responsible to the open source community. Charging for pro-features, limiting the number of uses before a paid tier... there are several approaches to revenue that users can work with, as long as you are open and honest about how things work!
1/1/1 • 49 minutes
React Server Components with Aurora Walberg
How can React Server Components make your website better? While at NDC in Porto, Carl and Richard talked to Aurora Walberg about her work with RSC and Next.js 13. Aurora discusses mixing server and client rendering - and server rendering within client rendering! While it's still early days, if you're looking for options in the React development space, RSC is worth a look!
1/1/1 • 43 minutes
Sustainable Development with Lea Mladineo
How do we make our software greener? While at NDC in Porto, Carl and Richard talked to Lea Mladineo about her work in sustainable development. Lea talks about the impact of digital technology on the environment and how, with some thought and effort, we can make a real difference to that impact. The conversation explores how cloud computing can worsen the problem - or better! Software efficiency can reduce the number of cycles needed to complete a task, which is good for the environment and could save your organization money!
1/1/1 • 47 minutes
Applied Large Language Models with Vishwas Lele
How do we put large language models to work? Carl and Richard talk to Vishwas Lele about his work using LLMs with his customers. Vishwas talks about focusing on specific data sets for building LLMs and how size matters - things are simple when the source data is small, but as it grows, you need more complex tools to be able to allow the LLM to perform. Lots of cautionary tales and ideas on how to get great results from these new automation tools!
1/1/1 • 1 hour, 3 minutes
Polly V8 with Joel Hulen and Martin Costello
A new version of Polly is out - and it's a special one! Carl and Richard talk to Joel Hulen and Martin Costello about the release of Polly V8. Joel tells the story of Microsoft reaching out about Polly - because it is heavily utilized inside of Azure and at cloud scale, it needed further optimization. The results are a very high-performance library focused on resilience as a whole - with lots of smart defaults so that you can write even less code to have even more resilient applications!
1/1/1 • 54 minutes
Agile Application Security with Laura Bell Main
It's almost 2024, do we still need to talk about securing our apps? Carl and Richard talk to Laura Bell Main about her ongoing efforts to get everyone involved in creating and operating software to be part of making that software secure. Laura talks about committing one hour of each sprint to security and how, over time, those small efforts can build up to excellent secure guardrails that make our software more resistant to exploitation. Don't push security issues off to someone else - we can all help!
1/1/1 • 54 minutes
.NET Performance with Daniel Marbach
How do you improve the performance of your .NET applications? Carl and Richard talk to Daniel Marbach about his work building high-performance .NET applications and the process he goes through to get them to perform at the level his customers need. Daniel talks about profiling and benchmarking - understanding where your time passes in your code and how to measure it to know if you're making it better. The good news is that great tools are out there to help you; check the show notes for links to them!
1/1/1 • 56 minutes
Space in 2023 Geek Out
Time for the annual Space Geek Out! Richard summarizes many of the important space stories of the past year, including SpaceX's record number of Falcon 9 flights and the first two flights of Starship. The conversation also explores the state of the International Space Station, Dream Chaser, Artemis, and other moon missions, including India's successful landing! Richard then digs into the Crisis in Cosmology - how the James Webb Space Telescope has changed our understanding of the universe, and how it is disrupting the current models of the universe. But new science is good - the more you know!
1/1/1 • 1 hour, 47 minutes
Energy in 2023 Geek Out
Let's start 2024 with a conversation about energy! Richard chats with Carl about ongoing developments in power generation around the world. Wind technology is maturing but also hitting size limits. Solar is the fastest-growing power generation source on the planet now - and there are recycling options! There are exciting new developments in power storage, some applied hydrogen power projects, and new concepts in geothermal and small modular nuclear. Richard wraps up with thoughts on COP 28 and our progress towards safer, stable power for everyone. Happy New Year!
1/1/1 • 1 hour, 52 minutes
.NET 8 Migration with Jimmy Bogard
How do you migrate to .NET 8? Carl and Richard talk to Jimmy Bogard about his experiences helping teams migrate from .NET Framework 4.8 to more modern versions of .NET. Jimmy talks about the team wanting to be able to use ASP.NET Core in their applications as the incentive to make the migration in the first place. The conversation digs into landing on .NET 6 to make migration easier but then wanting to move quickly to later versions to take advantage of the latest features. And no dead-drop migrations - using a reverse proxy to operate the two applications side-by-side so that over months, everything moves across while remaining functional - a great story of migration!
1/1/1 • 49 minutes
.NET Aspire with David Fowler
Coming out of .NET Conf, one of the big announcements was .NET Aspire. Carl and Richard talk to David Fowler about his work creating the tools to make building cloud-native .NET applications easier. David discusses the challenge of not re-creating the past - tools like Azure Service Fabric. However, the complexity of containerized applications is real. Aspire can make it simpler to take advantage of being in a container, on the cloud, with all the telemetry, observability, scalability, and flexibility that being cloud-native can bring you!
1/1/1 • 1 hour, 1 minute
Uno Update with Nick Randolph
What can Uno do for you? Carl and Richard talk to Nick Randolph about the latest from the Uno platform. Nick talks about how Uno has continued to evolve into a broad and effective cross-platform client tool while also adding integrations for design and continuous integration. The conversation digs into the challenge of getting from design to development and how the Figma Plugin makes it easier to take designer Figma docs and make them into actual code in Uno. There are also wizards for helping you add Uno UX testing into your CI/CD pipeline and much more. It's an open-source project, so you can take Uno out for a spin today!
1/1/1 • 1 hour
Hangfire with Sergey Odinokov
How do you handle background tasks? Carl and Richard talk to Sergey Odinokov about Hangfire, his open source project for background job processing in .NET. Sergey talks about his experiences building applications that needed background processing and hoping to find a library similar to other platforms - and eventually creating Hangfire. The conversation dives into the array of different processing options, state management, and the challenging problem of building and maintaining an open-source project over a decade!
1/1/1 • 42 minutes
gRPC Update with Irina Scurtu
What's the latest with gRPC? Carl and Richard chat with Irina Scurtu about her latest work with gRPC. Irina talks about the improved tooling with gRPC, including tools like Postman to help you see what's happening in a gRPC interaction, even decoding the binary data! The conversation also digs into the complexity of metadata with headers and trailers and the challenges of supporting multiple platforms and multiple type systems - but it works if you take the time to learn the details. And the results are fast and flexible communications!
1/1/1 • 49 minutes
Improving Your CSS Game with Martine Dowden
How do you improve your CSS skills? Carl and Richard talk to Martine Dowden about her new book, Tiny CSS Projects. The book is built around twelve progressively more complex CSS tasks - you can follow along to learn in general or pick a particular chapter for a specific skill you want to exercise. The conversation digs into thinking about the architecture of styling beyond the particular page and how those styles can be updated version-to-version without frustration. You can improve your CSS game!
1/1/1 • 51 minutes
CSLA 8 with Rocky Lhotka
Another version of CSLA? Yes! Carl and Richard talk to Rocky Lhotka about his work keeping CSLA up-to-date with the latest .NET features. And now, with .NET 8, CSLA 8 has strong support for Blazor! Rocky talks about getting deep into Blazor for CSLA, the power of rendering the client or server side, and whether or not mixing the two is smart. Lots of great thoughts from one of the original .NET educators!
1/1/1 • 1 hour, 1 minute
The Observability Tipping Point with Steve Gordon and Martin Thwaites
Has observability hit a tipping point? Carl and Richard chat with Steve Gordon and Martin Thwaites about the various products and technologies today to make observability a vital part of a successful application. Steve talks about telemetry support hitting a tipping point where most vendors have products working with OpenTelemetry. Martin digs into the many places you can send telemetry to increase your understanding of how your applications work on-premises and in the cloud. It's an exciting time to build cloud-native - are you on board?
1/1/1 • 55 minutes
Modular Monoliths in .NET with Steve Smith
Modular Monoliths strike the middle ground between monoliths and microservices! Carl and Richard talk to Steve Smith about his work striking a balance between the simplicity of a monolithic set of services and the complexity of breaking everything into microservices. Steve discusses the performance and simplicity advantages of monoliths and only breaking out services with specific needs into separate services. .NET has excellent tooling to help you evaluate, test, and manage your modular monoliths!
1/1/1 • 51 minutes
Azure in 2024 with Magnus Mårtensson
It's 2024, how is Azure doing? Carl and Richard chatted with Magnus Mårtensson about his work with customers migrating and operating in Azure. Magnus talks about the waste many organizations have in cloud resources, often by provisioning services with too many resources or failing to shut down things they no longer need. The conversation digs into today's excellent tooling, including Azure Migrate, Advisor, and Monitor. All tools can help you right-size and control your cloud spend. And AI is coming to make those tools even better!
1/1/1 • 51 minutes
Aspect-Oriented Programming in 2024 with Gael Fraiteur
How has Aspect-Oriented Programming changed? Carl and Richard talk to Gael Fraiteur of PostSharp fame about his new tool, Metalama. Gael talks about being able to move out of IL and into Roslyn Analyzers to help you get rid of boilerplate code and focus more on the value your application brings. The conversation dives into how AOP can help build higher quality code, to the point of being a testing platform for code compliance for your organization - used right, metalama can make your code reviews smoother! There's a lot of power inside metaprogramming; it's worth trying to understand what Metalama can do for you.
1/1/1 • 49 minutes
API Observability with Anthony Alaribe
Do you understand how your APIs are being used? Carl and Richard talk to Anthony Alaribe about his experiences dealing with poorly documented APIs that need updates - but no breaking changes! Anthony tells a story about missing a use case for an API that cost a lot of money, which started him down the path to making APItoolkit.io. The toolkit allows you to see how your API is being used and any exceptions that are happening. It will also generate tests to validate that your new version won't cause problems! Check it out!
1/1/1 • 48 minutes
GitHub Copilot Update with Michelle Duke
GitHub Copilot has been out for a few years now - how is it going? Carl and Richard talk to Michelle Duke about what's been happening with GitHub Copilot. Michelle discusses the new features in GitHub Copilot, including Chat, which gives you more of a ChatGPT-like interface while still being focused strictly on code, including your code! Then, the conversation digs into the broader ideas around large language models and the perception of artificial intelligence affecting the entire world. A lot is going on!
1/1/1 • 59 minutes
Domain Control Plane and Azure with Anthony Eden
How do you manage your DNS? Carl and Richard talk to Anthony Eden of DNSimple about his latest product, the Domain Control Plane. Anthony talks about how everyone has DNS—and usually in more than one place. Getting a common view of all your DNS entries, no matter where they are, is valuable, but being able to automate changes is even more important, especially as things scale up! The conversation ranges over development, cloud, scaling systems, and some old-fashioned geekery!
1/1/1 • 54 minutes
Programming with Speech and AI with Karl Geitz
Can speech become part of your development workflow? Carl and Richard talk to Karl Geitz about his use of NaturallySpeaking to create software in Visual Studio. Karl talks about using voice to write better, longer comments in his code and also helps to navigate the features of Visual Studio itself. The effort started when dealing with Repetitive Stress Injury but has now evolved into his most productive approach to coding - one hand on the mouse, the other on function keys, and voice instead of typing!
1/1/1 • 54 minutes
Visually Debugging EF Queries with Giorgi Dalakishvili
How do you debug your EF queries? Carl and Richard talk to Giorgi Dalakishvili about his open-source Visual Studio extension, EFCore Visualizer. Giorgi talks about bringing together the EF rendering of the query with the database query plan to ensure you retrieve data from your database as efficiently as possible. The conversation ranges over a number of tools Giorgi has built over the years, including EF Framework Exceptions, DuckDB.NET, and more!
1/1/1 • 47 minutes
Antifragility in Software with Barry O'Reilly
Six years later, how has antifragility thinking changed? Carl and Richard talk to Barry O'Reilly about his ongoing work on building highly reliable software. Since Barry's last appearance six years ago, he's returned to school and is writing a PhD thesis on antifragility. Studying complexity theory, Barry approaches software architecture with a minimalist view - you only add architecture when you see the application needs it. This leads to ideas around residuality - and a progressive way to build software that yields amazing results!
1/1/1 • 58 minutes
Building Cloud Native in Azure with Scott Hunter
How do you build cloud-native applications in Azure? Carl and Richard talk to Scott Hunter about how Microsoft tooling is evolving to develop cloud-native applications - starting with the vital idea that all cloud-native apps are multiple applications! Scott talks about how most development tools focus on individual applications and how dealing with multiple applications, including cloud apps, can be challenging. Cloud apps need telemetry, resiliency, and service discovery - which brings the conversation to tooling like .NET Aspire, designed to lead developers down the path to cloud-native applications with all these features and more. And this is only V1 - Scott discusses many more features that could make it easier and easier to make great cloud-native applications!
1/1/1 • 54 minutes
On Being a Senior Software Developer with Shawn Wildermuth
What do you want the last chapter of your software development career to look like? Carl and Richard talk to Shawn Wildermuth about life as a 55-year-old software developer. Shawn talks about being an independent software development consultant for the past twenty years and considering what the next ten should look like. The conversation digs into what's fun and valuable and what you want to achieve before retirement. One thing is for sure - there is no one right way to have a career - but making a plan is important!
1/1/1 • 54 minutes
The Nomadic AI Developer with Aaron Erickson
The Nomadic Developer returns - and is working on AI technology! After fifteen years, Aaron Erickson returns to .NET Rocks to talk to Carl and Richard about his nomadic adventures. Aaron talks about the twists and turns of moving from consultant at Thoughtworks to leadership in a tech company, leading a startup, and now being part of the team at nVidia exploring the potential of machine learning and large language models. While the journey is inspiring, Aaron's passion for his latest work sparks a robust conversation about automation and the potential of what is being built today!
1/1/1 • 59 minutes
Episode 1900 with Scott Hanselman!
It's episode 1900! While at Build, Carl and Richard recorded a milestone episode with Scott Hanselman. Scott talks about his goals in the later stages of his career, the ideas and origins of all the podcasts, and what is important to him today. In the second half, Carl pulls out a quiz show for Scott with quotes from shows going back 20 years! Lots of great stories of different conferences, podcasts, and other events - and the things learned along the way. Thanks for listening!
1/1/1 • 53 minutes
Building C# with Mads Torgerson and Dustin Campbell
Chatting with the leaders of C#! While at Build in Seattle, Carl and Richard sat down with Mads Torgersen and Dustin Campbell to discuss how C# continues evolving into version 13! With new versions coming every year, Mads talks about how complex features can be developed over several versions of the language - while also being able to get feedback from regular developers. So, what comes next for C#? Have a listen!
1/1/1 • 57 minutes
GitHub Evolving with Damian Brady
GitHub is about so much more than source control! While at Build, Carl and Richard chatted with Damian Brady about all the great things coming out of GitHub over the past few years, including Copilot and now Copilot Workspaces. The conversation digs into how large language models are changing how you write code and some idea of what things could be like in the future. Damian also digs into the more enterprise-centric features like Software Bill of Materials and effective sponsorship of projects. GitHub is the locus of development for many companies, and the tooling continues to expand to make things easier!
1/1/1 • 48 minutes
MAUI and Blazor with Beth Massi
What's up with MAUI and Blazor? Carl and Richard chat with Beth Massi about the latest MAUI, including the new webview available on GitHub that lets you embed an existing web page into your MAUI app. Beth talks about making apps the way you want to - with a mobile, web, or desktop focus - or making them all! Mixing Blazor and MAUI means you can steer clear of XAML if you prefer. There's no right way to build your clients, and MAUI gives you many choices!
1/1/1 • 45 minutes
CosmosDB and AI with Mark Brown
CosmosDB makes ChatGPT fast! While at Build in Seattle, Carl and Richard chatted with Mark Brown about CosmosDB's role in AI. Mark talks about how ChatGPT switched over to CosmosDB early on - when the number of users started to climb, database performance became essential, and CosmosDB was there. Today, many AI-centric CosmosDB features exist, like vector storage, indexing, and search! The conversation also digs into the impact of the large language model on development - things are different now!
1/1/1 • 55 minutes
GPT-4o with Veronika Kolesnikova
Multi-modal is here and ready to use! Carl and Richard talk to Veronika Kolesnikova about what she has seen in the latest OpenAI model. Multi-modal refers to GPT-4o's ability to work with text, audio, images, and more and respond in kind! Veronika talks about tackling interesting visual problems with GPT-4o - like summarizing graphs or creating new data visualizations. The conversation digs into some announcements around Build, including the new security features in AI Studio and Windows Recall in the new Copilot+ PC devices. Things are moving quickly!
1/1/1 • 50 minutes
WPF Update with Joseph Finney
What's happening with WPF? Carl and Richard talk to Joseph Finney about the news from Build about WPF - it's back, baby! But did it ever go away? Joe talks about how WPF was made open source in 2018 and how minimal development was done there - enough so that the community started building frameworks to support it, including WPFUI and ModernWPF. But at Build, Microsoft announced a new focus on WPF, including creating support for a Windows 11 theme - with a line of code, you can make your WPF app look like a Windows 11 app. Where does this leave WinApp SDK? What about migrations? There's lots to talk about!
1/1/1 • 1 hour
Basic UX for Developers with Hilary Stohs-Krause
What are the basics of building a decent user interface on a web page? Carl and Richard talk to Hilary Stohs-Krause about her experience helping folks build websites - you don't have to be a designer to make something useable! Hilary talks about steering clear of more complex UX libraries unless you know the site owner prefers them. Keeping things simple and consistent is best! The conversation also digs into accessibility and how accessibility needs are a great guide to a decent basic design - making a site that can help everyone understand the pages you've built a great path to a very useable website.
1/1/1 • 55 minutes
Building Domain-Specific Copilots with Vishwas Lele
What if you want to build your own copilot? Carl and Richard talk to Vishwas Lele about his new startup, which is focused on using Azure OpenAI tools to help automate the government RFP writing process. Vishwas discusses the complexities of proposal writing, how specific and complex rules exist for each part of the proposal, and the challenge of getting the software to do an excellent job on the draft. The conversation digs into the domain expertise needed for the technologies and the proposal writing itself - like all good software, it requires domain experts. But when done right, this is hugely valuable software!
1/1/1 • 50 minutes
Getting into Containers using Aspire with Jiachen Jiang
How can .NET Aspire help you get into containers? Carl and Richard talk with Jiachen Jiang about her experiences working with .NET Aspire. Jiachen talks about the power of .NET Aspire to help lead developers to utilize cloud native architecture efficiently. A key part of the equation is containers, and Jiachen talks about how relatively rare containerized .NET apps are - because in many cases, it doesn't add anything but complexity. But as .NET applications need to scale in the cloud, containers become important, and .NET Aspire helps you to take advantage of containers while adding all the cloud-native features you'll value, like great telemetry, orchestration, and discovery!
1/1/1 • 55 minutes
Azure API Management's GenAI Gateway with Andrei Kamenev
How do you manage APIs to GenAI, and how can GenAI help with API management? Carl and Richard chat with Andrei Kamenev about the latest features coming to Azure API Management. On the one hand, there are Copilot tools to help craft and understand APIM policies, which can get very complex. Then, there is the provisioning of access to GenAI-related APIs like the Azure OpenAI service, which utilize tokens - and those tokens mean money, so they need to be controlled. The GenAI Gateway provides the ability to rate-limit token issuing and all the other capabilities you expect from APIM. Prompt caching is in preview and can decrease the cost of repeated use of the same prompts. Many of the features are new, and more are coming!
1/1/1 • 51 minutes
Low-Code Solutions for .NET Developers with Serge Sarafudinov
How can a low-code solution help you deliver a .NET app? Carl and Richard talk with Serge Sarafudinov about his Xomega project. Serge describes how Xomega uses models and templates to generate .NET code for applications for Blazor clients, WPF, and even ASP.NET Forms and TypeScript! The conversation also digs into rehabilitating existing .NET applications where new features can be added with Xomega, and then gradually convert the existing application into the model approach - and then you can change out the client if you like! There are free and paid versions of Xomega; take it out for a spin and see if you can't deliver solutions faster!
1/1/1 • 59 minutes
Domain Driven Design and Event Sourcing with Anita Kvamme
What do Domain-Driven Design and event sourcing have to do with each other? Everything! Carl and Richard chat with Anita Kvamme about her experiences applying DDD, and specifically event storming, to developing applications using event sourcing. Anita talks about building applications that have many sources of events—from users and elsewhere—and needing to manage that complexity without slowing down development. Event sourcing also means keeping a source of the truth - all events leading up to a practical business benefit. And that can be hugely helpful in analytics as well!
1/1/1 • 55 minutes
Machine Learning on Geospatial Data with Malte Loller-Anderson & Mathilde Ørstavik
What can machine learning do for geospatial data? Carl and Richard talk to Malte Loller-Anderson and Mathilde Ørstavik about their work at Norkart, using aerial imagery to build detailed maps around Norway. Mathilde dives into the critical role of machine learning - identifying buildings in images. Usually done by hand with each new image, Norkart has a machine learning model that automates the process trained on previous vector maps of buildings. But there are many things that look like buildings in Norway, including patches of snow, mountains, and even shapes under water. Malte also discusses how Norkart has decided to train in-house with nVidia L40 processors rather than in the cloud - the hardware is used 24 hours a day since some models can take weeks to train! There are many interesting ideas about geospatial data and machine learning from people who have been doing it for years.
1/1/1 • 54 minutes
Remote Mob Programming with Ulrika Malmgren
Can you do mob programming remotely? Carl and Richard talk to Ulrika Malmgren about mob, or team programming - where three to five developers work together on the same problem, rotating keyboard control and collaborating to write the best possible code. Modern tools like Teams and Zoom make it easy to do the same programming style with everyone remotely! Ulrika talks about how team programming becomes the standard approach to development - as opposed to solo programming, where everyone works separately and then has to spend time sharing what they've done! Good team programming results in higher-quality code in less time - and more happiness!
1/1/1 • 51 minutes
Making Design Pay with Billy Hollis
How does good design pay off in software? Carl and Richard talk to Billy Hollis about his work designing software, both from a user interaction perspective and application architecture. Billy talks about saving time and money by working hard on design to get a clearer picture of what stakeholders want—because code rework is always more expensive! The conversation also digs into the institutional knowledge walking out of many companies through employees retiring—and how much work that is going to generate over the next few years to modernize!
1/1/1 • 1 hour, 6 minutes
How Simple is as Simple as Possible with Mark Rendle
How simple can you make software development? Carl and Richard talk to Mark Rendle about his focus on simplicity in building software - as simple as possible. Mark talks about the tendency of developers, sometimes through no fault of their own, to use what is new and cool in development, regardless of how practical or necessary it actually is. The conversation digs into the ongoing battle around cloud-native development using technologies like Kubernetes. You can be cloud native with more straightforward approaches! The same applies to web frameworks - there are lots of choices. Build as little as necessary!
1/1/1 • 1 hour, 1 minute
Microsoft Playwright Testing with Debbie O'Brien
What's the latest with Playwright? Carl and Richard talk to Debbie O'Brien about her ongoing work with Playwright, Microsoft's open-source testing framework for web applications. While it is focused on web applications, you can write your tests in various languages, including .NET! Debbie talks about the new Playwright Testing service, which operates in Azure, so you don't have to stand up with your testing infrastructure - pay for what you use. The conversation ranges over the various features and challenges in testing that Playwright addresses. Now get out there and write some tests - your applications will be better for it!
1/1/1 • 55 minutes
Making Node and Deno with Ryan Dahl
Ready for a chat with the creator of Node? Carl and Richard talk to Ryan Dahl about his work creating NodeJS in 2009 and how he moved on after a few years, leading to the creation of Deno, an opinionated approach to building web applications. Ryan talks about the challenges of simplifying web development by combining all the important things into a single set of tools—saving you the effort of assembling those things yourself. The conversation also digs into how web development has evolved and one of Ryan's current efforts - convincing Oracle to surrender the JavaScript trademark to the world!
1/1/1 • 56 minutes
Copilot Studio with Prashant Bhoyar
How do you make your own copilot? Carl and Richard talk to Prashant Bhoyar about his work with Copilot Studio and Azure AI Studio. Prashant describes how Copilot Studio lives in the Power Platform space while Azure AI Studio is more related to Visual Studio, in that it is a tool for developers of AI technology. Anything built in Azure AI Studio can be surfaced in Copilot Studio - another kind of fusion development! Lots of conversation about what works well and what is difficult with these tools, and how to avoid some critical mistakes!
1/1/1 • 1 hour
Mobile, Augmented Reality, and AI with Chris Sells
What has Chris Sells been up to? Carl and Richard chat with Chris Sells, the guest on episode 10 back in 2002, about how his career continues to evolve. Chris talks about working at Google on Flutter, the mobile dev stack - before departing for Meta to work on the tooling for augmented reality. The conversation digs into how AR appears to be the logical evolution of mobile but has been completely overwhelmed by artificial intelligence. Chris has left Meta to work on AI technologies and sees huge potential in making better applications than ever before!
1/1/1 • 59 minutes
Building Cloud Native with Chris Klug
What does it mean to build cloud-native applications? Carl and Richard talk to Chris Klug about his experiences building applications designed to operate effectively in the cloud. Chris pushes back on the fixation around Kubernetes - you can build cloud-native apps without it! The conversation digs into the various options available to take advantage of the cloud's ability to scale while also tolerating its occasional short-duration outages and shifting availability. Chris also talks about .NET Aspire and its ability to help you build .NET cloud-native applications.
1/1/1 • 56 minutes
Mediatr with Jimmy Bogard
How about some in-process messaging with no dependencies? Carl and Richard chat with Jimmy Bogard about his work with MediatR, a simple mediator pattern implementation in .NET. Jimmy talks about how MediatR emerged from his work with customer applications having controllers and/or managers that slowly got bigger and more complicated... and how they became difficult to maintain. Using the mediator pattern to break down those blocks of code into more manageable chunks needed a bit of tooling that was cut and pasted from project-to-project until MediatR was born!
• 55 minutes
Applied Large Language Models with Brian MacKay
How can a large language model help your application? Carl and Richard talk to Brian MacKay about his work with large language models, including ChatGPT - and others! Brian talks about how LLMs continue to evolve and the limitations they have. But identifying language inside your applications can be powerful, and Brian talks through a few scenarios his company uses in production today. Work could you be taking advantage of today!
• 1 hour, 5 minutes
Minimal Architecture with Jeremy Miller
How much architectural ceremony is enough? Carl and Richard talk to Jeremy Miller about his minimal approach to architecture when building software, including his products Wolverine and Marten. Jeremy talks about how good tooling can simplify architecture, ultimately by writing less code - so that you are writing only the code that is unique to your customer needs.
• 56 minutes
Chocolatey in 2023 with Gary Ewan Park
How is Chocolatey evolving? Carl and Richard talk to Gary Ewan Park about the latest with the open-source Windows package management solution. Gary discusses some of the differences between the various package managers for Windows these days, including WinGet. Each product has its niche, and Chocolatey has done a good job of evolving into a broader product, including Chocolatey for Business, to allow a view of applications installed across all your machines - and being able to push updates out to them.
• 58 minutes
Leveling up your Architecture Game with Thomas Betts
How's your architecture game? Carl and Richard talk to Thomas Betts about being a better architect. Thomas focuses on the key aspect - communication! An effective architect can talk to all the stakeholders in the language of the stakeholder, whether that's speaking business with business stakeholders, coding with developers, and understanding the needs of the security and operations folks. All those aspects (and more) go into an effective architecture and then come the changes as the implementation challenges happen. The conversation also digs into the importance of documentation to know why decisions were made and how to change them as you respond to changing needs and landscapes.
• 1 hour, 1 minute
The Ethics of Large Language Models with Amber McKenzie
Large Language Models like GPT-4 are all the rage - how do we use them well? Carl and Richard talk to Amber McKenzie about the challenges and concerns around LLMs, especially regarding the data involved. Amber talks about the risks of creating products around LLMs while the technology is so young and constantly evolving, especially with how the general public reacts to conversational AI. Education is key, and constantly fact-checking - good advice for a lot of technology, but LLMs are making fact checking even more important!
• 55 minutes
Modular Monoliths with Layla Porter
Microservices or Monoliths? Carl and Richard talk to Layla Porter about choosing a middle ground between microservices and monoliths, with modular monoliths. Layla talks about the pushback from the community around microservices and the insistence that there is "one right way." Monoliths have their advantages until they are a problem - but that doesn't mean that re-architecting everything is the right way to go. Chipping off parts of the monolith into satellite modules strikes a balance of flexibility and scalability - and opens the door to accessing the power of bus architectures when needed!
• 56 minutes
Multi-Model Data Stores with Ted Neward
Databases continue to evolve! Carl and Richard talk to Ted Neward about multi-model data stores - which, these days, are most databases! Ted talks about how SQL and NoSQL are not that different - it's only a query engine. But how do you store your data? Today multi-model databases store data with multiple storage engines, and so can store your data in the most appropriate form. There are lots of choices, and it's worth digging deeper into your existing data stores, as well as the new ones available!
• 1 hour, 1 minute
Fluent Assertions with Dennis Doomen
What can we do to make testing easier? Carl and Richard talk to Dennis Doomen about Fluent Assertions, an open-source set of extension methods to help write better tests. Dennis talks about working on Fluent Assertions for over a decade and the great team of folks that have helped it grow. With tens of millions of downloads, you should check it out! The conversation also digs into how these types of open-source projects don't make money, even though they help many people. Could we fix that?
• 59 minutes
Scaling a Monolith with Derek Comartin
How do you scale a monolith? Carl and Richard talk to Derek Comartin about his blog posts and YouTube series around scaling a monolith. Derek talks about the tendency for folks to want to split a monolith into microservices without assessing if it will make a difference. There is no one right way! The conversation digs into different approaches to scaling - up, out, using caching, queuing, and more! There are many approaches to scaling your applications, and yes, microservices are an option, but there are many others!
• 59 minutes
Going Full Time on Open Source with Shaun Walker
Can you quit your job and work full-time on your open-source project? Carl and Richard talk to Shaun Walker about his recent move to focus on Oqtane, the open-source application framework and CMS he has been developing for the past few years. Shaun talks about recognizing when an open-source project has matured to the point that it is being held back by not also providing a commercial license. For some folks, a commercial license is not an option - they need it to be able to use the software within the company. Then comes the tricky part: Setting up a business, and balancing the needs of the open-source community with the commercial customers. It isn't easy, but it can be done!
• 1 hour, 3 minutes
Azure Developer CLI with Savannah Ostrowski
How do you get your app running in Azure? Carl and Richard talk to Savannah Ostrowski about Azure Developer CLI (azd), an open-source tool to help developers using .NET, Javascript/Typescript, Python, Java, and more to get deployed into Azure. Savannah talks about staying high-level with azd commands, keeping the complexity of deployment pipelines in tools you already know how to use, like Bicep and Terraform. The conversation digs into the templating system to help assemble all the platforms and elements of an Azure deployment, depending on your application. There are a ton of options - check it out!
• 52 minutes
Building Apps using OpenAI with Mark Miller
How can OpenAI help you program faster? Carl and Richard talk to Mark Miller about his experiments with OpenAI and CodeRush. Mark talks about the power of building agents to analyze code to write comments and tests - in parallel so that multiple agents can run simultaneously. Then the conversation turns to the potential of a voice interface as an effective way to work with Visual Studio - you were talking anyway!
• 59 minutes
OpenTelemetry with Laïla Bougriâ
What can OpenTelemetry do for you? While at Techorama in Belgium, Carl and Richard talked to Laïla Bougriâ about her experiences with the open-source library that can help give you more insight into the behavior of your applications. Laïla talks about being able to instrument your applications from top-to-bottom, regardless of platforms or development stacks. The conversation digs into the differences between logging, tracing, and telemetry - and how each aspect adds value to understand what your applications are doing, and how you can make them better!
• 50 minutes
No Free Lunch in Machine Learning with Jodie Burchell
When it comes to machine learning, there is no free lunch! While at Techorama in Antwerp, Carl and Richard talked to Dr. Jodie Burchell about her experiences working with machine learning models, including the large language models that drive tools like ChatGPT. Jodie starts with a great explanation of how these machine learning models are built - and there is a lot to it! This leads to a conversation about the limitations of those models and how they could be improved further. There's a lot of hype around LLMs right now - it will pass eventually, but in the meantime, be thoughtful of how you use these experimental technologies!
• 55 minutes
PHP and WebAssembly with Jakub Míšek
The power of .NET means PHP can run in the browser efficiently! Carl and Richard talk to Jakub Míšek about PeachPie using WASM. Jakub talks about how easy it was to deploy PeachPie, the .NET implementation of PHP, into WebAssembly, much like Blazor works. Then the tricky bit starts - PHP is a server-side technology, so many of the constructs are based on trips to a server. That doesn't mean there aren't solutions, but they need some thinking through. The question is, do we want to run WordPress in a browser?
• 53 minutes
Immutable Architectures with Michael Perry
What's an immutable architecture, and why do you want one? Carl and Richard talk to Michael Perry about his book The Art of Immutable Architecture and the power of historical models. Michael talks about different designs for immutability, the ability to always look back through data, to avoid conflict between resources, and the advantages of eventual consistency. As Michael says, you already use immutable architecture - look at Git and how you only add new files to the system, always able to get back to a previous state! The conversation dives into implementing architecture in a way that helps to show where immutability makes sense.
• 52 minutes
Entity Framework Tooling with Erik Ejlskov Jensen
How do you do more with Entity Framework? Carl and Richard talk to Erik Ejlskov Jensen about his work contributing to Entity Framework and creating tools to make Entity Framework easier to use. Erik talks about how EF has continued to evolve, including some significant performance optimizations. The conversation also explores code-first vs. database-first - although Erik falls firmly into the schema-first mindset. There's more coming for Entity Framework; it's worth your time to get the most from it!
• 59 minutes
Supporting Open Source with Joseph Finney
How do we support open-source projects? Carl and Richard talk to Joseph Finney about his ongoing efforts to build various projects in his spare time while still working a regular day job. Joe talks about the options to contribute to open-source, including submitting issues to help improve the project, code contributions where you add to the body of work, and financial options - contributing money directly to the creator. The conversation explores some of the existing tooling and more opportunities that could be created to make it easier for organizations to see their dependence on open-source libraries in a path that would make it easier to garner support for creators. The open-source world continues to evolve, and with some effort, we can make it more sustainable and valuable for everyone.
• 56 minutes
Cypress 12 with Ely Lucas
Web Testing Evolved! Carl and Richard talk to Ely Lucas about the latest version of the Cypress Testing Framework. Ely talks about three significant versions shipping in 2022 - starting with version 10, a complete UI overhaul. Following the semantic versioning standards, versions 11 and 12 had some breaking changes, primarily around component testing and other great new features. Today Cypress is effective at end-to-end testing, component testing, and with an open source plugin, API testing. The product is free and open-source, with a paid version offering enterprise-class cloud services for scaling testing up. Check it out!
• 51 minutes
Continuous Feedback with Roni Dover
How do you know the code you write is being used in production? Carl and Richard talk to Roni Dover about his work with Digma to help bring code utilization into your development tooling. Roni talks about the challenges of getting and using production telemetry - often, it never reaches developers. But with OpenTelemetry, there's a lot of data out there; the challenge is to present it helpfully - and that's what Digma is all about. It's still in beta, but sign up if you want to get involved!
• 52 minutes
Making a Copilot with Phil Haack
Microsoft is making several Copilot products - should you? Carl and Richard talk to Phil Haack about the latest version of ab.bot, his customer success startup. Now Phil is calling ab.bot a Copilot for Customer Success since he incorporated OpenAI ChatGPT into it. The conversation tries to steer clear of the hysteria around modern large language models (although it is hard!) and more into the practical applications - using large language models to summarize long customer support conversations and find related conversations to current ones - perhaps identifying new high-priority features! The wave of large language models is in its early days, and with the new APIS available, it may be time to make them part of your projects too!
• 1 hour, 3 minutes
Blazor United with Javier Nelson and Steve Sanderson
What if you didn't have to choose between client-side and server-side Blazor? Carl and Richard talk to Javier Nelson and Steve Sanderson about Blazor United in its early stages of development, providing flexibility at the web component level for client- and server-side rendering. At the simplest level, Blazor United offers server-side rendering when a site is first hit so that you can load the larger client-side components over time. But deeper is the idea that some elements on your web page benefit from being client-side, and some from being server-side, and why should you have to choose only one?
• 52 minutes
Sustainable Open Source with Sarah Novotny
How do you create a sustainable open-source ecosystem? Carl and Richard talk to Sarah Novotny about how the open-source community continues to evolve. Sarah talks about how the vast majority of software utilizes open-source code and should be contributing to those projects. Those contributions can be financial or development resources, whatever makes more sense for the organization. The conversation also explores the nature of those contributions when the project has smaller and larger audiences, is purely for developer consumption, or the greater public. Open-source software is diverse, so the support for open-source software also needs to be diverse!
• 48 minutes
MAUI Panel Discussion from Swetugg!
MAUI is out! What's next? While at Swetugg in Stockholm, Carl and Richard chatted with David Ortinau and Maddy Montaquila about getting MAUI shipped and seeing how the world is using it! The conversation digs into what typical developers are doing with MAUI and other platforms in the plans for future MAUI. David and Maddy talk about how Blazor Hybrid is creating a lot of excitement for folks, balancing the reach of web development with the power of native development - it's a great time to be building cross-platform software!
• 49 minutes
Developer Velocity in the Cloud with Bryan Foster
How can the cloud help developer velocity? Carl and Richard talk to Bryan Foster about the complexities of modern software development - and how different cloud technologies can help move faster and not be afraid to break a few things along the way! Bryan talks about using Azure Deployment Environments to make it easy for developers to stand up resources for their apps - and just as quickly shut them down when done. This leads to a broader conversation around the governance of CI/CD pipelines and the role of the cloud, even to the point of using DevBox to have an entirely virtualized development environment!
• 52 minutes
Functional C# with Simon Painter
Why write functional C#? Carl and Richard talk to Simon Painter about what happens when you apply functional programming approaches to your C# code. Simon discusses how some functional programming aspects are best served in a functional language like F#, but you can write C# in a more functional style. The conversation focuses on minimizing side effects - writing your code so that you can see what it does and how it would behave when changed. Functional code tends to be more testable as well!
• 50 minutes
Securing Existing Applications with Joylynn Kirui
How do you secure your existing applications from the security exploits out there today? Carl and Richard talk to Joylynn Kirui about the challenges developers face in making secure applications. Joylynn talks about understanding the threat landscape and staying up to date on the CVEs that can represent a zero-day vulnerability to your application. There are a ton of tools to help make you aware of the potential risks, check out all the links in the show notes. And check out Joylynn's webinar on shifting application security left at https://aka.ms/DevSecOpsDNR
• 49 minutes
Thinking High-Level Design with Billy Hollis
Why should you have high-level design in your applications? Carl and Richard chat with Billy Hollis about the concepts around high-level design and how it can help make better software. Billy talks about how high-level design addresses more than UX concerns, expanding into architecture and business workflow to think more deeply about how we use software. And of course, Billy digs into various applications we all use (looking at you, Teams!) and talks about how high-level design could help deal with the challenges around those kinds of applications. Is it needed everywhere? No - but more is needed!
• 1 hour, 1 minute
DoomSharp with Wesley Cabus and Nico Vermeir
An MAUI version of Doom? Carl and Richard talk to Wesley Cabus and Nico Vermeir about their efforts to port the venerable game Doom to C# and .NET 6 with MAUI as the UI. Wesley did the base conversion of Doom over to .NET, while Nico focused on getting the UI working through MAUI. Converting code, graphics, music, and sound effects from the 1990s into modern solutions is challenging but fun! Primarily working on the PC, there's a concerted effort to get a version running on Android devices too - and they could use your help!
• 47 minutes
Space Geek Out 2022
Ready for some space? Richard talks to Carl about all the incredible space-related stories in 2022. Starting with a record launch year - more flights to orbit than any year in history! Then the conversation digs into some cool missions around the solar system, including the Double Asteroid Redirection Test - we're learning how to protect our planet against asteroid impacts! Then on to space stations (there's more than one!) and, of course, the Moon - so many missions to the Moon! The biggest is Artemis, but there are plenty of others. And then there's the James Webb Space Telescope... what a fantastic year in space!
• 1 hour, 35 minutes
Wolverine .NET Command and Message Bus with Jeremy Miller
Jeremy Miller is back with more open-source goodness in the form of the Wolverine .NET Command and Message Bus. Jeremy talks about developing the Marten database and reaching a point with event sourcing that led to Wolverine - building the infrastructure to work with a variety of queuing solutions to act as an intermediary, a message bus, and a command bus, as needed. The conversation also digs into the current state of open-source with his projects, and the evolution toward more sustainable open-source development - there is more to come!
• 52 minutes
The Inflection Point of Large Language Models with Grant Barrett
ChatGPT, BingAI, and Google Bard are the latest examples of large language model machine learning - are we at an inflection point in technology? Carl and Richard talk to Grant Barrett of A Way with Words about the power of these new technologies to solicit reactions from many folks, including many tech journalists. Grant talks about how language conveys a sense of intelligence even when there is none to be had and the problems created by those assumptions. It is still the early days for these chatbots - will they rapidly improve or fade into another AI winter?
• 1 hour, 1 minute
Understand Web Apps using Fiddler with Sam Basu and Rosen Vladimirov
Do you know what your web app is up to? Carl and Richard talk to Sam Basu and Rosen Vladimirov about the latest versions of Fiddler. The original Fiddler for Windows is a free tool, but the Progress team has written all new products in the Fiddler space that are cross-platform and designed to work with different groups of people. Fiddler is for developers, first and foremost, letting you see the messages passing between the browser (or other clients) and the server in HTTP and HTTPS. With the new products, you can also connect to SignalR and gRPC data! Then there are tools for tech support and even embedding capabilities into your applications.
• 56 minutes
Azure API Management with Tom Kerkhove
API Management has evolved! Carl and Richard talk to Tom Kerkhove about his new role working on Azure API Management. Tom talks about using Azure Arc to deploy the API Management service into your on-premises services. The conversation digs into more of the fundamentals around API management with rate limiting, authentication and authorization, billing, testing, and more. A good API can make your company money - executed poorly and it's a massive headache. Use the tools available to make it easier!
• 53 minutes
Source Open vs Open Source and IdentityServer with Dominick Baier and Brock Allen
As of December 13, 2022, IdentityServer 4 is archived - now what? Carl and Richard talk to Dominick Baier and Brock Allen about the long, winding road of IdentityServer growing up to become a commercial product. Dom talks about the challenges of open source and building a sustainable model for an enterprise identity product. Ultimately, it resulted in a transformation from open-source to source-open - so what does that mean? Growth and sustainability!
• 1 hour
Energy Geek Out 2022
End of the year, time for a geek out on energy! Richard chats with Carl about the usual modern power generation sources, including solar and wind, and a breakthrough in the drilling method for geothermal energy. The conversation dives into small modular reactors (SMR) and the commitment in Canada to build the first SMR! Molten Salt Reactors have made some progress in 2022, but the extensive conversation is about fusion power. From the NIF announcement to Commonwealth Fusion and others - there's lots to talk about!
• 1 hour, 37 minutes
Clean Architecture in 2023 with Steven Smith
How is clean architecture evolving? Carl and Richard talk to Steve Smith about his efforts to build applications using clean architecture principles. The conversation starts with a comment from a listener about idealism around architecture - and a reminder that while there isn't one right way to do anything, using existing work, like clean architecture templates, makes it easier to do the right thing. Steve talks about the various elements that go into clean architectures and how they are often where you end up in development whether you start with a template or not - and how much of a pain it is to course-correct as the project gets larger. Sustainable software needs architecture, and clean architecture is one approach that works - check it out!
• 56 minutes
Alice and Bob Learn App Security with Tanya Janca
How do we learn about application security? Carl and Richard talk to Tanya Janca about her book 'Alice and Bob Learn Application Security.' Tanya talks about bringing positive conversations around security, enabling people to get work done while being secure. Software developers are now targets for the black hats because they often have super-user accounts and aren't following security practices as closely as others. Building secure software means developing it in a secure context - it takes practice, but is the best way to succeed in making secure software!
• 58 minutes
The Next C# with Mads Torgersen
What's next for C#? Carl and Richard talk to Mads Torgersen about what the team is working on for C# 12. Mads talks about how the language design team is organized to take ideas for C# and explore them, considering all aspects before implementation. The conversation digs into a few of the new features coming and some of the considerations, like breaking changes, that might be necessary to make a feature as good as possible. With C# nearly 25 years old, there is lots of legacy to deal with, but the future looks bright!
• 1 hour, 4 minutes
Fusion Development with Vishwas Lele
What is fusion development, and why do you want some? Carl and Richard talk to Vishwas Lele about his work with teams using the Microsoft Power Platform, including Power Apps and Power Automate. Vishwas talks about getting domain experts more involved in the development process - not just as advisors to the process but as co-creators. The role of professional developers is vital, making effective APIs and even custom-UX components for Power App development. The conversation also dives into the potential of Power Fx, an open-source language that is very much like Excel functions, providing programmability to domain experts - and perhaps a migration path for those company critical spreadsheets!
• 58 minutes
Modern Web Front End Development with Amy Kapernick
What does web front-end development look like in 2023? Carl and Richard chat with Amy Kapernick about her work helping companies build web front ends with a vast array of tools. Amy talks about how client frameworks continue to evolve, extending the so-called "big three" of Angular, Vue, and React to focus on different styles. The conversation also ranges over testing web apps, building pipelines for automated testing, accessibility, and more!