Sessions

(Login to save favorite sessions)

.NET Core Web API Authorization with JSON Web Tokens (JWT)

This talk describes the basics of JSON Web Tokens (JWT) and describes a mechanism for authentication and authorization between legacy (.NET Framework) web applications and modern .NET Core Web API REST services using JWT.

Level
Intermediate
Category
Web Development
Room
104
Time
11:00 AM
(Login to save favorite sessions)

A Crash Course in Kubernetes

Kubernetes is the king of container orchestration and the results are clear: more than ever, employers are looking for IT professionals that know Kubernetes. It can, however, be hard to get started with Kubernetes, because it is not trivial software. In this session, we’ll help you get started with Kubernetes, particularly Azure Kubernetes Services, as we break down into bite size chunks so you can get a jump start on your Kubernetes experience.

Level
Intermediate
Category
Cloud Development
Room
207
Time
2:30 PM
(Login to save favorite sessions)

AI, IoT, and Apps!

Interested in building mobile apps that leverage AI services and integrate with IoT devices, but not sure where to start? The OutSystems platform makes it easy to use pre-built connectors to work with a wide array of services and hardware, including mobile device hardware like cameras and NFC, as well as AI providers such as Azure Cognitive Services. In this session, come see a whimsical take on common app development tasks, demonstrated by an Internet-connected, AI-powered Candy Dispenser. You'll see how a "low code" approach to AI and IoT integration can save you time, and let you focus on the fun parts of your IoT development. Demo includes integration of camera (for facial and mood detection via Azure Face Detection API), NFC, Sentiment Analysis, and control of connected hardware (stepper motor and LEDs) via REST APIs.

Level
Intermediate
Category
General Discussion
Room
216
Time
11:00 AM
(Login to save favorite sessions)

And now selenium’s watch is ended: Using Cypress to write UI tests that are less brittle and run faster

UI tests have long been valuable as a tool to automatically verify that all of the components of an application are working together correctly. They have a (much deserved) reputation of being difficult to write, brittle, taking a long time to execute, full of false negatives, and difficult to maintain. In this presentation we will learn about techniques to mitigate many of these problems using a new browser-based UI testing tool called Cypress that will make it easier for you to write UI tests that are more flexible and run faster than the Selenium equivalent.

Level
Intermediate
Category
Web Development
Room
109
Time
9:45 AM
(Login to save favorite sessions)

Angular - Ways to share data between components

As Angular components grow in an App, it's becoming increasingly important to share data between the components in an organized way. We will start with simple ways and get more complex. Also, we will discuss the best practices around it.

Level
Intermediate
Category
Web Development
Room
104
Time
2:30 PM
(Login to save favorite sessions)

Angular component communication patterns

Components are the crux of everything you do in Angular. Understanding the techniques for component communication and, more importantly, when each pattern should be considered is critical to being a good angular developer. In this session, we will look at the merits and demerits of each pattern.

Level
Intermediate
Category
Web Development
Room
104
Time
1:15 PM
(Login to save favorite sessions)

Automated ML for Developers

Microsoft has released Automated ML technologies for developers through ML.NET, Azure ML Service, and Azure Databricks. This presenter is a data scientist and Microsoft architect, and will give a comprehensive overview of the utility and use case of this automated technology for production solutions. The presentation includes code you can try now.

Level
Intermediate
Category
Cloud Development
Room
216
Time
1:15 PM
(Login to save favorite sessions)

Azure App Service Authentication and Authorization

Leverage the capabilities of Azure Active Directory to easily register and authenticate users of your apps and services. Microsoft provides services such as Express, Business to Consumer (B2C), and Business to Business (B2B) types of services and tenants to meet the needs of customers. We’ll explore what’s involved to implement authorization and authentication to your app services.

Level
Beginner
Category
Cloud Development
Room
106
Time
11:00 AM
(Login to save favorite sessions)

Build Efficient Xamarin Apps with GraphQL

