Workshops

Workshop day (Thursday, May 31st) is your opportunity to engage in hands-on labs and deep-dive sessions with some of our most experienced speakers. The day is divided up into morning and afternoon sessions, each lasting approximately four hours including breaks. Attendees can choose from the list of workshops below.

Note: For the best schedule experience we recommend downloading our mobile app. See mobile.musiccitytech.com for details.

Thursday Morning Workshops


Thursday Afternoon Workshops


Workshop Details

  • Cross-Platform Desktop Apps with Electron Workshop

    Many companies are turning to Electron.js to build amazing desktop applications 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!

    Requirements:

    * Laptop running Mac OS X 10.8+, Windows 7+, or Ubuntu 12+
    * Node.js v8+
    * Visual Studio Code

    A 100
    Thu 8:00 AM – 12:00 pm
    • Introductory and overview
  • Building Your First Voice Experience with Alexa

    This workshop will dive right in to getting you set up and started building a voice-based experience with Alexa. You will leave this session with a working Alexa skill that you can customize and publish as your own.

    We will cover topics around voice design best practices, voice interactions, persistence, and making calls to external APIs.

    This session will be taught using node.js, but you don’t have to have prior experience as a node developer.

    PREREQUISITES
    In order to get off to a fast start, please create accounts on both of these websites before the session:

    Amazon Developer Portal – http://developer.amazon.com

    Amazon Web Services – http://aws.amazon.com

    S 325/327
    Thu 8:00 AM – 12:00 pm
    • Introductory and overview
    • alexa
    • voice
    • patterns
  • Learning Feedback with LEGO: The Building Blocks of Giving and Receiving Feedback

    You dread your annual review time. You cringe at retrospectives. You wince in the face of a 360 Review. You don’t like feedback – and you’re not alone. Receiving feedback is hard, and when we ask for help with it we just get more feedback. On top of that, your brain doesn’t like feedback, and it has some sneaky tricks it uses to convince you to argue about, pick apart, or even outright ignore that feedback. But there’s hope – you can fight your brain and win!

    This workshop will use LEGO to help teach you the following: the types of feedback and when to use them; how to structure a feedback conversation for maximum benefit; what are the questions you should be asking at each step in the conversation; what a feedback trigger is and how to recognize, defuse, and redirect those triggers; and more! We’ll apply all this to both giving and receiving feedback. By the end of the workshop you should be able to face even the most brutal peer review with a straight face (though maybe not a smile).

    A 202
    Thu 8:00 AM – 12:00 pm
    • Introductory and overview
    • communication
    • psychology
    • soft skills
  • Up and Running with Angular

    If you have ever wanted to code an application with Angular this is your chance. Join us for a fun filled day of learning Angular in this hands-on workshop. You will go from 0 to 60 with your Angular knowledge and be able to create our own Angular applications by the end of this workshop. We will start with a new project and continue to build up the project until we have a full application at the end.

    Prework located at http://digitaldrummerj.me/speaking/#uprunangular

    A 201
    Thu 8:00 AM – 12:00 pm
    • Intermediate
    • angular
    • javascript
    • web
  • Reenergizing Your Retrospectives!

    Have your retrospectives turned into a repetitive ceremony? Do you feel your team looks forward to the end of the retrospective more than the beginning? Many Agile teams fall into the trap of “following the motions” when it comes to a retrospective and begin to lose sight of its goal…inspect and adapt! During this hands-on workshop you’ll learn, practice, and create a series of creative techniques to get your team engaged and energized about their retrospective. The session will include an overview of different types of retrospective formats (ex. Traditional Retro, Lean Coffee Style, Lego Build Exercise, and many more), tools for running distributed retrospectives, and a review of critical facilitator tips. Grab some sticky notes and let’s start improving!

    S 216/220
    Thu 8:00 AM – 12:00 pm
    • Introductory and overview
  • React FUNdamentals Workshop

    React is a JavaScript UI library that makes creating reusable components easy and efficient. In this workshop, we’ll cover the critical concepts of React while progressively building an app. We’ll learn how to:

    – Write readable, reusable and composable components
    – Use JSX syntax
    – Work with the Virtual DOM
    – Handle user interactions and synthetic events
    – Leverage ES6 to maintain application state
    – And more…

    Prior experience with React is not necessary, but experience with building JavaScript applications will be helpful to hit the ground running. You’ll leave the workshop with all the fundamentals you need to build your own apps with React.

    Cinema
    Thu 8:00 AM – 12:00 pm
    • Introductory and overview
    • javascript
    • react
  • Product Visioning and Design Thinking Workshop (Part 1 & 2)

    PART 1: Do you see what I see? A vision in 4 simple questions. (Wendy Jacobs)
    Do you see what I see? Do we share the same vision? On the surface, it’s sounds so easy – incrementally build a product to meet a customer need. From 10,000 feet, the general idea seems straightforward, but then you learn about the various types of users and their different needs, project budgets and timelines, implementation options, and design tradeoffs. Now things are complicated! And then, even when you can imagine a sane path through the madness, you must find a way to communicate the path to developers, managers, executives, sales reps, marketing folks, and Bob down the hall. Herding cats seems easy in comparison!
    Wouldn’t it be nice if we could all have the same picture of where we’re heading? Wouldn’t it be helpful to have a clarity around primary objectives in a form that could provide context for making tradeoffs? I think so too – and I have a solution – a clear concise product/project vision.
    Believe it or not, it isn’t too hard to craft such a vision, and in this hands-on workshop you’ll learn exactly how to do craft a meaningful vision by just answering a few questions. The outcome will provide you with a North Star which can guide decisions throughout the project, and keep everyone marching in the same direction – even Bob. You can also use this same process in crafting a vision for your organization or your team. If you’re a product manager, product owner, BA, project manager, or anyone involved in delivering a product to market successfully you’ll find this session invaluable.

    PART 2: Design Thinking for Everyone: A Guide for Product Development Teams (Tammy Lawlor)
    Have you ever started working with an amazing development team, but later realize they have spent over a year building a product barely anyone uses? Or maybe during a requirements gathering session you’ve encountered a stakeholder who jumps to the solution before actually knowing the problem they are trying to solve, basing solution ideas off of their own preferences?

    If you’ve been in software product development long enough, you have probably experienced scenarios like the one’s listed above. Also, you’ve most likely experienced your fair share of project or product fails, as well as questioned the value of what you or your team are developing.

    A methodology proven to be successful for product teams traversing multiple industries is a concept called Design Thinking. In this session you will:
    -Learn the definition and steps involved in Design Thinking
    -Discuss and use examples of Design Thinking tools
    -…Be able to go back to work tomorrow with ideas & tools you can apply and use right away!

    S 361
    Thu 8:00 AM – 12:00 pm
    • Introductory and overview
  • Practical Functional Java

    Functional programming is touted as the solution to concurrency issues and the challenges or parallelism – and this certainly can be true. But many of us don’t really have those problems. What’s more important is that embracing functional programming makes code smaller, easier to understand, and easier to maintain. In other words, functional programming can lead us towards cleaner code.

    This workshop is structured in two parts. In the first part we will do a quick review of the changes in Java 8 that are moving Java into the modern functional world including:

    – Lambdas
    – Streams, Map, Filter, Reduce
    – Optionals
    – We will also be doing a deep dive into immutability and will learn some interesting patterns for building a hierarchy of immutable objects

    In the second part, we will embark on two multi-step exercises:

    1. A new development exercise where we cover the basics of thinking in functions from the very start of a project
    2. A refactoring exercise where we untangle a horrible deeply nested looping monstrosity into something more elegant

    The code exercises for this session will be in Java. If time permits, we will also learn about the Kotlin language and how these concepts can be applied in that world.

    S 363
    Thu 8:00 AM – 12:00 pm
    • Intermediate
    • java
    • functional
  • Develop an EF Core Data Access Layer Hands On Lab

    Interested in Entity Framework Core but not sure where to start? Start here building a complete data access layer using Entity Framework Core. including the entities, repositories, migrations, and much more.

    R 308
    Thu 8:00 AM – 12:00 pm
    • Intermediate
  • Throne of Games: Creating Your Own Agile Games

    Fun! Action! Play!

    With the fresh outlook surrounding “play” in the workplace, exciting new games are everywhere. Trying to find an Agile games that meets your specific needs may be trying. Add a whole new level of innovation and originality by creating your own Agile games.

    By creating a custom Agile game, you’ll:
    • Engage teams more deeply
    • Participants retain more information
    • Games are tailored to what outcomes you need
    • Flexibility in competiveness of participants

    Here you’ll learn how to create your own effective, innovative, and engaging games for your own teams.

    Join me and claim The Throne of Games!

    S 361
    Thu 1:00 PM – 5:00 pm
    • Intermediate
    • agile
    • coaching
  • Docker Hands-On

    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
    – Kubernetes
    – 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.

    A 202
    Thu 1:00 PM – 5:00 pm
    • Intermediate
    • docker
  • Introduction to Web Components & Polymer

    Web components are a set of web platform APIs that allow you to create new custom, reusable, encapsulated HTML tags to use in web pages and web apps. With libraries such as Polymer that are built on top of Web Components, it is now possible to easily create fast Progressive Web Apps (PWAs) without the overhead of a framework. This workshop is a hands-on introduction to Web Components and the Polymer library. You’ll learn how to build your own components with both vanilla JavaScript and Polymer using the newly released Polymer 3.0 library, as well as assemble a simple PWA using existing open source Web Components. We’ll also cover Custom Properties (CSS Variables), which are supported natively in all of today’s modern browsers and polyfilled for older browsers by Polymer, to style our custom elements.

    S 325/327
    Thu 1:00 PM – 5:00 pm
    • Introductory and overview
    • web
    • pwa
    • web components
    • api
  • Building Quality JavaScript With Test-Driven Development

    Learning Test-Driven Development (TDD) is frustrating. The first couple tests feel strange – you wonder why you’re writing tests that fail on purpose. Before long, you find yourself behind schedule from spending so much time on tests. You abandon unit testing completely. You’ll write them after….if you find the time.

    This workshop will ease the frustration of learning Test-Driven Development. We’ll discuss the fundamentals of TDD and work together to solve problems in a test-driven manner. You’ll build confidence in your ability to apply TDD in JavaScript with hands-on experience.

    Topics and activities include:

    * Instruction and exercises that will familiarize you with Jest as a JavaScript test framework
    * An introduction to the fundamentals of TDD
    * An instructor-led demonstration of TDD in practice
    * A collaborative code kata to get a hands-on, practical introduction to TDD
    * A series of hands-on exercises writing test-driven JavaScript code
    * A discussion of best practices for keeping your JavaScript test-friendly

    We’ll be using Jest to build quality into our JavaScript code from the start. No specific UI framework will be targeted in this workshop – we will focus on writing and testing pure JavaScript. The experience you gain will be applicable to any JavaScript-based app, regardless of your framework allegiance.

    Participants should be able to read and write JavaScript, as no time will be spent on language details. General familiarity with writing unit tests in any language is required. Familiarity with Test-Driven Development is helpful but not required, and no TDD experience is necessary. No experience with Jest is necessary.

    A laptop with the LTS version of NodeJS installed (currently 8.11.2) is required. The corresponding version of NPM (currently 5.6.0) is also required. Detailed setup instructions are at https://stevenhicks.me/tdd-setup.

    A 201
    Thu 1:00 PM – 5:00 pm
    • Intermediate
    • javascript
    • tdd
    • testing
  • I Kanban, Kan You?

    Are you new to Kanban and interested in learning more about this agile framework?  Are you currently working in Kanban and interested in optimizing your workflow?  Are you leading a team practicing Kanban, and unsure of the best way to add value? The more you know about Kanban, the greater the value you can glean from its principles. After leaving this half day workshop you will be able to…

    Evaluate when it makes sense to apply Kanban principles to your Agile practices
    Utilize Kanban to experiment with your own board
    Recognize common pitfalls and discover techniques to address them
    Learn how Kanban can help you stop starting, and start finishing

    This highly interactive workshop welcomes all participants, from those new to Kanban to active practitioners. We will work through real life, hands-on activities, while also engaging in group discussions on the finer points of Kanban and make Kanban work for you.

    S 363
    Thu 1:00 PM – 5:00 pm
    • Introductory and overview
    • kanban
    • agile
  • Real World React from the Ground Up

    Learning React can get awfully complicated. Flux, Redux, server side rendering, React Native, higher order components, functions as child components, CSS in JS, and more. Let’s simplify the equation: build a real world application using React and Redux, learning patterns and practices to make reusable, composable components as we go. Whether you are brand new to React or have some experience with it, you should walk away with a solid understanding of how to compose React applications.

    Cinema
    Thu 1:00 PM – 5:00 pm
    • Intermediate
    • javascript
    • react
  • Effective Gherkin: Quality Requirements for the Enterprise

    Developing software is a costly endeavor. Mistakes are often compounded by miscommunication. Developers and Testers make mistakes because they misunderstand the business requirements. Business analysts make mistakes because they misunderstand the stakeholders. Defects from miscommunication will often go undetected until the software has been implemented, which leads to expensive and time-consuming rework. Establishing a shared quality language is the nexus of understanding for stakeholders, designers, developers, testers, and customers. In this workshop, participants will learn how to develop a set of quality test case standards to reduce the cost of quality and meet the customer’s needs. The training will leverage the industry practice of Behavior Driven Development, which promote requirements by example & collaboration, to develop a shared language across not only a team but the whole enterprise. The shared language is written in Gherkin format (Given, When, and Then specifications) to define requirements independent of application type and focused on delivering value that everyone in the organization understands.

    A 204/206
    Thu 1:00 PM – 5:00 pm
    • Introductory and overview
    • bdd
    • requirements
    • enterprise
  • Awesome C#: Asynchronous Programming

    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
    o Consume asynchronous methods with Task and await
    o Create asynchronous methods and libraries
    o Handle exceptions and cancellation
    o 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.

    S 216/220
    Thu 1:00 PM – 5:00 pm
    • Intermediate
    • c#
    • .net
    • async
  • Develop an ASP.NET Core Web Application Hands On Lab

    Interested in ASP.NET Core but not sure where to start? Using a prebuilt data access layer built using EF Core, you will build a complete ASP.NET Core 2 web application, including Tag Helpers, View Components, Dependency Injection, and more!

    R 308
    Thu 1:00 PM – 5:00 pm
    • Intermediate
  • A Whirlwind Tour of Recurrent Neural Networks

    Neural Networks. Deep Learning. TensorFlow. What are these buzzwords? What is the latest Artificial Intelligence craze? This advanced session contains cutting-edge information not easily found online, and does not require a PhD in Machine Learning to understand. Recurrent Neural Networks (RNNs) can be used to generate text that will look like its original training data. There are many articles out there that show hilarious end-results of such adventures, but start-from-scratch walkthroughs that show the raw code, like this one, are hard to come by. This presentation will demonstrate what you need to join in, grab your own data set, process it, train it, and sample it. Training the data on a CPU can take hours, but in this session you can learn how training on a GPU with hardware acceleration takes only seconds. Come away from this session with your own datasets to “randomly” generate new bodies of text!

    Hands-On attendees will find and pull their own dataset, pre-process it, sample, and train it. If time permits, we will explore GPUs on Azure.

    Prerequisites
    Docker CLI. To set up your local computer as a Docker host and access the Docker CLI commands, install Docker Engine before starting this workshop. https://docs.docker.com/engine/installation/
    Windows. This workshop contains screenshots from a Windows 10 Enterprise PC with the latest updates.
    Bash on Ubuntu on Windows is the preferred CLI for this workshop. https://www.windowscentral.com/how-install-bash-shell-command-line-windows-10

    A 100
    Thu 1:00 PM – 5:00 pm
    • Intermediate
    • azure
    • cloud
    • machine learning
    • deep learning
    • ai