Schedule

The entire detailed schedule (including session abstracts) is available in the following table which supports paging, sorting, and full-text searches.

NOTE: the number in parentheses following the room name represents the seating capacity of that room.  When planning your day, we recommend selecting both a PRIMARY and a SECONDARY session for each time-slot in the event your first choice reaches max. capacity.

Want a quick schedule-at-a-glance grouped by time-slot? Visit this really helpful gist contributed by @gshackles.

RoomSessionSpeaker NameSession TitleSession LevelSession Abstract
Ambassador (18)09:15-10:30Mauricio MendozaBoost your productivity with Angular100Perhaps you've tried the Angular Quick Starts and were frustrated by them, following along with confusion? Demystify the framework that aims to improve your productivity with this introduction to developing web apps with the latest version of Angular. Discover the key building blocks, such as modules, components, and templates and learn how to use the Angular CLI for generating Angular code.
Pre-requisite: Some familiarity with JavaScript and web development
Ambassador (18)10:45-12:00Scott McAllisterWhy loop when you can map, reduce, or filter?200Traditionally, when developers see large arrays of data their "go to" tool for parsing and searching has been the for loop. But JavaScript provides also provides a more declarative approach that can help you find what you're looking for in fewer lines of code that is cleaner, easier to read, and maintain. Come see how the map(), reduce(), and filter() functions can help you!
Ambassador (18)13:00-14:15Oren NovotnySecure your app with Azure AD B2C100Learn the how to secure your applications and API’s with Azure AD Business to Consumer (B2C). We’ll introduce Azure AD, OAuth and Open ID Connect and explore how to use B2C to secure your application with both local and social accounts.
Ambassador (18)14:30-15:45Rob ZeltAccelerating Mixed Reality Application Development with the Mixed Reality Toolkit200The Mixed Reality Toolkit is a Microsoft open source project that includes collection of scripts and components intended to accelerate the development of mixed reality applications targeting Windows Mixed Reality devices and Hololens. In this session we will look at some highlights of the toolkit with code examples.
Ambassador (18)16:00-17:15Rob ZeltHigh Throughput Science in the Cloud Azure Batch200See how you can scale out to scientific processing workloads dynamically with Azure Batch.
Belasco (20)09:15-10:30Dan MallottORMs and the DBA: How to Make Both Happy200DBAs lose sleep over ORMs touching their databases. Developers lose sleep thinking about using stored procedures. Is there a middle ground? Yes! I’ll introduce techniques and tools in .NET that let developers use ORMs while keeping the DBA happy.

Talk to any DBA about ORMs and you’ll quickly find out all the things you like about ORMs are what DBAs don’t like. Interestingly enough, most developers I’ve talked to have issues with their ORMs, too. In this session, we’ll explore why ORMs cause such trouble using examples of bad behavior and poor performance with common application patterns. I’ll outline some strategies for mitigating those troubles such as making sure to audit the generated SQL and changing how we write application code to take advantage of how ORMs attack problems under the hood. Lastly, I’ll introduce some tools (and even yet another ORM) that help solve some of the worst of the problems we see in the database when using ORMs.

