Rob Richardson

Information & Communications Technology

C# .NET Node.js Vue.js Docker Kubernetes Testing DevOps Security Web JavaScript TypeScript ASP.NET Data

Phoenix, Arizona, United States

Rob Richardson

@rob_rich

Rob Richardson is a software craftsman building web properties in ASP.NET and Node, React and Vue. He’s a Microsoft MVP, published author, frequent speaker at conferences, user groups, and community events, and a diligent teacher and student of high quality software development. You can find this and other talks at https://robrich.org/presentations and follow him on twitter at @rob_rich.

Current sessions

Your Technology Your Way: Full-stack Web and Service with .NET and Node

Do you want to build full-stack with your stack? We'll build an ASP.NET website using Blazor and WebAPI, a back-end service using Service Worker and gRPC. Then we'll build the same website with Node using Express, Vue.js, gRPC, and PM2. Along the way we'll compare and contrast these technologies to empower you to use JavaScript or C# front-to-back for your next project. You'll leave with a functional sample in each, and a methodology to choose your next full-stack site.


Vue.js and TypeScript: Working Together like Peanut Butter and Jelly

Have you struggled to get TypeScript and Vue to play well together? Me too. Vue is a fantastic SPA framework, and TypeScript is a great way for catching errors faster. Together, they can boost your productivity. Join us as we peel back the layers of TypeScript and look at the tricks of the trade to get them playing well together. You'll leave with a solid methodology and code samples to get started with Vue + TypeScript.


The definitive deep dive into the .git folder

What's in the .git folder? How are commits stored? How do branches work? We'll dive deep into the objects folder, unpack commits, look at the types of DAG nodes, examine object content, and build a complete visualization of the stored content. We'll also quickly look through Git hooks, Git config, and ref logs. Come experience the zen of git.


Service Mess to Service Mesh

In our quest to secure all the things, do we jump in too quickly? We'll use Istio and Linkerd as example service meshes, and look at the features we would expect from a service mesh. We'll dive into the day-1 experience with both Istio and Linkerd, and some advanced scenarios of using the service mesh. We'll compare this to border security with an app gateway, and compare and contrast the security features, complexities, and implementation costs. You'll leave with a concrete understanding of the benefits and tradeoffs you get when you pull in a service mesh, and be ready to justify the investment.


Securing Docker Containers: Kubernetes just handles that, right?

Securing a container is like securing a virtual or physical machine. You need to understand what's installed, ensure it's patched, and reduce the attack surface. But unlike traditional servers, this is done at build time for containers. Journey with us as we build a comprehensive strategy for securing your digital assets that run in Docker, and leave with concrete steps you can apply to your DevOps pipeline today.


Redux: the MVC framework for data

The MVC Pattern provides elegant abstractions for web requests. Redux provides similar patterns for data movement in React. Angular has RxJS and Vue has VueX with similar patterns. Let's dig deep into the way data flows through the Redux, demo strategies to get started, and look at ways to debug and troubleshoot it when things go wrong. You'll leave with a solid understanding of the Redux pattern and appropriate times to use it.


Post jQuery

jQuery was a wonderful tool that paved over the irregularities of browsers and offered a simple interface for making very powerful applications. Today with evergreen browsers and modern JavaScript, we no longer need this crutch. Let's look at our favorite jQuery techniques like $.ajax() and $(...).click() and $(...).addClass() and compare this to the code we'd write in modern JavaScript. Sprinkled in are great ES6 techniques like rest and spread, promises and fetch. Challenge yourself on your next project to see if you can run in a post-jQuery world.


Mocking in Front-end and Back-end TypeScript Tests

When the goal is unit testing, it's common to swap out dependencies with fake pieces to give more control and to make tests run faster. In this code-focused tour, we’ll systematically analyze the test scenarios we want to build, then live-code mocks in two scenarios: Express and Vue. It’s easy to gain value and speed once you know how.


Minimal APIs in ASP.NET 6.0

