Sessions

Sessions

Filter based on category or technology!


AI, the Enterprise, and You: A Primer and Post-Mortem

David Wesst

AI

Using artificial intelligence (AI) to solve real work problems is no longer science fiction. AI is something that is becoming more common in our daily lives, and it has the potential to enhance the way people use technology in their daily activities. The University of Manitoba is just one such enterprise that is already looking into how AI can improve the student experience and aid our staff in doing their day to day tasks.


Angular Cover to Cover

Alexander Wiebe

Web

Take a journey through Angular continuous integration and deployment to the cloud. This hands-on coding voyage starts with introducing the Angular CLI to generate, update, and later scaffold out the project. Once the project is working Jest snapshot tests serve as a lighthouse to guide development. Next, Visual Studio Team Services (VSTS) is used for source control, running tests, and deploying to multiple environments. Lastly, the talk ends on getting the Angular app onto Microsoft Azure.


API First Design with OpenAPI (aka Swagger)

Craig Norman

Dev

REST APIs were introduced by Roy Fielding in 2000. The OpenAPI specification began development in 2010. Open API gives developers a standard way of expressing their API in either YAML or JSON.

This talk will focus on some the basics of REST and along the way I plan to show concrete examples of how you can document your API using the Open API spec. I will talk about some of the basics of HTTP and how the use of verbs, status codes and headers can make for a cleaner API. I will then dive into how to make choices for routes for simple resources, resources with relationships and more complicated requests like search. We will also explore cases where REST may not work out so well and explore techniques that can compliment REST APIs.

Finally, I will talk about the payoff of using OpenAPI for documentation. Including automatic client generation, rich UIs for documentation and the ability to generate mocks in almost any language.


Are we doing the Right Work?

Gary Pronych

Dev

We have learnt a lot from the use of user stories to increase the efficiency of activities. However, can we be sure these are the most effective activities? In an era of digital and transformation, how do technologist assist and/or lead transformation?

In this session, we will focus on the customer journey to identify a preferred path for personas to achieve the desired service. Once we have defined the journey, we will discuss how to identify digital enablers to improve the experience for our internal and external customers.


Async and Await with Node and Express

Rob Richardson

Web

Express is the defacto Node web server, but it's built with callbacks. Can we use modern JavaScript like async and await? Let's dive into building routes with modern JavaScript, and how to write tests that prove they work.


Azure API Management and the Curious Case of Securing API's

Joel Hebert

Cloud, Dev

The Owasp Top 10 saw a new entry for 2017 - Underprotected APIs. What if there was an appliance that could aid? What if a set of re-usable libraries for ASP.NET Web API were in place to aid? The curious case of securing API's is an important one: secure or be left UNDERPROTECTED!

Oversight and real world experience is securing API's in Azure via the Azure Api Management SAAS. A series of techniques involving IP Filtering, API Keys, Shared Secrets, x509 Certificates, OAuth Client Credentials Grant,HttpFingerprinting Mitigations, Mutual TLS Authentication (front and back end), and more will be demonstrated. Effective creation of base layers in ASP.Net WebAPI for re-usable security constructs will be shown in parallel.

Your take away: Effective base layer creation in API's that work with your Azure API Management Stack; API Management Techniques for securing your API's.


Beyond Lift-and-Shift: Which Cloud Services Should I Choose, and Why?

Lori Lalonde

Cloud

Looking to modernize your current product offering, but confused about which cloud service to choose? Between Azure Service Fabric, Azure Container Service (AKS), and App Services (and more), the choices can be overwhelming. As an architect, how you do you know which service is the right one to use? In this session, we will explore use cases to demonstrate when to use Azure Service Fabric, Azure Container Service (AKS) and Azure App Services. You will walk away with a better understanding of how to assess your current architecture and product roadmap, enabling you to make those decisions going forward.


Beyond the basics with F#

Shane Charles

Dev

You've looked at F# and even have a few scripts you've written laying around your hard drive. Let's take a little deeper look into the world of F# and functional programming. We'll start with some basics, active patterns, computation expressions, and finish with an Azure function. All of this will happen while we take full advantage of F#'s REPL and functional paradigms.


Blazor - Build Amazing Apps with .NET in the Browser!

David Paquette

Web, Dev