Modern applications are increasingly data-driven, which leads to a lot of time spent fetching, filtering, and aggregating data. GraphQL is a query language for your API which reduces the complexity associated with data fetching lets developers describe the complex, nested data dependencies of modern applications. In this session, We will discuss how to build high-performance GraphQL apps with Xamarin and the demo how to quickly spin up the GraphQL server with Azure Database for Postgresql with Hasura and integrate the GraphQL backend in Xamarin using GraphQL Client libraries, featuring GraphQL capabilities such as Query, Mutation, and Subscription. We will discuss tips and tricks to getting started with building GraphQL powered Xamarin apps.

Level
Beginner
Category
Client Development
Room
206
Time
2:30 PM
(Login to save favorite sessions)

Building end-to-end ML production pipeline with Azure ML Services

Azure Machine Learning services is an integrated, end-to-end data science and advanced analytics solution that provides professional data scientists and data engineers with tools not only to develop ML models, but also tools for data preparation and wrangling, data visualization, model deployment and model management at cloud scale. The session will teach the attendees how to get their hands on each tool in the stack.

Level
Intermediate
Category
Cloud Development
Room
216
Time
3:45 PM
(Login to save favorite sessions)

Centralize Settings Management via Azure App Configuration

In a system of any size, there are lots of settings and variables that need to be stored somewhere, and most technologies come with some sort of settings management that is contained within that instance. As a system grows, keeping all those settings in sync can become extremely painful. Azure App Config creates a centralized store that any piece of a system can access drastically reducing the need for individualized configuration settings. We will take a look at how the service works and how it can be utilized for things like feature management and versioning as well as how it can be used along with Key Vault to securely store passwords and connection strings.

Level
Beginner
Category
Cloud Development
Room
106
Time
1:15 PM
(Login to save favorite sessions)

Code versus Configuration

Could your application benefit from greater configuration? Could you build a configuration framework to make certain changes in your applications easier? Should you? This talk will explore the dynamic between code and configuration. We will seek to understand the difference between code and configuration and the pros and cons of each. Ultimately, we will seek to arrive at practical guidance for which parts of an application are best suited for configuration and how to focus configuration efforts.

Level
Intermediate
Category
General Discussion
Room
109
Time
2:30 PM
(Login to save favorite sessions)

Convert Your ASP.NET MVC Core App to a Progressive Web App

Progressive Web Applications have many advantages over plain old web apps. After covering the advantages of PWAs, Joe will demonstrate how easy it is to convert an ASP.NET MVC Core app to a progressive web app. Then he'll show how you can handle data so that when you are disconnected from the Internet the app will still work.

Level
Beginner
Category
Web Development
Room
206
Time
1:15 PM
(Login to save favorite sessions)

Creating a Culture of Craftsmanship

Modern Software Development is more than just a job or disparate set of skills. Instead it should be considered a craft and we should strive to build a culture that promotes doing things “the right way” while coaching and mentoring the incoming generation of developers. In this talk I will present some of the lessons that I’ve learned over 16 years of being a software developer as well as a manager of software developers and how I try to create a culture that promotes leaning and improvement every day.

Level
Intermediate
Category
Professional Development
Room
104
Time
3:45 PM
(Login to save favorite sessions)

Debugging software

I have worked with a lot of developers over 19 years. You would be amazed at how many people think debugging means randomly changing something. That is the last thing you want to do. What I will cover here is tools and approaches to finding the problem. Making changes that will actually help find a problem and why it will help. Finally I will add steps to help avoid a lot of bugs in the first place.

Level
Beginner
Category
Professional Development
Room
105
Time
11:00 AM
(Login to save favorite sessions)

Delivering Successful Mobile Projects

In this talk, we will discuss successful strategies for delivering successful mobile projects. The modern mobile developer has a number of tools to create mobile apps but how do you go from conception to happy customers? We will navigate pitfalls and plan a route to successful App Store deployment. We will cover best practices that cover development and Testing and Dev Ops. Attendees will walk away with a game plan for delivering mobile apps of all sizes, as part of a team, or as an individual.

