The schedule grid is available for download as a PDF file.

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.

Belasco (20)09:15 - 10:15Nathan WestfallGetting started with Xamarin EssentialsEnhance your Xamarin Forms app with Xamarin Essentials! Adding Xamarin Essentials to your app quickly gives you access to "easy-to-use" cross platform APIs. No longer do you have to build interfaces and access the device APIs directly through dependency injection. Quickly access device information, current location, text-to-speech and more!Introductory and overview
Belasco (20)10:30 - 11:30Olivier De MeulderScrum, Sprint, SwarmLike many software development teams, my team at The New York Times, uses scrum as our main process. To plan our sprints, we would go through the backlog, pick stories and assign a story to each of our six engineers, who would then work hard to get their story done. Because of unforeseen roadblocks, the stories would often get pushed to the next sprint or we would work together on a story to finish it before the end of the sprint. The problem with this process was that by the time we realized we needed to work together, it was often too late in the sprint.
Recently, we started working together, or swarming, for our entire sprints and only taking on a small number of stories at a time. Swarming is not a new concept; Many agile teams often swarm on a story to finish it before moving on to a new story. We took the definition of swarming and made it or own: We don’t just swarm to finish what has already been started, we swarm as soon as we start something new. And we’ve become more productive and collaborative as a result.
Belasco (20)12:45 - 13:45Ryan LynchObservability for the FrontendYou read through logs, you pore over stack traces...but what is really going on inside the browser as users move through your application? Observability provides an answer to this question, and poses new ones we didn't know to ask.

In this session we'll start with an instrumented application, complete with features and bugs. We'll take on the role of new users and new developers, working together to understand and improve the application using insights gained from tracing and other observability tools.

Come with any level of experience in observability, and walk away with an understanding of how these tools can be applied to frontend development problems.
Belasco (20)14:00 - 15: 00Oren NovotnyDevOps for Desktop ApplicationsClient applications have unique requirements for DevOps, this session will show you how to use Azure to deploy MSIX based applications in an efficient and secure way. We will cover branching strategies, versioning, packaging and automatic deployment using Visual Studio App Center and Azure Pipelines. Introductory and overview
Belasco (20)15:15 - 16:15Isaac LevinApplication Insights: The Tool You Never Knew You NeededUnderstanding how our applications function in the wild is essential for developers when issues arise. With the power of knowledge, we can enable ourselves to provide the best experience to our fellow developers, and our stakeholders. One of the solutions that supplies this power is Application Insights. Application Insights is a service provided by Microsoft allowing you to monitor your application live, detect performance anomalies, and observe this data with powerful analytics. Together we will see how easy it is to add Application Insights to our applications, whether we have access to the code-base or not. Once instrumented, we will dive deeper into the capabilities of Application Insights and show how to leverage all the rich data collected from our application. Finally, as developers the last thing we want to do is troubleshoot an issue in Production, with everyone watching and the stakes are high. Watch as we monitor a live application that is throwing exceptions and how Application Insights can be used to help us solve the problem faster. When we are done, attendees will be empowered with the knowledge to leverage Application Insights to be more productive with their work.Introductory and overview
Broadway (30)09:15 - 10:15Joe KarlssonIoT with JS (?!?!) - A Gentle Introduction to IoTHave you ever wanted to get started on your own Internet of Things (IoT) project, but didn’t know how to start? Well, now it’s easier than ever to jump in and start creating your own IoT device using JavaScript.

In this talk, we will be getting our hands dirty the Raspberry Pi and Node.js. Together, we will be writing a program to visualize sound levels on the web in real time. With Node on a Raspberry Pi, we will listen to a sound sensor and then send that data to a webpage so we can visualize the data live! Sounds cool right?

You will leave this talk with an understanding of:

Connecting sensors to a Raspberry Pi and reading the inputs with Node.
Introductory and overview
Broadway (30)10:30 - 11:30Eileen McFarlandEmoReply: How to Make a Chrome Extension with Feelings“Great!” “Got it, thanks!” “Awesome, thanks!”

