Community Speaker

Upcoming Talks:

  • Code Camp Las Vegas 2018 - 10/20/2018 - "Design Patterns for Loosely Coupled Applications"

 

I have the following talks on Artificial Intelligence and other topics of interest to Enterprise .NET developers that I can deliver at your user group or conference. You can submit your request for me to speak by contacting me.

  • A Developer's Introduction to Artificial Intelligences (also available as a half-day or full-day workshop) - There are a number of ways that developers can build systems that make decisions on our behalf. In this introductory course specifically for software developers, we explore a variety of methods used to create Artificial Intelligences. Using demo code written in c#, we will survey the breadth of AI methodologies and develop an understanding of when each might be best utilized. You will also leave with a library of sample code available for reference.
  • One AI Algorithm All Programmers Should Know - This simple technique that every programmer should know can simplify certain types of problems tremendously, allowing us to find an optimal solution to difficult problems quickly and easily using a mathematical process called Dynamic Programming (not to be confused with Dynamic Languages or Functional Programming). In this session, we will run through examples of using this technique to solve several problems, both "on paper" and in code and apply that knowledge to build artificial intelligences that can make decisions on our behalf.
  • Building AI Solutions Using Combinatorial Solvers - We depend on Artificial Intelligences to solve many types of problems for us. Some of these problems have more than one possible solution. Handling those problems with more than one solution while building a modern AI system is something every developer will be asked to do over the course of his or her career. Figuring out the best way to utilize the capacity of a device or machine, finding the shortest path between two points, or determining the best way to schedule people or events are all problems where mathematical optimization techniques and tooling can be used to quickly and efficiently find solutions. This session is a software developers introduction to using mathematical optimization in Artificial Intelligence. In it, we will explore some of the foundational techniques for solving these types of problems, and use combinatorial solver tools to put them to work in our AI systems. Since this is a session for developers, we'll keep it in terms that work best for us. That is, we'll go heavy on the code and lighter on the math. Note: This talk can be specifically targeted to one of several solver tools including Gurobi, Microsoft Solver Foundation and Google OR-Tools.
  • Building .NET Applications for any Cloud with Cloud Foundry - Cloud Foundry is an open-source Platform as a Service (PaaS) available on virtually any cloud (Azure, IBM, Amazon, Google, and others) that manages containers and applications with many of the same capabilities of Docker and Kubernetes, without the complexity or vendor lock-in. In this session, we will build a .NET core based Microservices application and deploy it into production on Cloud Foundry to demonstrate the features and ease of use of the Cloud Foundry platform. Warning: once you experience Cloud Foundry you'll never want to deploy your applications without it again.
  • Introduction to WebAssembly Using Blazor - Want to run your .NET Standard code directly in the browser on the client-side without the need for transpilers or browser plug-ins? Well, now you can with WebAssembly and Blazor. WebAssembly (WASM) is the W3C specification that will be used to provide the next generation of development tools for the web and beyond. Blazor is Microsoft's experiment that allows ASP.Net developers to create web pages that do much of the scripting work in C# using WASM. Come join us as we explore the basics of WebAssembly and how WASM can be used to run existing C# code client side in the browser. You will walk away with an understanding of what WebAssembly and Blazor can do for you and how to immediately get started running your own .NET code in the browser.
  • Simplify Your API: Creating Maintainable and Discoverable Code in .NET Core - Developers don't read documentation, this is a fact. It is also a fact that an API that depends on its documentation to get developers to understand and discover its features is at a huge disadvantage in the marketplace. Fortunately, there are some simple, easy-to-use mechanisms for wrapping complex APIs and making their functionality both easy to use, and highly discoverable. Imagine being able to use tools like IntelliSense that the Visual Studio IDE already provides as a way to expose the functionality of your service or library. In this session we will build a fluent Domain Specific Language interface over an existing API to create an interface that is easy to use and discoverable through IntelliSense.
  • Design Patterns for Loosely Coupled Applications - Building loosely coupled applications is critical to creating solutions that follow good object oriented development principles. These principles help make sure our applications are testable, maintainable and extensible. In this session we will explore several design patterns that are key to building applications that maintain loose coupling. We start by reviewing a tightly coupled application. Then, we explore several critical design patterns by using them to convert the application into a maintainable and extensible solution that can be validated using unit tests.
  • Test Driven Development in .NET Core - In this talk, the speaker and the audience will "pair up" for a coding session which will serve as an introduction to using a Test Driven Development process to build a .NET Core application. We will use C#, Visual Studio, XUnit and MOQ to unit test code to be built both with and without dependencies. We will also highlight some of the common issues encountered during TDD and discuss strategies for overcoming them.

 Past engagements:

 

  • Desert Code Camp, Phoenix 2018 - 10/6/2018 - "Building .NET Applications for any Cloud with Cloud Foundry" and "Design Patterns for Loosely Coupled Applications"
  • Southeast Valley .NET User Group, Chandler AZ - 9/27/2018 - "Introduction to WebAssembly Using Blazor"
  • Northwest Valley .NET User Group, Glendale AZ - 9/26/2018 - "Introduction to WebAssembly Using Blazor"
  • RevolutionConf Virginia Beach 2018 - 5/17 - 5/18/2018 - "A Developer's Introduction to Artificial Intelligences"
  • MVPMix Dallas 2018 - 3/15/2018 - "One AI Algorithm all Programmers Should Know" and "A Developers Introduction to Artificial Intelligence"
  • Phoenix Startup Week 2018 - 2/19/2018 - "Using Combinatorial Optimization to Create Artificial Intelligences"
  • South Florida Code Camp 2018 - 2/10/2018 - "A Developer's Survey of AI Methodologies" and "Building AI Solutions with Google OR Tools"
  • SoCalCodeCamp Los Angeles 2017 - 12/2 to 12/3/2017 - "A Developer's Survey of AI Methodologies" and "Building AI Solutions with Google OR Tools"
  • Desert Code Camp 2017 - 10/14/2017 - "A Developer's Survey of AI Methodologies" and "Building AI Solutions that can Reason Why"
  • NDC Sydney - 8/14 to 8/18/2017 - "Building AI Solutions with Google OR-Tools"
  • SoCalCodeCamp San Diego 2017 - 6/24/2017 - "A Developer's Survey of AI Methodologies"
  • Southeast Valley .NET User Group - 6/22/2017 - "A Developer's Survey of AI Methodologies"
  • Codestock (Knoxville TN) - 5/6/2017 - "Examples of Micro-Service Architectures"
  • Phoenix Visual Studio 2017 Launch - 3/16/2017 - "Testing in Visual Studio 2017"
  • MVPMix Dallas - 3/9/2017 & 3/10/2017 - "Creating Maintainable and Discoverable APIs in .NET Core & "Design Patterns for Loosely Coupled Applications in C#"
  • NDC London - 1/20/2017 - "Test Driven Development in .NET Core" & "What Makes a Good Unit Test?" (lightning talk)
  • Southern California Code Camp (SoCalCodeCamp - Los Angeles 2016) - 11/12-11/13/2016 - "A Developer's Guide to Finding Optimal Solutions"
  • Atlanta Code Camp 2016 - 10/15/2016 - "A Developer's Guide to Finding Optimal Solutions"
  • IT/DevConnections 2016 - 10/10/2016 - 10/13/2016 - "Dynamic Optimization: One Algorithm All Programmers Should Know"
  • Desert Code Camp 2016.1 - 10/8/2016 - "A Developer's Guide to Finding Optimal Solutions"
  • Alpha Devcon 2016 - 9/21/2016 - panelist on the "Vertical Apps Panel"
  • .NET Group Las Vegas - 8/25/2016 - "A Developer's Guide to Finding Optimal Solutions"
  • Southern California Code Camp (SoCalCodeCamp San Diego 2016) - 6/26/2016 - "A Developer's Guide to Finding Optimal Solutions"
  • Twin Cities Code Camp 20 - 4/16/2016 - "A Developer's Guide to Finding Optimal Solutions"
  • Baton Rouge .NET User Group - 4/13/2016 - "A Developer's Guide to Finding Optimal Solutions"
  • South Florida Code Camp 2016 - 2/20/2016 - "Dynamic Optimization: One Algorithm All Programmers Should Know" & "A Developer's Guide to Finding Optimal Solutions"
  • Southern California Code Camp (SoCalCodeCamp Los Angeles 2015) - 11/14/2015 & 11/15/2015 - "Dynamic Optimization: One Algorithm All Programmers Should Know" and "Simplify Your API: Creating Maintainable and Discoverable Code"
  • .NET Group - Southern Nevada's .NET User Group - 10/29/2015 - "Simplify Your API: Creating Maintainable and Discoverable Code"
  • Atlanta Code Camp - 10/24/2015 - "Dynamic Optimization: One Algorithm All Programmers Should Know."
  • Code Camp NYC - 10/10/2015 - "Dynamic Optimization: One Algorithm All Programmers Should Know."
  • Southern California Code Camp (SoCalCodeCamp San Diego 2015) - 6/27/2015 - "Dynamic Optimization: One Algorithm All Programmers Should Know."
  • Northwest Valley .NET User Group (NWVDNUG) - 6/24/2015 - "Dynamic Optimization: One Algorithm All Programmers Should Know."
  • Twin Cities Code Camp 18 - 4/25/2015 - "Dynamic Optimization: One Algorithm All Programmers Should Know."
  • Las Vegas Code Camp - 2/21/2015 - "Dynamic Optimization: One Algorithm All Programmers Should Know."
  • South Florida Code Camp 2015 - 2/7/2015 - "Dynamic Optimization: One Algorithm All Programmers Should Know"
  • Desert Code Camp 2014.2 - ".NET TDD Kickstart" and panelist for the discussion "Agile in Practice"
  • Southeast Valley .NET User Group - 8/28/2014 - "SOA: Beyond the Buzzwords"
  • Southern California Code Camp (SoCalCodeCamp San Diego 2014) - 6/28/2014 - "SOA: Beyond the Buzzwords"
  • South Florida Code Camp 2014 - 2/22/2014 - "Simplify Your API: Creating Maintainable and Discoverable Code"
  • Southernmost User Group 2014 - 2/20/2014 - "SOA: Beyond the Buzzwords"
  • Desert Code Camp 2013.2 - 11/9/2013 - "SOA: Beyond the Buzzwords"
  • DevConnections Las Vegas - 10/1/2013 - "Simplify Your API: Creating Maintainable and Discoverable Code"
  • Win 8 App Factor Tempe 6/13/2013 - "Code Portability in .NET"
  • SELA Dev Conference  5/5/2013-5/9/2013 in Tel Aviv Israel – a full day seminar version of “.NET TDD Kickstart” as well as “Code Portability in .NET”
  • Twin Cities Code Camp 4/27/2013 – “Code Portability in .NET”
  • Desert Code Camp 4/20/2013 – “Creating a DSL Using an OData Source”
  • South Florida Code Camp 2013 - 2/9/2013 - "Creating a DSL using an OData Source"
  • Southernmost User Group - 2/7/2013 - "Code Portability in .NET"
  • NYC Code Camp - 9/15/2012 - ".NET TDD Kickstart"
  • Los Angeles .NET Developer Group - 7/9/2012 - ".NET TDD Kickstart"
  • North West Valley .NET User Group - 6/26/2012 - ".NET TDD Kickstart"
  • Southern California Code Camp (SoCalCodeCamp - San Diego 2012) - 6/24/2012 - ".NET TDD Kickstart"
  • Twin-Cities Code Camp 12 (TCCC12) - 4/15/2012 - ".NET TDD Kickstart"
  • New Mexico .NET Users Group (NMUG) - 3/1/2012 - ".NET TDD Kickstart"
  • South Florida Code Camp 2012 - 2/18/2012 - ".NET TDD Kickstart"
  • Southern California Code Camp (SoCalCodeCamp Fullerton 2012) - 1/29/2012 - ".NET TDD Kickstart"
  • Desert Code Camp 2011.2 - 11/5/2011 - "Enterprise Development in the Windows 8 Timeframe"
  • Southern California Code Camp (SoCalCodeCamp - San Diego 2011) - 6/26/2011 - "Building Enterprise Quality Apps using EF4"
  • New Mexico .NET Users Group (NMUG) - 6/2/2011 - "Building Enterprise Quality Apps using EF4"
  • Desert Code Camp 2011.1 - 4/2/2011 - "Building Enterprise Quality Apps using EF4"
  • Developer Ignite II - 11/11/2009 - "AZGiveCamp, Geeks Giving Back to the Community"
  • Developer Ignite - 7/22/2009 - "Simplicity Through Abstraction"