Ah, the promises of Microservices. Small manageable services. Independent lifecycles. More features, faster, and with fewer regressions. Unlimited scale. Asynchronous messages. Event sourcing. Full visibility and audit logs. Eventual consistency bliss. Containers everywhere. It sounds fantastic right? And, it can be, for some. Will you be one of them? This keynote will contemplate how to survive this seductive approach toward solution architecture - with the many pitfalls in mind - and with the reasons why it's worth the effort.
Developing applications that run in the cloud is different from other platforms not only because the virtualization technologies available allow us to move quicker towards more modern software architectures, but also because the patterns and processes we follow to get there are rapidly evolving. It requires knowledge of not just the services but also the tools that enable us to deliver on that promise in order to see the benefits of Azure. In this session, we take the developers view and explore how to start building cloud aware apps, and then optimize them to take advantage of features like analytics, identity, and connectivity to other cloud services. Next, we show how to use Resource Groups and how to create templates for our infrastructure that include things like automated scaling, alerts and notifications as well as provide a reliable way to deliver infrastructure as code. You will come away knowing how these tools and approaches enable us to create repeatable processes for delivering value from the public cloud.
Elasticsearch has been commonly used to implement autocomplete, but did you know its suggesters go beyond just that? Let's take a tour of the various problems Elasticsearch can solve with it's powerful suggesters feature.
There is no such thing as a perfect work environment. Every company has wiring closets full of skeletons and political landmines where you least expect them. Learning how to make the most out of any situation, dodge office landmines, and excel in the process is essential for your career as well as your own health and well being. With over 25 yrs of experience, I have been in and seen battles, navigated the jungles, and escaped with my wits (mostly) intact. In this once in a lifetime opportunity, I will share insights and tools on how to combat and survive and hopefully thrive in even the most caustic environments.
Learn the fundamentals of cryptography, including public/private and symmetric encryption, hashing, and digital signatures. Discover which techniques are appropriate for various situations. Review practical real life examples for storing passwords, protecting URL parameters, securely exchanging information with partners, and safely encrypting sensitive information on public web sites. Concepts apply to all platforms, examples will be in C# for both .NET and .NET Core.
Microservices are not for everyone, but there are some incredible benefits to employing microservice architecture principles to enable co-evolution of services and features and reduce friction during the DevOps cycle. The growth of moving parts, however, does require tight DevOps procedures, and visibility into system operations including diagnostics, application events and audit trail. Event streaming can enhance your solution enabling async processing and scale, but also enhancing visibility to the solution as a whole. The good news is that if you are already designing a solution based on microservice principles, you are already positioned to incorporate events with less pain. Services that "fit in your head" lead to a manageable approach to introducing event-based strategies. In this session you'll learn how to design a microservices solution that relies on event streams to produce workflow state, history and full audit. You'll see patterns for structuring your solutions, managing events and payloads, and producing full history and audit logs for the solution. Event streaming will be implemented with Azure Event Hubs to compliment a microservices solution hosted in Azure Kubernetes Service (AKS) with Application Insights showing instrumentation output.
Flutter is Google's new cross-platform mobile development framework. With Flutter, Google wanted to create a reactive, cross-platform mobile development framework that helped speed up development, abstract UX/UI into the framework and provide great performance. In this session, we'll walk through the Dart language (because Flutter uses it), the basics of Flutter, the Flutter device APIs and build a few slick demos to see Flutter's powers in action.
Did you know that Vue.js was the most-starred Github repo for the past 2 years? It beat out React (barely) and Angular (handily) for developer love in 2016 and 2017. (source: https://risingstars.js.org/2017/en/#section-all) Come to learn basic Vue.js concepts through simple examples in live code. I'll show you the core Vue.js directives and what they do under the covers. If you're new to Vue, you'll come away understanding how you can integrate it into an existing project, or start a new one with it. If you're an Angular or React user, you'll gain an appreciation for what makes Vue special. If you know some HTML and CSS but not much JavaScript, you'll be excited about leveling up with Vue. GitHub Repo: https://github.com/ddanger/vue-basics/blob/master/presentation-2018-mdc.md
Find out how Dow Jones uses AWS Cognito to simplify authentication for their sites, tools and APIs that power the Wall Street Journal, MarketWatch and Barron's. With the power of SAML and OpenID federated identity providers, Cognito helps Dow Jones standardize their approach to authentication and authorization in the cloud. Explore with us a couple of ready to use AWS Resources that easily implement the Cognito based authentication workflow.
Data analysis, statistics, and mathematics have been revolutionized by increases in computing power -- and now it's happening again. We can go beyond traditional statistical approaches to studies and data by using unsupervised learning techniques and advanced math. Topological data analysis looks at the shape of data -- the underlying structure -- and in revealing surprising insights, it also brings up interesting questions. The best part is that you can do your own analysis with Python and R, free and open-source tools. We'll look at real-life applications of topological data analysis from health to finance to politics, and I'll ask you how topology might apply to your big data problems!
We were so preoccupied with whether we could, we didn’t stop to think if we should. Nowhere at Jurassic Park was this more true than how we developed software. Having the wrong software and support structures was a key factor in the failures of our first park. We were entrepreneurs launching something new and architects integrating an enterprise. And our decisions had lasting consequences. Deciding which problems were worth our time was foundational to our failure. Join us for a retrospective of software systems at Jurassic Park. We’ll dig into case studies and explore our successes and failures. We’ll uncover the options, costs, and risks inherent in deciding what software to build, what to buy, and alternatives in between. We’ll explore the opportunity cost of building systems, the sustainability of open-source, and the risks of vendor lock-in. You’ll leave equipped to make better decisions and avoid the pitfalls we made at Jurassic Park. Presentation: https://speakerdeck.com/toddhgardner/build-vs-buy-software-systems-at-jurassic-park
Want to build great native apps quickly? This session will give you an overview of the Xamarin.Forms API, controls, and toolset, as we illustrate how to quickly build native apps for iOS, Android completely in C#, all while maximizing the amount of shared code between them. This session aims to break down all barriers to getting started. Spoiler: if you know C#, you already know how to build great looking apps using Xamarin.Forms.
Are you thinking about using containers in your organization? Should you be? Containers are being discussed a lot these days as an important tool for software development and application deployment. Do you want to understand how containers work and see how to take advantage of them in your organization. This talk will give you a strong base of understanding about how containers work and cover the benefits of using containers during development, testing, deployment and production. You will learn about the different types of containers, how to setup containers for use on developer workstations (Mac or Windows), managing your container images in a registry, and deploying containers to a host in your data center or a cloud provider like Microsoft Azure. Containers aren't a silver bullet, but they can ease some of the pains of application development.
Impostor Syndrome is a quiet and subversive force in a lot of developer's lives. They feel like they're faking their way through their job, and they silently panic as they wait for everyone to find out they don't really know what they're doing. It can be crippling, and left alone it can develop into an anxiety disorder, or worse. If you can relate, or even if you just want to learn how to be a little more confident in yourself, come and listen as we cover what Impostor Syndrome is, some theories why it happens, and strategies you can use to eliminate it (that's right, you actually can)!
Keeping up with the latest and greatest tech stack( has never been a bigger challenge for a programmer than it is today. Good news! React Native looks like a stack that is going to be around awhile and is being embraced more and more by businesses as a legitimate option for x platform native mobile applications. in this session, I will walk though the pain of setting up your environment for a simple Hello World app, and then take you though creating the Delivery Truck Mgmt app I've demoed using Angular in the past.
At first, designing a system using microservices might seem easy. Just separate your code into small, autonomous, easily maintainable, individually deployable components. Give each one its own database so they can’t accidentally share data. Let them communicate via REST. Now go bask in the warm glow of your achievement, confident that because of your efforts, your system will now be reliable, scalable, maintainable, and all-the-other-things-able. After all, it worked for Netflix. But once you reach the UI, the party’s over. How do you render a UI composing data from multiple services without reintroducing the coupling the microservices were supposed to eliminate? If one service has to call another to get data, they’re no longer autonomous. Worse yet, you could be introducing so much chatter that the performance of your app will suffer. If the UI layer has to orchestrate the calls to multiple services, then you’ve just moved the coupling into the UI and gained very little. In this session you’ll get a guided tour to working code that composes data from different services in an ASP.NET Core web application using a technique called ViewModel composition. You’ll also learn tips for analyzing service boundaries so you can build systems using this method and create microservices that are truly autonomous from the back all the way to the front.
Serverless architectures – where managed servers are provisioned and scaled on-demand, freeing up time and money to focus on code – are seeing increasing mainstream adoption, but enterprise-grade applications have additional challenges such as networking, security, durability, and workflow complexity. Come to this session to learn about the solutions to these challenges that Azure Functions, a leading FaaS (Functions as a Service) serverless compute service, has developed. We’ll explore identity integration, containerization, workflow management, and reducing cold start latency.
Your team of one may not have the crew of a professional kitchen, but you too can cook 5-star meals! Learn how to apply Agile software development principles to your work today. By beginning from the basic recipe of what Agile software development is, we cook up perfectly portioned work for the solo developer that get better day after day. Included are resized familiar team dishes such as Scrum, planning poker, and pair programming, as well as a template for entrees such as estimation, prioritization, and code reviews. Find out how you can serve hot and ready results to your "steakholders" with a side dish of features. Even if you don't cook, you can enjoy the eating the results. This entry level talk is for anyone who works as the chef, dishwasher, and server all at the same time.
Tired of using a keypad or a remote to open your garage door? Do you ever get to work and wonder if you closed the garage? Problems with your numeric keypad in the Minnesota winter? I wanted to build a smart garage door opener that would allow me to use my phone to open the door and to check the status of the door on my phone from anywhere. I also wanted a project to use my Raspberry Pi 3. In this session, you will learn about the basic hardware I bought to support the sensor and signaling needs of the system and how they connect to the Pi. I'll also go over the applications I wrote to handle the logic on the Raspberry Pi and phone. I'll cover the connections between the phone and the system, the remote access, and how it all fits together. Learn how you can enhance the system with features like sending alerts when your door has been open for an extended period of time.
Information security involves keeping your systems secure and your company's (and your users) data safe and out of unauthorized hands. We as developers have a number of very important roles in info sec, and among those are application security and secure coding. In this presentation, we'll talk about some security best practices, examples of vulnerabilities, and practical ways to avoid doing the sort of things that the bad guys exploit.
Building real-world, maintainable applications is hard in JavaScript which is why there’s such a rich ecosystem of frameworks and libraries to help make that easier. React.js is a framework for building components that helps make your front-end more modular. TypeScript is a compile-to-JavaScript language that helps you build scalable and maintainable applications. Separately, they are both awesome technologies but when used together they form an awesome team that allows you to build robust, refactorable, maintainable codebases that can scale to large applications. In this session, we’ll take a look at a real-world application that takes full advantage of the scalability features React, Redux and TypeScript provide. Slide Deck: https://slides.com/kamranayub/mdc-react-ts-2018#/