Our Workshops
Modern Cloud Operations (fullday)

In this one day workshop, we’ll look at the fundamental problem of running production software in the cloud, and then a range of solutions for running systems in the AWS cloud.

We’ll cover:

– the basics of running software in the AWS public cloud and the differences between on-premise and cloud software

– the differences between static (stateful) and dynamic (stateless) infrastructure and different approaches to each

– packaging software for Linux

– building layered machine images which can be rapidly scaled in response to load using Packer

– configuring AWS resources using Terraform

– secure practices for AWS administration using Roles and IAM policies

– running self-bootstrapping, self-healing Consul clusters

– service discovery and system health checking

WordPress, From n00b to dangerous (fullday)

This Training course will cover WordPress from the very beginning. I will begin with the very basics of how to use WordPress by setting up a wordpress.com site. We will then move on to how you can self host your own WordPress installation. I will introduce you to child themes and basic plugin development. This is a hands on course and will require you to have some knowledge of html and css.

Up & Running with Graph Databases (fullday)

A summary of what attendees will learn:

  • An understanding of graph databases
  • Introduction to data modeling with Graph databases
  • Setting up a graph database
  • Connecting to the graph and CRUD operations
  • Building a graph enabled application
The "Hands On MongoDB In A Day Workshop" (fullday)

This workshop will arm you essential knowledge and practice to set you on the right track. We will be learning and applying key MongoDB concepts and scenarios such as:

- Document manipulation: creating, querying, and modifying.
- Indexing and performance tuning
- Creating replica sets, and understanding automatic failover scenarios
- Creating sharded cluster and scaling out MongoDB for high performance
- Key document and schema design guidelines for successful projects

The workshop will be include presentations, discussions, and extensive hands-on labs. Attendees should be comfortable with general database and/or development concepts. Attendees can expect to walk away with a solid understanding of MongoDB clusters, how to design and create them, performance and tuning.

Squashing JavaScript Bugs (fullday)

The web is a dirty place. Traces of stacks litter the floor; memory leaking from cracks in the ceiling. Someone lost their context in the corner. Load times are slowly crawling along the window. Join me for a live debugging session as we find and squash different kinds of browser bugs. You leave armed to stomp out your own bugs and cleanup your JavaScript app.

Outline

  • Why JavaScript Has so Many Bugs
  • How to Fix Bugs
  • Fixing Bugs Together
  • Designing for Debuggability

Computer Setup

You need to bring your own laptop with the following software installed to follow this workshop:

  • A GitHub account and a command-line Git client
  • A Text Editor (Atom or VSCode suggested)
  • NodeJS (4.6 or greater)
  • Chrome (latest stable release)
  • Charles Proxy (OSX) or Fiddler Proxy (Windows)
Awesome C#: Asynchronous Programming (fullday)

Asynchronous programming is a critical skill to take full advantage of today's multi-core systems. But async programming brings its own set of issues. In this workshop, we'll work through some of those issues and get comfortable using parts of the .NET Task Parallel Library (TPL).

We'll start by consuming asynchronous methods using the Task Asynchronous Pattern (TAP), including how to handle exceptions and cancellation. With this in hand, we'll look at creating our own asynchronous methods and methods that use asynchronous libraries. Along the way, we'll see how to avoid deadlocks, how to isolate our code for easier async, and why it's important to stay away from "asyc void".

Throughout the day, we'll go hands-on with lab exercises to put these skills into practice.

Objectives

  • Consume asynchronous methods with Task and await
  • Create asynchronous methods and libraries
  • Handle exceptions and cancellation
  • Prepare code for asynchronous operations

Pre-Requisites

Basic understanding of C# and object-oriented programming (classes, inheritance, methods, and properties). No prior experience with asynchronous programming is necessary; we'll take care of that as we go.

Docker Hands-on (Workshop) (fullday)

