Community Speaker

Upcoming Talks:

  • RevolutionConf 2018 - 5/17 - 5/18/2018 - "A Developer's Introduction to Artificial Intelligences"

 

I have the following talks on Artificial Intelligence and Unit Testing in .NET 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 - 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 with Google OR Tools - 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 the open-source Google OR-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.
  • 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.
  • 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:

 

  • 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"