Selected Sessions

The preliminary list of selected sessions for the upcoming Code Camp NYC 2019 is available in the following table which supports paging, sorting, and full-text searches.

Please note that there may be minor changes to this list as the event approaches and the schedule is further finalized and refined.

Oren NovotnyDevOps for Desktop ApplicationsIntroductory and overviewClient 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.
Isaac LevinApplication Insights: The Tool You Never Knew You NeededIntroductory and overviewUnderstanding 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.
Kendall MillerHow not to be the best app no one uses: Effective Onboarding for fun & profitIntermediateYou'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.
Jared RhodesRun the world from the palm of your handIntroductory and overviewIn 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.
Mark RendleHow To Get Ahead In .NETIntermediateIn 2020, Microsoft will release .NET 5. That's the name for the next version of .NET Core, and represents a single .NET for the future, encompassing Core, Mono, Xamarin, WebAssembly, Unity and more. .NET 4.x will be supported for years to come, but future development and features will be on the new, unified .NET platform.

For those of us with large codebases on .NET Framework 4.x, this means we have a choice: continue to run on the old .NET and miss out on all the new features, capabilities and performance improvements, or migrate all of that code to .NET 5. That's a big ask, but it may not be as daunting as it sounds.

In this talk, I'll look at .NET 4.x frameworks and components that are not being migrated to .NET Core, such as WCF and WebForms, and discuss the modern alternatives like gRPC, Web APIs and Blazor. I'll also show you strategies for migrating code a little at a time so you don't have to stop the world for an all-in-one rewrite. Whether you've got 10,000 lines of .NET Framework code or 10,000,000, I hope this talk will show you that the way forward to .NET 5 and beyond is realistic and accessible for everyone.
Bob CrowleyKeeping Configuration Secrets Out Of Source CodeIntermediateKeeping 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.
Bhakthi LiyanageRegulatory and Compliance Risk Management using Artificial Intelligent SolutionsIntermediateOne 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.
Bhakthi LiyanageBuilding AI Powered Biometric Security Systems with Azure AIAdvancedFor 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.
Andrew CookMicroservices of Microsoft LearnIntermediateWe 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.
Layla PorterTDD and the Terminator - An introduction to Test Driven DevelopmentIntermediateGetting 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!

Kevin IsraelAPIs As A First-Class ProductIntermediateIn many companies and organizations, API’s are a useful part of integration solutions, relegated to a supporting role. Since many APIs are internal facing, little thought is put into building APIs with a great customer experience in mind. Software engineering practices that are common in other types of development are often missing when it comes to APIs. Teams who build APIs should understand that those engineering practices and principles apply to APIs as well. In this presentation we will cover what those best practices are, how they are applied to APIs and provide a guide to transforming APIs into a first-class product.
Justin DearingAn Introduction to Always EncryptedIntermediateThis 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.
Nathan WestfallGetting started with Xamarin EssentialsIntroductory and overviewEnhance 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!
Nathan WestfallScale your API quickly using Message Queues on AWSIntermediateAPIs 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.
Jim WooleyEntity Framework performance monitoring and tuningIntermediateObject 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.
Jim WooleyGetting pushy with SignalR and Reactive ExtensionsIntroductory and overviewAs 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.
Mitchel SellersPractical ASP.NET Core CI/CD with Azure DevOps in under 60 MinutesIntermediateA 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.
Mitchel SellersPractical Unit Testing Patterns With .NET CoreAdvancedReaching 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.
Rogue FongBuilding Audio-Reactive Environments for AR/VRIntermediateIn 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.
Bobby JohnsonSecuring Vue.js with OpenID Connect and OAuthIntermediateVue 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.
Jay GordonTaking Your First Steps In ContainersIntroductory and overviewMany 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).
Quintessence AnxSensory Friendly Monitoring: Keeping the Noise DownIntroductory and overviewThe 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.
Jyotsna GuptaRESTful API Development using GoIntermediateThis 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
Greg HurlmanPowerApps for professional developersIntermediatePowerApps 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.
Praveen S RawatScale your app through the Microsoft Azure MarketplaceIntroductory and overviewThe 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!
remko de knikkerMission Critical: Create a CI/CD Pipeline from Source to KubernetesIntermediateThere 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.
John MinerHow to audit and prevent unwanted user actions.IntermediateAbstract:

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?