Browsers now universally support Web Assembly which opens the door to new languages and coding paradigms for building client side web applications. In this talk, we will introduce Blazor, a framework for building client side web apps using .NET. That's right, .NET (and Razor) running natively in the browser! No, this isn't Silverlight, this is infinitely more awesome than Silverlight.


Building a GraphQL Client in JavaScript

Joe Karlsson

Web

GraphQL is the future of API. Together we will start with the basics and the philosophy behind GraphQL. We will answer the following questions

  • What is the philosophy behind GraphQL?
  • How do you architect a scalable schema?
  • How can GraphQL boost productivity?
  • How can you avoid common pitfalls?

We will then get a GraphQL server up and running together, while focusing on exploring real world patterns for architecting our schema. We will discuss and implement practical steps to improve query performance, error handling and caching.


Building Great Solutions with PowerApps and Flow

David Drever

SharePoint

By now, nearly everyone has heard of PowerApps and Flow. In fact, many of us have seen these fantastic solution building tools Microsoft created for Office365 in action. While many believe the tools were built for SharePoint they were in fact created to integrate with nearly any system. In this session we will create a PowerApps and Flow based solution from concept to deployment. The solution will utilize PowerApps for data gathering and then integrate two completely separate technologies using Flow. In the end you will learn a great deal about utilizing these two great technologies to make awesome solutions for your users with minimal development and deployment time.


Building High Performance React Applications

Joe Karlsson

Web

React is built with performance in mind. But when is React slow? In this talk we'll discuss common bottlenecks in React and when you might be making your program work harder than it should. We will discuss how Best Buy builds components that stay fast, even during the enormous stress of Black Friday traffic. You will learn practical ways to speed up your real world React applications today.

This talk is for developers curious to learn how to make high performance React applications. You may or may not have already used React, but to get most out of the talk, you should be familiar with the basics of JavaScript.


Code Kata - Become a Better Software Developer

Quinn Wilson

Dev

Miyamoto Musahi said "You can only fight the way you practice" - The goal of the Code Kata is to practice and master technique in an intentional way so that when you are ready to code you have the tools in your tool kit.

By intentionally practicing in a repetitive manner the learner develops the ability to execute those techniques in a natural, reflex-like manner. They will become automatic, like the muscle memory you gained "riding a bike"

Join me as I discuss how doing Code Kata has revolutionized the way I learn and how it can help you level up in your current language or learn a new one, why it's so successful, and how to get the most from your practice.

No one should be trying to learn to code when that deployment goes bad or when the production app goes down.


Cool Web Visuals with React Components

Eric Cote

Web

In this session, we’ll talk also about the difficulties of visualizing data from the web. We are going to take various REST data from the Internet and graph it using various libraries from React. We will also see how to add feedback with easy to use animations.


Cost Saving Measures in the Cloud

Lori Lalonde

Cloud

Your organization has made the move to Azure, but you are concerned that spending has spiralled out of control. It has been a challenge to keep up with the various offerings and understand how to maximize your budget in the cloud. It seems that each Azure service has a different pricing model, and you are at a loss on how you can make the most of cloud services without breaking the bank. Join Lori in this session to learn tips and tricks which will enable you to do more with less in Azure.


Demystifying Performance Timings

Jeremy Wagner

Web

If you’ve ever experimented with the navigation and resource timing APIs in the browser, it can be a daunting task to understand the performance timings they provide. What’s the difference between connectStart and fetchStart? Where does SSL time figure in? What the heck does domInteractive mean, and how is that different from domComplete? What order do these timings even occur in?

In this talk, we’re going to demystify these performance timings. We’ll define them, place them in proper order, and you’ll learn how to quantify the time your site and its assets are taking to load in distinct phases. All you’ll need is a basic working knowledge of JavaScript, and simple arithmetic skills. If you’ve wanted to make sense of performance timings, this is the talk for you!


Denial Of Service - A Landscape Overview

Joel Hebert

Dev

Distributed Denial of Service is a fire and hold pattern? Think again! Come discover the techniques that are being used to create new attack vectors and talk about common misconceptions. Not a security professional? No worries, this session is for the modern developer.

This session will showcase the current landscape of modern Denial of Service (DoS) and DDoS (Distributed DoS) attacks and techniques for the modern developer. The goal is to have a comprehension of what comprises an attack, the various types of attacks that are possible as well as some defense. A discussion on motivations, risks, tooling, attacks and a general oversight will be discussed.