This talk will use examples drawn primarily from .NET using Entity Framework to access SQL Server. I’ll also introduce the Dapper ORM and discuss how it can help us avoid some of the problems outlined in the talk.
Belasco (20)10:45-12:00Dan StoltsDevOps How To Put Value For All Into A Value Stream Mapping100The Value Stream Mapping (VSM) is the first and by far the most important part of your DevOps Journey. Learn how to get started with the VSM and how to keep the discussion going. We will also cover the importance of doing a VSM, requirements you should adopt for a VSM including the basics: Who, What, Where, When, Why and How. You will learn how to make your VSM successful from prep to results.
Learn how to get started with the VSM and how to keep the discussion going. We will also cover the importance of doing a VSM and requirements you should adapt for a good VSM. Sample Visio Document templates, PowerPoints, sample agenda, checklists, and more will be supplied. Expect to be fully engaged. During a VSM, the audience has to be captured and fully engaged, learn from this session how it is done. In this session, we will review several Value Stream Mappings showing before and after diagrams. Examples use CI/CD pipeline improvements or creation.
The basics are not as basic as you might think, learn: Who, What, Where, When, Why & How
Who ...will you be engaging at each step
What ... discussions to have at different phases to different people, what should be included with VSM, more
Where ... the meetings/discussions should take place for the greatest impact and flexibility
Why ... are you having another meeting, need to get engaged with DevOps, need to do VSM, need to engage various departments, etc.
How ... to run a VSM. How to have discussions with different people at different stages to ensure success, How to plan and get RESULTS.
You will learn how to make your VSM successful from preparation to results.
The Value Stream Mapping is critically important but it is only a small part of the solution. Please see Dan’s other session on “DevOps Journey at Overdrive” for the rest of the story.
Belasco (20)13:00-14:15John-Daniel TraskHigh performance .NET300John-Daniel Trask (Microsoft MVP, Co-founder of Raygun) will share with you his tips and tricks for getting high performance out of your .NET code base. He'll share the tools he uses, performance "smells", approaches to writing fast code and real world stories of how he's saved many thousands of dollars by fine tuning code to run fast. There's no reason your modern computer should feel slower than your old 1995 Pentium 100!
Belasco (20)14:30-15:45Kevin S. GoffIn-Memory Capabilities in SQL Server 2016200The Enterprise Edition of SQL Server 2016 contains 2 powerful features for database and data warehouse developers to improve performance and scalability. One is columnstore indexes and the other is in-memory optimized tables. In this presentation I'll show several examples with large databases on how you can get the most out of these 2 great features. I'll cover the scenarios and contexts where columnstore indexes and in-memory optimizes tables work best.
Belasco (20)16:00-17:15Kevin S. GoffImplementing Data Warehouse Patterns with the Microsoft BI Tools200You’ve read some of the content of well-known Data Warehousing books – now what? How do you take the structures and disciplines inside such books as the Ralph Kimball series and implement them? This session will take several of the key concepts in Data Warehousing and demonstrate some implementations using SQL Server Integration Services and Analysis Services. We’ll look at items such as Type 2 Changing Dimensions, Confirmed Dimensions, Dimension Outriggers, Role-Playing Relationships, Many-to-Many Bridge table relationships, Factless Fact tables, Handling of NULL foreign key values, and more.
Broadway (30)09:15-10:30Betsy WeberBe a Community Hero: Becoming a Microsoft MVP100Are you a technical expert? Are you active as a community thought leader (speaker, blogger, forum contributor, author, GitHub contributor, User Group Organizer, mentor, etc)? Join Betsy Weber, Microsoft Community Program Manager, to learn how you can be recognized and awarded for your community contributions as a Microsoft MVP!
Broadway (30)10:45-12:00Erik NorenUsing Entity Framework Core with Relational and JSON Data in SQL Server 2016200Modern applications must be flexible and change quickly as the needs of users change. Applications utilizing relational databases can struggle to keep up with the necessary schema changes or find their SQL queries growing out of control transforming columns of data. One solution would be to utilize a "schema-less" or NoSQL database like MongoDB but this poses new challenges especially to developers more familiar with relational SQL databases. Now developers have a new option: SQL Server 2016 can mix normalized table data with JSON documents in the same database using the same SQL queries to join, filter, and project data as expected. In this session I'll show how a web application can use Entity Framework Core to store normalized and JSON formatted data in an application database with query support. Developers should have some familiarity with Entity Framework (Core or previous versions) and SQL Server to get the most value from this session.
Broadway (30)13:00-14:15Chris OzogHow to deal with everything...100Being rookie especially in PHP world means constantly dealing with legacy software that’s in maintenance mode and won't be rewritten. And you have to deal with awful codebase with files spanning over couple thousand lines.

I'm here to help, been there, done that and want to share with you with some tricks... how to get to know even oldest of systems.
Broadway (30)14:30-15:45Doug FinkePowerShell For Developers200Powershell is agile and makes humans faster, way faster. It’s the go to tool for automation on Microsoft Windows and now works on Linux and macOS. Microsoft MVP Doug Finke, author of “PowerShell for Developers”, does a deep dive, demo heavy talk showing how Microsoft’s sustained investment in PowerShell enables you to be successful in delivering high velocity solutions both on premise and in the cloud. You’ll also learn about PowerShell V6 which has been opened sourced, and now runs on Linux and macOS.
Broadway (30)16:00-17:15David BerryApplying Design Patterns to Everyday Problems100Have you read about design patterns but weren’t quite sure how or where to apply them in your application? Have you heard of principles like loose coupling and programming to an abstraction, but didn’t know if you were really doing it right? If so, this talk is for you.

In this talk, I’ll work from several example code segments and show how to recognize which design pattern would be appropriate. I’ll then show how to refactor the existing code to use the chosen design pattern and demonstrate how the resulting code is more understandable, easier to maintain and easier to test.
Brooks Atkinson (18)09:15-10:30Szymon RozgaBuild Bots with Node and the Microsoft Bot Framework100Hype or not, bots are a huge topic these days. Messaging platforms are providing extensions, voice assistants are providing integration points and ML democratization is making the development process easy and is giving developers access to platforms with millions of users. The skills and tools necessary to develop backend natural language understanding based services are accessible and a ripe area for innovation. Microsoft provides various service to help developer get bots up and running.