Above are three examples of Gmail’s SmartReply feature, which promises to save users time by suggesting replies. Here’s a problem: they’re all happy. What if you want to let your inner angst-ridden teenager out? The chrome extension EmoReply is here for you. Using machine learning, EmoReply suggests angsty autoreplies that replace SmartReply’s exclamation marks with tear marks. The talk will walk audience members through EmoReply’s architecture, which includes doc2vec on the back-end. During the talk, audience members will learn how to set up a basic machine learning model using gensim and doc2vec. Next, audience members will learn how to approach writing a chrome extension, including tips about common pitfalls they should avoid. Finally, the talk will conclude by highlighting spin-offs of EmoReply, such as EnronReply and Overheard-in-New-York-Reply.
Introductory and overview
Broadway (30)12:45 - 13:45André BarnesAfter you commitWith everything being automated and repeatable these days DevOps is becoming more and more of a necessity for the the everyday developer to be knowledgeable of. These days everything is being automated and stuffed into a repository. Come and explore building CI and CD pipelines in Azure DevOps with an emphasis on .NET core apps. In this talk we will discuss CI CD and dive into building some pipelines that handle testing, database migrations and security within Azure.Introductory and overview
Broadway (30)14:00 - 15: 00Chuck LaffertyLeading a DevOps TransformationThere are so many DevOps misconceptions. DevOps is way more than containers and Jenkins. In this talk you will learn DevOps is not a person, role, or team. It's what an entire organization does. It's like Agile evolved. It's never an easy road to CI/CD but you need to start somewhere. We will deep dive into what DevOps is, how you can architect your software for daily delivery and quality. We will discuss ideas and practices from other industry leaders on how they applied DevOps principles into their software. Finally give you tips on how to move your software team towards a DevOps mindset, no matter the organization.Introductory and overview
Broadway (30)15:15 - 16:15Steve OgnibenegRPC with .NET Core in ProductionNamely has been using gRPC with .NET microservices in production for nearly two years. In this 200-level talk, Steve will introduce gRPC, contrast protocol buffers with JSON, and cover how Namely manages our protorepo. Steve will show how Namely scaffolds clients and servers in many different languages with our open source docker-protoc container, and how we instrument our .NET services using gRPC pipelines/interceptors. You will see how we use gRPC Gateway to allow our gRPC services to send and receive data using JSON for non-gRPC enabled clients (such as JS frontend code). We'll even talk about the benefits of using the new managed gRPC implementation in .NET Core 3.0. You'll come away from this talk with an understanding of what gRPC is, and some best practices for implementing it that work well with C# and other languages. This talk should be useful for any developer with some experience programming APIs who wants to learn about gRPC.Intermediate
Central Park East (81)09:15 - 10:15Jay GordonTaking Your First Steps In ContainersMany times the biggest ask for users trying to learn about containers is getting easy “getting started” information. In this session attendees can get a getting started entry into building a Node.js “Hello World” and bring it to production with only a few steps.

Many times the biggest ask for users trying to learn about containers is getting easy “getting started” information. I recently presented at a conference where I showed attendees how to deploy a web application with Docker and Azure. A person who identified as a “Junior Web Developer” confided in me with, “I am so happy to see someone present this information in an easy method with the commands!” This confirmed that there’s still a big need to help users understand their first steps in taking the code they produce from their laptop and repositories up to the cloud.

In this session attendees can get a getting started entry into building a Node.js “Hello World” and bring it to production with only a few steps. This session will provide the following steps to the attendee:

Cloning git repo with “Code”
Building local Docker image, preview image
Creating Azure Container Registry, Authentication
Build and push to remote registry
Deploy container to Azure Web App for Containers (PaaS)
Attendees will be provided with demo code and instructions on how to deploy to production instructions (not necessary, only for further education).
Introductory and overview
Central Park East (81)10:30 - 11:30Christina LowAccessibility in Tech & Twitter A11y: A Browser Extension to Describe ImagesIn my experience over the summer in my Human Computer Interaction REU program at Carnegie Mellon University, I learned a lot regarding the intersection between psychology and computer science, specifically in regards to how as technology is advancing, the need for making software accessible is often overlooked and increasingly needed.

In this session, I will present and discuss the project I collaborated to make: Twitter A11y: A Browser Extension to Describe Images.