John MinerEffective Data Warehouse Storage PatternsIntermediateAbstract:

Many 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.
Brian DunningtonLook mom! No code!Introductory and overviewDeveloper's love writing code, but code means bugs. What if you could develop your next service with no code at all?
Mesut CelikDistributed Caching Patterns in KubernetesIntermediateAs 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.
Jesse LibertyGet Git In One HourIntroductory and overviewGit is notoriously difficult to learn; but in this session, you will learn all you need to know to be highly productive. The secret sauce is using a Graphical User Interface on top of Git.
Jesse LibertyTypeScript for C# ProgrammersIntroductory and overviewTypeScript is a powerful language but introductory courses are often targeted at JavaScript programmers. The truth, however, is that TypeScript is very close to C#, and with just an hour's overview you can be highly productive writing in this powerful programming language for the web.
Martin KessShattering the Monolith(s)IntermediateMuch of the tech world is built on integrations with third parties or with acquired software. This leads to leaky domain models where there is no source of truth for data, which in turn leads to difficulties growing and maintaining your software.This talk covers practical techniques for breaking up monolithic and poorly integrated applications, while maintaining (most) of your sanity.
Phil WellsAutomating the New York Times CrosswordIntermediateThe 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.
Olivier De MeulderScrum, Sprint, SwarmIntermediateLike 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.
Joe KarlssonIoT with JS (?!?!) - A Gentle Introduction to IoTIntroductory and overviewHave 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.
Jemima AbuCSS Grid: A How-To GuideIntroductory and overviewThe Grid layout is one of the more-favored layouts in CSS, and for good reason. It’s a two dimensional layout system (both rows and columns!) that allows you to rearrange and resize elements at will. It allows use of the fr unit (which is even more flexible than I am) and don’t even get me started on grid-template-areas. So yeah, CSS Grid clearly kicks butt.

Topics Covered In This Talk
-Introduction to CSS Grid-
-Regular and irregular Layout with CSS Grid
-Responsiveness with CSS Grid
-Combining Grid and Flexbox
-Best Practices with CSS Grid
Van Van LoweWhy state matters or Intro to Redux pattern in Angular using NGRXIntermediateIn 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.
Rahat ChowdhuryHip Hop, Code, and Mental HealthIntroductory and overviewMy 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.
Luis QuintanillaIntroduction to Spark.NETIntroductory and overviewApache 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.
Ryan LynchObservability for the FrontendIntermediateYou 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.
Eileen McFarlandEmoReply: How to Make a Chrome Extension with FeelingsIntroductory and overview “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.
Brian JablonskyBlazor - C# in the BrowserIntroductory and overviewBlazor 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.
Christopher AgocsConcurrency Examples in GoAdvancedThe 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.
Christopher AgocsDevops at SeaIntermediateIt'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.
André BarnesAfter you commitIntroductory and overviewWith 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.
Van Van LoweAdventures in Azure Function: Beyond HTTP TriggersIntermediateMost 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.
Christina LowAccessibility in Tech & Twitter A11y: A Browser Extension to Describe ImagesIntroductory and overviewIn 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."
Chuck LaffertyLeading a DevOps TransformationIntroductory and overviewThere 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.
Steve OgnibenegRPC with .NET Core in ProductionIntermediateNamely 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.
Brian MinisiPipeline Infrastructure Automation with Terraform and ARMIntermediateInfrastructure as Code allows for the creation and configuration of complex infrastructure topologies through the use of templates. When deploying applications, both application code and infrastructure should be included to assure that not only are we releasing new features, but the infrastructure the features run on is fully in place and integrated. Automated pipeline deployments should include all of these tasks for the creation and running of the applications.

In this session, we will discuss two of the more popular IaC tools for infrastructure automation on the Azure platform; Terraform and Azure Resource Manager (ARM). Including these tools in an automated pipeline is essential. We will examine how to integrate IaC in Azure Pipelines and what needs to be considered to enable repeatability in fully automated scenarios.


Comments on this entry are closed.