With ASP.NET 6.0, there's a 4th coding paradigm joining MVC, WebAPI, and Razor Pages: Minimal APIs. It's a great way to create the lightest weight microservice. But are you trading everything for the small surface? We'll start with a .NET 5 project and build up to a Minimal API looking at a bunch of brand new C# 10 features along the way. Like the other 3, this is not an either/or choice, and when it makes sense, you can be really productive here too.


Local Development Techniques with Kubernetes

It's day 2. The corporate k8s cluster is humming. And our local dev story is interesting, but how do we connect the wires? Can we automatically rebuild cluster resources when code changes the same way we watch files and rerun unit tests? Can we optimize the container development workload for developer joy? Can we debug software running in containers? Let's look at Helm, Skaffold, Minikube, docker-compose and other developer-time tools to boost our productivity. You can definitely optimize for developer joy. Come be more productive.


Kubernetes Test Drive

Are you a Docker aficionado or are you new to the Docker ecosystem? Come see how Kubernetes (K8s) adds a mature solution for running containers in production and development. We'll start with containers, layer in pods, replica sets, deployments, and services. We'll dig into minikube and kubernetes in docker desktop. You'll leave with a solid understanding of the principles of K8s, and a practical set of skills for driving this container orchestrator throughout the software development lifecycle.


Kubernetes hands-on (Workshop)

Kubernetes is how you run Docker in production. Bring your laptop with Docker for Windows or Docker for Mac edge version installed. We'll walk through getting a K8s cluster fired up on Docker-Desktop, minikube, and on Azure. You'll be hosting Docker containers in development and production in no time. We'll dig deep into:

- A quick tour through Docker concepts
- The components of a kubernetes cluster
- pods, services, deployments, and replicas
- ways to scale and expose/isolate your containers
- public and private container registries
- stateful containers
- promoting from development to production
- Azure Container Service (AKS)
- Best practices for building at cloud scale
- Tips & Tricks for leveraging Docker and Kubernetes
- When not to use Kubernetes

We'll look at the commands and ecosystem around building infrastructure as code, local and cloud clusters, and best practices with containers. Come see why devs and ops love Kubernetes.


JavaScript the Grumpy Parts

We love JavaScript, but we must admit: it's weird. Why does `this` behave as it does? How does variable scope work? Why do we have such comical behavior when comparing mixed types? Let's pull back the covers of these scenarios, and learn how it truely works. You may find a new reason to fall in love with JavaScript.


JavaScript Tests in Node, the Browser, and CI

Good software practices don’t end just because you’re building a thick client in the browser. The JavaScript community is a flourishing boutique of high-quality tools and techniques. We’ll dig into some of the more popular open-source JavaScript patterns that have emerged from the Node community. We'll see mocha, chai, karma, phantom, and travis in action, look at some great techniques and patterns for browser development, and brush up on things that make JavaScript a phenomenal place to work.


JavaScript Async Deep-dive

Callbacks, promises, async, oh my! Asynchrony in JavaScript has come of age. We'll start with a quick history of the 3 techniques. Then dive in deep to async and await. How can you transition from callbacks to promises or promises to async? How can you use legacy code with await? How can your legacy code call your async functions? Whether you're using Babel or evergreen browsers, as Yoda would say, "async code write you can."


HTTPS in ASP.NET Core in Docker Linux Containers Deep Dive

ASP.NET Core lights up HTTPS by default. Running from the command line or from Visual Studio installs and trusts self-signed certificates so we don't get the browser error when debugging. But how do we get this trust experience when running inside Linux Docker containers? Let's dive deep into certificate trust, how Linux stores certificates, and how ASP.NET Core uses certificates. With that knowledge in place, let's build up Docker containers for both development (self-signed) work, and containers that have real, trusted certificates should you choose a Layer-4 load balancer in production.


Git Scenarios: How Do I Fix That?

Have you ever wondered how to get out of a bad merge? Have you ever gotten stuck trying to push your changes? Git is a wonderful and empowering tool, but it's not your father's version control system. Bring your Git questions for this no-slides demo of Git command line and GUI tools. We'll harvest your curiosities, add in some common concerns, and run through these scenarios together. Have an open-source project you're stuck on? Bring the GitHub URL, and not only will we discuss it, I'll submit a pull request with the changes we build.