Docker is carefully tucked between virtualization, continuous deployment, and pure awesome. Bring your Windows 10 Anniversary Update or Mac OS X El Capitan 10.11 laptop, and we'll walk through together getting Docker for Windows or Docker for Mac installed, fired up, and get you building development and production containers. We'll dig deep into:

  • installing prerequisites and Docker for Mac or Docker for Windows
  • Dockerfile
  • Docker volumes
  • Docker Compose
  • Docker Swarm
  • Best practices for building at cloud scale
  • Tips & Tricks for leveraging Docker
  • Administering Docker hosts

We'll look at the commands and ecosystem around building infrastructure as code, deploying a swarm, and sharing images on Docker Hub. Come see why devs and ops love Docker.

Learn Clojure! (fullday)

The goal of the course is to achieve a thorough introduction to the basics of Clojure and a briefer tour through some additional topics. The introduction will cover the syntax and evaluation model, collections, sequence, functions, and flow control. The additional topics (covered less thoroughly) will be namespaces, records, protocols, multimethods, specs, and macros).

This course is intended for developers new to Clojure and/or functional programming, but with some programming experience in another language. Sessions include a mix of lecture and labs designed to introduce topics then reinforce them via active work.

Swiftly Create a Mobile App (halfday)

In this workshop, you will get a crash-course in Swift by creating a Boggle-like iOS app. You'll become familiar with using Apple's Xcode as well as learn to structure a mobile app. Not only will you leave with a working app that you can play in between sessions, but you'll also have dozens of ideas on how to expand the app and grow your skills. Attendees will need a Mac with Xcode installed to be able to work in this interactive workshop.

New and old programmers alike will awaken their creative side and be inspired to create the next, new popular app!

Hands on Lab: Develop an Entity Framework Core and ASP.NET Core MVC App in a Day (halfday)

Interested in .NET Core and Entity Framework Core, but not sure where to start? Start here with an all day Hands on Lab where you will build a complete solution using the latest development technology from Microsoft. Using Visual Studio 2017 (RC), you will build a data access library using Entity Framework Core, complete with repos and migrations. Then you will package the data access library into a custom NuGet package for distribution. Next, you will build a Core MVC site, leveraging all of the latest that Core MVC has to offer, including Tag Helpers, View Components, Dependency Injection, and more!

You will learn:

The new project structure for .NET Core Apps

Creating a data access layer with Entity Framework Core

Initializing data for testing with EF Core

Creating NuGet packages from .NET Core projects

Building a website with ASP.NET Core MVC

Configuring the HTTP pipeline and routing

Using and creating Tag Helpers

Creating and using View Components Leveraging Dependency Injection

Attendee Requirements:

You must provide your own laptop computer for this hands-on lab.

You will need to have Visual Studio 2017 Installed (any edition). Visual Studio 2017 can be downloaded from https://www.visualstudio.com/downloads/. When installing, make sure to select the ASP.NET and web development and .NET Core cross-platform development workloads.

You should download the x64 versions of the SDK and Runtimes (1.0.4 and 1.1.1) in case you have issues with versioning. They can be downloaded from https://www.microsoft.com/net/download/core.

You also will need to have SQL Server Express 2016 Local DB and SQL Server Management Studio (SSMS) installed. LocalDB is installed with VS2017, but SSMS can be installed from the SQL Server 2016 Express installer, located here: https://msdn.microsoft.com/en-us/library/hh510202.aspx.

Finally, you need to download the starter files and Lab documents for this HOL, located in https://github.com/skimedic/dotnetcore_hol.

Enterprise mobility with MvvmCross & Xamarin (halfday)

MvvmCross is a cross-platform mvvm framework that enables developers to create cross platform apps for Xamarin.

Find it on GitHub: https://github.com/MvvmCross/MvvmCross

DevOps: Packaging Software for Windows - Chocolatey Workshop (halfday)

When it comes to DevOps, you can't spell it properly without good software management (aka package management). Behind every great infrastructure management solution out there is a great package manager. Windows has long been left out of the conversation for DevOps due to a lacking solution for package management. Worse, with Windows, over 80% of the management and configuration deals with software installation management.