Below is the abstract from our poster:
"Twitter is integral to many people’s lives for news, entertainment, and communication. While people increasingly post images to Twitter, a large majority of images remain inaccessible to people with vision impairments due to a lack of image descriptions (i.e. alternative text). We present Twitter A11y (pronounced ally), a browser extension to make images accessible through a set of strategies tailored to the platform. For example, screenshots of text that exceed the Twitter character limit are common, so we detect textual images, and automatically add alternative text using optical character recognition.Tweet images apart from screenshots and link previews receive descriptions from crowd workers. Based on an evaluation of the timelines of 50 self-identified blind Twitter users, Twitter A11y increases automatic alt text coverage from 2.6% to 25.6%, before crowdsourcing the remaining images."
Introductory and overview
Central Park East (81)11:45 - 12:30TopTal | Gabriel BianconiSponsor Lunchtime Session: Natural Language Processing: History, Theory, and ApplicationsMachine learning algorithms work with numbers, but text makes up a substantial source of information. How can we bridge these domains to extract new insights? Machine learning algorithms work with numbers, but text makes up a substantial source of information. How can we bridge these domains to extract new insights? This talk will cover the principles of natural language processing (NLP), focusing especially on foundational ideas such as word vectors and language models. Following a historical overview of different approaches used to solve these tasks, the audience will gain a strong intuition for the theory and motivation behind the algorithms. We’ll then discuss NLP applications leveraging these methods, as well as a useful tactics for dealing with practical challenges.
Central Park East (81)14:00 - 15:00Phil WellsAutomating the New York Times CrosswordThe New York Times digital crossword has more subscribers than the population of Iceland. The team responsible for this media mainstay add new features all the time. They release new games, like Spelling Bee and Letter Boxed. They introduce new features, like leaderboards and vertical streaks. They add engaging bonuses like milestone animations to the crossword. How does a team doing so much, with a product so renowned, ensure that they're building in quality with every new release? Join Phil Wells, a software engineer in test for the Games team, as he discusses that very topic. Phil addresses the negative feelings some teams might feel with delivering anything but a perfect product. He'll talk about the software quality practices his team uses to squash those feelings. He'll explain some of the tools they use to ensure that everyone feels confident and happy with their software delivery. Test practitioners will leave knowing that their job is a process of continual shame elimination. And they'll have a few new tricks to help them get the job done.Intermediate
Central Park East (81)15:15 - 16:15Mitchel SellersPractical Unit Testing Patterns With .NET CoreReaching 100% Code Coverage is often a mythical number, however, when you dive deep into an application you might discover that patterns of the technology limit your ability to achieve good code coverage. This sessions explores this topic and introduces attendees to tips and tricks that can be used to help reduce the amount of code that needs to be written while at the same time allowing project Code Coverage to be reported accuratly with the ultimate goal of helping to implement higher quality code.

After the session attendees will leave with a greater understanding of Unit Testing principles, methods to manage coverage percentages, and areas of .NET Core that inhibit unit testing and how to work around those limitations.
Central Park West (201)10:30 - 11:30Jim WooleyEntity Framework performance monitoring and tuningObject Relational Mapping technologies, including the Entity Framework can drastically simplify the programming model against databases, but when done carelessly, performance can suffer. In this session, we'll explore some real-life strategies that have solved performance issues in production applications that I have encountered at a variety of customers. We'll discuss the pros and cons of working without stored procs and cover strategies for monitoring and tuning your entity queries.Intermediate
Central Park West (201)11:45 - 12:30Twilio | Layla PorterSponsor Lunchtime Session: The Twilio Photobooth AppKind regards,If you've been by the Twilio booth, you may have seen the MMS Photobooth app running. You didn't have to install anything! Your mobile phone did all the work to get your selfie printed! But how does it all work? In this session, I will talk you through two of Twilio's serverless products, Studio and Functions. I will show you how to create the Photobooth app with a few API calls to Zapier and Cloudinary, then connect these with Twilio Studio and a real phone number ready to receive incoming MMS messages with your selfies!
Central Park West (201)12:45 - 13:45Bhakthi LiyanageBuilding AI Powered Biometric Security Systems with Azure AIFor almost all the organizations on this planet, data is one of their main assets and the security of data is one of the primary concerns. Organizations constantly look out for advanced security mechanisms to safeguard business data. Despite of the cutting-edge security precautions, we have witnessed major data breaches across the board in the past few years. These data breaches have exposed vital data of millions of customers and businesses are constantly looking for better alternatives to traditional security models. Biometrics identifies and authenticates individuals based on their physical or behavioral characteristics and are typically used for security and access control across businesses and government organizations.