In this talk, we will introduce LUIS as the intent classification and entity extraction platform of choice. We will explain the differences between using the Bot Framework vs Api.ai, Wit.ai, Watson Conversation or Amazon’s Lex and show how easy it is to build a bot using Microsoft’s Bot Framework in Node. We will focus on introducing then concepts of waterfalls, dialogs, global handlers and get a feel for conversation design as we build and deploy a bot to Facebook Messenger.
Brooks Atkinson (18)10:45-12:00Szymon RozgaBot Design Guidelines: Lessons from the Trenches200So, you want to build a bot? Great. No problem. Just put something in the Bot Framework or API.ai and you’re good.

Slow down.

In this world where bot technology can behave in all kinds of unpredictable ways, it is really easy to create a useless and annoying bot. Yet people still do it. Everyday. My goal while building bots has always been to create a useful, low touch, low annoyance experience and in this talk I’d like to share some of the lessons we have learned over the past years.

Should you gender your bot? How often do you reach out proactively? How verbose should you be? Should you say “Sorry, I don’t know”? What’s the distinction between cards and attachments? How do I support a group conversation? We’ll cover these and many other sticking points that you will run into while designing a bot while exploring a few good options on how your bot can effectively communicate with your users.
Brooks Atkinson (18)13:00-14:15Scott McAllisterEvolve Deliberately: Moving Your Angular from V.1 to V.2200Your organization has bought in to AngularJS and built an awesomely interactive UI using the JavaScript framework. Now you want to take advantage of the features in the latest version of Angular, but not sure how to make the leap to TypeScript. Come see how to migrate your code from AngularJS (V.1) to Angular (V.2+)!
Brooks Atkinson (18)14:30-15:45Jônatas Davi PaganiniLive coding a small compiler200The most of the developers are programming language users and not language writers. But, have you tried to build your compiler?

In this live coding show, We'll code a language parser from scratch. Applying the
computation principles and implementing the basics of a programming language parser.

The parser will cover a little grammar very similar to regular expressions but made to search code directly in the Abstract Syntax Tree.

The code base will be implemented using Ruby but no need a previous experience with the language.
Brooks Atkinson (18)16:00-17:15Kushan Lahiru PereraRevamp teams with Microsoft Teams100The ways organizations collaborate and communicate vary more than ever these days, especially given the generational divide in the workplace that has many employees working with a mix of device types and preferring different modes of interaction in mobile-first and cloud-first age.

Let’s discuss on improving communications, collaboration with ensuring productivity with Teams and its extensibility.
Carnegie (18)09:15-10:30Steve OgnibenePractical TypeScript 2 Migration200TypeScript is JavaScript that’s refactorable! Come learn how to take your existing web app or Node.js project and gain the advantages of using TypeScript. Steve Ognibene will start with an existing typical web application and convert it to TypeScript 2.5 step by step. Following this incremental process, you can gain the advantages of TypeScript while remaining productive (no big rewrite). Steve will then demonstrate the power of TypeScript to enable refactoring and catch bugs. This session is applicable to everyone who uses JavaScript – the focus will be on the language itself and not any specific framework.
Carnegie (18)10:45-12:00Chris MillerVector Graphics in Xamarin200We'll be discussing how to use scalable graphic resources in Xamarin applications as a replacement for bitmap images. Some familiarity with Xamarin is expected.
Carnegie (18)13:00-14:15Betsy WeberBring your code to life - Screencasting 101100Ever want to demonstrate your app or teach the use of your software's features? Need to enhance your documentation or blog posts with a video? Creating a screencast helps software developers show off their work. Come to this session to learn how to make a screencast video and look like a Rockstar. I will give you 30 tips in 30 minutes.
Carnegie (18)14:30-15:45David BerryWhat Every Developer Should Know About SQL Server Performance200Are 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, how to understand what the statement is doing when it runs and what you can do to improve this performance. I'll show how the right database indexes help SQL Server locate the data your application needs very efficiently and what you need to know to create effective indexes for your application. Finally, I'll discuss how you can use built in capabilities in SQL Server to find your worst performing statements and tables that are missing indexes so you can quickly find and solve your biggest performance bottlenecks. 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.
Carnegie (18)16:00-17:15Jim WooleyGetting started with Entity Framework Core100With the cross-platform version of .Net, Microsoft has had to rewrite many of the core components that we have come to depend on. If you include data in your applications, chances are you have used Entity Framework in the past. In this session, you'll learn how to get started using EF Core and how to handle the changes in this version.
Central Park East (81)09:15-10:30Greg ShacklesBuilding Scalable Applications with the Actor Model200How can you make sure that your system is responsive, resilient enough to stay available in the event of failures, and elastic enough to stay responsive under heavy workloads? We all like to think our systems will scale, or we can simply throw more hardware at them, but in reality it's a much trickier problem than that.