Level
Beginner
Category
General Discussion
Room
206
Time
3:45 PM
(Login to save favorite sessions)

Designing Data Intensive Cloud Native Applications

Cloud is rapidly changing the way modern day applications are being designed. Data is at the center of multiple challenges while architecting solutions in cloud. With technology changing rapidly, there are new possibilities for processing data efficiently. Come join me in this session to learn more about the tools and technologies that will help you to design data intensive systems. We will take a structured approach towards architecting data-centric solutions, covering technologies like message queues, data partitioning, search index, data cache, event sourcing and NoSQL solutions. If you are a Data professional, Software Engineer or Architect, come join Samir Behara in this session to understand the high-level design principles that will help you build scalable, resilient and maintainable systems in cloud.

Level
Intermediate
Category
Database Development
Room
106
Time
2:30 PM
(Login to save favorite sessions)

Developing Alexa Skills with Azure Functions

If you’ve ever asked “Alexa, how do you build an Alexa Skill?” you’ve probably been disappointed with her answer of “Sorry I don’t know that.” In this session I’ll walk through how I developed a solution to bring Alexa voice integration to my 3D printer using Azure Functions, AWS Cognito, and account linking. We’ll also look at the Skill certification and review process for publishing your skill to the Alexa Skill Store. This session is guaranteed to make you smarter than Alexa!

Level
Beginner
Category
Client Development
Room
105
Time
9:45 AM
(Login to save favorite sessions)

DevOps Cultural Quickstart Guide for Developers

It's been 10 years now and DevOps is still going strong. For developers this can mean a lot of things, learning new tools and processes, automating builds, testing and releases, even having to accommodate for Agile in your development cycles. What often gets missed is culture. It usually comes in the form of an Agile coach, "Scrum team" or often as an afterthought. In this session, you will learn why culture matters most, how as a developer you can get started without formal approvals or transformations and the facts behind what works and what doesn't. We'll look at how to make simple changes in your day that add up to huge gains for you, your team, and your company.

Level
Intermediate
Category
Professional Development
Room
109
Time
11:00 AM
(Login to save favorite sessions)

Document Classification Workshop (NLP, Text Processing, Machine Learning) [Python, scikit-learn]

You can forklift this project in your MatrixDS account if you would like to follow along: https://community.platform.matrixds.com/community/project/5d5d5a3cd3af39f8147b8100/dashboard We will learn about NLP techniques to process a text corpus to prepare for Machine Learning applications, including

  • stop word removal

  • tokenization

  • lemmatizing

  • n-grams

  • count-vectorizer, and TFIDF

  • applying supervised learning (random forests) to vector representation of documents for classification

  • Hyper Parameter Tuning

  • Model evaluation

Based on the NLP jupyter notebooks in repo 1 And repo 2

Level
Beginner
Category
IT Topics
Room
216
Time
2:30 PM
(Login to save favorite sessions)

Event-Driven Architecture for Microservices

Learn how to decouple your microservices using an event bus. In this session, I'll demonstrate how to make your distributed systems more reliable and responsive through this technique using .NET Core and Kafka.

Level
Advanced
Category
Web Development
Room
106
Time
3:45 PM
(Login to save favorite sessions)

Flutter Game Development

Learn to create 2D mobile games using Flutter. We will be using the Flame framework to develop a small space shooter.

Level
Beginner
Category
Client Development
Room
206
Time
9:45 AM
(Login to save favorite sessions)

Fun with Kubernetes on AKS

Develop and deploy applications on Kubernetes. Use CI/CD to publish to testing, promote to staging, and to Production.

Level
Intermediate
Category
Cloud Development
Room
106
Time
9:45 AM
(Login to save favorite sessions)

Going Serverless with AWS Lambda

An introduction to serverless computing on AWS Lambda. Review of why you'd what to go serverless, what technologies are supported and the basics of the service on AWS. A demo would be provided including a discussion around how companies are using Lambda.

Level
Beginner
Category
Cloud Development
Room
207
Time
9:45 AM
(Login to save favorite sessions)

How Git Works