This session will demonstrate the architecture and high level development components of an advance AI based biometric security solution that leverages services available on Azure platform.
Central Park West (201)14:00 - 15:00Mitchel SellersPractical ASP.NET Core CI/CD with Azure DevOps in under 60 MinutesA proper Continuous Integration (CI) and Continuous Delivery (CD) setup can save thousands of hours a year and improve the quality of releases and reduce support costs. With all of the benefits organizations are often scared away with a belief that the process is complicated or requires extensive learning.

Azure DevOps makes the process easier, but it does introduce a number of terms & process that might be new. In just under 60 minutes this session walks through the design, implementation, and validating of a CI/CD pipeline to build, test, package, release, and deploy an ASP.NET Core application. Providing all of the tools & experience needed to implement for any application.
Central Park West (201)15:15 - 16:15Mofizur RahmanManaging Kubernetes with IstioDevelopers are moving away from large monolithic apps in favor of small, focused microservices that speed up implementation and improve resiliency. Microservices and containers changed application design and deployment patterns, but along with them brought challenges like service discovery, routing, failure handling, security and visibility to microservices.

“Service mesh” architecture was born to handle these features. Applications are getting decoupled internally as microservices, and the responsibility of maintaining coupling between these microservices is passed to the service mesh.Istio, a joint collaboration between IBM, Google and Lyft provides an easy way to create a service mesh that will manage many of these complex tasks automatically, without the need to modify the microservices themselves.

In this talk we will see how istio can be used to manage traffic, gather metrics and enforce policies in a demo application running microservices. We will learn why kubernetes need “service mesh” and how does Istio improve managing Kubernetes workload.
Gershwin (14)09:15 - 10:15Mitchel SellersTransitioning to .NET Core: It doesn't have to be painfulAs more organizations are looking to transition to .NET Core from existing technologies it is important to understand the processes necessary to make the transition. Although a seemingly daunting task, it is something that can be managed with a bit of planning.

This session will dive into the pre-requisite work, as well as a process that can be followed to make the transition as smooth a possible. and will discuss real-world successes and pitfalls of the transition with a goal of making your transition smooth and painless.
Introductory and overview
Gershwin (14)10:30 - 11:30Quintessence AnxUnquantified Serendipity: Diversity in DevelopmentLearning how to write software, architect infrastructure, and automate deployments is cognitively taxing. So much so, we probably spend a great deal of energy learning how to learn, learning how to retain, learning how to apply, learning how to be efficient, that learning how to be with each other gets lost in the mess.

Straight to the point: Computer programmer. Software developer. Production Engineer. When you read these terms, a picture probably starts to form in your mind’s eye - a sort of default for what a person behind these titles looks like. Maybe also how they sound - what language do you expect them to speak? How do they speak it?

Most likely, when you read those titles, you visualize a white male. He speaks English fluently with a local accent. If you pull up the photo behind an anonymized résumé, you might be surprised to find a Muslim woman wearing a hijab. Or perhaps you see someone who doesn’t speak fluent English, speaking instead with their native Mexican accent.

A lot of the imagery that’s been produced for software developers intentionally or inadvertently reinforces this vibe - the notion that the default developer is a white male, even when history and globalization show that that’s probably not the case. Yet because this is the view when women and other minorities join our ranks, they are given advice that encourages them to behave socially and linguistically like white men.