Designing Microservices

Simon Timms

Dev

"Microservices are all the rage but how do you design them to be scalable and reliable? In this session, we'll explore how to build services to avoid some of the pitfalls of microservices. Docker and Kubernetes are simply orchestration platforms on which you build and cannot solve the thorny problems of dividing up services. In this whirlwind talk, we'll briefly explore * isolation * autonomy * single responsibility principle in the large * service mobility * data autonomy * DDD * event storming * CQRS * event stores Renounce your conviction that immediate consistency is crucial and join the microservices movement."


Faster Fonts for Speed Fanatics

Jeremy Wagner

Web

Fonts! Guess those are a big thing now. You're likely familiar with at least getting custom typefaces up and running. You probably even know some neat tricks beyond the basics, but do you know how to make your fonts fast? I mean, really fast? Fast is important. Fonts are part of the critical request chain. If you're not paying attention to your fonts beyond merely slapping up a Google Fonts link tag, you might be missing some big opportunities to speed things up. Stuff like preloading fonts, using font-display to render fallback text faster, more creative sub-setting choices, and electing to avoid non-essential typefaces specifically for users on limited data plans. If fast is your thing, zip into this session to allay your font fears, and learn to tune up your typefaces for maximum speed!


Full Fun Web with SAFE Stack

Shane Charles

Web

A difficulty developers face with modern web stacks is a requirement to learn several different languages. SAFE Stack provides a functional end-to-end solution complete with F#'s static typing.

We'll build an application and deploy it to Azure. Along the way we'll learn about the capabilities of the SAFE stack, Elm architecture, and transpiled React front-ends. We'll do this while taking full advantage of immutability, the Fable compiler, and a shared type safe domain between our client and server.


Functional Programming With Haskell

Quinn Wilson

Dev

"Functional programming patterns and concepts have been making their way into every (actively developed) language I have worked with. I first learned functional programming concepts from an excellent training tool in javascript - I learned a lot but I have since discovered that it was a terrible garbage dump of compromises to learn functional programming in javascript. I've been learning and using Haskell to solve code katas for a couple of years now. The language, the compiler, the libraries, the tooling, the ecosystem and the community all play big roles in why Haskell a great tool to work with. Join me in a session where I will share a bit about my journey - I will kick the tires with the language, show some ways that Haskell elegantly solves problems, talk about how working with a *pure* programming language teaches you about all other software development and look at the tools I used along the way."


Git Scenarios: How Do I Fix That?

Rob Richardson

Dev

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.


Growing a Dev Team from Bootstrap to Enterprise

Scott Connerly

Dev

Tooling, testing, processes, and standards are all crucial to keep enterprise software running reliably. But at what stage in the new-product process do you integrate each, and to what degree? This talk will share my experience building a new product, new team and new infrastructure from scratch.


High Performance .NET Data Access with Dapper

David Paquette

Dev

Does your .NET application really need full power of Entity Framework or (shudder) nHibernate? Let's take a look at the popular micro ORM Dapper.

Dapper is a popular micro Object Relational Mapper (ORM) for .NET. In this session we will take a deep dive into Dapper and understand why it's so much faster other heavier ORMs like Entity Framework. We will go beyond the basics of loading and saving data and look at some advanced scenarios. We will also make some comparisons to Entity Framework to understand what features and conveniences we give up when using a micro ORM.


How Functional Programming Made Me A Better Developer

Cameron Presley

Dev

With the rise in popularity recently, functional programming has become "The Next Big Thing". As of today, there are tons of frameworks and tools that can be used to for front-end, back-end, desktop, and mobile development. With that being said, the majority of us are still using object-oriented languages for our day jobs and don't need to learn functional programming, right?

In this talk, I'll walk you through my experiences learning functional programming over the last year, how my style of programming has changed, and now how I think about programming with regards to both functional and object-oriented paradigms.


How To Have Code Reviews Developers Actually Want

Cameron Presley

Dev

This phrase can stir up a lot of emotions for people. For some, it's aggravation because they're a waste of time, for others, it's stressful because it feels like you're getting a review. However, for some, it's a great learning experience that leads to the team improving. Do you want to be in the latter group? Then this talk is for you!