Git 101 and GitHub 102

Git is now the defacto-standard version control system. We almost take for granted that we all know Git. But Git is different from your father's version control system. Have you always wondered how it worked? What's the difference between Git and GitHub? How do I get involved in open-source? And what's a Pull Request anyway? Come join us for this hands-on look at Git and GitHub.


Gaining Confidence with Cypress Tests

Have you ever wanted to refactor mercilessly but didn't want to break the fragile tower? Or have you ever pushed to production only to spend the next few days cleaning up the regressions? You need integration tests, and Cypress is a great, fast way to build them. With a simple JavaScript or TypeScript interface, you can automate browsers to hit those critical functions in your app to prove it works as expected -- this time and every time. Join us to dive into building Cypress tests and leave with confidence to refactor your way to greatness.


Docker for the Windows Developer

Docker is carefully tucked between virtualization, continuous deployment, and pure awesome. We'll look at the commands and ecosystem around building infrastructure as code, deploying a swarm, and sharing images on Docker Hub. We'll see how easy it is to create Linux and Windows docker images, and run both single containers and a whole system. Come see why devs and ops love Docker.


Databases in the Microservices World

Web technologies have come leaps and bounds. But are you still using the tired old database from last generation? Let's look at the methodology of microservices, compare it to bounded contexts, and look at ops tasks for micro-databases. Let's tour all the flavors of databases, understand their pros and cons, and when you would choose it. You'll leave with a roadmap for moving from data-monolith to micro-databases.

Why do we refactor apps into microservices but end up with a monolith database? We look at how to handle the monolithic database (bounded contexts), what we need to get to micro-databases (automation), and now that we have lots of databases, we explore the types of databases and when you'd use them: SQL, NoSQL, time-series, graph, object store (file system), etc.


Database DevOps with Containers

Unlike CI/CD pipelines for applications, we can't just delete the database and pop up a new one with each new version. Let's start with the production database, and get SQL Server content to developers in containers, and then flow schema and lookup data back into production with migration tools. You can bring the reliability and automation of CI/CD pipelines to Database DevOps with containers.


Data Warehouse, Data Lake, Data Mesh, Oh My: The History of Data Storage

Are you looking to modernize your data infrastructure? Or are you confused at what all the terms mean? Let's look at the history of data storage from the humble beginnings of the relational database through the modern cloud-native data mesh paradigm. Data storage has evolved, and you can too.


Containerized Deployments for your SPA and API

You've built a SPA and an API backend, and you're now looking to deploy with ease. Docker is the natural fit, but where do we begin? We'll use the Vue CLI and the dotnet CLI to startup our codebases, then craft Dockerfiles to deploy these with ease in various configurations. Whether you'd rather deploy both parts together or scale different pieces separately, Docker can empower you to deploy your solutions at cloud scale.


Container Scanning: Run Fast and Stay Safe

Have you struggled to get security baked into your DevOps process or have your security needs taken a back seat to "run fast and break things"? Just because we’re moving fast doesn't mean we can’t be secure. Join us for this deep dive into adding container scanning to a DevOps pipeline. We'll enumerate the security tool categories, and give you tips for adding these tools to your development workflow, build pipeline, and production monitoring setup. You can achieve a robust security posture and still release continuously.


Choosing from the many ways to Docker in Azure

You're ready to go cloud native with containers. Now where do you begin on Azure? There's a dizying amount of container options available in Azure. How do they compare? Which is best for your organization? Come with us through a tour of each Azure Container hosting technology, the pros and cons of each, and decide for yourself how best to host your containers on Azure.


Building Stateful Workloads in Kubernetes

It's day 2. Kubernetes is running. You have your deployments and services set. Now how do you migrate the data store? Let's journey together on this code-focused tour through ConfigMaps, Secrets, Persistent Volumes, Persistent Volume Claims, and StatefulSets. We'll craft and launch a strategy to care for your users' data in this new container world. You can power your business on Kubernetes: stateless or stateful.


