This session starts with a traditional web page and shows step by step how to improve its performance and user experience! Discover performance techniques that everyone should use, then learn techniques that differ when targeting HTTP 1.1 vs. HTTP/2. Review tools that can help identify and validate sound performance best practices. Explore how to defer resource requests with lazing loading, asynchronous loading, and postponing 3rd party tag requests. Many other performance boosting techniques will also be discussed, which can reduce response time while also boosting the scalability and reliability of your site. Learn the techniques that can have the largest impact on web performance with the least amount of work.
We must never devalue people in the process of delivering a technical solution.
By definition, technology itself exists to solve business and every day problems. Those solutions impact and improve the lives of many people. Therefore, People First leadership must be deeply rooted in your technical organizations if you want your teams to reach their full potential.
This session will cover 7 different to practice People First leadership. This includes hands-on activities and discussions around the importance of diversity & inclusion on our dev teams, effectively removing blockers, empowering your team, effective developer onboarding experiences, and more!
Participants of this talk will learn how to successfully navigate the complexities of technical leadership; regardless of their title!
Do you know what accessibility is, but not how to make things accessible? Are you interested in becoming more of an a11y?
Websites are required by law to be accessible. Many organizations require vendors' software to be accessible to prevent ability-based discrimination. In this talk we’ll review guidelines including HTML structure, navigation, forms, and colors.
We’ll also demonstrate how basic changes dramatically improve keyboard-only, voice-assisted, and screenreader accessibility.
Now that support for nullable reference types has been out for some time, one would think that adoption is easy. Unfortunately, that is not the case. Simple things like declaring non-nullable automatically implemented properties results in warnings that are non-trivial to avoid. (And, did you even know there were new contextual keywords included in the feature?) Faced with the choice of disabling warnings with pragmas, nullability attributes, ignoring the warnings, or turning of the feature entirely, which one to choose when? In this session we delve in depth into nullable reference types reviewing not only the scope of the feature, but more importantly the coding guidelines for programming effectively with the feature. Don’t miss this session to discover that the seemingly trivial has several layers of complexity worth understanding to use it effectively.
A full open forum discussion around Microservices, DevOps around deploying Microservices, and what the architecture looks like in the real world. The discussion will include some examples of microservices used by Netflix, Amazon, and Uber as well as how CI/CD works in an environment such as this.
In this session, we delve into all about C# 8.0 that is not related to nullable reference types. We start with the succinct and powerful features (but perhaps non-intuitive syntax) of pattern matching. Next, we delve into the details of async streams, including a look at using LINQ with async streams and when IAsyncEnumerble<T> is useful anyway. Next, we take a look at default interface members and the likely surprising constraints, like how to invoke a protected default interface member and when and why would the feature be more useful than extension methods anyway. This leaves just enough time for “everything else” including ranges/indexes, using declarations, static local functions, and more. Join this session to take an in-depth look at C# 8.0 and understand what it is really all about rather than just a surface overview that lulls you thinking the new is trivial.
The design system team at Thomson Reuters works vigorously to ensure our digital products and apps are accessible to everyone. But getting here hasn't been easy. We've had to convince executives why accessibility must play an essential role in our design system. We've had to make individual components accessible and provide documentation, so issues don't pop up in our products. We've also acknowledged we can't fix all accessibility issues with our design system. We'll share our story, and we hope you'll see familiar issues that you can solve when you head back to work!
Key takeaways:
Remote working, or telecommuting, has been around since the 1970s but has only made a measurable shift in adoption in the past ten years. Technology improvements in communication and security makes it possible for people to work from wherever & whenever. Remote workers need guidance and leadership like traditional co-located employees. You must use different leadership methods to be a successful remote leader.
Leading a traditional team in a physical office is a demanding role but has years of training and resources available to learn from. Leading a remote team is a newer concept and there isn't a real well-defined way of how leaders should operate in these environments. Remote teams can be set up in different ways which each affect how leaders run their teams.
In this session, you'll learn ways to help manage your remote workers in ways that'll support them to be productive and prevent you from coming across as a micro-manager. Remote working brings a whole set of challenges that should be addressed by every employee and it's a good leader's role to make sure nobody is blocked by them. You'll also learn the importance of cultural bias and how it can affect communication and team harmony. Lastly you'll find out how critical regular feedback is and how to put in place with your teams. Throughout the session you'll get some tips on tools and processes that you can start to use immediately.
In the glorious AI-assisted future, all decisions are objective and perfect, and there’s no such thing as biased decisions. That’s why we created AI and machine learning, right? Well, there’s some bad news: we humans are the ones building these tools, and as a result humanity’s biases and missteps can subtly work their way into the AI and models we make.
All hope isn’t lost, though! This talk will show you how to think through six categories of common problems, ranging from simply confusing causation and correlation to the pernicious effects of feedback in your algorithm, and gives you concrete steps you can take to avoid them, including some awesome tools you can use. The algorithms you write today could literally affect people’s lives, so you owe it to them and yourself to be able to deliver the best possible intelligence.
It is easy to see a new .NET client development model for the web as just another Silverlight; another Microsoft proprietary extension on the web. I know that was my first impression before I took a closer look at Blazor. Based on web standards, supported by modern browsers, interoperable with JavaScript, and able to execute logic on the client or server; Blazor provides a component based, C# model for building web clients. This is a model used by many popular JavaScript frameworks today such as React and Angular. Come learn how to use C#, HTML, and CSS to build a client web application and server backend.
Learn how TypeScript was used in a real-world React application to create high-quality software with a great developer experience. See the patterns that help React and TypeScript work together to help you develop awesome applications. We will cover topics like project setup, component patterns, services, state, and testing to help you create effective real-world applications with this dynamic duo.
Visual Studio App Center is a the hub of “continuous everything” for your apps built for many different platforms: Build, UI test, distribute, see usage analytics and crash reports, and manage push notifications - all in one place. It supports apps built for mobile with swift/obj-c, java/kotlin, Xamarin, React Native, Cordova as well as apps for Windows, macOS, Unity, and tvOS. We’ll dive deep into the features, see App Center in action on a mobile app, and most importantly, show how you can use App Center to release more frequently, with higher quality, and have more FUN by spending time on coding features instead of managing overhead.
How well can a programmer's skills grow in 200 days? A junior developer sought to find the solution to this question by participating and completing the #100DaysOfCode Challenge twice. This talk will feature the developers experience doing the challenge, and provide guidelines for any developer who is interested in getting involved in a coding challenge. Talk is for all developers no matter the years of experience!
One of the best things I did for my career was to start keeping project journals. My journals are a combination to do list and historical record. Journaling takes time and discipline, but it has paid off many times over. I went from being a good developer to an "efficient and highly organized" team member almost exclusively by keeping journals. When you need help with your performance review or resume, have to remember an error from a year ago, or get asked why you designed or coded something a particular way, you'll be glad you kept a journal!
This is an intermediate discussion for C# developers who are already using Async/Await. The syntax for Async / Await in C# is straightforward but the under-the-covers mechanics are not. This discussion will provide a high-level understanding of those mechanics so you can be a true wizard with Async / Await in C#. We will start with an example showing the amazing performance gains that can be had using Async / Await. Then discuss Task Based Asynchronous Processing and the under-the-covers mechanisms ExecutionContext and SynchronizationContext to understand their role. We finish with some advanced examples showing the power of the Tasks namespace.
Azure started as a Platform as a Service with Cloud Services, but since it launched has evolved to include several newer and very useful options for compute. Depending on your hosting model and how you do DevOps, requirements for scalability and availability you have tradeoffs that affect your long term costs and decision. We will explore the options for compute in Azure including Containers, Application Services, Serverless with Functions, and Kubernetes. It will help you understand the tradeoffs and help you make smart decisions on what makes the most sense to ensure you can maximize the return on your investment.
Spoiler alert.
At some point in your career, you will deal with burnout. It's not a question of if, but when. Let's talk about what are the signs of burnout and how to deal with it once you've been "burned".
I found myself no longer doing what I loved and instead doing what was required by the business. When I found myself at the point of really disliking my job I realized that I spend so much time focused on improving processes for my clients, why can't I do the same for myself. By taking the same skill set we use in Design Thinking, we can focus on our work/life balance and come up with effective ways of managing our stress and enjoyment before we burnout.
In this session, you can expect
- Random Stories and Examples of my personal burnout
- Knowledge to be aware of when you are burning out
- Practical Advice and Methods for dealing with burn out and how to stay inspired
Have you ever wanted to make your own video game? In this talk, I’ll cover a lot of the basics of making games for the web. We’ll look at how to draw compelling 2D/3D graphics with the Canvas API and WebGL, play those great sound effects with the Web Audio API, and take user input with things like the GamePad API.
I’ll touch on some software patterns and strategies used by game developers to build your game. We’ll talk about low effort techniques for collision detection to get you up and running into solid objects fast!
If you are interested in game development, come learn about everything you need to make your first game!
Storybook is a tool that makes it easier to build, test, and document UI components in isolation. That's already fantastic but let me tell you a secret: did you know that Storybook is framework-agnostic and can be used for other graphically-rich libraries like... a game engine?
I'll show you how I set up Storybook to showcase and test features in our open source game engine. This not only improved the development experience by isolating visual tests, it made our users lives better with richer documentation they could learn from. Best of all, I'll be sharing how to get the same fundamental benefits for your own apps and libraries!
The easy question to answer is how can you use mindfulness to improve your own personal performance and career. The harder question is how can app design positively and negatively affect presence. How can you intentionally design mindfulness into your next user experience?
What a horrible mess this class is! Look at this--it has hard-wired static function calls, it’s newing up and hanging on to some IDisposables indefinitely, and it is just way too big. I dunno, maybe it needs a ServiceLocator? Whatever, I’m not messing with this. I’ll just new up another dependency and make it work for this new feature it needs. But boy, does this smell icky…
I’ll show you the way to incrementally fix up your code so that when you take it off the blocks, all will work well, quality goes up, and much goodness results.
Azure Functions are great for small units of work, but what about long-running jobs and one-off tasks? This is the story of how one team used Azure Durable Functions to provide massive scale, reduce costs, and increase resiliency.
This session will cover some common deployment options when considering migrating on-premise applications to Azure. Some topics covered include motivations for moving to the cloud, managing cost, as well as benefits and trade offs of the different options.
As a form of machine learning, deep learning has gotten very popular in business and science. With uses in areas like image recognition and language processing, deep learning techniques are worth exploring in modern software development. In this talk, we’ll discuss deep learning and what it offers, some common applications, and walk through some examples and how you can use it.
A good UX design process breaks down big challenges by infusing fresh perspective with proven tools and techniques. However, none of these tools or techniques are more insightful or guiding than a user study. User studies recalibrate focus by uncovering key customer feedback and perceptions. They are the biggest driver of product innovation to create a competitive advantage.
Your thoughts and your emotions affect your work, no matter how much you pretend that you can leave them at the door of your workplace. It's easy to deny your own experience the importance it deserves, especially if it's only inside your own head. But boxing it all away because you have "work to do" is like trying to run a marathon while carrying a Labrador Retriever.
It doesn't have to be that way. This talk will teach you how to frame your world using experiential language rather than clinical language, giving you a powerful tool to discuss your mental health in a way that can be easily felt and understood - and that won't get you in trouble with HR. That sharing becomes the key that unlocks the true power of your team... so come find out how to finally bring your whole self to work!
In this talk you will learn not only if k8s is right for your application, but also if it is right for your company. We will assess the needs for k8s, what drove our team to choosing Azure Kubernetes Service (AKS), and how we manage AKS today.
You’ve heard the basics of machine learning and been introduced to Microsoft's ML.NET library. Now it’s time to see it in action! We show off ML.NET’s analytical capabilities by training it to play the classic board game, Stock&Bonds. We go over the good, the bad, and the ugly, of what it takes to get it working with an end-to-end web application.
Recently there was a contest for the mobile development framework from Google called Flutter. I didn't win this contest. I didn't even submit an entry as I couldn't get past some setup and code issues. What I did get however was 3 weeks of intense self study on Flutter reverse engineering another clock application line by line.
I came away from this experience with a ton of lessons learned that I plan to share with the audience such as:
The Dart language and it's peculiarities.
Usage of the StateLess and Stateful widgets in Flutter
How the Canvas graphics api works in Flutter including customizing graphics
Attendees will leave this session with the knowledge of the common gotcha's in Flutter that I experienced and enough ground level knowledge of Flutter to start their own application.
Explain What and Why JAMStack, Explain Gatsbys role in packaging. Brief demo of storing the source code for a simple React JS website on GitHub and using Gatsby in an Azure pipeline to deploy a static website to Azure storage.