Have you ever run a Git command without really knowing what it's going to do? Have you ever been surprised by the result of a command you thought you did understand? This session will give you the knowledge to use Git with confidence and without fear. We will peer under the covers using live demonstrations to see what's really happening when the most common Git functions are used. You will learn about the internal data model of Git and the unique vocabulary of the Git system. These concepts will enable you to better understand the help system, man pages, and any GUI tools you may want to use. You will also learn about submodules and how Git internally tracks and manages them. You will leave with a new appreciation for the most popular source code management tool today, how to use it without guesswork or surprise, and how to teach yourself more details as needed in the future.

Level
Intermediate
Category
IT Topics
Room
109
Time
3:45 PM
(Login to save favorite sessions)

Improving code quality with Static Analyzers

How do you keep code consistent across a team or make sure your independent code follows accepted standards, use a Static Analyzer tool. See how to use some of these tools for your .Net, JavaScript, Style sheets, etc. to improve your code as an independent or large team lead. Whether you're an independent developer that needs assistance reviewing your code, or a member of a large team that wants to keep code consistency among the team, static analyzer tools can help identify and optionally fix issues in your code. Many platforms have their own version to help based on the language, including Roslyn, JsLint, CssLint, SonarQube. FxCop, StyleCop, etc. We'll take a look at some of these tools and explore how they can help identify issues in your code and improve maintainability and decrease errors before you deploy to production. We'll also look at the ability to build your own tool to enforce rules in your specific domain.

Level
Intermediate
Category
General Discussion
Room
109
Time
1:15 PM
(Login to save favorite sessions)

Intro to Azure Data Studio

Azure Data Studio - previously released as SQL Operations Studio, is a lightweight, cross-platform, extensible editor built with the data platform user in mind, with built in charting of query result sets and customizable dashboards. Based on the popular Visual Studio Code, Azure Data Studio enables access to data wherever it lives - Microsoft Azure, on-premises, or even AWS! This talk will cover how to obtain, install, and use Azure Data Studio, highlighting practical features and introducing a new (to the data platform, anyway) paradigm for accessing data: SQL Notebooks!

Level
Beginner
Category
Database Development
Room
107
Time
2:30 PM
(Login to save favorite sessions)

Introduction to Flutter

Let's dive into the power of Flutter to develop cross platform mobile applications for Android and iOS. We will talk about the history of Flutter, the basic structure of a Flutter app (widgets, routing, build context), and how to get an app running from scratch. We will also introduce some good IDE extensions to aide in Flutter development.

Level
Intermediate
Category
Web Development
Room
206
Time
11:00 AM
(Login to save favorite sessions)

Mob Programming for Continuous Learning

What if we took Extreme Programming and said it’s not “extreme” enough? What if we took pair programming and cranked it to 11? Mob programming is a technique with “all the brilliant people working on the same thing, at the same time, in the same space, and on the same computer.” Join me on my journey through different development practices and how I landed at mob programming as my preferred way of working. I was lucky enough to be on a team for about year that worked “as a mob.” I’m also now leading a team that is mobbing full time for the past year and using mob programming for workshops and other learning experiences. Come learn what practices we found to be critical, what obstacles we encountered and what practices became irrelevant during our experience. The pains and successes we had helped us learn and they may help you see a pathway to experimenting with mob programming in your work!

Level
Beginner
Category
General Discussion
Room
221
Time
1:15 PM
(Login to save favorite sessions)

Moving Desktop Apps to .NET Core 3.0

Modernizing your legacy desktop applications doesn't require a total rewrite. Transitioning your applications over to .NET Core 3.0 can be done with minimal effort on your part. In this session, we will take existing .NET Framework applications and transition them over to .NET Core 3.0 applications. Along the way, we will discuss best practices, pitfalls to avoid, and lessons learned.

Level
Intermediate
Category
General Discussion
Room
105
Time
1:15 PM
(Login to save favorite sessions)

Post Mortem: Dealing with Failure in Development

