Below are the sessions for Prairie Dev Con Calgary 2020!
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:
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.
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.
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.
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.
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.
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 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!
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:
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.
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.
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.
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.
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.
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!
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.
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!
Creating secure applications is hard, as is evident by the growing number of breaches. A quick glance at sites like databreaches.net 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.
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!
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.
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.
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.
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.
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.
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.
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.
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.
C# is an open-source, mature object oriented language, used by millions of .NET developers, yet its evolution is still underway. In this session, we’ll cover the latest features that have been added to C#8 and how they work in detail so you’ll know when to use them effectively in your new .NET projects. You’ll also see the direction C# may be going with future versions of C#.