Build Components in Context with Storybook

Have you ever wanted to document how it works to others? Or wanted to understand all the states of your component without having to push next a dozen times in the app between refreshes? Storybook provides a canvas for developing and documenting web components in all their states. It's a great harness for experiencing your components how consumers will. Join us for this journey into building a component with Storybook as our guide.


At The Helm of Kubernetes: Repeatable Infrastructure Creation for Mere Mortals

As we get deeper into Kubernetes yaml files, we see a lot of duplication. Can we move to a higher level that eliminates this duplication? Let's look at Helm, a tool both for templating k8s yaml files and for installing complex infrastructure dependencies as one package. With Helm 3, we now have deeper integration and more security when working with Kubernetes. Join us on this path to a simpler, more repeatable, and more discoverable yaml experience.


ASP.NET in Linux and Windows containers

Docker is carefully tucked between virtualization, continuous deployment, and pure awesome. ASP.NET Core is a cross-platform, open-source reimagination of the Microsoft stack. They come together in beautiful synchrony. Whether you're targeting Linux or Windows workloads, you can build your ASP.NET app into containers, and still have the F5 debugging experience you expect.


ASP.NET Core in Containers on .NET 6

Docker is carefully tucked between virtualization, continuous deployment, and pure awesome. ASP.NET Core is a cross-platform, open-source reimagination of the Microsoft stack. They come together in beautiful synchrony. Whether you're targeting Linux or Windows workloads, you can build your ASP.NET app into containers, and still have the F5 debugging experience you expect.


Anatomy of a Web Request

What happens after you type the web address before the page renders? Is it a black box to you? It doesn't need to be. We'll peel back the onion and look at DNS, HTTP, TLS, and briefly discuss the client render pipeline and windows metaphors. Ultimately we'll see the internet is not a black box. Open the lid and look inside.


A Database DevOps Pipeline

Are your automation practices accounting for the database? How do you verify database software quality? Most importantly, how do you care for customer data as the schema evolves? Let's dig into building a CI/CD pipeline for databases. We'll leverage Red Gate tools and containers for automation, testing, and push-button deployment. You can bring DevOps to the database.


[Workshop] Kubernetes hands-on

Kubernetes is how you run Docker in production. Bring your laptop with Docker for Windows or Docker for Mac edge version installed. We'll walk through getting a K8s cluster fired up on Docker-Desktop, minikube, and on Azure. You'll be hosting Docker containers in development and production in no time. We'll dig deep into:

- A quick tour through Docker concepts
- The components of a kubernetes cluster
- pods, services, deployments, and replicas
- ways to scale and expose/isolate your containers
- public and private container registries
- stateful containers
- promoting from development to production
- Azure Container Service (AKS)
- Best practices for building at cloud scale
- Tips & Tricks for leveraging Docker and Kubernetes
- When not to use Kubernetes

We'll look at the commands and ecosystem around building infrastructure as code, local and cloud clusters, and best practices with containers. Come see why devs and ops love Kubernetes.


Level-up Your DevOps with GitHub Actions and Kubernetes

Are you looking to rapidly deploy your content? Are Docker containers in your future? Come for this demo-only presentation where we start from scratch, live-code a Dockerfile, build up a DevOps pipeline in GitHub Actions, and deploy to Kubernetes. Once setup, commit, and watch the magic flow into place. You too can automate your deployments.


Past and future events

philly.NET Code Camp 2022

4 Mar 2022

Azure Singapore

1 Feb 2022 - 28 Feb 2022

CactusCon 2022

4 Feb 2022 - 5 Feb 2022
Mesa, Arizona, United States

CodeMash 2022

11 Jan 2022 - 14 Jan 2022
Sandusky, Ohio, United States

SQL & Azure SQL Conference Fall 2021

7 Dec 2021 - 9 Dec 2021
Las Vegas, Nevada, United States

Devintersection & AngleBrackets Fall 2021

