Below are the sessions for Prairie Dev Con Winnipeg 2019!
Filter based on category or technology!
Virtual Nodes are a Preview feature in AKS that allow you to provision pods on Azure Container Instances and only pay per second execution time. In this session I will demonstrate and discuss some of the pros and cons of running a serverless (or semi-serverless) Kuberenetes cluster.
Netflix is a large, ever changing ecosystem system serving millions of customers across the globe through cloud-based systems and a globally distributed CDN. This talk will cover my experiences over the past four years and share a few useful lessons learned from operating at “reasonable” scale.
Have you ever looked at the Web Content Accessibility Guidelines (WCAG)? Like most standards documents, they’re dry and not very clear, so let’s make them more accessible! I’ll strip the WCAG docs down to their basics and introduce various tools you can use to check the accessibility of your website or app. Whether it’s an audit tool such as aXe or WAVE, a colour contrast tool built into your browser, or a colour-blindness simulator, you’ll learn how to use these tools, interpret the results, and create an accessibility checklist and a plan for fixing common issues.
User: We need to add the capabilities of Google Search to our application. Developer: When do you need this? User: Next week would be Greaatttt! Developer: OH!
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:
In a rapidly expanding company like Bold Commerce, validating our e-commerce applications using browser based end to end testing is critical. Scaling e2e automation across our growing number of product teams requires features such as a low barrier to entry and the ability to adapt to future changes in testing technology.
We have found that CodeceptJS meets these requirements and more. CodeceptJS combines multiple testings tools into one unified API along with a collection of components that promote scalable construction patterns.
The overall theme of this presentation is how Bold is adopting e2e automation across it’s many product teams and how CodeceptJS is able to adapt as our needs grow and change.
At ArtMoi, we use Laravel to do the heavy lifting for all of our new development. What does that mean? Well, some of the things we use in the framework to build our API are:
Whether you find yourself working in PHP for the first time, are a seasoned PHP developer who has skimmed the docs or whether you’re a daily user of Laravel; My hope is to give you the confidence to use some of the best features of PHPs most popular framework.
An exciting retelling of the continuous integration and delivery story at Netflix and how we’ve managed to stay on top of quite explosive infrastructure growth.
We’ll focus on tools and techniques that should be generally applicable to organizations of all sizes.
React is built with performance in mind. But when is React slow? React is filled with hidden performance issues that conspire to slow down your code and ruin the user experience. Learn exactly what is fast, what is slow, and what you can do to squeeze that last bit of performance out of your React code.
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 will cover:
Today businesses run on software, and the quality of that software is directly affected by the level of trust the team members responsible for that software have with each other - from management to developers to operations folks to data administrators - everyone has a hand in the success of software, but without trust, that success is hampered. What can you do to improve the levels of trust in your team? Join Richard Campbell as he discusses his experiences building trust within teams with time, effort, honesty and pizza.
Automated UI tests are a great way to quickly validate full stack behavior in your application. They complement unit tests by testing your entire system. Canopy is a powerful and intuitive open source tool for writing automated tests for web applications. It provides access to the power of the Selenium WebDriver through a DSL that is easy to learn and use. The DSL is built on top of F#, giving you the full power of that language and its ecosystem. In this session, we will look at how to get started, even if you have no F# experience.
Logging is essential for visibility and resiliency, especially when monitoring and debugging software applications. However, overzealous logging of everything can do more harm than good. For integrated applications, generating massive files of data no one reads can lead to days of troubleshooting and weeks of fixing the “fix”. The time lost multiplies when these logs live in various places with no system to sound the alarm. Learning to use Amazon CloudWatch for streamlined, meaningful, centralized logging and alerts can drastically reduce the time it takes to notice issues, find bugs, and fix them. Attendees will learn how to use Terraform to create metrics and alerts from AWS CloudWatch logs.
Concurrent programming is hard, mainly because the traditional tools contradict a more natural way of thinking. Mutexes and semaphores are value-centric tools for protecting integrity, but humans think in trains of thought and sequences of events. Golang, and the actor model of programming flow, work together extremely well. In this talk we’ll go over examples of advancing complexity, and by the end you should feel confident enough to Go on your own.
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.
Elegant design requires talent, but talent is not a prerequisite for avoiding bad design. If you lack artistic touch and prefer rules and logic over the ethereal art form, the fundamental tenets of composition can enable you to apply Design as a programming paradigm. Spend an hour with a coder learning the logic of design—hacking pixels instead of bits—and free yourself of your excuse for horrible designs.
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.
The hype around Docker focuses on distributed microservices, but what about those legacy applications you have? You know the ones…monoliths running on hand-crafted servers, maybe using local storage, maybe running on Windows. You don’t have the time or money to completely re-architect them, so are you stuck on the sidelines, unable to use containers? Absoutely not! In fact, you might benefit from containers more than anyone else!
In this talk, I’ll look at ways that teams can benefit from using Docker on legacy server-hosted applications with no architecture — or even code! — changes.
Durable Azure Functions provide an orchestration solution on top of Azure Functions to unlock powerful workflows. In this session, you’ll learn how to build, deploy and manage Durable Functions using Azure DevOps and AppInsights. By the end of this session, you will know how to build a reliable web of functions which can transparently scale to handle massive workloads at a minimal price.
The hyper-scale capabilities of Microsoft Azure public cloud can be a game changing for large enterprise organizations. However, these organizations often have existing management policies and practices. In this session you will learn how to provide the necessary controls without hindering the power of public cloud. This session is built from real-world experience working with the Canada’s largest Azure customers plus some new features announced at Microsoft Ignite.
In this presentation, you will learn what you can do with Cosmos DB. You will learn how you can benefit from the new storage models that Cosmos DB provides. You will learn about the various options for storing and retrieving data. You will be shown what SDKs are available. Most importantly, you will learn when and why you would want to consider using it.
Your code compiles. Your unit tests pass. Your website works on localhost. But “It works on my machine” does not get your site deployed to your production environment. Azure DevOps can handle much of the process of between localhost and production. Continuous Integration can build and test your application, release workflows can automate your deployments to test and production environments, and everything can be customized to employ manual interaction and gatekeeping for quality control and human oversight. Getting your application to production does not need to be an invasive, manual process. Learn to use the strength of Azure DevOps to manage your path to Production.
There’s no denying that engineers are in high demand. Bootcamps are popping up everywhere, and while they’re churning out highly motivated juniors, often it’s seniors that companies are really after. So how do we bridge this gap together? On the surface it often looks like we’ve ‘naturally’ developed into our current roles. And, as we progress it’s incredibly easy to forget what it was like being new. Rest assured however, for most the journey has been filled with a whole lot of grit, determination, and discipline.
The technical talk will cover recovering from screwing up in Git, and figuring out how to fix your mistakes. By reviewing some common Git commands, we will cover how to recover from the common mistakes. In this workshop we will run through the following scenarios:
Ever hear the term “Edge Function” being thrown around? Google Cloud Platform provides a way to deploy, manage and run them. These functions operate in the cloud and are the archetype of what Microservices aim to be. In this session you will be shown how to write, test, deploy and run Google Cloud Functions (GCF). We will go over the ways in which GCFs are triggered, what capabilities they have at their disposal and how they fit into your overall strategies when it comes to your product’s architecture. Other Google Cloud Platform products such as Google Cloud Storage and PubSub will also be explored and discussed. Last but not least, we’ll touch on various pitfalls one must navigate when dealing with GCFs as well as how to setup VS Code in order to effectively write and debug your code.
We’re going to have a look at some real-world code in this session and talk about the safeguards and strategies you can employ to help build great cloud-based apps. Most developers have deployed something to a cloud service provider, but most of us have hesitations when it comes to using a broader spectrum of cloud services. In this session I hope to put your mind at ease, working from scenarios I’ve encountered while helping to bring a startup online and walk you through a set of lessons learned in the cloud. Come for the strategy, stay for the anecdotal absurdities.
We want more diversity and more inclusion, but where do we start? There is a marked disconnect when trying to reach and engage those who differ from us in race, gender, religion, age, ability, etc. I believe this disconnect happens because we struggle to find genuine planes of engagement. It is not enough to hire or reach out to someone just because of how they fit in the demographic scheme of things. Tokenism is not the answer. People need to feel truly included and valued as individuals. If there is no effort to engage on relatable levels and have genuine discussions about things we have in common, we will not be able to hold on to these very valuable people. This is NOT a lecture. Be prepared to be your authentic self and shuffle around a bit! In this interactive session, we will have meaningful conversations as we construct unique bracelets using the beads you select to explore a different perspective on diversity & inclusion.
We all like to make jokes about it, but how many of us have actually taken the time to try and understand the CSS we’re writing. How many of us have actually reasonably debugged an issue to the next lowest abstraction layer when we hit a wall? All too often we settle for the first StackOverflow answer, hacks, or we just let the issue go entirely.
In this talk we’re going to finally take a step back and stop mindlessly throwing darts at the dart board! We’ll discuss the most common issues developers face such as, z-index, the cascade, and positioning in depth by diving deep into the browser’s internal rendering engine structure to see how are styles are actually parsed. Sure, you may still not have an eye for design, but you might just walk away a CSS guru!
In this talk, we will explore:
Most presentations introducing a new language are really just language tours. A lot of interesting language features are shown but it’s not always clear why one would choose to adopt that new language. This presentation looks at a number of interesting features of the language and ecosystem that are more interesting than just a fancy new for loop. No one switch languages because of a for loop. So we’ll look at a number of “big ticket” features of the language and ecosystem that do more to distinguish Kotlin than mere syntax sugar alone can provide. It will reasonably fast paced as we try to cover as many interesting tidbits as we can get through.
In this session, we will begin by separating Property Based Testing (PBT) from Unit Testing. We’ll go over some useful patterns to help keep us coming up with properties. Diving into generators to exercise control over our inputs and to generate complex objects. Where PBT should be used and when unit testing would be better suited. We’ll then follow it up with some real world property based testing.
Join a journey of one documentation site that has transformed from an ugly duckling into a beautiful swan. Learn about the hardships of maintaining code documentation that stays current, helps customers, excites developers, and doesn’t suck over time.
A story of our product web site, https://docs.particular.net/nservicebus/ and the transformation it went through. This talk will focus on how the changes have affected the customers, the developers, and influenced other companies.
Machine Learning is hot, hot, HOT! But if your background is web/api/app development, and not a PhD in stats/math, it probably looks like a completely alien world. I can’t turn you into an ML developer in 1 hour, but I can try and demystify what it means to do ML development. The different approach to solving problems with ML rather than regular coding, give an overview of one specific ML model technique, and how ML developers can apply it in a bunch of interesting ways. And go over the things that people spend most of their time struggling with in the ML world (feature engineering, overfitting, hyperparameter tuning, etc).
At Red Hat, we’re leveraging our vast middleware experience and emerging technologies to push the state of the art. Based on Oracle Labs’s GraalVM/SubstrateVM, we’re building the next generation stack for building JVM based applications for use in traditional as well as containerized environments.
The phrase “cloud native Java” gets thrown around a lot these days. Every one is excited about “cloud this” and “serverless that”. No one wants to be left behind in this brave new world. Many frameworks and architectures have stepped up to try to fill that gap for Java. At Red Hat, we’re building what we believe to be one of the most exciting and effective answers to the question of Java applications in a containerized world. Boasting a multiparadigm development model, this approach promises to truly, finally reach that promised land called “cloud native.”
In this talk, we’ll cover not only the technology we’re developing to achieve this but, of course, what it means for you as a developer and how you can make use of it all. We’ll open up the engine to see how the pieces fit together and then we’ll put it all together in one amazing demonstration.
Welcome to the future.
As web standards continue improve to replace traditional programming models and and the Cloud provides a seemingly infinite amount of infrastructure; the web is no longer the future, but our new reality.
It is in this new reality where the web browser is king, and the OS is nothing more than thrown the king sits upon.
But all is not lost. Your existing development practice can live on in this new world, but only if you learn how to survive. In this session, let David be your guide to gaining taming the web for your enterprise and moving your classic development practice into this browser driven reality.
When we first launched Azure DevOps we had practically zero telemetry, and very little experience within our team of running a cloud service at scale. In the past 5 years we’ve not only gone from almost zero to ~8TB/day of telemetry, but we’ve developed the practices, processes, tools and most importantly culture needed to operate at scale. We’ve made some mistakes along the way and learned a lot of lessons. For example, collecting 8TB/day of telemetry may sound great, but trying to turn that overwhelming amount of data into actionable insights is a huge challenge.
In this talk, I’ll cover how Azure Service Bus was open-sourced and how the community drove its .NET Standard implementation. How significant decisions took place, the trade-offs made, see code evolution over time. The story of a collaborator and customer, interwinding with Microsoft big wave of embracing open-source. Just like marriage, had its ups and downs.
With the vibrancy and wealth of options in the tech world these days, can you be anything but a Full Stack developer? I’m a self professed Full Stack developer and the teams I have joined in the past few years have seen me becoming a Just In Time expert at multiple technologies. We are in the age of the polyglot developer but there are experts in established and legacy technologies that don’t seem to go out of demand.
In this talk I will compare and contrast my experiences on teams with experts and generalists, look at how to stay in demand, and explore ways to future-proof your career.
With the software engineering industry being in the midst of the “Internet Of Things” age, mapping applications have become more and more important. Being able to easily visualize data on maps is useful, but the barrier to entry can often be tough to overcome. In this talk, we’ll walk through how simple it can actually be to create great looking mapping applications accessible on any browser. ArcGIS will provide is with a professional GIS mapping framework that is used heavily by GIS specialists across a wide variety of industries. ArcGIS will give us capabilities such as 3D terrain and models and a wide variety of data visualizations we can leverage out of the box. For the cherry on top, we will connect our application with Google Cloud’s Firebase to enable real-time updates via Firestore. Once the audience has heard this talk, I hope that it will get their gears turning on the possibilities of these technologies.
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.
Adoption of Microsoft’s Power Platform (PowerApps, Microsoft Flow and PowerBI) in the workplace has been great, but it is still tempered with some uncertainty. The uncertainty is seen a great deal in corporations that are just starting to deal with cloud technologies. Many enterprises are concerned that it is very easy to lose control of their data when utilizing tools they can’t totally control. In this session, we will discuss the different ways that O365 admins can secure their organization’s data while still gaining the benefits, flexibility, and robustness of the tools within Microsoft’s Power Platform.
Data Science is the new buzzword. But when does data become big data? When should I actually use Data Science at work? Do my current skills translate to data science? In this session we will demystify the world of data science so you can understand the process, the tools, and the lingo.
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.
Adversity. A necessary component of life. Inevitably, we all reach professional and personal moments that require us to take a deep breath and a giant step back. Moving forward again often feels difficult, even impossible. We suffer, immobilized by fear.
But fear is more than some pesky roadblock. It is a rational response to adversity. Whether facing a major code refactoring, the changing technology landscape, a new role, or even a fresh career, we can learn to leverage fear and uncertainty to move beyond our hurdles and get the job done! Key life skills exist that can be developed to conquer adversity. Learn to assess risks, build relationships, and recognize opportunities for growth.
Starting over may seem insurmountable. Armed with the right skills, perspective, and a little patience, nothing truly is.
Client hints are here and they’re cool! Client hints reveal important details about your user’s device, network connection, and data usage preferences. Then you, dear developer, can use this information to adjust your application’s resource delivery for performance. Just imagine! You could do things like serve less images and video for users trying to save data, simplify and reduce image markup by detecting device screen characteristics on the server side, or even strip out resource-intensive functionality and animations for those on low end devices with less memory. The possibilities are quite endless, really!
In this talk, we’ll cover the various client hints available. By the end, you’ll understand how to sniff for them on both the front and back end, and adjust your application on the fly to adapt to the user. You’ll also get some inspiration as we step through a few recipes involving these useful little hints. You won’t want to miss it!
Infrastructure as Code, Configuration as Code…Everything as Code! In this session I will go through an end-to-end devops pipeline that uses Azure Pipelines, Terraform and Ansible to deploy a microservices application.
In this talk we’ll look at the use of Vue.js in existing applications as well as in new projects. We’ll look at the barriers you might face when considering front end frameworks, why you might choose Vue.js instead of other libraries and frameworks out there, and where it may not be right for your organization. We’ll spin up Vue.js in both brownfield and greenfield scenarios, and then dive into some production code used by a little bakeshop that allows customers to book birthday parties and create their own birthday invitations.
Artificial Intelligence has been looming on the digital horizon for years, but recent rapid advancements have put AI in the world spotlight. What happens next? Richard Campbell discusses the history of AI and how it has evolved, as well as the opportunities and concerns that everyone should have as this technology enters our lives. The promise of artificial intelligence is a world that allows humankind to further tap their own potential with lives of greater convenience, safety and opportunity. But that same technology can be used to limit, obfuscate and control. How do we as a society manage this rapidly evolving power to make a better world?
SQL Server stored procedures seem to have a bad reputation. This reputation is not deserved, and this session will demonstrate techniques for unleashing the real power of stored procedures. In this session you will learn the following techniques:
By attending this session you will learn the true power of stored procedures.
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.
ASP.NET Core is now a mature platform, offering developers with a sometimes overwhelming set of options to choose from: MVC vs Razor Pages, Razor Components/ Blazor, Razor Views vs client-side rendering, 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.
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! Again we will examine when this is the right tool for the job. If neither of these meets your needs, we won’t teach you how to write your own neural network from scratch to analyze images (not going to happen in 60 minutes!) but we will share some good resources to help you get started. No session would be complete without a great takeaway.
.NET Core is the runtime for writing modern applications. Its speed, efficiency, and cross-platform capabilities provide .NET developers with flexibility and power. In 2019, Microsoft released .NET Core 3.0, and in this session, we’ll cover what’s been added. We’ll review new features and APIs that you can use wherever .NET Core goes.
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#.
Go is becoming a popular language of choice for building apps and APIs. This talk will cover some of the top reasons why you might want consider Go:
We will cover how Go differs from other languages and some of “the Go way” of doing things. Lastly we’ll discuss how we’ve used Go in production to build APIs in a micro service, gRPC world! Come check out how Go works and how it might be a fit for your next project!