Below are the sessions for Prairie Dev Con Calgary 2020!

Adding Search Capabilities to your Applications with Elastic Search

Rod Paddock

So you need to add a search engine? Have no fear Elastic Search is here! In this session you will learn how to install and implement search solutions using the industry standard solution known as Elastic Search. In this session you will learn:

  • How to Install Elastic Search How to load your .NET objects into one or more searchable indexes.
  • How to retrieve your objects using natural language.
  • How to scale your applications using Amazon Web Services.

Advanced Fiddler Techniques

Robert Boedigheimer

Fiddler is a great free web diagnostic tool that nearly everyone uses, but typically only for very basic things. If all you need is to see the requests made between the browser and web server, the browser devtools can do that. Fiddler has many more advanced features that most developers are unaware of. It can be used to capture traffic from smartphones, tablets, and non-Windows platforms! Discover the power of manipulating requests and responses with breakpoints, the auto responder, and a visual composer. Review popular extensions for formatting JavaScript, syntax highlighting, and detecting image bloat. Go beyond the basics and learn the full capabilities of the tool and how it can improve your web development and debugging techniques today!

Angular State Management: Beyond NGRX

Frode Aarebrot

NGRX is a large opinionated library on how to do state management in Angular and is often marketed as "The Solution" to all your state management woes. But one size does not fit all. There's lots of ways to deal with state management in Angular. This talk walks through the life of an Angular app and the appropriate management tactics at different milestones.

ASP.NET Core - What is it good for?

David Paquette

Practically everything! ASP.NET Core is now a mature platform, offering developers a sometimes overwhelming set of options to choose from: MVC/WebAPI, Razor Pages, client-side vs server-side rendering, Blazor, worker services, gRPC, Windows vs. Linux, Kestrel vs in-process IIS vs nginx. In this session, we will get a high level overview of the ASP.NET Core landscape. We will start with a break down the different programming models provided by ASP.NET Core, along with some examples of when you might choose a particular programming model. We will also dive into the seemingly endless options for hosting an ASP.NET Core app.

Building Progressive Web Apps with React

Jonathan Mills

Progressive web apps are a happy middle ground between a responsive web app and a native app. They are lightweight apps designed to conform to any device, work offline, and when appropriate, feel like a native app. But all this is made possible with JavaScript frameworks you already know. Come learn how to use your existing React knowledge to build the next generation of web applications.

Code Pacman in JS

Nick Rogers

In this talk, I will demonstrate how cool ES6 is by re-creating a classic video game using javascript. Learn new syntax, watch epic live refactors, and experience the warm nostalgia of retro video games. This will give a modern treatment to a genuine classic.

Don't Cross The Streams: CQRS and Event Sourcing

Sanjeev Paskaradevan

CQRS & Event Sourcing can be good in a microservices architecture, but implementing it without fully understanding the architecture and its advantages and limitations can lead you into trouble.

Using lessons learned in the implementation of a production system that is utilizing this architecture pattern, we will go over the basics of the CQRS pattern, the Event Sourcing pattern, and how to combine both in a microservices architecture. This talk will go over the advantages and disadvantages of this pattern along with some common anti-patterns that can cause problems in your system.

Game development with DragonRuby

Lori M Olson

Have you seen “A Dark Room” running on the Nintendo Switch? Why not dip your toes into the world of 2D game development with DragonRuby? We will be introducing DragonRuby, and the DragonRuby programming environment. This innovative 2D gaming environment allows you to develop games on Mac or Windows, Linux, and Raspberry PI, in a live-coding session. We will introduce the 6 basic primitives, and show how they can be combined to create any 2D game you can dream up.

Git Under the Hood

David Crossman

When working within a project using Git, you notice a folder .git with a bunch of files and folders containing all types of information. The technical talk will cover some plumbing and porcelain commands with Git and how it manages your files within the .git folder. We will do a deep dive into how Git store data and how it all comes together to track changes for files and folders.

GitOps for Fun and Profit

Diego Casati

Wether you have one Kubernetes cluster or too many to count, GitOps should be a solution under your belt as clusters can become commodities and be disposed overtime.These are stories from how we design for failure with GitOps and Kubernetes.

GraphQL APIs and Federated Micro-Services

Kris Read

GraphQL is taking over. Why are companies like Facebook, AirBnB, GitHub, PayPal and others are replacing REST? In this talk I’ll explain GraphQL and Schema Federation, discuss the benefits, examine the challenges, and even show how to implement an API from scratch!

Growing Software Developers of the Future

Tim Rayburn

Our industry is facing a significant challenge in the coming years as our needs for new developers are going to massively out-pace the ability of higher education to produce those developers. This session will demonstrate a path forward by investing in training up new software developers ourselves.

