

Matt Eland
Instructor at Tech Elevator, Microsoft MVP in AI
Columbus, Ohio, United States
After several decades as a software engineer and engineering manager, Matt now serves as a software engineering instructor at Tech Elevator where he gets to raise up future developers and unleash them upon the world to build awesome things.
Matt is a Microsoft MVP in Artificial Intelligence and a Microsoft Certified Azure Data Scientist and AI Engineer associate. Matt runs several blogs and a YouTube channel on data science and software engineering topics, is currently pursuing a master's degree in data analytics, and helps organize the Central Ohio .NET Developer Group while contributing to local and regional conferences.
In his copious amounts of spare time, Matt continues to build nerdy things and looks for ways to share them with the larger community.
Links
Area of Expertise
Topics
Managing your AI / ML Pricing on Azure
Machine learning and artificial intelligence are awesome, and Azure makes them affordable and scalable, but there's still some things you should know to understand and plan for your pricing needs using machine learning and AI on Azure.
Let's take a look at the pricing components of Azure Machine Learning, Azure Cognitive Services, and the newer OpenAI offerings that are now part of Azure as well. We'll discuss some common costs you can anticipate and potentially mitigate and using Azure Cost Management to discover the services costing you the most money each month.
Get Started with OpenAI on Azure
AI transformers have been making unignorable waves over the last few years with innovations in content generation we didn't even think were possible half a decade ago.
In this session we explore how to use OpenAI models hosted on Azure to generate text and images for your applications. Along the way we'll explore the models available, OpenAI pricing, optimizing prompts for OpenAI, and where the service is going from here.
Making Your Code Accessible to New Team Members
Our code has baggage. Code rapidly goes from being pristine and green field to being eroded over time as requirements and features change, standards shift, and technologies change.
Beyond that, the very languages we use evolve over time. Dotnet and Java are over 20 years old and still heavily used in the industry. Each year we get reams of new features that can be added to existing codebases. The languages we use are not as simple or focused as they were two decades ago and it's becoming mathematically impossible to teach new learners all the language features they're likely to encounter in the "real world".
So how do we help guide new team members through our codebases? How do we use the latest and greatest features in our codebases while not burdening new developers with a massive learning curve? How do we help seasoned developers learn our team's preferences and standards?
In this talk we'll explore various techniques for determining coding standards for your organization, evaluating if the latest language features are really worth incorporating into your code, communicating the context of code, and guiding new team members of various experience levels through your codebase and its features. And we'll explore ways of doing all of this without sparking a technical civil war in the process!
Technical debt must die - Communicating code to business stakeholders
Our software sucks. We're up to our necks in bugs and technical debt, yet we often seem to hit roadblocks explaining things in ways that bring about meaningful change. In this session you'll learn to gather, analyze, and interpret data in order to create effective presentations to communicate quality, technical debt, and other technical matters in ways that tell a compelling story. You’ll master how to communicate effectively with key stakeholders by taking a data-driven approach blended with storytelling techniques to bridge common gaps between development and business stakeholders. You’ll explore the 7 tools of software quality and how they can bring clarity and sanity to the decision-making process, justify paying down technical debt, and focusing on improving our software in the areas that need it most.
This talk was tremendously well-received at CodeMash 2020: https://twitter.com/i/events/1215455799952257025 and did well at CouchCon Live. The CodeMash recording is available at Pluralsight at https://app.pluralsight.com/library/courses/codemash-session-25/table-of-contents
Using Genetic Algorithms to Breed Killer Squirrels
Can a computer program truly surprise its creator?
In this highly unusual session, you'll get a high-level introduction to genetic algorithms as we look at a simple scenario involving training a virtual squirrel to find an acorn and return to its tree in a 2D world without being eaten by the neighborhood dog.
Not exactly a common business problem, but this code-free overview lets us explore the basics of genetic algorithms, representing potential solutions as genes, evolving solutions over time, the role of crossover and mutation, and the importance of a well-thought-out fitness function.
All of this will be done to see if a computer can evolve a gene capable of solving a specific problem (spoilers: it can), and see if a computer can find solutions its programmer didn't even think were possible.
This is an interesting combination of a talk on what genetic algorithms are as well as a discussion of the role of side projects. It is intended for a shorter time slot, but a longer abstract could be made for a more in-depth talk covering more technical details.
Intro to Application Architecture and Scalability
Software is a lot more complicated than it used to be. Twenty years ago most applications lived on individual machines as executables. Today modern applications run in a combination of environments including web applications, mobile apps, APIs, and databases.
In this talk we'll take a look at the various components that comprise modern web applications, explore performance and scalability, and give a general overview of advanced architectural concepts like caching, database partitioning, NoSQL, microservices, and containerization.
By the end of this talk you should have a greater high-level understanding of modern architectural concepts and how the pieces fit together, as well as more knowledge on where and when these approaches are appropriate to use.
Presented at a variety of user groups and aimed at the introductory level, but touching on more advanced concepts.
AI for Everyone?
Artificial intelligence has been promising to revolutionize the world since before the personal computer even existed. And yet, the past few years we've seen a number of "sea change" events in terms of artificial intelligence and machine learning. From self-driving cars to GPT-3 transformers, DALL-E, and GitHub Copilot, AI is starting to cause real and sudden changes in the world around us.
But is this AI future we find ourselves in really for everyone? Is it possible for us to innovate new technologies and not leave entire groups of people in the dust? Bias and fairness around racial, gender, and age groups are a very real concern in machine learning systems. Additionally, we're starting to see the beginnings of AI negatively impacting established industries. Beyond that, there are some very real concerns about privacy and data ownership.
And what of the learning curve for getting into AI? Can artificial intelligence and machine learning truly be for everyone and truly serve everyone?
This is a non-technical talk focusing on ethical issues in AI and recent AI trends. We'll talk about Fairlearn, Responsible AI, and others for overcoming some of these biases, as well as the responsibility of data scientists and ML engineers. We'll also touch on some of the more accessible ways of getting started with AI for those interested, including Azure Cognitive Services and Azure Machine Learning.
🎵 Do you want to build a chatbot?🎵
Conversational AI has come a long way in the last century, from the simple Eliza of the 60's to our modern conversational assistants in our homes and smartphones.
Let's dissect how these systems work, the technologies you can use to create them, and how to effectively design, develop, test, and deliver chatbots in an agile manner that help real users accomplish real tasks without being real annoying.
We'll explore chatbots in general, survey some technologies involved, and then dive deeper into a specific implementation on Azure using Azure Bot service, Bot Framework Composer, and Bot Framework Emulator. The Microsoft Bot SDK will also be mentioned.
Ok, bye!
Naughty or Nice? Teaching an AI to lie at games
When the pandemic lockdown created some serious obstacles to finding people to play my favorite social deduction card game with, I did what any sensible software engineer would do: I created my own opponents.
In this session we'll explore the various factors that go into designing an artificial intelligence opponent for a game of any type, and explore the potential strategies and concerns in a hidden roles / hidden information social deduction game where bluffing and lying are part of the core game mechanics.
We'll explore building a probabilistic model of the game board in Bezier Games' One Night Ultimate Werewolf, the idea of deduction and deception in an uncertain world, and training techniques to help artificial intelligence find optimal playing strategies and see if AI can innovate new ways of surprising and deceiving their opponents - including humans.
Beginning Machine Learning in C# with ML.NET AutoML
Did you know you can train and use machine learning inside of your .NET applications without needing detailed knowledge of machine learning algorithms? In this talk we'll explore the ML.NET AutoML API capabilities and how accessible machine learning in C# really is as we write C# code to solve machine learning problems.
We'll focus heavily on the automatic algorithm selection features of AutoML in ML.NET and talk about the various tasks it can achieve before drilling deeper to apply AutoML to solve a multi-class classification problem. We'll train a machine learning model and have it predict video game ESRB ratings for a few hypothetical games provided by the audience, then host this new model in a .NET 6 minimal Web API project in ASP .NET Core.
We'll also explore evaluating model performance, ideal training times, and how trained models can be saved and loaded for use in production applications, as well as some places you can go to learn more about ML.NET and machine learning in general.
NOTE: This is different than the AutoML CLI or Model Builder. Our core focus is on C# code for Machine Learning using the AutoML as baby steps into Machine Learning
This talk is a mixture of slides and code.
This talk can be performed in person without an internet connection
Stand Back; I'm going to try Data Science!
Curious about data science and its relation to software engineering? Want to know how to dabble in artificial intelligence or machine learning side projects before taking the plunge? Come check out this session.
In this session I'll highlight my own journey in layering data science skills on top of a software engineering background. I'll teach you the terms, roles, languages, libraries, and technologies you'll encounter and help you understand what aspects of math and programming are helpful in setting down this journey.
You'll discover easy ways to get started with Python, R, and get connected to the data science community. I'll show you how to discover public datasets and visualizations to help inspire your own journey. By the time the session is finished, you'll know how to find out if data science is a good fit for you and how to take it to the next level if you discover you like it.
Is Die Hard a Christmas Movie? Let's ask Azure!
When it comes to popular Christmas movies there's a recurring debate as to whether or not that list of movies should include the 1988 film Die Hard. Thankfully, machine learning has been applied to this problem and we have an answer.
We'll start off by using Python, Pandas, and Jupyter Notebooks to analyze and clean movie data and then prepare it for model training while avoiding factors that might introduce bias.
After that we'll explore using the beginner-friendly features of Azure Machine Learning Studio's Automated ML to train and evaluate a classification model.
Finally, we'll deploy the trained model to Azure as a web service and see what it has to say about Die Hard.
By the time we're done you'll know the truth about Die Hard and have a deeper understanding of machine learning experiments and some common beginner-friendly tools involved in machine learning.
Automating my Dog with Azure Cognitive Services
Like many terrier owners, I have a problem. My dog is overworked from the constant need to monitor multiple streets to bark at squirrels or passers by. I'd like to free up more of his time and energy for snuggling and play but the outdoors must still be monitored. Thankfully, it turns out that much of what my dog does, Azure Cognitive Services can help with.
In this talk we'll use this absurd premise to explore progressively enhancing applications through the Azure Cognitive Services speech, vision, and text APIs. We'll look at object detection, facial APIs, text to speech, speech to text, and language understanding.
By the end of this session you'll have more of an understanding of what Azure Cognitive Services can do and the basics of how to interact with them from code so that you, like my dog, can take advantage of pre-trained machine learning models to enhance devote more of your energy to other areas.
This will require an internet connection
Empowering your Data Science Experiments with Azure Machine Learning
Azure Machine Learning Studio has something for all experience levels of data scientist. In this talk we'll explore what Azure Machine Learning Studio is and how it can help novice, intermediate, and advanced data scientists empower their data science experiments.
We'll start by exploring Automated ML and how it helps data scientists focus on the task they're trying to accomplish while Azure discovers the optimal algorithms and hyperparameters for their experiments - without requiring any code on their part.
Next, we'll explore the Machine Learning Studio designer and how it supports more advanced no-code or low-code approaches to build repeatable machine learning pipelines.
After that we'll discuss the Azure ML Python SDK and how it allows advanced users to customize their experiments, use their own compute resources, and fine-tune and automate the tasks they're trying to accomplish.
By the end of this talk you'll see how Azure Machine Learning Studio reduces barriers to entry and propels experiments further by helping novice, intermediate, and advanced data scientists train, evaluate, manage, and deploy their machine learning models and related datasets.
AI for Fun: Understanding game AI
TBD upon request. Covers behavior trees, min / max trees, goal oriented action planning, pathfinding, and finite state machines.
This is not a talk I've submitted anywhere, but one I'm interested in giving. I may expand the abstract and submit it somewhere, but if you're looking at my profile and this talk interests you and you'd like me to present it, let me know and I can expand the abstract and send it your way.
Interactive Notebooks for the Polyglot with Python, .NET, SQL, JS, and more!
Have you ever wanted to run a small experiment or create an example to share with your team but didn't want to go through the boilerplate of setting up a new project? Did you ever wish you could embed interactive code examples alongside your documentation? Project Jupyter and Polyglot Notebooks might be up your alley.
In this talk you'll see how Jupyter Notebooks, Jupyter Labs, and Polyglot Notebooks (formerly .NET Interactive) offer interactive ways of running code in a minimal environment alongside rich markup documentation. We'll cover what notebooks are, what they're used for, setting up your notebook in Jupyter and Polyglot Notebooks, and how the various code blocks can be used.
Along the way we'll feature examples using Python, JavaScript, C#, F#, SQL, HTML, Mermaid diagrams, and more.
Finally, we'll close with a discussion of sharing your notebooks with others and how notebooks can serve as rich interactive documentation, proofs of concept, and might even be considered an entire class of application in their own right.
The first bit of this will cover Jupyter Notebooks and Jupyter Labs. Anaconda individual edition will be discussed as a good way of getting started and cloud-based providers for notebooks will also be discussed.
The second half of this talk will feature Polyglot Notebooks (see https://devblogs.microsoft.com/dotnet/dotnet-interactive-notebooks-is-now-polyglot-notebooks/ ) and show how notebooks can be used for more than just Python development or data science experiments.
KCDC 2023 Upcoming
Stir Trek 2023 Upcoming
Central Ohio .NET Developer Group - February 2023
Our code has baggage. Code rapidly goes from being pristine and green field to being eroded over time as requirements and features change, standards shift, and technologies change.
Beyond that, the very languages we use evolve over time. Dotnet and Java are over 20 years old and still heavily used in the industry. Each year we get reams of new features that can be added to existing codebases. The languages we use are not as simple or focused as they were two decades ago and it's becoming mathematically impossible to teach new learners all the language features they're likely to encounter in the "real world".
So how do we help guide new team members through our codebases? How do we use the latest and greatest features in our codebases while not burdening new developers with a massive learning curve? How do we help seasoned developers learn our team's preferences and standards?
In this talk we'll explore various techniques for determining coding standards for your organization, evaluating if the latest language features are really worth incorporating into your code, communicating the context of code, and guiding new team members of various experience levels through your codebase and its features. And we'll explore ways of doing all of this without sparking a technical civil war in the process!
Ohio Linux Fest
AI for Everyone?
GPSec Tech Summit
Attracting, Retaining, and Developing Talent Panel
Indy.Code()
Automating Machine Learning with Python and Azure
Is Die Hard a Christmas Movie? Let's ask Azure!
Cleveland Azure
Empowering your Data Science Experiments with Azure ML
Chat with Hackers Podcast
Discussing getting into Data Science and Software Development along with Azure Machine Learning
Central Ohio .NET Developers Group (CONDG)
Automating my Dog with Azure Cognitive Services
PyOhio 2022
Introducing Automated Machine Learning with Python and Azure
Franklin University 2nd Annual Doctoral Student Association Conference
Empowering Machine Learning with Azure Machine Learning Studio
MemPy
Automating Machine Learning with Python and Azure
Central Ohio .NET Developer Group
Using ML.NET to Predict Video Game ESRB Ratings with C#
Cincinnati Machine Learning Meetup
Using ML.NET to Predict Video Game ESRB Ratings with C#
Technology and Friends Podcast
Spoke on how humans learn and how that relates to programming and some aspects of machine learning
Global App Dev User Group
Stand Back; I'm going to try Data Science!
Central Ohio Azure
Is Die Hard a Christmas Movie? Let's ask Azure!
Cincinnati Software Craftsmanship
Is Die Hard a Christmas Movie? Let's ask Azure!
Columbus App Dev User Group
Introduction to Application Architecture and Scalability
GLUGNet
Expanding your .NET Testing Toolbox
Cincinnati Software Craftsmanship
Intro to Application Architecture and Scalability
LOPSA
Intro to Application Architecture and Scalability
GLUGNet
Intro to Application Architecture and Scalability
JavaScript and Friends
Intro to Application Architecture and Scalability
CinJuG
Intro to Application Architecture and Scalability
Tea & Tech with Michael
Casual talk about software development, bootcamps, getting into coding, side projects, etc.
Women Who Code Philly
Intro to Application Architecture and Scalability
Momentum Conf Interview
Discussing Functional Programming in C#
DotNet Open Source Days
Stand Back; I'm Going to Try Scientist!
Central Ohio .NET Developer Group
Expanding Your .NET Testing Toolbox
Columbus App Dev User Group
Accelerating Angular Application Development
Central Ohio Windows Phone User Group (COWPUG)
Prototyping and Building Windows Phone Applications

Matt Eland
Instructor at Tech Elevator, Microsoft MVP in AI
Columbus, Ohio, United States