However over the past 6 years, Chocolatey has become the de facto software management solution for Windows. Hundreds of organizations have turned to Chocolatey due to it's extreme flexibility, common sense approaches, and building on well-known technologies like PowerShell. Even certain groups at Microsoft use Chocolatey!

When shifting from traditional methods of software deployment to packaging, there is a bit of a learning curve. Learn the best approaches to package management. In this workshop you will get hands on experience with:

  • Creating packages
  • Creating packages with Package Builder
  • Creating packages with Package Internalizer
  • Setting up Chocolatey package repository
  • Reporting
  • Extension Packages
  • Template Packages
  • Handling Package parameters

Rob is the founder of Chocolatey Software and the creator of Chocolatey. He's been helping organizations find the best approaches to software management for over 10 years and created Chocolatey just over 6 years ago as a way to bring sanity and simplicity to traditional complex approaches to Windows.

Playing with Fire : Build a real-time application with Firebase (halfday)

Firebase is a Google Platform as a Service (PaaS) which makes writing and deploying web and mobile applications faster and easier than ever. Now a front-end web developer can create fully-featured applications without needing to manage servers or infrastructure.

Come learn how easy it can be to take your app idea from concept to production, using the fully-featured Firebase platform.

In this workshop you will build your own Twitter-like social messaging application, start to finish, as you learn how to:

  • Use the Firebase real-time object database
  • Implement Firebase security rules
  • Organize your data to take advantage of the Firebase strengths
  • Add authentication using an OAuth provider
  • Use the Firebase CLI to deploy a web application
Rapid REST API Development with Node and Sails (halfday)

Creating a RESTful API should be the easiest part of your development. You should not have to be a rocket scientist to successfully create a RESTful API. With Sails, you can create a full featured RESTful API in just a few minutes without writing any code. You get create, destroy, update, find, paginate, sort, and filtering out of the box. If you need to add your business logic to any of the methods or create your own methods, you can do that by writing simple JavaScript functions.

When you are ready to implement your security layer, Sails has you covered. Sails provides basic security and role-based access in the form of policies that can be applied any REST action. Policies are interchangeable with Express/Connect middleware which means you can plugin in popular NPM modules such as Passport. You can also easily implement your own email/password, social login or Windows authentication with a bit of JavaScript.

For data storage, Sails bundles the power ORM, Waterline, which provides a simple data access layer that just works, no matter what database you are using. Out of the box MongoDB, MySQL, PostgreSQL, and Redis are support. However, there are more than 30 data storage providers adapter that the community has created such as Microsoft SQL Server, Couchbase, Salesforce, and Firebase. You can easily switch between any data storage provider or mix and match data storage providers on a model by model basis.

This workshop will be code heavy as we walk through getting started with Sails and demonstrate how to implement the features of Sails through the creation of an API. As well, I will share the tips and tricks that I have learned using Sails at a Fortune 100 company. You will walk away understanding how and why you should use Sails on your next project.

All code covered in the workshop with be immediately available for download.

Cryptoparty Workshop (halfday)

Some people like to say that seeking encryption, security, and privacy only shows that you have something to hide. This is a snide remark, uttered only by folks who historically partake in great privilege. Those who have never once found themselves considered the “other”. To the contrary, we are all considerably more secure in our affairs, not just from the threat of oppressive, authoritarian governments, but from criminals, oppressive employers and partners, with proper application of strong encryption and privacy tools.

CryptoParty is a global, decentralized movement to inform folks about general security and privacy practices. These sorts of practices are generally applicable and valuable to folks looking to protect themselves from invasive mass surveillance and hackers. Beyond general privacy, and with current events what they are, there are a lot of folks looking to organize, protest, and participate in acts of resistance. Here, we'll learn these encryption and privacy basics along with how and when to apply them.

Come with your devices ready to install some tools and practice online privacy.