In this session we'll take a look at how the actor model can help you architect reactive applications, both large and small, that are built to scale right from the beginning. As part of this we'll walk through real examples of using the Akka.NET framework, but the lessons and patterns will be applicable regardless of your actor framework of choice.
Central Park East (81)10:45-12:00Jason IoffeBending Reality with the Hololens100Explore the possibilities of the Microsoft Hololens as we dive head-first together into the basics of creating and deploying interactive scenes. After a brief primer into the technology behind the Hololens, we will begin with the basics of displaying a 3D scene. From there, we will add interactivity to our scene in the form of Gaze, Tapping, and Voice Commands.

In this session we will develop solely using Unity3D and Visual Studio. This session is recommended for those with a basic knowledge of C# or similar programming languages. A basic knowledge of Unity3D, or general 3D engine concepts, is useful but not necessary.
Central Park East (81)13:00-14:15Chris LoveServices Workers - Your Web Applications Never Felt So Good100If you have not heard of service workers you must attend this session. Service Workers encompass new browser capabilities, along with shiny new version of AJAX called Fetch. If you have every wanted your web applications to experience many native application features, such as push notifications, service workers is the gateway to your happiness. Have you felt confused by application cache and going offline? Well service workers enable offline experiences in a much cleaner way. But that is not all! If you want to see some of the cool new, advanced web platform features that you will actually use come to this session!
Central Park East (81)14:30-15:45Arthur GarciaDevices to the Cloud100This session will demonstrate actual IOT devices sending data to Azure. It will review the steps and processes in Azure to process data from an actual device. I will have multiple devices sending data during the presentation. This session will demo the Azure IOT hub, Stream Analytics and Azure table storage. It will use both Arduino and if time permits the new Microsoft IOT DevKit https://microsoft.github.io/azure-iot-developer-kit/ as seen at Build this year.
Central Park East (81)16:00-17:15Oren NovotnyMulti-targeting the World: A Single Project to Rule Them All 200Into to creating single and multi-targeted .NET Standard class libraries using the new "SDK-style" project system. We'll recap what .NET Standard, what problems it solves, and how to get started. Next, we’ll dive into some of the new capabilities of the “SDK-style” project type, show how to consolidate projects that need to target multiple platforms into a single project and easily create a NuGet package for the library. Finally, we’ll demonstrate how to convert an older class library into a .NET Standard library.
Central Park West (201)09:15-10:30Chris LoveDisrupting the Application Eco-System with Progressive Web Applications100For years I have been demonstrating techniques and architecture developers can implement to create a native application experience with HTML5 and no app store friction. Today those principles are being quickly implemented as native platform user experience by browser vendors. Progressive Web Applications is a comprehensive term describing web applications that implement a base set of browser platform features like HTTPS, Web Manifest and Service Workers. But it bleeds beyond the scope of an application's code because browsers are enabling qualified web applications to offer the same user experiences native application enjoy. This includes prominent home screen placement, push notifications, eliminated browser chrome and app store placement.

The best thing about progressive web applications is you can qualify as a PWA with as little as 5 minutes of work!

This is a critical advancement in web technology as native applications have lost their appeal to consumers and business alike. Installation friction, straining resource requirements and discoverability issues have caused consumers to stop downloading apps. Meanwhile they limit their native application usage primarily to Facebook. Meanwhile app store taxation and over regulation have impacted the viability of businesses to create viable services on the native platforms. These issues have combined to make native application development and maintenance a losing proposition for business of all sizes and shapes.

In this session we will cover the concept of a progressive web application, why they are important and how to implement a baseline PWA. You will walk away with supporting 'sales points' to sell your business stake holders and technical leaders on adopting a PWA approach for both consumer and line of business applications over a native application. These points will give you a solid background understanding of the PWA concept and high profile advantages of PWAs over alternative client experiences. You will also see how to use supporting tooling to create rich web applications that take advantage of modern features offered by service workers and how existing applications can benefit from a PWA upgrade without changing existing code, well not too much.
Central Park West (201)10:45-12:00David BerryBuilding Enterprise Grade Web APIs in ASP.NET Core200APIs have become one of the most important components of modern application design. Yet most articles and tutorials on how to build APIs show code that looks much more like “exampleware” rather than well designed, enterprise ready software. In this talk, we’ll move past the oversimplified examples and show the patterns and practices that go into building a sustainable, extensible API that is highly functional and easy to consume.

We’ll start off by discussing how to effectively apply REST principles when creating the URLs for your APIs endpoints. We’ll then how to use view models to control the shape of the data into and out of your API and how to make decisions about what you to include in the payload for each endpoint. We’ll discuss how to keep your controllers clean by breaking out your business logic into separate classes. And then we’ll wrap up by discussing the facilities ASP.NET Core provides for versioning your API and how you can leverage these in your API.