7 Dec 2021 - 9 Dec 2021
Las Vegas, Nevada, United States

.NET Conf 2021 - Pakistan

27 Nov 2021

WeAreDevelopers JavaScript Congress 2021

23 Nov 2021 - 25 Nov 2021

DevFest Sri Lanka 2021

20 Nov 2021

Porto Tech Hub Conference 2021

18 Nov 2021 - 19 Nov 2021

DevFest Ado-Ekiti 2021

13 Nov 2021
Ado-Ekiti, Ekiti, Nigeria

PASS Data Community Summit 2021

8 Nov 2021 - 12 Nov 2021

Granite State Code Camp 2021

6 Nov 2021
Manchester, New Hampshire, United States

NDC Sydney 2021

2 Nov 2021 - 5 Nov 2021

Azure Community Conference 2021

29 Oct 2021 - 31 Oct 2021

Encuentros Arqconf 2021 // 2021 Arqconf meetings

28 Oct 2021 - 29 Oct 2021

Big Mountain Data and Dev Conference

22 Oct 2021 - 23 Oct 2021

TechBash 2021

19 Oct 2021 - 22 Oct 2021
Mount Pocono, Pennsylvania, United States

DevOps Conf 2021

22 Oct 2021

Tech Con '21

20 Oct 2021 - 21 Oct 2021

Northern VA CodeCamp Fall 2021

16 Oct 2021

DataSaturdays #13 - Minnesota - Oct 16 2021

16 Oct 2021

DBCC International 2021

15 Oct 2021

Virtual NetCoreConf 2021 - 2

8 Oct 2021 - 10 Oct 2021

Scenic City Summit 2021

24 Sep 2021

ContainerDays 2021

21 Sep 2021 - 23 Sep 2021
Hamburg, Germany

SPA Conference 2021

13 Sep 2021 - 17 Sep 2021

Music City Tech 2021

15 Sep 2021 - 17 Sep 2021

PowerShell, DevOps and Cloud Conference

16 Sep 2021 - 17 Sep 2021

DevSecOps Days Los Angeles 2021

15 Sep 2021

PWA Pilipinas Anniversary Month 2021

8 Aug 2021 - 29 Aug 2021

Code PaLOUsa 2021

18 Aug 2021 - 20 Aug 2021

TestingUy 2021

2 Aug 2021 - 7 Aug 2021

Cloud Native Days with Kubernetes

4 Aug 2021 - 5 Aug 2021

Destination: Automation 2021 - APIs, Microservices, Kubernetes and Mesh

14 Jul 2021

Developer Week '21

28 Jun 2021 - 2 Jul 2021
Nürnberg, Bavaria, Germany

Web Dev Week Guinea

21 Jun 2021 - 26 Jun 2021

DevSecCon24 2021

23 Jun 2021 - 24 Jun 2021

JNation 2021

16 Jun 2021

RMISC 2021 Virtual Conference

8 Jun 2021 - 10 Jun 2021

DevFest Live

22 May 2021

Virtual Symposium - SQL Server & Azure SQL

5 May 2021 - 7 May 2021

Virtual Global Azure - Verona 2021

16 Apr 2021 - 17 Apr 2021

Global Azure 2021 - Spain

15 Apr 2021 - 17 Apr 2021

Global Azure Bootcamp (Virtual) – Greater Toronto Area Edition

17 Apr 2021

Data Saturday #5 Redmond 2021

17 Apr 2021

Global Azure Virtual 2021

15 Apr 2021 - 17 Apr 2021

Global Azure Bulgaria 2021

17 Apr 2021

☁️Global Azure Mexico 2021 🇲🇽

17 Apr 2021

Microsoft Azure + AI Conference Spring 2022

3 Apr 2021 - 8 Apr 2021
Las Vegas, Nevada, United States

A.I. Day 2021

12 Mar 2021

Web Day 2021

4 Mar 2021

Virtual NetCoreConf 2021

27 Feb 2021 - 28 Feb 2021

Virtual Scottish Summit 2021