In this talk, I’ll explore how we can solve problems together as a diverse group, quite literally just by sharing space. I’ll discuss ways that we can be better allies to each other by fostering understanding, and highlight the positive impact of normalizing the appearance of minorities in the field.
Introductory and overview
Gershwin (14)12:45 - 13:45Jyotsna GuptaBuilding cross-platform browser add-ons using Web Extension APIBrowser Add-ons can extend and modify the functionality of a browser. They help us to personalize the browser as per our need.
I’ll be walking through some of the existing add-ons to outline the potential of add-ons.
Participants will learn how easily they can develop a Firefox/Chrome add-on or port Firefox add-on to other browsers(Chrome, Opera, Edge,etc.) by having basic knowledge of JavaScript using WebExtensions API.
Gershwin (14)14:00 - 15:00Bobby JohnsonIdentity 101: How username/password got so complicatedTaking your first step beyond the default username and password based authentication offered by a full stack web application framework can be overwhelming. Social logins, Identity Providers, OAuth 2.0, LDAP, SAML, OpenId Connect; all can be confusing. What does it all mean? How did we get here? By the end of this session, you will have a good understanding of each of these ideas, how they work and when it is appropriate to use them.Introductory and overview
Majestic (18)09:15 - 10:15Bob CrowleyKeeping Configuration Secrets Out Of Source CodeKeeping secrets safe and out of source code has always been challenging. De-coupling sensitive information like connection strings, certificates and passwords keeps these secrets out of source control where it is all to easy to expose them unintentionally.
This session focuses mostly on .Net Core Configuration and also provides an overview of how to leverage Azure App Service Settings, KeyVault and Managed Identities for Azure Resources to help alleviate this long-standing problem. Additionally we will see how to consume configuration even when you, the developer, don't have access to production secrets.
Demonstrated are three application scenarios - A non-Azure-hosted app, An Azure-hosted app and local debugging.
Time permitting, we will also see some techniques for managing secrets in full-framework applications that typically rely on web.config files.
This presentation gives you the basic knowledge to keep secrets out of source code while still assuring correct production configuration.
Majestic (18)10:30 - 11:30Justin DearingAn Introduction to Always EncryptedThis will be an introduction to the Always Encryption feature introduced in SQL Server 2016 . Always Encrypted provides encryption in transit as well as encryption at rest for specific columns in your database. There will be a survey overview of both the operations and development side of Always Encrypted. The main focuses will be porting considerations, certificate management, integrating Always Encrypted into a Continuous Integration and Continuous Deployment (CI/CD chain) and using Azure Keyvault for increased certificate security.Intermediate
Majestic (18)12:45 - 13:45Nathan WestfallScale your API quickly using Message Queues on AWSAPIs are easy enough to build, but making sure they can scale without breaking the bank can be difficult. While there are ways to auto-scale your API through containers/VMs with load balancers, it might be better to use a message queue. In this session, you'll learn how to build an API that sends data to a message queue for processing rather just connecting straight to a database.Intermediate
Majestic (18)14:00 - 15: 00Greg HurlmanPowerApps for professional developersPowerApps is a platform for low/no-code app development, but there is plenty of opportunity for pro developers to extend PowerApps even further! We'll walk through creating and exposing your custom web API inside PowerApps, and how to create entirely custom UI components that can then be used by PowerApps makers in their apps!

Join a member of the PowerApps product team as we walk through using custom data connectors and the PowerApps component framework, how to build and debug, and how to deploy your component so your makers can get their hands on them.
Majestic (18)15:15 - 16:15Praveen S RawatScale your app through the Microsoft Azure MarketplaceThe Microsoft Azure Marketplace is the premier destination for all your software needs - certified and optimized to run on Azure. I will touch upon the following topics.
Value proposition
Azure marketplace vs AppSource
Technical requirements
App trials, Test Drive
Various Channels such as Azure, Teams, Dynamics
Best Practices for success
Make Money!
Introductory and overview
Marquis (18)09:15 - 10:15John MinerHow to audit and prevent unwanted user actions.Many corporations are composed of small divisions located in countries throughout the world. While you might be the lead DBA for your corporation, there are several other employees who have the keys to the kingdom. This presentation will review techniques on how to prevent and/or audit data and schema changes.


