Community Speaker

Scheduled Talks:

  • NDC Sydney - 8/14 to 8/18/2017 - "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"

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.

  • 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.
  • Building AI Solutions that can Reason Why - One of the big problems with Artificial Intelligences is that while they are often able to give us the best possible solution to a problem, they are rarely able to reason about why that solution is the best. For those times where it is important to understand the why as well as the what, Hybrid AI systems can be used to get the best of both worlds. In this introduction to Hybrid AI systems, we'll design and build one such system that can solve a complex problem for us, and still provide information about why each decision was made so we can evaluate those decisions and learn from our AI's insights.
  • A Developer's Survey of AI Methodologies - Artificial Intelligence is far more than just machine learning. There are a variety of tools and techniques that systems use to make rational decisions on our behalf. In this survey designed specifically for software developers, we explore a variety of these methods using demo code written in c#. You will leave with an understanding of the breadth of AI methodologies as well as when and how they might be used. You will also have a library of sample code available for reference.
  • 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:

 

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