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:
- Cloud Enabled Applications: Migrating old applications to cloud platforms
- Continuous Integration and Continuous Delivery (CI/CD)
- Lean concepts and Lean IT
- Logging and Metrics to Streamline Operations
- Serverless application development and deployment
- Software Defined Infrastructure
The following topics are tailored for managers and non-technical employees:
- Continuous security management
- Web and social media planning for small businesses and non-profits
I can also talk about the following topics, despite minimal commercial interest:
- Bread baking basics
- Barbecue and smoked meats
- Music production with open source software
- Software synthesis basics
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:
- Transpose a song from one key to another
- Arpeggiate chords from root notes after first learning what arpeggiate means
- Translate server status messages received via message queue to ambient music
- Output MIDI to a music controller with RGB LEDs for use as a status monitor
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:
- Data injection via cloud metadata services
- One shot configuration for immutable servers
- Pairing cloud-init with configuration management tools like Puppet, Chef, or Ansible
- Cloud-init and blue/green deployment strategies
- Local development of cloud-init configurations
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:
- 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.
- 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.
- 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:
- Jenkins installation and configuration
- Cloud server configuration
- Utility jobs
- Build pipelines
- CI/CD concepts
- Lean practices applied to IT
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:
- Object Storage
- Nova Compute Resources (including cloud-init)
- Heat orchestration
- Containerized services
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.
- A whirlwind tour of containers, the 50,000 foot overview
- Exercise: install Docker and docker-compose
- Shipping and Handling from 1956 through today
- Break bulk cargo loading: dangers and expenses
- Early container ship experiments
- Labor disputes
- Standardization the revolution of commerce via containerized shipping
- Technical introduction of containers
- Zones, LXC, LXD, Docker, and rkt
- Exercise: pull and run a container with Docker
- Challenges of container based development and deployment
- Exercise: run a suite of services with docker-compose
- Enabling PaaS with Containers
- What is PaaS?
- Why Paas?
- Examples: OpenShift, Amazon ECS, Cloud Foundry, Deis
- Exercise (Stretch Goal!): deploy an application on a PaaS using containers
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