This is not an insignificant challenge, you need to understand many things including:

  • Target demographics
  • Expected graduating skill set
  • Training requirements
  • Financial models that work, and their challenges
  • Plans for future growth and mentorship after training

This talk will address all of these models, and talk about how they can be accomplished in the small (personal mentorship) to the large (corporate bootcamps), drawing on significant experience running and succeeding at these initiatives.

How to build Large Scale React Apps

Adam L. Barrett

There are tons of resources showing you how to build web applications using React, but once your app gets to a certain size: with multiple teams working on different parts of the app at the same time, a host of micro-services and APIs to contend with, and an ever growing list of features and enhancements to be implemented, things can start to break down.

This talk is about the tools and techniques for managing the complexity of large front-end applications at scale, to keep development teams productive and bring “performance and polish” to your users.

It is presented through the lens of a React app, but is relevant for any client-side web application dealing with the problems of scaling.

Improving Web Performance

Robert Boedigheimer

This session starts with a traditional web page and shows step by step how to improve its performance and user experience! Discover performance techniques that everyone should use, then learn techniques that differ when targeting HTTP 1.1 vs. HTTP/2. Review tools that can help identify and validate sound performance best practices. Explore how to defer resource requests with lazing loading, asynchronous loading, and postponing 3rd party tag requests. Many other performance boosting techniques will also be discussed, which can reduce response time while also boosting the scalability and reliability of your site. Learn the techniques that can have the largest impact on web performance with the least amount of work.

Intro to Angular

Frode Aarebrot

Go from zero to hero in 45 minutes. This is a talk for developers interested in starting with Angular. We'll cover all the basics you need to know to build a Single Page Application and start becoming the front-end/full-stack developer you've always dreamed to be.

Make the Web Boring

Jeremy Wagner

Why make the web more boring? Because boring is fast, resilient, fault tolerant, and accessible. Boring is the essence of unobtrusive designs that facilitate interactions rather than hinder them. When we rely wholesale on JavaScript to build for the web, we’re inevitably reinventing things—things that can hinder or even fail people in unexpected ways despite our best intentions. In this session, you’ll learn why building for the web with a greater emphasis on core technologies is far from boring, but truly rewarding and exciting work that makes the web more inclusive.

Microservices Architecture Communication: Streams & HTTP

Kyle J. Davis

No one thing in microservices architecture is complicated, however putting it all together and getting services talking in a performant, fault tolerant, and logical manner is the real trick. In this talk I’ll go over both common and specialized communication patterns and illustrate how they work.

In this talk we’ll go over the different parts of the microservices architecture and how each piece has to work together. I’ll go over synchronous and asynchronous communication patterns, fault tolerant data patterns, service development and (at a high level) service deployment. I’ll illustrate these concepts visually with a microservices architecture-based example game designed to show how communication occurs between different services. Some services in the example application are implemented in Python, and those will be highlighted in the session.

Multithreaded JavaScript—Web Workers and Atomics

Jeffrey Strauss

For better or worse, JavaScript is single-threaded by design. For over 50 years Moore’s Law has described persistent exponential growth in computational power, but physical limitations have slowed that trend. Advancement now comes through the use of multiple CPUs and cores. This is fine for languages featuring threads and task-based architectures. But what about JavaScript?

Thankfully, new paradigms handle parallelism over the web. Web Worker constructs allow long-running code to execute in the background without blocking the UI. Shared Memory and Atomic operations allow true sharing of data among worker processes. Learn to leverage these exciting features to responsibly improve the performance and responsiveness of your web applications!

Real-time Web with SignalR

Anthony Chu

SignalR is a popular ASP.NET framework for real-time messaging. It was rewritten for .NET Core and new features are coming in .NET Core 3.

Learn how to get started with ASP.NET Core SignalR to build real-time apps. Then see how Azure SignalR Service makes it easy to run SignalR at large scale and brings SignalR to other programming languages through its integration with Azure Functions.

Securing a Cloud Service Used by Millions

Dylan Smith

Microsoft pays a team of hackers to intentionally try to compromise our service every few months! You’ll be surprised how often they succeed. This session is about how the Azure DevOps team at Microsoft approaches security when developing and operating the Azure DevOps service. Some of the stories I have are inspiring, and some will be horrifying!

Security for Architects and Developers

Shamir Charania

Creating secure applications is hard, as is evident by the growing number of breaches. A quick glance at sites like will show you that these breaches are occurring all over our industry, from private to public, from big to small.

The question that we need to ask ourselves is why. My take is that creating secure applications is about much more than writing secure code. In this talk, I will put security in the perspective of the process of application design. Going beyond the concepts of secure coding, I hope to showcase what it takes to truly build secure applications and highlight some tools/resources that can help you along the way.

So You Want to Build a Service Bus?

Sean Feldman