1 – Granting correct user access is vital.
2 – DML triggers to keep a DATA audit trail.
3 – DDL triggers to keep a SCHEMA audit trail.
4 – Preventing unwanted DATA modifications.
5 – Preventing unwanted SCHEMA changes.
6 – Preventing table TRUNCATIONS.
7 – LOGIN triggers to control who, what, and when.
8 – Change data capture (CDC) an alternative to triggers.
9 - Which of these techniques apply to an Azure SQL database?
Marquis (18)10:30 - 11:30Brian DunningtonLook mom! No code!Developer's love writing code, but code means bugs. What if you could develop your next service with no code at all?Introductory and overview
Marquis (18)12:45 - 13:45Van Van LoweWhy state matters or Intro to Redux pattern in Angular using NGRXIn this talk we will discuss why state management is important in an angular application. The we will discuss the Redux pattern. We will then talk about how it is implemented in angular with the NGRX. We will show redux fundamentals and basics for getting started.Intermediate
Marquis (18)14:00 - 15: 00Rahat ChowdhuryHip Hop, Code, and Mental HealthMy journey from being depressed and unemployed to using code and music to pull myself out and becoming a software engineer. Learn how I deal with social anxiety and finding a way to network and daily imposter syndrome at my first development position.Introductory and overview
Marquis (18)15:15 - 16:15Luis QuintanillaIntroduction to Spark.NETApache Spark is an open-source, distributed, general-purpose analytics engine. For years, it has been a staple in the Big Data ecosystem for batch and real-time processing on large datasets. Sparks provides a rich set of APIs that are optimized to overcome the limitations of other distributed programming models like MapReduce. Although native support for the platform is limited to the JVM set of languages, other languages typically used for data processing and analytics like Python and R have plugged into Spark's Interop layer to make use of its functionality. Around the time of the Build 2019 conference, Microsoft announced Spark.NET. Spark.NET provides bindings written for the Spark Interop layer that allow you to work with components like Spark SQL and Spark Streaming inside your .NET applications. Because Spark.NET is .NET Standard 2.0 compliant, it can run operating systems like Windows and Linux. In this session, you'll learn about Spark, its main components for processing large datasets and how to get started integrating Spark into your .NET applications with the help of Spark.NET.Introductory and overview
Music Box (46)09:15 - 10:15Jim WooleyGetting pushy with SignalR and Reactive ExtensionsAs 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.Introductory and overview
Music Box (46)10:30 - 11:30Rogue FongBuilding Audio-Reactive Environments for AR/VRIn this session you will learn the basics of sound, how to understand waveforms and audio formats, how this applies to music, and how to take meaningful information from a song. From there, you will learn how to create a headset-based XR project using Unity and C#, how audio works in Unity, and how to apply that song information to objects in Unity.

You will ultimately walk away with knowing how to build a fun, reactive environment in XR, and with the ability to make your own projects subtly or explicitly audio reactive.
Music Box (46)12:45 - 13:45Bobby JohnsonSecuring Vue.js with OpenID Connect and OAuthVue is a lightweight, fast and awesome library for building user interfaces. Its learning curve is gentle and its API is not complex to understand. OAuth and OpenID Connect are standards-based protocols for identity and access management in applications. In this presentation, we will take an existing Vue application and implement authentication with OIDC, discover several idiomatic ways to integrate authentication, user profile consumption and conditional formatting with Vue as well as consuming a secure backend with OAuth.Intermediate
Music Box (46)14:00 - 15: 00Quintessence AnxSensory Friendly Monitoring: Keeping the Noise DownThe ability to monitor infrastructure has been exploding with new tools on the market and new integrations, so the tools can speak to one another, leading to even more tools, and to a hypothetically very loud monitoring environment with various members of the engineering team finding themselves muting channels, individual alerts, or even alert sources so they can focus long enough to complete other tasks. There has to be a better way - a way to configure comprehensive alerts that send out notifications with the appropriate level of urgency to the appropriate persons at the appropriate time. And in fact there is: during this talk I’ll be walking through different alert patterns and discussing: what we need to know, who needs to know it, as well as how soon and how often do they need to know.Introductory and overview
Music Box (46)15:15 - 16:15Jyotsna GuptaRESTful API Development using GoThis talk will give an overview of RESTful API development in Go. The talk will cover securing API end points, storage using Redis/MongoDB, and writing unit tests for HTTP handlers. This talk also goes through some best practices for API development in Go. Few suggestions for deployment.