When we are finished, you will be ready to leave exampleware behind and begin building your own Enterprise Grade APIs.
Central Park West (201)12:00-13:00Ethan BrooksI Forget: Do I Work From Home? Or Live at Work? : Avoiding Burnout as a Remote Professional100Ethan Brooks is the North American Community Lead at Toptal, the world’s largest fully distributed company. In this presentation, he will reveal a major cause of burnout that isn’t often discussed along with actionable tips for avoiding it while increasing your productivity, delivering higher quality work, and freeing up time to pursue your other interests. Info will be directed primarily towards employees and freelancers who work remotely but will have wider applications to all knowledge workers who are expected to consistently execute at the highest levels.
Central Park West (201)13:00-14:15Miguel CastroDesign & Build AngularJS Component-Based Applications200Angular (2) uses Typescript as a syntax new installation and setup procedures. But the single most significant change is that it forces us down the path of component-based design. This is not a bad thing; in fact, it's an awesome way to design and write web application. But what if you are not ready to make the leap to the next version of Angular, whether for personal reasons or those of your place of employment? Well, AngularJS (1.6) back ported the idea of components directly from Angular's design. Now you can design and develop your web applications using this great modular and encapsulated paradigm. And you can do it using the familiar Angular 1 environment that in all honesty, is not going anywhere any time soon. In this session, I'll give you a run-down on how to leverage all your existing AngularJS knowledge but learning a great hierarchical way of designing your applications. You'll also see the Angular UI router in action, giving you the ability to target any part of the app structure using a URL. This component-based of way of writing applications will put you in the right mindset so when you jump to Angular, the move will be much easier. The session will be for MS and non-MS centric devs as it will start non-Microsoft centric, but end with a port of the design and code to work within the ASP MVC platform.
Central Park West (201)14:30-15:45Glenn HinksModern full stack development at the enterprise level200Development at the enterprise is more closely aligned with the startup than you think. You would recognize all the current
technologies that big enterprise uses and would be surprised by how quickly new technologies are adopted. All the current
full stack technologies node, react, webpack ... are in use at the big enterprise. Enterprise is quickly moving into the progressive application space. You may be surprised to find out that our private NPM repos are only a point release or two behind the public ones and that we moving rapidly along the technology development ladder. There are many challenges to using the best technologies when you have a profitable mature organization. I'm going to discuss the differences between using the current full stack technologies between the startup and the enterprise and will cover changing frameworks from Angular to React, adopting best practices in node as your backend, how we are moving to progressive applications and how we are working hard on page performance.
Central Park West (201)16:00-17:15Nick LandryHoloLens & Immersive Mixed Reality App Development300Mixed Reality blends people, places and things across a full spectrum ranging from the real-world to digital virtual worlds. This session is your introduction to building 3D applications and games for Windows Mixed Reality using C#, Visual Studio and Unity. We’ll start with a quick recap of Mixed Reality, the HoloLens device, immersive headsets and the Universal Windows Platform (UWP), and talk about interacting with holograms using gaze, gestures and voice. Next, we’ll dive into building 3D apps for Windows Mixed Reality in Unity with C#, using the Mixed Reality Toolkit for Unity, exporting our project to Visual Studio and running it on either a HoloLens device, an immersive Mixed Reality headset or the HoloLens Emulator. Science fiction becomes science fact, and Unity & UWP developers are at the front of this revolution. Come learn how to get started and build your journey into a world of holograms you create.
Majestic (18)09:15-10:30Gloria WLearning how you learn: The most difficult and rewarding thing to learn. 200We are fortunate to be in a profession where we can never possibly get bored. One of the most pondered questions for new and seasoned engineers is how to narrow down what to learn. I'll share with you my musings, self-experimentation, and success stories in how I train and retrain my brain to continually learn, so that I continually work on freelance projects of all kinds, and successfully accomplish the goals set for myself and by my clients.
Majestic (18)10:45-12:00Doug FinkeServerless PowerShell Azure Functions200Serverless PowerShell Azure Functions. Serverless means reduced DevOps, reduced complexity, and broader reach. Stay focused on what you need to deliver. Have you ever built a PowerShell script and wanted to share it? Do you post it to a network drive? Submit it to an internal system to have it delivered? Want to distribute it more broadly, or server up your PowerShell function as a REST API?
Microsoft MVP Doug Finke, author of “PowerShell for Developers”, does a deep dive, demo heavy talk on how to easily publish your PowerShell to the Azure Cloud so it is easily accessed from the Internet, as scheduled task and it can integrate to other Azure and on premise resources.
Majestic (18)13:00-14:15Glenn HinksThe technical interview, why has it been so awful for so long and what can we do to make to improve it.100How can you prepare yourself for the technical interview. It does not matter if you are looking for your first position or are a already a skilled developer it is really hard to land that new position. On the opposite side how do you create the best interview experience for bringing in great developers. How much is down to luck? How much is down to interview technique? What can both sides of the table do to improve things?
Majestic (18)14:30-15:45Mauricio MendozaBecome a superior programmer in today's world!100Programming work is essentially unsupervisable. Your employer can't force you to be a good programmer and often isn't even in a position to determine whether you're good or not. Once you decide to make yourself a superior programmer, the potential for improvement is huge. Thus, character is the more decisive factor in the makeup of a superior programmer. Rather than provide programming tips, we will explore how five aspects of your personal character directly affect your ability to become a superior programmer. Additionally, we will explore some other factors that you may at first think are important, but in fact have little or no impact on your abilities as a software developer.
Majestic (18)16:00-17:15Kevin IsraelBuilding SPAs with ASP.NET Core 2 and ReactJs200This presentation will focus on covering the ASP.NET Core architecture and the unified controller model of development. We we then move in ReactJs architecture and what it takes to build ASP.NET Applications with ReactJs. The outcome is a very simple yet rich web experience.
Marquis (18)09:15-10:30Jônatas Davi PaganiniLive coding a new cop for RuboCop 100If you're a Ruby developers, you're probably using RuboCop to keep your code clean and aligned with the ruby community style guide.

