I regularly speak on a variety of topics related to software development. I’ve spoken at a variety of user groups and conferences in the Midwest region including That Conference, MKE Dot Net, Milwaukee Code Camp, Wisconsin.NET, MadDotNet, New Code Camp, Dubuque .NET Users Group, Code Mash, Music City Tech, KCDC, Chicago Code Camp, and Twin Cities Code Camp.
If you would like me to speak at your venue, please send me an email at firstname.lastname@example.org.
Technology is a treadmill. Every year, there’s a pile of shiny new things to learn. It’s impossible to keep up with all of it. You’re constantly asking yourself: “Which technology stack is going to keep me employed?”
As a developer, I love chasing shiny new technologies, but over the years I’ve learned that making my users happy is way more fulfilling than using the latest technology. After over a decade of building software, I’ve learned the key to good software is getting the boring stuff right.
In this talk, you’ll learn about why you should spend more time working on evergreen skills. These include skills like creating maintainable code, learning how to learn, and building the right thing. You’ll learn what skills have maximum impact and how to improve them. You’ll learn how to plan your personal education and make the most of your time. After this talk, you’ll be able to sort through the morass of new technologies and make the most of your limited time.
Software development is fraught with challenges. Constantly changing technology, complex business problems, and other people can make your life very difficult. In addition to the mental challenges, the sedentary developer lifestyle adds a whole dimension of problems. If you want to have a fulfilling career, there is one trait you need to cultivate above all others. This trait goes by many names: grit, fortitude, mettle, and resilience. Resilience, the ability to positively adapt to adversity, is the key to a successful developer career. With resilience, you can endure, adapt, and grow. It’s the difference that separates the professional from the amateur.
In this talk, you will learn why resilience is the ultimate developer skill and how to cultivate it. We’ll look at the work of a wide range of psychologists and extract specific lessons and exercises that you can use to increase your resilience. By the end of this talk you’ll know what you need do to become more resilient.
As technologists, we are the vanguard of human progress. It is our job to employ the latest technologies to serve humankind. Wouldn’t it be nice to know how that progress actually happens? In this talk, we are going to explore the mechanics of innovation. We will look at some of the most innovative societies and organizations in human history and learn what makes them so great. Then we will take those lessons and boil them down into practical advice you can use to be more creative.
We’re going to tackle the following questions: How are new ideas generated? Is the “hero inventor” a myth? Why are some societies more innovative than others? What can organizations do to be more innovative? How can you as an individual be more creative?
These are talks that I’ve done that are no longer in regular rotation.
The .NET family of languages covers a wide range of different programming paradigms. Until recently, data analysis wasn’t well-represented in the .NET world. With today’s proliferating amounts of data, all developers should consider learning more about data analysis. Enter R, a language tailor-made for data analysis. With the release of R Tools for Visual Studio, .NET developers can use this powerful language using familiar tools.
In this talk, we’ll explore the R programming language, what you can do with it, and why R is a good addition to your toolkit. We’ll talk about both traditional R tools and Microsoft’s data analysis tools. After this talk, you’ll be slicing and dicing data with ease.
We are sitting at the foot of a proliferating pile of data. Making sense of it is a herculean challenge, but there are significant spoils for those who are up to the task. One of the tools at our disposal for making sense of large quantities of data is data visualization. In this talk, we’re going to use web based tools to build amazing visualizations.
We’ll begin by looking at data visualization best practices. Next, we’ll look at some of the different ways you can visualize data on the web. Then we’ll build charts with NVD3.js. An easy to use tool that supports most charting scenarios. After that, we’ll build complex interactive data visualizations with D3.js, the ultimate visualization power tool.
After this talk, you’ll have a whole new set of tools to climb to the peak of your own data mountain.
Additionally, the bar for web applications gets higher everyday. jQuery was cool ten years ago, but it doesn’t cut it for modern web apps. We need something with a little more horsepower. Enter Angular (formerly known as Angular 2). Angular makes it easy to build clean, modular web apps.
In this talk, we’ll explore TypeScript and Angular and how they can be used together to build large-scale web applications. We will learn how to get started and get up to speed quickly. We’ll put together a slick tool chain and walk through the major features in Angular. We will also learn how to structure our Angular apps for maximum developer happiness. After this talk, you’ll be well on your way to building apps in Angular.
A recording of an older version of this talk can be found here. The current version focuses on TypeScript 2.0 and Angular 2.
“Performance is a feature” – Jeff Atwood
Application performance is often under-appreciated. At least until the user complaints start rolling in. Spending time tweaking your application can be tough to justify to management, but performance is the ultimate feature. Even small increases in performance can drastically improve adoption of your application. Performance impacts the bottom line like a meteorite impacts the Earth.
In this talk, we’re going to explore how to improve the performance of ASP.NET applications from top to bottom. We’ll start by looking at ways to find the bottlenecks. Then we’ll look at each layer in the stack and fix common performance issues. You’ll leave with a plethora of new tools to tune up your own applications. After this talk, you’ll be able to make apps faster than Usain Bolt with cheetahs for shoes.