22 Feb 2021 - 27 Feb 2021

MVP Fusion & Friends

23 Feb 2021

DeveloperWeek 2021

17 Feb 2021 - 19 Feb 2021
Oakland, California, United States

NDC London 2021

25 Jan 2021 - 29 Jan 2021
London, England, United Kingdom

Data Saturday Guatemala 2021

23 Jan 2021

dotNet OpenSource Days 2020

18 Dec 2020

Cloud Native Kitchen

16 Dec 2020

IT Pro|Dev Connections 2020

12 Dec 2020 - 13 Dec 2020

Pulsar Summit Asia 2020

28 Nov 2020 - 29 Nov 2020

Update Now 2020

23 Nov 2020 - 26 Nov 2020
Prague, Hlavní město Praha, Czechia

AzConf

24 Nov 2020 - 26 Nov 2020

DevFest Egypt 2020

20 Nov 2020 - 21 Nov 2020
Cairo, Egypt

MVP Days Israel 2020

19 Nov 2020

Granite State Code Camp 2020

14 Nov 2020
Manchester, New Hampshire, United States

API World 2020

27 Oct 2020 - 29 Oct 2020
San Jose, California, United States

Big Mountain Data and Dev Conference

22 Oct 2020 - 23 Oct 2020
Salt Lake City, Utah, United States

Couchbase Connect.ONLINE

14 Oct 2020 - 16 Oct 2020

DevOpsDays Boston 2020

28 Sep 2020
Boston, Massachusetts, United States

Northern VA CodeCamp Fall 2020

26 Sep 2020

ServerlessDays ANZ 2020

4 Sep 2020

Code PaLOUsa 2020

19 Aug 2020 - 21 Aug 2020
Louisville, Kentucky, United States

JavaScript and Friends Conference

13 Aug 2020 - 14 Aug 2020
Columbus, Ohio, United States

Call for Speakers - Global AI Fest: Virtual Artificial Intelligence and Machine Learning Conference

31 Jul 2020
Reston, Virginia, United States

Virtual Azure Community Day

28 Jul 2020 - 29 Jul 2020

LightUp

14 Jul 2020 - 15 Jul 2020

2020 DevSecOps Days Singapore @ RSAC

14 Jul 2020
Singapore, Singapore

Camp Cloud Native

23 Jun 2020

.NET Day Switzerland 2020

8 Jun 2020
Zürich, Zurich, Switzerland

CodeStock 2020

17 Apr 2020 - 18 Apr 2020
Knoxville, Tennessee, United States

Devintersection, AngleBrackets, AngularMix Spring 2020

5 Apr 2020 - 10 Apr 2020
Orlando, Florida, United States

CodeMash 2020

6 Jan 2020 - 10 Jan 2020
Sandusky, Ohio, United States

Devintersection, AngleBrackets, AngularMix

17 Nov 2019 - 22 Nov 2019
Las Vegas, Nevada, United States

DogFoodCon 2019

3 Oct 2019 - 4 Oct 2019
Columbus, Ohio, United States

Music City Tech 2019

5 Sep 2019 - 7 Sep 2019
Nashville, Tennessee, United States

Code PaLOUsa 2019

21 Aug 2019 - 23 Aug 2019
Louisville, Kentucky, United States

JavaScript and Friends Conference

2 Aug 2019
Columbus, Ohio, United States

KCDC 2019

17 Jul 2019 - 19 Jul 2019
Kansas City, Missouri, United States

NDC Porto 2019

26 Feb 2019 - 1 Mar 2019
Porto, Portugal

CodeMash 2019

7 Jan 2019 - 11 Jan 2019
Sandusky, Ohio, United States

dev up Conference 2018

8 Oct 2018 - 10 Oct 2018
St. Louis, Missouri, United States

KCDC 2018

11 Jul 2018 - 13 Jul 2018

Music City Tech 2018

31 May 2018 - 2 Jun 2018
Nashville, Tennessee, United States

Stir Trek 2018

4 May 2018
Columbus, Ohio, United States