This session is for those who have some experience with Azure Functions, but want to dive into more advanced concepts. Topics will include putting controls around scaling, designing for cost-effectiveness, performance tuning, advanced debugging techniques, and what it takes to really run functions at scale in production.
It is often believed that there’s a built-in tension between software developers and security engineers. The first ones want to move fast with the latter wish to make sure the data, pipes and crown jewels are well protected.
Working in the cloud did give the developers the velocity they always wanted - they have their own account, they can provision cloud assets and can deploy frequently and easily. But they also use admin permissions and leave open buckets everywhere.
The security team at turn finds risky cloud misconfigurations and has to go back to the dev team to check if that was necessary or not. This is a repetitive, time-consuming process that creates friction and sometimes tension between the two teams.
In this talk I will share with you how working with developers instead of trying to clean up after them, actually makes their work much faster, better and more secure.
The modern world has already been impacted by machine learning and will continue to be impacted even more. It is critical that more software developers have access to this skill. With ML.NET, .NET developers are not left out! ML.NET is an open-source and cross platform framework to train custom machine learning models, utilize pre-trained models, including those from TensorFlow in .NET applications for screens of all shapes and sizes. Built on the successful experience of products such as Power BI and Outlook, ML.NET can be applied to a variety of predictive analytics scenarios with just a few lines of C# or F# code. This session will explore the fundamentals of ML.NET and several common machine learning tasks. It will also cover integrating pre-trained models and it will show how to leverage ML.NET from web and mobile projects.
The software delivery chain is the app of apps. If your delivery chain is not up, running and performant, nothing gets deployed. But how do you measure success? Do you actually know how well your DevOps automation is contributing to your company's bottom line?
Chris Riley, DevOps Advocate from will explore the practice of pipeline analytics and demonstrate how tools like Dora and Flow metrics are tools for measuring the performance of your SDLC and the impact of DevOps on your business success.
Join to Learn:
This talk examines the rationale for organizations to address accessibility. It includes tangible and intangible benefits and the risks of not addressing accessibility adequately. It explores how accessibility can:
Drive Innovation: Accessibility features in products and services often solve unanticipated problems.
Enhance Your Brand: Diversity and inclusion efforts so important to business success are accelerated with a clear, well-integrated accessibility commitment.
Extend Market Reach: The global market of people with disabilities is over 1 billion people with a spending power of more than $6 trillion. Accessibility often improves the online experience for all users.
Minimize Legal Risk: Many countries have laws requiring digital accessibility, and the issue is of increased legal concern.
Note that “web accessibility” and “websites” throughout this article include web and mobile applications and other digital technologies.
In this session we look at the improvements to C# 9.0. This includes a look at operators for non-null parameter validation, covariant return types, targeted new expressions without explicitly specifying the type, continued to consideration of record types, and comparison operators in switch statements. In addition, potential improvements to nullable reference types are worth evaluation. Don’t miss this session to learn future design considerations underway for C#.
Do you want to learn how to view Indexes behind the scenes? Are you interested in learning how indexes quickly retrieve the data? In this session, we are going to see the Index internals, index maintenance and how indexes are used to get back the results. By the end of this session, you will know how to view index internals, B-tree structures, how this data is useful for effective index usage and get the best performance for your queries.
How nice would it be to be able to remember everyone’s name? What if you could just walk into a room and know everyone’s Twitter handle? Kubernetes is a great tool that is being used more and more for deploying applications, but it can also be used in the context of machine learning. In this talk, the speaker will demonstrate how to use NodeJs, a touch of machine learning and a sprinkle of Kubernetes to recognize people in a crowd.
With demos inspired by the Black Mirror series, the attendees will learn how to use openly available tools to do face recognition with NodeJs.
JavaScript can be a scary place where we create and change variables at will and while code can be written very quickly, it can be side-effect prone and hard to debug & maintain down the line. In this talk we’ll explore the concept of reactive programming, discuss state management and the benefits of having an immutable state, and cover one of the more popular state management approaches - the redux pattern, & look at commonly used libraries that help us with these concepts.
No matter what the JavaScript framework flavor of choice is, a good understanding of reactive programming and state management helps us write better code that is more closely tied to business logic, is easier to read, easier to debug, and easier to scale.
*Disclaimer:
All live coding examples will be in Angular - Reactive programming is a concept, not "coding in the React Framework"
Too often we encounter the idea that software architecture is an esoteric concept, of which only the chosen ones, and at the right time, are allowed to discuss. Well, how about a little change of perspective? With software development and users' needs evolving so fast, we don’t afford the luxury of rewriting systems from scratch just because teams fail to understand what they are building. Today’s software developers are tomorrow's architects. We must challenge them to step away from the IDE and understand how the architecture evolves in order to create a common and stable ground in terms of quality, performance, reliability, and scalability. At the same time, software architects need to step away from the abstractions and stay updated to the project development reality. This session revolves around finding the right ways of intertwining up-front architecture, API design & coding while maintaining a continuous focus on architecture evolution.
Learn about the various challenges in debugging and troubleshooting microservices vs. monoliths and how to deal with them using modern tools, including:
- Docker and container registry Overview
- .NET development with Docker
- Debugging a Docker container
- Debugging a cluster of Docker microservices
Understanding how your data works is crucial to taking advantage of the capabilities and power of Cosmos DB, from setting up and migrating data, to querying to understanding performance consequences of data manipulation. In this session we'll look at how tools available from Microsoft and 3rd parties make it easy to make the transition from the relational to Cosmos.
.NET is the framework to develop everything, mobile applications included. It is a complete platform that allows you to integrate several services and libraries in order to build useful applications.
In this session I'll explain how to build a mobile application:
* with a great design
* which uses Office 365 authentication
* which creates Word and Excel documents using Open XML SDK
* which uses Graph API to share documents and information between members
* which adds AI capabilities using Azure Cognitive Services
There are a bunch of different ways to measure code quality. What’re the most important ones for your team to focus on? No matter what language(s) your team is working with or your role on the team, you’ll walk away from this talk with a clear guide of what to pay attention to.
Outline:
1. Explore the health metaphor
2. Defining the metrics
3. Churn
4. Code Coverage
5. Complexity
6. Tools to collect the metrics
7. Why these metrics?
8. What are good metric values?
9. Using the metrics together
10. Exploring common scenarios
Learning Outcome
An understanding of the meaning of 3 important software metrics (churn, code coverage, and complexity) and how to interpret values in combination.
Test-driven development is often perceived as a nightmare in the developer's community.
Let's debunk those myths by exploring the importance of unit testing through live coding examples and deep dive into the 'What, Why, and How' aspects of it.
You will learn about tips and the approaches through which you can test your React code for multiple use cases and its importance beyond just the development phase.
The topics which will be covered are:
1. Introduction and importance of unit testing
2. Different tools available for testing JavaScript Code
3. Unit testing a React and Redux project with Jest and Enzyme
- setup for unit tests
- component testing
- asynchronous code testing
- mocking and spying
- testing code with external libraries references
4. How to decide what to test
5. Code coverage - introduction and setup
End goal: Test-driven development will not feel daunting anymore and you can start writing test cases for your code for different scenarios.
With security attacks on the rise, protecting your applications and data is more of a necessity than ever before. We’ll discuss some of the features provided by Visual Studio and the .Net framework, such as Dotfuscator, SignTool, and encryption tools. In addition we'll look at other protective measures such as early intrusion detection, mitigation, and Social Engineering. These are topics not typically covered in other security presentations or material.
Code tasks like linting and testing are critical pieces of a developer’s workflow that help keep us sane like preventing syntax or style issues and hardening our core business logic. We’ll talk about how we can use GitHub Actions to automate these tasks and help keep our projects running smoothly.
Remote teams are more disconnected and fragmented now more than ever. 54% of employees are unattached from their work & company. They put in the time, but not energy or passion, often doing the minimum required.
75% of managers struggle to maintain the culture remotely and it leads to 18% drop in productivity for the team. It impacts mental health, well-being, and churn of employees.
By creating belonging through social interaction at work, it not only improves the well-being of the employees but also increases productivity.
Azure Application Insights helps you to detect issues, diagnoses crashes and track your application usage in your application, both web, and mobile.
Let’s see how you can get alerts on performance and availability issues, monitor our applications usage and performance, get telemetry for our application without needing to redeploy the applications, search traces, and exceptions logs to figure out what is wrong. Oh, did I mention we can monitor Android, iOS, Windows Mobile applications as well as ASP.NET applications?
We’ll also take a look at how we can analyze request load, server performance counters and response times across dependencies. Get multi-dimensional analyzes over standard metrics or define your own. Diagnose exceptions, mobile application crashes, and failed requests, correlating with events and traces.
Productivity is a very subjective concept and takes various shapes and forms for each individual. If you ask me, not leaving any assigned task pending is my metric for a productive day.
In this talk, I will be giving some productivity hacks to help software developers.
Do you currently have a single staging / development environment, that everyone uses? Does this cause problems when multiple people need to make changes at once? With the latest advances in Infrastructure as Code tooling, you can now move your team away from shared, static cloud environments and give each developer their own dynamic, isolated environments - speeding up their development processes and reducing overhead for your SRE team.
One of the most difficult transitions to make is from being a member of the team, to owning your former teammates performance reviews. It is awkward. It is stressful. And you can do it!
In this session, we'll take a look at some of the challenges of making this transition and how you can face them head on!
These days we use APIs to expose all our microservices , processes, and data, and all this while working in a PaaS or serverless environment. But how do we ensure this is done in a secure and governed way?
This is where Azure API Management comes in, where we can create a repository of all our APIs, and make sure to expose all of these securely in a standardized manner. In this session we will dive into the most common security hazards, and see how API Management helps us solve these. You will learn all about the strengths and weaknesses of the product, best practices, and how to harden the defenses of your services.
While it is easy to say that .NET is now cross platform and therefore can run on Linux and in containers, making that happen is not always as simple as hitting F5. In this session, I will dive right in to how you can leverage containers as you work in the .NET ecosystem. Use .NET containers to build and test your applications both locally and as part of your CI/CD pipeline. Connect to containers, WSL, and VS Codespaces using Visual Studio Code to develop against environments that match production. Not everyone is using Code, so I will also cover how to use containers from Visual Studio. We will wrap up by looking at the upcoming Project Tye to make it easier to develop solutions that require multiple containers.
With the rise in popularity recently, functional programming has become “The Next Big Thing”. As of today, there are tons of frameworks and tools that can be used for front-end, back-end, desktop, and mobile development. With that being said, the majority of us are still using object-oriented languages for our day jobs and don’t need to learn functional programming, right?
In this talk, I’ll walk you through my experiences learning functional programming over the last year, how my style of programming has changed, and how I now think about programming with regards to both functional and object-oriented paradigms.
We love JavaScript, but we must admit: it's weird. Why does `this` behave as it does? How does variable scope work? Why do we have such comical behavior when comparing mixed types? Let's pull back the covers of these scenarios, and learn how it truely works. You may find a new reason to fall in love with JavaScript.
Kamran was financially illiterate. He was making a six-figure income but didn't understand how to manage it until 9 years into his career. No one ever explained it to him plainly. No one told him that if he saved half his income out of college he’d be retiring at age 38. And if they had, he's not sure he would have listened. "Wealthy" just meant "rich." That felt out of reach.
Investing? Not a gambler. He was contributing to his 401k at work but that's it. Ignorance was bliss, he was on auto-pilot. Until his daughter was born and he was about to double the cost of daycare.
Kamran was fed up. He decided to educate himself and it changed. His. Life. In this talk, he'll take you through his financial journey, introduce a life optimization framework, show you how investing works, whisper secrets about HSAs, and talk about what it means to “design your life.” You’ll even debug taxes together. He promises it’ll be fun. In less than an hour, you will know everything he wishes he knew 10 years ago laid out in plain language.
Developer experience (DX) is similar to how you see and understand user experience (UX) but the difference is DX focus is strictly on developers who consume certain API services, SDKs, or other services owned by a company or an organization.
This talk will explore why developer experience matters in every company providing a technical service, what makes a great developer experience team, and the relationship between building a great developer experience flow in a company with the public.
The attendees will learn how Developer Experience increases product usage and how users can become advocates themselves for a product that has a great user-centric experience.
Lastly, attendees would learn the role and what someone who is into creating a smooth and easy Developer Experience (DX) at a company does and the skills required to attract a similar role to you.
Key Takeaways:
- Attendees will understand how documenting an API properly over GitHub could improve the developer’s experience.
- Attendees will understand best practices in designing API for a great developer experience.
- Attendees will understand how commit messages should be committed and pushed.
- Attendees will understand how developers would want to use a certain service and can have a bad experience because of bad documentation and product flow.
- Attendees will understand how a successful platform makes a developer automatically successful.
- Attendees will understand how to measure user’s productivity while using their tools.
So you've created a Blazor webassembly project, now what? How does Blazor know which Razor component to use as the root and where to inject it into your webpage? How do you control which components are only shown to authenticated users? Can you unit test your components? Come learn this and other tips I learned while creating a Blazor app.
This session will explore a variety of considerations that AI/ML developers, data scientists, and product teams must account for when gathering and presenting data, including on history, bias, construct analysis, and machine learning.
This talk aims to provide React developers of all levels with a better understanding of the different performance optimization techniques available to help improve their React app. This talk will provide information and examples behind some of the best practices when optimizing in React.
It will focus on the following topics:
-Measuring performance within React app
- Different performance optimization techniques (explanations and examples)
- Understanding React performance anti-patterns and best practices
- Dissecting React code to examine potential performance enhancements
- Additional resources for learning and implementing optimization techniques
With the assumption that coding is social, let’s review various pair programming styles so that we can identify when it is best to utilize this approach. This talk starts with an overview of pair programming and why you should consider adding this skill to your tool belt. Next, we will discuss various styles of pairing so that we can see how they can be effectively used during development. Finally, we will discuss a hybrid approach to pair programming that pulls together the best parts of each pairing style to form what I call asynchronous pair programming.
Feedback is a critical part of performance. The way you give and receive feedback directly affects the outcomes of your team. If you’re like most people, the feedback you provide is often vague, inconsistent, nuanced, and generally ineffective. And furthermore, the way you receive feedback likely isn’t working for you.
To unlock real performance improvement- you must learn how to utilize feedback effectively. It’s a game changer for your team.
In this course, I want to teach you how to give feedback that is timely, specific, and simply more effective. I’ll also share how you can improve the way you receive feedback- and move beyond superficial responses. I’ll provide you with a set of tools that you can begin using today to deliver feedback, to not only transform your team, but your entire organization.
Architecting an application can be hard. What do you do to keep your application flexible to ever constant requirement changes? How do you handle landscape changes (cloud, on-premises, databases)? How do you avoid over-engineering the application? How do I make sure my application plays well with other applications?
In this session, we'll take a look at some well understood and practiced Software Architecture patterns. We'll cover these patterns at a high level to give you an understanding of how to use these patterns in different scenarios.
You'll walk away with some knowledge, tips, and tricks that you'll be able to use for new and existing applications.
Web developers use a large variety of tools to help develop and troubleshoot issues with web sites, but often overlook the DevTools in modern browsers. Learn how to use DevTools to diagnose hard to locate CSS problems, debug JavaScript, monitor network usage, and many other common tasks. Apply best practices from Lighthouse audits of performance, accessibility, and SEO. It’s great that these powerful tools are now built directly into web browsers, discover how to use them develop better quality web sites more quickly.
Learn how Microsoft has taken in its journey to DevOps over the past 8 years and completely changed their approach to building software and services. You’ll learn about Microsoft’s 90,000 engineers working in the public cloud delivering into production multiple times per day and how the some products handle the different cadences of several feature teams while maintaining a single coherent and continuously integrated source of the truth. Mickey explains how the team in Microsoft works and spends significant time talking through the harder cultural change issues that were encountered and discuss how Microsoft has gone about building a new, much more sharing-focused culture inside the company. Join in to discover what Microsoft has learned so far and the next areas it will focus on.
Are you an adventurer? Do you want gold? Experience? Levels? Of course you do! And where do you get these things? The dungeon, where else? That wonderful container of all things adventurous! But, unfortunately, dungeons aren't setup for the convenience of adventurers who wish to extract these fine things. It’s almost as if the dungeon master just made the dungeon up at random. And so you wander about and you get what you get.
But you’re also a developer. You could build a database of all the rooms with their shiny and monstrous content. Then you could query it and find the optimal route to get the gold and the experience and the levels. But how would you model this data and write these queries? The rooms. The corridors. The monsters. The sparkling hoozits. That’s a lot of entities to relate to each other. And that’s gonna be a monster of a SQL query. Whoa–look at that JOIN! Better get my text editor ready.
Or, you could use a graph database. A graph database allows you to model these relationships simply and intuitively with nodes and edges. Being schema-free, you can evolve your graph as you encounter new things such as traps or secret doors. And, using the Cypher query language, you can write elegant and easy to understand queries that find the best routes to get the stuff adventures desire most.
In this talk, I’ll use the aforementioned example to introduce you to the concepts of graph databases. I’ll compare how to solve this problem with a relational database and how a graph database makes it easier. I’ll show you how to query and modify your graph. And, as no talk would be complete without a live demo, I’ll do it all using a real-time procedurally generated random dungeon (I am a dungeon master after all).
So come, have a flagon of mead as you learn about graph databases, optimize your dungeon crawl, and equip another weapon in your quest for better software!
Serverless web applications are a powerful innovation that is rapidly gaining acceptance. They run for pennies, scale instantly, and ease infrastructure management. However, they also ruthlessly enforce microservice paradigms, such as short response times and small payloads. What do you do if a user makes a request that requires over 10 seconds to run? You need to offload that hard work somewhere else, and keep your web services running lean. This is great use case for a queuing architecture!
Together, we will explore a technology-agnostic approach to modern queue-based processing:
- Understand a basic queuing architecture
- Recognize situations where queuing is valuable
- Learn about options and variations in queue processing design
- Cover real-world examples of queue solutions
- Discuss cloud provider implementations of queuing technology
When HTML5 brought native video support to the browser, a new era had begun. No longer were we bound to Flash, Silverlight or other 3rd party plugins for media playback. Video on the web was about to become so much easier, right?
These days video on the web is practically everywhere, yet the video element holds the history of the web within its glorious, leaky abstractions. What makes video such a challenge?
In this talk we’ll cover media handling in the browser: From the underlying technology to the political landscape of online video. We will learn how to wrangle video for desktop and mobile in a way that always plays, and what we should do when it actually doesn’t. We’ll look at how video actually works within the browser, OS and hardware. We’ll understand what its events mean and how they function in the context of the browser environment: networking, rendering, event loop and much more.
Anomaly detection is the process of identifying unexpected items or events in data sets. It’s about detecting the deviation from expected pattern of a dataset. It’s like having “spidey senses” for your apps that can detect when there’s danger or something is not right. Attend this session and learn about using anomaly detection in ML.NET, Azure Stream Analytics and Cognitive Services API; become a superhero and save the day.
In this session, we'll explain a handful of HTTP Security Headers (including HSTS, CSP, XFO, and more) from the bottom up. We'll explain what they are, what they do, and how you can implement them to secure your sites. On each of these, we'll demo a before and after so you can see first hand what each of these security headers do.
A real world look at how IoT implementations can leverage your existing microservices infrastructure.
We will explore the world of IoT and the different implementations (from a real world example).
In addition, we will discuss how a proper microservices architecture can support this new realm of possibilities to get your next IoT solution off the ground.
The session aims to elucidate on crucial soft skills necessary for developers to grow not only in tech but as a person generally.
Software QA is an important toolset in a software professionals collection. We’ll talk about unit tests and automated testing, the developer and tester roles, and why you should be writing unit tests and how to get started with it. Code examples and demos are in C#.
We all know how our phones can pair to a Bluetooth speaker or our vehicles. Bluetooth mesh takes that relationship to a whole new level. This talk will introduce high level concepts related to how Bluetooth mesh networks operate, security concerns, and what types of IoT problems they solve. Then, we will delve into the role iOS and Android devices play in creating and managing Bluetooth mesh networks.