Outline: -
-Introduction to REST
-Why Go?
- Creating a simple endpoint- using standard library and middleware
- Securing endpoints
-Data storage using Redis & MongoDB
-Writing unit test for HTTP handlers
-Best practices
New Amsterdam (18)09:15 - 10:15Brian JablonskyBlazor - C# in the BrowserBlazor is a web framework for building client side UI with C# and .NET. In this presentation, we'll take a look at what WebAssembly is, how Blazor uses WebAssembly to execute .NET code in your browser, and how to write your web frontend code using C#/Razor and HTML. We'll also take a look at Blazor's history, how to utilize client-side and server-side rendering, how to interop with traditional JavaScript in the browser, and take a look at Blazor's roadmap for the future. Introductory and overview
New Amsterdam (18)10:30 - 11:30Christopher AgocsConcurrency Examples in GoThe Go programming language provides some powerful concurrency primitives, such as Goroutines and Channels. It can be non-obvious how to best leverage these. We'll live-code a few short but powerful examples that demonstrate some good concurrency practices in Go.Advanced
New Amsterdam (18)12:45 - 13:45Christopher AgocsDevops at SeaIt's 2019. Servers are livestock, not pets. We use containers and orchestration tools. But what if your servers are only available over slow, unreliable satellite connections? I'll cover some coping strategies we've developed for managing hardware on ships in the middle of the ocean.Intermediate
New Amsterdam (18)14:00 - 15: 00Van Van LoweAdventures in Azure Function: Beyond HTTP TriggersMost of the time when we talk about azure functions it is as an API, however there is much more you can do with Azure Functions. In this session about other way of using Azure Function such as with workflows, schedule process and much more. We will focus on binds and triggers with some real-world examples.Intermediate
New Amsterdam (18)15:15 - 16:15Jared RhodesBuild accessible apps with Cognitive ServicesIn this presentation, we will look over how cognition can create easier to use and more accessible applications. Cognition allows developers to build applications that can see, hear, understand, and even think. These capabilities can be used to make applications more accessible to those with accessibility needs. After this session, developers will be able to create more accessible and usable applications without a PHD in Artificial Intelligence.
Radio City (48)09:15 - 10:15Kendall MillerHow not to be the best app no one uses: Effective Onboarding for fun & profitYou've made a brilliant application - perhaps a new startup or a new major initiative within your enterprise. For it to be successful you need to get people from interested to effective before they lose interest.

Without effective onboarding built into your app users will not stick with it long enough to discover the great features you've built.

In this talk we'll dig into what it takes to design and optimize an effective onboarding process and equip you with a strategy for making incremental investments that can be fit into your development project.
Radio City (48)10:30 - 11:30Jared RhodesRun the world from the palm of your handIn this session, we will look at how mobile devices can be used to interface with headless devices through wireless technology. With the strong adoption of Internet of Things devices, or devices without a direct interface, a common form of interaction is widely used. That interaction is through the computer most people carry with them every day, a mobile phone. After this presentation, attendees will have a strong understanding of how to use mobile devices in their Internet of Things story.Introductory and overview
Radio City (48)11:45 - 12:30Tyk | Sedky Abou-ShamalahSponsor Lunch Session: Not in my job description!: How Security has become an integral part of the Software Development LifecycleSoftware development is hard enough. A developer's focus should be on their industry domain. They don't and shouldn't spend time worrying about authenticating systems and APIs. I'll take you through an introduction of building and securing a full stack app using best practices, touching on OIDC, OAuth 2.0, Api Gateways, and more.
Radio City (48)12:45 - 13:45Andrew CookMicroservices of Microsoft LearnWe will dive into the many microservices which together make Microsoft Learn an online interactive learning platform. Microsoft Learn is built upon Azure in .NET using multiple services including Web Apps, Azure Functions, Traffic Managers, Service Bus, Event Grid, and Cosmos Db. Each of the services incorporates CI/CD which allows for independent development and deployment to increase the speed at which new features and changes can be completed. Intermediate
Radio City (48)14:00 - 15:00Layla PorterTDD and the Terminator - An introduction to Test Driven DevelopmentGetting started with Test Driven Development (TDD) can be very challenging. It requires a different mindset and approach to writing and developing code. However, once in that mindset, it is very difficult not to write tests first.

But why bother writing tests first?

In this session, we will go through the reasons for writing tests before coding, look at architecture and design principles, such as SOLID and see how it all comes together to create a more testable and maintainable application.

I will show you how to get started writing tests first with practical examples on how to reprogram a T800 series Terminator so you can start using TDD in your own applications (or killer robots from the future).

Hasta La Vista badly-written code!

Radio City (48)15:15 - 16:15Bhakthi LiyanageRegulatory and Compliance Risk Management using Artificial Intelligent SolutionsOne of the biggest challenges faced by analysts or strategists who are a part of the investment research team in a stock brokerage or investment bank is, the regulatory and legal compliance of the equity research reports published by the firm.