In this talk, we'll start by looking into the goal of code reviews and why we should be doing them. From there, I'll show you the common mistakes that teams make with code reviews and how to fix them. To wrap things up, I'll show you what I do when performing code reviews.

Intended for developers of all levels, attendees will understand the reason why we should have code reviews, signs of bad reviews, signs of good reviews, and have some ideas to take back with them.


Intro to Property Based Testing

Shane Charles

Dev

Unit tests help prove our code is correct and protect us during changes. Unit testing does have some limitations. Property Based Testing can augment our tests and hit those inconceivable cases. We'll see what property based testing is, how to get started, and some common patterns to ease our path.


Microservice Mythbusting

Simon Timms

Dev

You've all heard the myth that microservices are the way to build applications, kicking monoliths to the curb. But are microservices all they are cracked up to be or are they turning one problem into microproblems? In this talk, we'll explore what makes a microservice, how they help and how they hinder. Without talking about any specific technologies we'll try to answer the question: Do I need to use microservices in my project? Don't try this talk at home, we're professionals.


Microsoft's DevOps Transformation Story

Dylan Smith

Keynote

This is the story of how the VSTS team transformed from shipping an on-premise server product every couple of years, to shipping a cloud service multiple times a day. In the process, almost everything about how this team of 800 people work has changed. We had to figure out how to do agile at scale, how to transform into a microservice cloud architecture, complete restructure of teams and roles, threw out a suite of 10’s of thousands of tests and started over, went from almost 0 telemetry, to 8+TB/day and figuring out to do anything meaningful with all that data. Many mistakes were made along the way, and lessons learned that I’ll be sharing.


Multilingual React Websites

Eric Cote

Web

In this session, we are going to take a look at various libraries to make our React website bilingual or multilingual. This is still not as easy as it could be since there are multiples approaches that can be taken. We’ll take a look at a few libraries to solve this problem, including the pros and cons.


SharePoint Site Architecture: Flat, Deep or Somewhere in the middle?

David Drever

SharePoint

Should you go deep with your SharePoint site architecture using only a few site collections and many sub sites, or should you stay flat by having a lot of site collections and very few or no sub sites within? In this "he says, she says" session, Dave and Joanne will share pros and cons of different Site Architecture options in SharePoint. Whether you've been in SharePoint for awhile or in the throes of a migration project, it's never too late to re-evaluate the way you've planned out your sites. Like most things in technology, decisions you make today may cause re-work down the road. This session isn't about what is right in ALL cases, but it will arm you with the knowledge you need to make an informed decision on the site architecture that will work best for your environment.


The Variable Crimes We Commit Against JavaScript

Julka Grodel

Web

Have you ever put a value into a JavaScript variable, and then been unable to use it where you needed it? Or created it and unintentionally overridden something you thought wouldn't be affected? JavaScript has an unusual way of handling where variables are available, we call this ""where"" a scope. In this talk, we'll go over how JavaScript variables 'bubble' up into higher scopes, how to restrict them to just where you want them, and how this affects variables in your functions.

Scopes in JavaScript are a misunderstood aspect by many developers and can create frustration when troubleshooting code. They're also a common topic in technical interviews. This talk doesn't require any knowledge of JavaScript specifically, but a proficiency in some programming language is helpful.


Web Extensions Solve All Enterprise-y Everythings

David Wesst

Web

Did you know that Web Extensions aren't just for changing web page backgrounds and adding goofy icons? No, no, it's true! You can even u>se them in the enterprise to solve all the things!

Need to add functionality to an application you don't own? No problem. Want to integrate something with your custom enterprise application? We got you. Tired of that legacy application constantly dragging down your solutions? Consider it done.


Will You Help Me End Pixelated Images on the Internet?

Julka Grodel

Web

Have you heard about how Scalable Vector Graphics can look great at any resolution and can take up less space than other images? Have you ever taken a look at the code behind them? Let me introduce you to the XML format that is SVG, styling them and some transformations so you can begin putting them to work on your site. This talk assumes some knowledge of HTML or XML, and a bit of CSS.


Zen and the Art of Docker

Scott Connerly

Dev

A primer on the basic concepts of Docker containers, the Docker Way to orchestrate services, how to set up a manageable local dev environment, and finally a step-by-step guide to bring your containers to AWS's Elastic Container Service.