The world of medicine has a process for reviewing failure and looking for ways to prevent it from happening again. Failure is all to common in development, whether you are building a traditional waterfall project or using the newest agile techniques. In this talk we'll discuss how to apply what the medical community does to our projects and sprints. We'll look at common causes of failure that apply across projects, how failure effects developers and changes team dynamics, and ways to learn from failure to prevent it happening again.

Level
Intermediate
Category
General Discussion
Room
221
Time
3:45 PM
(Login to save favorite sessions)

Real Time Data with Kafka Streams

Many business ETL processes are wrapped around batch processing. In this talk I'll show you how to leverage Apache Kafka to be the backbone of your communication and have Kafka Streams processing your data in near real time.

Level
Beginner
Category
Database Development
Room
107
Time
11:00 AM
(Login to save favorite sessions)

Refactor to Make the Change Easy (then make the easy change)

Many developers use the term “refactoring” to refer to any “clean up” effort in the code. This definition, unfortunately, mischaracterizes refactoring’s power to allow us, as software programmers, to incrementally make powerful changes to the structure of our code without changing the behavior. The problem is that sometimes developers will make changes to code in order to “make it better” when there isn’t a clear reason to change the code in the name of “tech debt” and this introduces unnecessary risk that rightfully bothers non-developers. On the other hand, if there is a business reason to make a change to code, refactoring is a great way to transform the code so that the change is easy to make. Mike will do live coding to demonstrate specific techniques that will allow you to stay green throughout a larger refactor to make the change easy (so you can then make the easy change!)

Level
Intermediate
Category
General Discussion
Room
221
Time
11:00 AM
(Login to save favorite sessions)

Rusty nuts and bolts: An introduction to Rust

If you've every written any C or C++, you know these language are powerful. They give you low level access to hardware, memory management, and lightning fast performance. But the difficulty of ensuring memory safety in these languages leads many of us to swear that we will never again write another malloc(). Rust is a modern language that gives us the blazing speed and low level access of C, while preventing the programmer from writing a whole class of bugs. Let's take a deep dive into what makes Rust such a revolutionary language, no tetanus shot required.

Level
Beginner
Category
General Discussion
Room
105
Time
3:45 PM
(Login to save favorite sessions)

Software Engineering Career Motivations and Job Market Trends 2019/2020

Ari Waller, Chief Recruiting Officer at Thompson Technologies, will give an overview of the current Software Engineering job market trends for 2019. He examines the current and future states of software development languages' supply and demands in the marketplace, as well as conducts a career-oriented Q&A (resumes, interviews, and overall job hunting tips and strategies). This will include: ● IT Career Trends ● Coding Career Opportunities and Trends ● Atlanta Job Market specific for Software Developer ● Future Job Consideration ● Preparing for Success ● Q & A

Level
Beginner
Category
Career Advancement
Room
221
Time
9:45 AM
(Login to save favorite sessions)

Startups - Getting into First Gear

While being a technologist, Wally has a lot of startup experience. He has been through two startups that succeeded and sold, one that failed, and one that went sideways. Wally is going to talk about you getting into first gear, what you need to do, what you don’t need to worry about, and things in between to take your startup from an idea to startup to getting your business started. This session will be about the technology startup geared in software. It is similar for other startup types, but this is geared towards software based startups in the technology area.

Level
Advanced
Category
Career Advancement
Room
207
Time
11:00 AM
(Login to save favorite sessions)

TensorFlow Lite and IoT: A Practical Introduction

See the substance beneath the buzzwords! I will be demonstrating a device I created to secure my server cabinet which uses TensorFlow Lite for face recognition, integrates with a number of devices to monitor cabinet conditions, and sends warnings and alerts through my centralized logging system using AWS services. I will be demonstrating the tools used to support development in C, and noting cross-platform alternatives where relevant. We will walk through some of the more interesting code written to integrate devices and send structured log messages and examine how to structure an embedded solution to enable Test-Driven Development.

Level
Advanced
Category
Cloud Development
Room
216
Time
9:45 AM
(Login to save favorite sessions)

The Hitchhiker’s Guide to the Cosmos

