I'm available to talk at conferences and meetups. These are my past talks.

Domain Specific Languages for Fun and Profit

Languages are everywhere I look. C# contains other languages hidden in plain sight as string interpolation, Razor syntax, and LINQ. The JavaScript world has more with a multitude of template languages based on HTML, including Angular, React, and Elm view templates.

Domain Specific Languages (DSL) are built to concisely and clearly define the solution for a very specific problem, such as a template engine. Template engines have their own Domain Specific Languages leveraging declarative programming which allows us to define the desired result without dictating how to get there.

In this session, I will walk you through defining the basic syntax of a Domain Specific Language to be used by a simple text template engine, then through parsing that Domain Specific Language into an Abstract Syntax Tree (AST), and then transforming that tree into a result.

Using this new knowledge, you will be able to create your own Domain Specific Language or to create custom tooling around an existing Domain Specific Language.

Codestock 2018

Nashville .NET Users Group 2018

Knoxville .NET Users Group 2018

Knoxville Functional Users Group 2018

An Introduction to Server Configuration and Provisioning with Ansible

Some applications and environments just don't fit well into a web app or a Docker container, and not everyone is in the cloud. Most everyone has some on-premise servers and a multitude of virtual machines. Managing all of those servers is difficult and usually involves extensive use of un-documented tribal knowledge to set these servers up or to duplicate these servers for another environment. Ansible automates away these tasks of setting up a server.

Ansible simplifies server provisioning, preparing the server for use, by allowing tasks to be scripted and source controlled. Server configuration is also kept in source control and encrypted. These Ansible scripts, or "playbooks", not only automate server setup, they now become the documentation of that server.

In this session, I will give an introduction of Ansible from the ground up and each topic will show its effects on a server.

No prior knowledge about Ansible is assumed. You will walk away with an understanding of how to do basic tasks with Ansible and when to use Ansible.

Knoxville DevOps Users Group 2018

Codestock 2018