I offer technical training on a variety of topics and running between 30 minute talks and multi-day classes with hands on lab exercises. Most clients are interested in my work on the following topics:

The following topics are tailored for managers and non-technical employees:

I can also talk about the following topics, despite minimal commercial interest:

Schedule Public Events (come say hello!)

Convert to Code: Intro to Code with Java and Processing

July 29th at Millersville University in Lancaster, PA

5 hour workshop

I’m partnering with Convert to Code and leading a workshop for kids aged 12-18 at Millersville University. We’re going to go over the very basic of code with some interactive examples built in Java using the Processing framework.

If you know of a student in the Lancaster area that’d like to attend, apply via this sign up form.

Make Audio Visual Magic with MIDI

September 27-29 at Prairie.Code() in Des Moines

~1 hour talk

MIDI stands for Musical Instrument Digital Interface, and it’s been a foundational tech for electronic music production and reproduction since its introduction in the early 80’s. Tech advances have made large racks of outboard gear optional: we can implement everything in software now, and that means it’s easier than ever to generate, parse, or manipulate MIDI data with code.

We’ll wire up the following practical and impractical applications:

Participants should have some familiarity with a high level programming language and an interest in playful software development. No music performance background is required.

Serverless Compute Survey

September 27-29 at Prairie.Code() in Des Moines

~1 hour talk

Serverless computing isn’t serverless at all, but the servers are no longer ours to customize. We just focus on the code, and the platform handles on-demand deployment, monitoring, and scaling.

Audience members will gain a theoretical overview of serverless computing and we will discuss software design and operation tradeoffs that come with the territory. Because serverless computing constrains our code to runtime environments defined by providers, we will see more differences between providers than if we were deploying our code on vanilla virtual machines. We’ll discuss fears of vendor lock-in that come along with serverless deployments, and we’ll discuss scenarios where we should move forward with serverless in spite of those fears.

Practical examples will include code samples and deployment configurations running within AWS Lambda and Azure Functions, and source materials will be made available to participants.

Work in Progress

The following talks are getting built now. If you’re interested in seeing any of these talks at a conference near you let me know!

Build and Rebuild Servers in Seconds with cloud-init

~1 hour talk

Launching new servers in the cloud is fast and easy today, but by default those servers are vanilla. Cloud-init and related tools let us configure new servers on boot with no manual intervention.

Plan to attend this session if you’re running machines in the cloud but still configuring them manually in any way. This talk will save you time, improve your development and deployment workflows, and increase your odds of success during disaster recovery operations.

We’ll cover the following including demonstrations and downloadable resources:

The live demonstrations will focus on Linux servers running in AWS and Azure, but participants will receive resources for Windows servers and deployment options for private cloud and non-cloud environments.

Continuous Delivery with Containers: Strategies and Implementation

1 Day Workshop

Learn strategies to slash the time between a feature or fix being complete and that feature or fix running in production. Get hands on with tooling and processes that can help eliminate the phrase “worked on my machine” or “worked in dev”. Experience rolling deployments without building the process from scratch.

We’ll also cover continuous delivery stumbling blocks including database schema migration and health/status monitoring.

The class will briefly cover microservices as a concept and the facilitators will share our guidance on when microservices make total sense as well as when they are a terrible waste of effort.

We use OpenShift as our container deployment platform during the workshop for 3 reasons:

  1. It is an amazing combination of open source and technically sound, so we have a free to use platform that is also free to inspect and running very large workloads in the wild.
  2. It scales up and down: it can grow horizontally to support large production workloads, and the Minishift configuration is built to run locally on developer laptops.
  3. It looks and feels the same to developers regardless of the underlying infrastructure: application deployment workflows will behave the same whether you deploy OpenShift on private VMWare gear or public cloud servers.

Although we will use OpenShift as the foundation for our work, we will also provide blueprints for implementing the concepts discussed in the workshop using AWS and Azure native tools.

Participants should be in the business of building or deploying software. Participants should bring a laptop. Participants can optionally containerize and deploy their own codebases during the lab portion of the workshop, but sample codebases will be available as well.

Past Public Events

Make Music with JACK and Friends

November 12, 2016 at http://cposc.org/ in Lancaster, PA

Jenkins: Technical Swiss Army Knife

October 26th, 2016 at Prairie.Code() in Des Moines, Iowa

This was a one day workshop covering Jenkins as the cornerstone of a healthy automation system. Topics covered included:

Cloud Enabled Applications

August 22nd - August 24th, 2016, three half day workshop at a private event in Austin, TX

What’s the difference between cloud enabled apps and legacy apps? We’ll discuss this across all facets of application development and deployment, and attendees will get hands on experience with the following technologies:

Some software development will be required, but that shouldn’t stop sysadmins from joining the fray.

Deploying Docker Clusters

August 23rd, 2016, half day workshop at a private event in Austin, TX

PaaS is to applications what IaaS is to infrastructure. OpenStack is a perfect platform for Platform as a Service. It’s too early to make an enterprise-wide call on PaaS, but it’s never too early to get comfortable with the major players and start to think through our application delivery pipeline. Join us in this workshop to talk PaaS and containerized applications. During the workshop we’ll get hands on with two of the leading solutions, Cloud Foundry and OpenShift. Participants can use their new tools in development networks on our OpenStack IaaS platform. This workshop is built primarily for sys admins, although developers with systems experience will not be out of place.

System Images are Nothing Like Sourdough Starters

November 10th, 2015 at Midwest.io in Kansas City, MO

Dashboard Design and Implementation

November 3rd, 2015, half day workshop at a private event in Kansas City, MO

Containerized Development

November 4th, 2015, half day workshop at a private event in Kansas City, MO

This session will explore ways that Docker Compose can make multisystem development for individual developers quick and easy, and then we’ll see how that work can translate to quick deployments on top of platforms like OpenShift and Amazon EC2 Container Service.

OpenStack Upstream Training

Two day workshop, November 1st and 2nd, 2015 at the OpenStack Summit in Tokyo, Japan

OpenStack Upstream Training

Two day workshop, May 16th and 17th, 2015 at the OpenStack Summit in Vancouver, BC