In this live coding show, I'll be implementing a new checker, observing the language through the abstract syntax tree and creating rules to offend the code and auto-correct it.

prerequisites: Be familiar with Ruby language
Marquis (18)10:45-12:00John-Daniel TraskBuilding a software company100Many software developers dream of building up a project into a real business and working for themselves. This session is for those aspiring developers. John-Daniel is a software developer with 25 years experiences who has built (and sold!) several multi-million dollar businesses from scratch. He'll discuss some of the traits that make software developers great business operators, as well as some characteristics you'll need to unlearn to do so.
Marquis (18)13:00-14:15Gloria WIoT protocols and practices: the failed corporate attempt at invasion of this maker space, and what giant communication companies are trying as we speak200I'll talk a bit about current protocols, transport layers, and hardware being considered by corporations and Open Source projects, the invasion of Bluetooth 5 in many major cities, and what vendors around the world are playing with to capture these markets. I'll raise some issues regarding security from the protocol perspective, and then from your Bluetooth device perspective. It should be a fun time!
Marquis (18)14:30-15:45Paige BaileyWell-Aged Bacon: predicting Kevin Bacon's age with the Python Cognitive Services API 100This talk will walk through functionality of the Azure Cognitive Services API, in the context of a specific use case (predicting Kevin Bacon's age from 1978 - 2016). Topics addressed include age approximation, emotion detection, hair color, gender, likelihood of moustache or glasses, and more! 
Marquis (18)16:00-17:15Muhammad SiddiqiOpenAPI Specification for RESTful Services100REST APIs provides us lots of advantages including JSON based responses and supporting plain HTTP. This simplicity makes it difficult to utilize them for statically typed clients. Open API Specification allows these services to publish their contracts using the same HTTP. It is now version 3.0. The session would be a deep dive discussing how the specification can be used for API documentation, discovery and client code generation specially for polyglot development.
Music Box (46)09:15-10:30Anthony AbateLow Latency Programming (C#/.Net)300How fast is fast? Computing at the nanosecond level requires specialized techniques and creative ways to capture timing data.

This topic will discuss various low-latency methods that can provide speed boosts by utilizing concepts such as lock-free and non-blocking operations as well as generalized code optimization.

The performance implications of .net locking and synchronization primitives (signals/events, lock/monitor, interlocked) and various threading (thread pool, tasks, async) patterns are compared along with their latency implications.

Design patterns such as pessimistic vs optimistic concurrency, lock-free circular queues and the disrupter pattern will be discussed and demonstrated. Basic SIMD hardware based vector functions will also be demonstrated and compared to standard .Net code.
Music Box (46)10:45-12:00Hao LuoUnderstanding Async/Await in Javascript200Javascript traditionally relied on callback functions to handle asynchronous operations. As your Javascript application grows, you would encounter “Callback Hell”, which makes your code unreadable and application error-prone. There are now several ways to combat callback hell, and make your application development experience more enjoyable.
The presentation will quickly go over the shortcomings of callback functions. It will also provide a thorough walk-through of Promises, and Generators, and combine the two paradigms to explain the new ES2016 feature async/await.
Music Box (46)13:00-14:15Bhakthi LiyanageHow to become a Jedi: Introduction to Mind Machine Interfacing using Brain Activity(EEG) and Azure IoT200Have you ever been wondering how Jedi or Sith controlled objects with their mystical power called the Force without touching them? Have you ever wished you had the power to control things around you with the power of your mind? Mind-machine interface (MMI), or brain–machine interface (BMI), is a direct communication pathway between an enhanced or wired brain and an external device.

In this session, I will demonstrate how to control a remotely located physical device by converting your brain activity to commands and send them to remote devices using Azure services.
Music Box (46)14:30-15:45Greg ShacklesBuilding a Voice-Driven TV Remote With Azure and Alexa100After I first got an Amazon Echo I quickly found myself wanting to control more things in my house by voice. I could alredy turn on and off my entertainment system or tune to some preset channels, but I wanted more. I just wanted to say "Alexa, turn on the Yankees game" and have it figure out the rest. What about being able to ask questions like "Alexa, what time is the Rangers game later?" or "Alexa, what's on HBO?" This seemed like an important problem worth solving, so I got to work.

In this session I'll walk through how I pieced together a solution using a variety of Azure services such as Azure Functions (written in F#!), Azure Search Service, SQL Server, Service Bus, and Storage. There's also a Raspberry Pi thrown in for good measure, but that's the only hardware I manage myself. It's actually a lot simpler than it sounds, so join me to learn how you can easily build your own voice-driven experiences!
Music Box (46)16:00-17:15Bob FamiliarAzure IoT, DevOps and Edge Devices300This session provides architecture patterns, best practices and running demonstrations that show how to design and implement highly distributed IoT SaaS solutions using Azure. Topics include creating continuous delivery automation for Azure services and custom microservices. Edge device firmware is examined to understand how devices are bootstrapped, configured and implemented to handle both outgoing telemetry as well as incoming events and commands. IoT Hub’s Device Twin is examined and demonstrated to show how over the air configuration and firmware updates can be applied. Work performed with customers is discussed to shed light on the challenges that organizations face when moving to real-time systems that drive business outcomes.
New Amsterdam (18)10:45-12:00Bhakthi LiyanageBuild Intelligent Applications with Azure Cognitive Service API200Microsoft Cognitive Services enables developers with powerful set of APIs that can be used to develop intelligent apps with powerful algorithms, using just a few lines of code.The API enables developers to easily add intelligent features – such as emotion and video detection; facial, speech and vision recognition; and speech and language understanding – into their applications with minimum effort. This session will show case how to get started with the API and how it can be integrated with your application.
Radio City (48)09:15-10:30Alex HungAuthentication using JWT for SPA and microservice200Authentication between Single Page App (SPA) and mircoservice API is challenging. In a microservice architecture, oftentimes authentication is handled by a different microservice, separated from the API service. This talks describes the potential problems with 'tradition' authentication mechanisms (such as session cookies) in this environment and describes how JSON Web Token (JWT) can solve these issues.

Outline:
- How do we get here?
- Basic Auth
- Session cookies
- Tokens
- What is JWT?
- What is asymmetric cryptography?
- How would JWT used in SPA/microservice architecture?
- How does it solve the problems?
- Pros & Cons
- Q & A

https://jwt.io/introduction/
Radio City (48)10:45-12:00Jim WooleyGetting pushy with SignalR and Reactive Extensions100As our systems increasingly demand more real-time updates, we need better ways of working with these live streams of information. Traditional pull models fail to provide the real-time responsiveness and scale needs that modern systems expect. Moving to a push model allows us to scale easier and react to new data as it becomes available. SignalR facilitates push notifications over HTTP to a variety of clients. The Reactive Extensions were designed to allow for asynchronous LINQ over push based collections. In this talk, you’ll see how the synergy of these two technologies merge to make otherwise difficult tasks, a push over.
Radio City (48)13:00-14:15Nick LandryHoloLens & Mixed Reality Development with the Cloud300From simple leaderboards and gamer accounts, to full multiplayer or even MMORPGs, the cloud simplifies the creation of connected games without any upfront investments. The cloud democratizes game development, putting infrastructures normally reserved for AAA studios into the hands of indie game devs. Mixed Reality applications can also benefit from cloud backends for shared experiences between holographic and immersive users, remote avatars, loading dynamic assets, and positional updates. In this session you’ll learn how to design & create Windows Mixed Reality apps & games in Unity with a cloud backend including Web APIs, cloud storage, state management, cognitive services and more.
Radio City (48)14:30-15:45Greg HurlmanGetting from 0 to 100 with Progressive Web Apps & Ember.js200Using Google Lighthouse as our guide to PWA enlightenment and the Ember.js framework and ecosystem as our tools, we will explore what makes up a Progressive Web App, why we should bother, and walk through getting a minimum viable PWA running in no time at all.
Radio City (48)16:00-17:15Riccardo TerrellTaming and Composing high performance Stream-Oriented Processing Systems for Big Data200Real time applications are dominating the industry! Data is the main ingredient in Internet-based, social media and Internet of things (IoT) systems, which generate continuous streams of events used for real time analytics. This poses a tremendous challenge due to the massive volume of data collected and processed. These event-based Real-time analysis systems can easily process millions of messages per second through new generation solutions by simply defining small flows and then combining them together to create processing graphs. In this talk, will cover the concepts behind high-performance streamed-oriented big data processing systems. We will explore messaging queue systems like Kafka and Akka Streams which let developers define their process workflows at a higher level to define a graph system enabling a high throughput. You will learn how to integrate high performance stream message queues and how to define process workflows in C# and F#.
Winter Garden (46)09:15-10:30Kevin IsraelBuilding and Deploying Microservices with .NET Core200Building microservice applications can be a bit of a challenge to design and build sometimes as the interfaces for them need to be clearly defined and are utilitarian in nature. These components follow the Single responsibility principle and are autonomous in nature, communicating via APIs. In this session we will cover microservice architecture and how the .NET Core 2 framework allows us to build and deploy microservices.
Winter Garden (46)10:45-12:00Carl FranklinAccessing Google Cloud APIs with C#200Carl Franklin unpacks the complexity of Google Cloud API authentication, authorization, and API access. Carl shares his boilerplate code for accessing the Google Storage and Google Speech API shown in the context of an app that lets you edit WAV files (containing speech) by simply editing text.
Winter Garden (46)13:00-14:15Dan StoltsDevOps Journey at Overdrive - Experiences, Tips & Checklists From the Field DevOps200Learn how to put your DevOps journey into Overdrive. If you are not seeing amazing results every few weeks, you may not know how to get things moving at hyper-speed. ITProGuru will share tips, tricks, checklists, & examples to help make your journey fun, exciting and results drive FAST!

There are many secrets to showing quick results. Results, where the true value of DevOps can be realized in just a few weeks. If you have not started the Journey, this is the place to start. If you already started but feel you should be able to get results faster, it is too hard, takes too long, or there is too much bureaucracy, this session will help. It will show how to kick your journey into high gear. Overdrive, is where you want to be, where you are executing at top speed with lower amounts of energy being consumed. Learn how to cruise with DevOps at this session.

This session is driven by key components including:
* Starting with the right discussions to have and with the right people
* How to get the right people in the room - and consequences if you do not
* Scheduling, preliminary discovery discussions, VSM and project hacking
* Driving fun, passion and excitement fast
* Results & Reporting
* Repeat & Replicate

All lessons will be leveraging field experience from Chief Technology Strategist Dan Stolts as he shares how he helped many customers begin or improve their Journey. Some of these experiences include very large companies that have been on their Journey for over a year with little to show for it. This will be a fast paced session where you will learn how to make DevOps fun, engaging and results driven. If you are serious about results, you will get some homework, checklists and presentation materials so you can make it all real for you! Don't miss this session as it could change your world.

We will not have time to go deep into the VSM, which is critically important to fast success so look for Dan's other session on Value Stream Mapping.
Winter Garden (46)14:30-15:45Jim WooleyRoslyn and You300Starting with Visual Studio 2015, the C# and VB compilers were re-written from the ground up. This new compiler features new extensibility and language capabilities. In this session, we will focus on how these changes will impact you as a C# or VB developer in your day-to-day development. We'll start with exploring the new language features. We'll then look at how to take advantage of code diagnostics and fixes that are publicly available. We'll end by exploring some of the extensibility points that you can take advantage of if you want to build your own diagnostics and code fixes.
Winter Garden (46)16:00-17:15Chris LoveReal World Lessons in Progressive Web Application Caching200Over the past year we have seen a lot of excitement around Progressive Web Applications. Browser evangelist are selling developers and business owners on their advantages and promising future. But what is the real story? What are the details to proper execution? What do engineers need to know to make their web sites into Progressive Web Applications that not only meet the minimum criteria, but meet the sales hype?

Searching the Pokedex offline is fun, what is the real experience like caching a business application? Caching application assets and data can be complex, especially for larger applications. What to cache, how long to cache and how to cache are all valid questions. Often, in an effort to just ship something, we cache nothing. When we don't cache, we disappoint the customer and miss a key promise of progressive web applications.

In this session we will cover real details about caching reality based on real world experience in bringing Progressive Web Applications to market. This is not a session to sell the concept, but a session to highlight caching nuances you don't see until you sit down to write the code.

Sure the Chrome engineers know the node modules, sw-precache & sw-toolbox, they developed. But what happens when you, the general developer uses them? How do you use the sw-precache and sw-toolbox modules to craft a caching strategy for your application? How do you even determine what to cache? How can you get yourself in trouble? And more importantly, how can you get out of trouble and prevent hours or days of frustration?

 

Comments on this entry are closed.