Messaging? Easy! There’re many offerings, but they’re too opinionated. It’s easy enough to roll your own with Service Bus or Rabbit. After all, how hard could it be? In this session, I’ll show everything you need to know to build the ultimate service bus of your dreams from scratch. Let’s begin!

So Your Boss Says you Need To Learn Data Science

Susan Ibach

I find many developers are confused by data science. Sure there’s lots of free online resources to go learn, but where do you even begin? It’s hard to know where to start when you don’t know what you don’t know! If you start in the wrong place you end up looking at diagrams and formulas that leave you lost and confused. In this session we’ll break data science down into a language and process developers can understand. The process from problem definition to testing to releasing code into production. The tools and terms so you know where to start for the problems you are trying to solve in your office.

Supercharged JAMstack Workflows

Joshua Comeau

As developers, we have a lot of exciting new ways to build stuff for the web: Headless CMS’, microservices, JS frameworks. As we move away from monolithic solutions, though, we’re discovering gaps.

The JAMstack is all the rage right now - by combining client-side JS, a handful of API endpoints, and some markup, we’re able to build complex websites at compile-time. This means that the sites we build are lightning-quick for our users, while still giving developers the power to build just about anything we can imagine, and the flexibility to choose our ideal workflow; we aren’t locked into a monolithic CMS walled garden anymore!

That said, we’re still in the early days of this tech stack, and there are some rough edges. For example, our content-creator friends have lost the rich live-preview editing experience that Wordpress gives them.

As an engineer at Gatsby.js, I’ve been watching this space closely, and we’ve been working to fill some of the gaps that have opened up. This talk will look at the exciting bleeding-edge stuff coming down the pike, as well as some of the downsides to this approach, and what we can do to address them.

Svelte: The Next Big Thing

Adam L. Barrett

Angular, React, Vue… the frameworks of the web rise and fall, and influence each other as new ideas and concepts change how we work on the web. So what’s the next big idea? What is the next big influencer?


I’m going to tell you about Svelte, the web framework that is going to take down the titans and influence the way we work on the web for the next several years. I’ll talk about why it’s great, what makes it different, and why I am confident that in this highly competitive space I firmly stick to the idea that Svelte is going to be the “next big thing” for the web.

Tokens and Applications and Security, oh my!

Kim Noel

Seems like all you hear about these days are Single Page Applications. Angular, React, Vue, Ember are transforming the way we think about the frontend. But what about securing these applications? This often tends to take a back seat to speed, animations and other cool features of these frameworks.

Between cookies, tokens, keeping users authenticated, and handling resource access, securing these apps can be tricky - you may even feel like you need a second page (gasp!) for your authentication setup! But we have the technology to create truly secure single-page applications. In this talk, we’ll walk through the process of securing a single-page application that will apply to nearly any SPA framework. Between Angular, React, & Vue it can be hard NOT to build SPAs these days. But having to deal with cookies, tokens, auth, & resource access - you may even feel like you need a second page (gasp!) for security. Fear not, for the technology to create truly secure SPAs is there and I’ll show you how.

Using it Right: Best Practices for Running Applications in Kubernetes

Adam Wolfe Gordon

Kubernetes is a powerful platform for running applications. It’s also extremely complex: it runs almost anywhere, is highly configurable, and can be used in many different ways. This complexity is necessary to provide such a powerful platform; it also means there are many opportunities for suboptimal configuration or usage to cause unexpected application downtime.

This talk will describe a number of best practices to follow when deploying applications to Kubernetes. Beyond prescriptive rules, we will explain the “why” of each best practice and how to implement it. We will also show how best practices can vary depending your specific Kubernetes environment and how to figure out best practices that work for you and your organization. Finally, we will introduce tools that can help you stick to your best practices.

We Deployed a Rails Application on AWS Fargate

Shamir Charania

In this talk, we walk through our journey migrating a traditional rails application from EC2 to AWS Fargate. I hope to cover the successes and challenges we faced as we balanced cost, security, and functionality to build a Heroku like solution on-top of AWS.

What is Accessibility and Why Does it Matter?

Ashleigh Lodge

Do you know what accessibility is? How about inclusive design? Have you ever heard of WCAG, POUR or ARIA? In this introduction to accessibility, you’ll learn abut assistive devices & technologies, accessibility standards & tools, and some quick and easy next steps for making your sites and applications more accessible to all users.

What Is It? How to Analyze Images With or Without Code

Susan Ibach

AI & Machine learning are daunting topics. In this session we will focus specifically on image analysis. We will start by looking at Computer Vision API services. How to call them, what do they do well? When do they fall short of our needs. Then we will examine the Custom Vision Service, a user friendly tool that allows you train models to recognize domain specific images. You can build Hot Dog/No Hot Dog in under 5 minutes! So before you start trying to figure out how to build a neural network, see if there is an easier way. No session would be complete without a great takeaway.