Speaker

Rob Richardson

Rob Richardson

@rob_rich

Phoenix, Arizona, United States

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.

Area of Expertise

  • Information & Communications Technology

Topics

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

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.

2022 All Day DevOps

November 2022

Techorama Netherlands 2022

October 2022 Utrecht, Netherlands

NDC Sydney 2022

October 2022 Sydney, Australia

Web Developer Conference '22

September 2022 Hamburg, Germany

.NET Day Switzerland 2022

August 2022 Zürich, Switzerland

Code PaLOUsa 2022

August 2022 Louisville, Kentucky, United States

KCDC 2022

August 2022 Kansas City, Missouri, United States

FullStack eXchange

July 2022 London, United Kingdom

Developer Week '22

July 2022 Nürnberg, Germany

SQL Start! 2022

June 2022

Stir Trek 2022

May 2022 Columbus, Ohio, United States

NDC Porto 2022

April 2022 Porto, Portugal

CodeStock 2022

April 2022 Knoxville, Tennessee, United States

Devintersection & AngleBrackets Spring 2022

April 2022 Las Vegas, Nevada, United States

CactusCon 2022

February 2022 Mesa, Arizona, United States

Azure Singapore

February 2022

CodeMash 2022

January 2022 Sandusky, Ohio, United States

Devintersection & AngleBrackets Fall 2021

December 2021 Las Vegas, Nevada, United States

SQL & Azure SQL Conference Fall 2021

December 2021 Las Vegas, Nevada, United States

DevFest Sri Lanka 2021

November 2021

DevFest Ado-Ekiti 2021

November 2021 Ado-Ekiti, Nigeria

Granite State Code Camp 2021

November 2021 Manchester, New Hampshire, United States

NDC Sydney 2021

November 2021

DevOps Conf 2021

October 2021

Tech Con '21

October 2021

TechBash 2021

October 2021 Mount Pocono, Pennsylvania, United States

Scenic City Summit 2021

September 2021

ContainerDays 2021

September 2021 Hamburg, Germany

Music City Tech 2021

September 2021

SPA Conference 2021

September 2021

Code PaLOUsa 2021

August 2021

TestingUy 2021

August 2021

Developer Week '21

June 2021 Nürnberg, Germany

DevSecCon24 2021

June 2021

JNation 2021

June 2021

DevFest Live

May 2021

Microsoft Azure + AI Conference Spring 2022

April 2021 Las Vegas, Nevada, United States

A.I. Day 2021

March 2021

Web Day 2021

March 2021

Virtual NetCoreConf 2021

February 2021

MVP Fusion & Friends

February 2021

DeveloperWeek 2021

February 2021 Oakland, California, United States

NDC London 2021

January 2021 London, United Kingdom

Cloud Native Kitchen

December 2020

Pulsar Summit Asia 2020

November 2020

AzConf

November 2020

Update Now 2020

November 2020 Prague, Czechia

DevFest Egypt 2020

November 2020 Cairo, Egypt

MVP Days Israel 2020

November 2020

Granite State Code Camp 2020

November 2020 Manchester, New Hampshire, United States

API World 2020

October 2020 San Jose, California, United States

Big Mountain Data and Dev Conference

October 2020 Salt Lake City, Utah, United States

DevOpsDays Boston 2020

September 2020 Boston, Massachusetts, United States

ServerlessDays ANZ 2020

September 2020

Code PaLOUsa 2020

August 2020 Louisville, Kentucky, United States

JavaScript and Friends Conference

August 2020 Columbus, Ohio, United States

LightUp

July 2020

2020 DevSecOps Days Singapore @ RSAC

July 2020 Singapore, Singapore

Camp Cloud Native

June 2020

.NET Day Switzerland 2020

June 2020 Zürich, Switzerland

CodeStock 2020

April 2020 Knoxville, Tennessee, United States

Devintersection, AngleBrackets, AngularMix Spring 2020

April 2020 Orlando, Florida, United States

CodeMash 2020

January 2020 Sandusky, Ohio, United States

Devintersection, AngleBrackets, AngularMix

November 2019 Las Vegas, Nevada, United States

DogFoodCon 2019

October 2019 Columbus, Ohio, United States

Music City Tech 2019

September 2019 Nashville, Tennessee, United States

Code PaLOUsa 2019

August 2019 Louisville, Kentucky, United States

JavaScript and Friends Conference

August 2019 Columbus, Ohio, United States

KCDC 2019

July 2019 Kansas City, Missouri, United States

NDC Porto 2019

February 2019 Porto, Portugal

CodeMash 2019

January 2019 Sandusky, Ohio, United States

dev up Conference 2018

October 2018 St. Louis, Missouri, United States

KCDC 2018

July 2018

Music City Tech 2018

May 2018 Nashville, Tennessee, United States

Stir Trek 2018

May 2018 Columbus, Ohio, United States

Rob Richardson

@rob_rich

Phoenix, Arizona, United States