Today’s applications are required to be highly responsible and always online. Cosmos DB was built from the ground up to provide a globally distributed, multi-model database service that enables you to elastically and independently scale throughput and storage across any number of Azure regions worldwide. Because of its ARS (atoms, records, and sequences) design, Azure Cosmos DB accessing data via SQL, MongoDB, Table, Gremlin, and Cassandra APIs. All of this with transparent multi-master replication, high availability at 99.999%, and guarantees of less than 10-ms latencies both reads and (indexed) writes. In this session, you will learn what you can do with Cosmos DB, the benefits of each of these data models, and how to use everything Cosmos DB has to offer to make your applications rock solid. Come find out when and how to implement Cosmos DB and which options you should use based upon your needs.

Level
Beginner
Category
Database Development
Room
107
Time
3:45 PM
(Login to save favorite sessions)

The Psychology of Better Power BI Reporting

In this course, we identify some common mistakes that we see in the business world using Power BI. We will identify the psychology behind the reporting techniques needed to create powerful and effective interactive reports. The attendee will leave the class ready to write better reports using Power BI in the real world.

Level
Beginner
Category
Database Development
Room
107
Time
1:15 PM
(Login to save favorite sessions)

Unpack the stigma: Mental Health within the Tech Industry

I will discuss the importance of creating a safe environment to have an open dialogue around mental health within the tech industry. I will highlight important introspective questions one should ask themselves before entering the tech industry and share some practical tips for those currently in the tech industry that can help them lead a more balanced approach to their professional development and mental health.

Level
Beginner
Category
Professional Development
Room
207
Time
3:45 PM
(Login to save favorite sessions)

Video On-Demand with Azure Media Services

Interested in learning how to build your own on-demand video service? Creating videos and need a way to encode them and distribute them to global audiences? Learn how to use Azure Media Services to develop streaming video content to your audiences and how to automate the publishing process using Azure Functions and Event Grid.

Level
Intermediate
Category
Cloud Development
Room
207
Time
1:15 PM
(Login to save favorite sessions)

VueJS Bootcamp / My Departure from Angular

I will share an overview of how Vue works including: events, components, directives, parent/child interaction, routing, emitters, single-file components, and the Vue CLI. In this talk, I will share my transition from Angular to Vue as well. Though Vue is amazing and easier to learn than Angular (IMHO), there are some differences in reactivity that can be confusing. Let's end the confusion and have a clearer Vue. (pun intended)

Level
Intermediate
Category
Web Development
Room
104
Time
9:45 AM
(Login to save favorite sessions)

What Every Developer Should Know About SQL Server Performance

Are you mystified by SQL Server performance? Do you wonder why sometimes your SQL statements runs fast but other times, they run painfully slow? Do you wish there was a pragmatic set of steps you could go through to troubleshoot performance problems that didn't require you to have a PhD in database internals? If so, this talk is for you. In this talk, I'll describe database performance from a developer's point of view. I'll show how you can accurately measure the performance of any SQL statement and what you can do to improve its performance. I'll show how to create effective indexes and use capabilities built into SQL Server to find your worst performing SQL statements. At the end of this talk, you will no longer regard database performance as black magic, but instead be able to confidently analyze and solve any performance problems you encounter.

Level
Intermediate
Category
Database Development
Room
107
Time
9:45 AM
(Login to save favorite sessions)

What the Heck is gRPC?

gRPC is a modern open source high performance RPC framework that can run in any environment. With this new framework, should be looking at this interesting option when building your own APIs or connecting your systems?

Level
Beginner
Category
Web Development
Room
221
Time
2:30 PM
(Login to save favorite sessions)

What's this crazy JAMstack?

The JAMstack is a set of best practices for building decoupled websites with a heavy emphasis on build-time rendering and static hosting that is quickly gaining popularity with developers. In this presentation I'll show you what the JAMstack is, and we'll discuss why it is gaining popularity now and what it might tell us about the future of web development.

Level
Intermediate
Category
Web Development
Room
105
Time
2:30 PM