This session will focus on demonstrating how an intelligent document classification system was developed using NLP and AI, and how the system leveraged doc2vec, word2vec and other word embedding techniques for creating distributed semantic representations that provides the context based insights of the documents. This session also will demonstrate how semantics were used to develop deep learning network for sentence classification that flags and identify questionable entities and language of interest of documents in an automated manner.
Winter Garden (46)09:15 - 10:15remko de knikkerMission Critical: Create a CI/CD Pipeline from Source to KubernetesThere is a lot of talk around Agile, Cloud, Microservices, Docker and Kubernetes architectures, but the critical element for running modern applications is the Continuous Integration and Continuous Deployment (CI/CD) Pipeline. This session will walk developers hands-on through creating, running and managing a CI/CD Pipeline. In addition, there will be a brief overview of the standard open source technologies in DevOps.Intermediate
Winter Garden (46)10:30 - 11:30John MinerEffective Data Warehouse Storage PatternsMany companies start off with a simple data mart for reporting. As the company grows, users become dependent on the data mart for monitoring and making decisions on Key Performance Indicators (KPI).

Unexpected information growth in your data mart may lead to a performance impacted reporting system. In short, your users will be lining up at your cube for their daily reports.

How do you reduce the size of your data mart and speed up data retrieval?

This presentation will review the following techniques to fix your woes.


1 – What is horizontal partitioning?
2 – Database sharding for daily information.
3 – Working with files and file groups.
3 – Partitioned views for performance.
4 – Table and Index partitions.
5 – Row Data Compression.
6 – Page Data Compression.
7 – Programming a sliding window
Winter Garden (46)12:45 - 13:45Mesut CelikDistributed Caching Patterns in KubernetesAs Monolith to Microservices migration almost became mainstream, developers have to think about how their caching strategies will evolve in cloud-native world. In this talk, Mesut will go through hazelcast caching options in cloud-native microservices. First part will be Hazelcast Caching Patterns in Kubernetes Environment. Next part will cover how to apply Hazelcast Caching Patterns into Microservices. As last part, Mesut will go through how to deploy Hazelcast into Kubernetes and handle Day 2 Operations.
Winter Garden (46)14:00 - 15: 00Bob CrowleyPostman Delivers! A Deep Dive into API TestingWhether you are a tester or a developer of HTTP API’s, chances are you are already using Postman to some degree. Chances are also that you are missing out on some of the advanced goodness. Using only features of the free version, this session introduces you to effective use of these features to save time, reduce errors and share your work.

You learn how to :

- unclutter your collections with environments
- create dynamic requests with the powerful scripting environment
- chain requests (never run a separate utility to generate auth tokens again!)
- data drive an entire suite of tests with just a few clicks.
- backup and share your work
- automate the whole shebang from the command line, optionally with reports
- much more...

Ditch the click/wait/verify/repeat cycle! Concepts presented here apply to API testing in general, whether you use another tool or test with code only. Save time and gain confidence in your software.
Winter Garden (46)15:15 - 16:15Martin Kess A COOL NEW DATA STRUCTURE YOU DIDN'T KNOW COUNTED AS A DATA STRUCTURE (or Let's Build Wiz Khalifa A Bank)Logs are an incredibly powerful and under appreciated data structure - not just for diagnostics, but for transferring state between the various parts of your distributed system. In this talk we'll walk through building an increasingly complex distributed banking system, using logs as a backing mechanism to transfer and store state. We'll talk about growing the system over time, we'll talk about integrations, we'll talk about global transactions and we'll have a good time.Intermediate
Central Park East (81)12:45 - 13:45Justin DearingBuilding an in-process Search Engine with Lucene.NET.We often think of search in terms of enterprise search. A strategic project with its own contract sold to our clients at the C-Suite level and implemented by a team over a period of months. However, sometimes a project or client needs something in a very narrow scope implemented in a sprint as part of one tactical project. However, even at such a small scope, there are a lot of considerations to make to deliver a search solution that works.

This session will present case studies for two such narrowly scoped search implementations using Lucene.NET. The first will be a case study of the HR portal search implementation. The second will be an open source Azure Function Service that indexes github repos and allows full text search of the metadata.


* An overview of full text search.
* Comparison of Search solutions (Lucene,, Solr, Elastic Search, Azure Search etc.
* Why I chose this approach
* Alternate approaches, and when they make more sense
* Demo and code deep dive
* Applying these lessons to large enterprise search projects.


Comments on this entry are closed.