Kicking Sass: How To Write CSS (and JS) in a PostCSS World (halfday)

Attendees will leave this session with a thorough understanding of what CSS postprocessors and JavaScript transpilers are, their advantages and limitations compared to more commonplace preprocessors, and how they can be leveraged to get back to writing the type of elegant, standards-based code that made them fall in love with front-end development in the first place. Attendees will be given a sample project that leverages Sass and jQuery, which we'll rebuild to use PostCSS and Babel during the workshop.

Build Cross-Platform Desktop Apps with Electron! (halfday)

Many developers are turning to Electron.js to build amazing desktop applictions that run on Windows, Mac, and Linux using familiar Web technologies. In this hands-on workshop we will learn the fundamentals of building desktop applications with Electron.js. Our goal is to walk away with a solid framework for building and deploying your own applications!

There's More To Kanban Than Trello Boards (halfday)

If you've been curious about Kanban and how it might be useful to your business in web development, this course is for you! Paul will walk you through how he's made huge strides in his business using this incredibly versatile and intuitive tool - once you get the hang of it.

Do you use a Kanban board for your team’s work? Maybe you are the team lead and have just heard about Kanban. However, you haven’t taken the time to learn about how to use it or why it is important. Perhaps you want to be more agile but don’t know how to get started with Kanban. This workshop will not only help you understand what Kanban is but also how to get started. Paul is very excited about many things with regards to Kanban but one of his favorites is teaching you about why you should be measuring waste in your team. So come join him as he uses a great mixture of slides and classroom activities to teach you about the essentials of Kanban in no time.

Understanding Flow Through Game Play (halfday)

We will learn what flow is by running a simulation called FeatureBan that shows the benefits of Lean thinking applied to the movement of customer value.

Learning Outcomes:

  • Why Flow matters
  • Understand the relationship of WIP and flow
  • Understand the relationship of system utilization and flow
  • Create and use actionable metrics to foster improvements
Beyond Jenkins - Enter Drone (halfday)

Drone is an open source CD tool. In this session, we will briefly go over Jenkins challenges (targetted slaves because of versions, library bleed / build bleed, cloud / CD steps, etc). From there we will look at how we can use drone and codify our CD pipeline in a clean, easy manner that makes cloud and containerization simple and expected.

Web Security Essentials (halfday)

Join me for a half-day tutorial exposing you to a broad range of Web Security vulnerabilities and their solutions. Come here knowing nothing and leave with a toolkit of knowledge to ensure that you are thinking correctly about security before you write your first line of code. This tutorial will cover the basics such as XSS, CSRF, SQL Injection, and clickjacking. But will also go into depth on issues of session management, password security, two-factor authentication and much much more!

All of my code examples will happen to be in PHP, but the solutions and concepts apply to any back-end programming language and are easy to translate!

ASP.NET with NoSQL Database Workshop (halfday)

The workshop will show developers how to build a full-stack CRUD application with Couchbase Server. Angular will be used for the frontend, and application code will be written using ASP.NET WebAPI. Couchbase will be used as the backend database.

Attendees will learn:

  • Different options to install Couchbase Server
  • Basic configuration of Couchbase Server
  • Data modeling for NoSQL applications
  • Basic N1QL syntax to manipulate data
  • How to use the Couchbase SDK to perform CRUD operations
  • Couchbase SDK design patterns and anti-patterns
  • Effective use of developer tools such as Query Workbench, Couchbase CLI, and REST API
  • How to create a simple Couchbase cluster using Docker or cloud platforms such as Amazon and Azure

This workshop is intended for a broad range of developers interested in using Couchbase Server.

Prereq: In addition to good wifi access (hopefully not necessary, but just in case), basic development prerequisites include: Visual Studio 2015+ / Visual Studio Code, admin privileges to install software, node/npm/angular2 installed, 8gb RAM, plenty of hard drive space. (Optional: an Azure account already setup, Docker).