Drupal Flyover Camp 2019

Introduction

Flyover Camp is a brand new Drupal camp starting in 2019, located in the heart of the midwest, Kansas City. The three day event will take place Friday, May 31 - Sunday, June 2, 2019 at Pierson Auditorium on the University of Missouri-Kansas City Campus in Kansas City, MO.

This is an event for technologists, designers, creatives, business leaders, and anyone who uses Drupal or supports Drupal in any capacity. We welcome all skill levels, from the very beginner starting to learn how to configure a Drupal site, to veteran thought leaders and community contributors.

Video Sponsor(s) / Provided by
Flyover Camp
Curated Videos
Description
Speakers: Ann Gaffigan & Jennifer Wadella

Writing code can be hard but managing other parts of life can be harder. How can you find a balance between honing your technical skills, being a good team player, being a productive employee, landing the fun projects, AND going home to your family/pets/plants at a reasonable time of day? In this talk Ann and Jennifer will share life lessons and strategies on how to reach your goals of proficiency in your craft while being the teammate everyone wants to work with and learn from. You’ll leave feeling empowered and ready to take on all the awesome knowledge Flyover Camp has to offer!

https://www.flyovercamp.org/schedule/be-formidable-be-kind-take-no-shit
Description
Speaker: Michael Smith

Creating a set of standards and encouraging thought leadership is a great way to make sure your organization is always delivering the best product possible.

https://www.flyovercamp.org/schedule/nurturing-drupal-practice
Description
Speaker: Garrett Rathbone

This session will walk through a lot of the lessons learned while working on a standardized Drupal distribution at VMLY&R. It will explain how you can use some of these lessons / ideas to help yourself on future (or current) Drupal projects. No technical skill will be needed for the talk, although an understanding of Drupal, Drupalisms, and Drupal theming in general would be helpful.

https://www.flyovercamp.org/schedule/streamline-your-drupal-development
Description
Speaker: Tess Flynn

This session introduces Kubernetes (k8s), an open source container orchestrator that provides a production-tested cluster to run your Drupal site. This session will walk you through how to build your own k8s cluster, how to update your containers to run securely with Secrets and ConfigMaps, and how to automate deployment to run your containers from "Initial Commit" to 1.0.

https://www.flyovercamp.org/schedule/return-clustering-kubernetes-drupal
Description
Speaker: Andrew Koebbe

Let's be honest. CSS is painful and tedious. Luckily we have CSS preprocessors, like Sass and Compass, to take the pain away. In this session we'll cover the very basics of Sass and Compass. You'll learn about Sass variables, nesting, mixins, color functions and more. You'll also learn a few of the great mixins and functions provided by Compass and Bourbon so you can stop worrying about those silly browser prefixes and sprite map nonsense.

https://www.flyovercamp.org/schedule/so-sassy-intro-sass-and-its-friends
Description
Speaker: John Rearick

We will go through the top 45 modules with Drupal 8 support. This may become a collaborative effort to try to explain each module in 60 seconds. Hopefully it will generate some discussion of other useful modules.

https://www.flyovercamp.org/schedule/45-modules-45-minutes
Description
Speaker: Patrick Thurmond

This session will teach about builds and deploys using Jenkins for building and deploying to Acquia using their deploy hooks system. It will cover workflows, why certain paths were chosen, potential pitfalls, and other aspects of setting up and using this system.

I will go over real world examples from United Rentals (unitedrentals.com) and what brought us to the new method of building and deploying. The benefits of using Jenkins over Bitbucket pipelines. The speed and consistency of deployments using this workflow. As well as how and why to use Acquia deploy and action hooks with your projects.

https://www.flyovercamp.org/schedule/builds-and-deploys-using-jenkins-and-acquia-cloud
Description
Speaker: Ryan Schooley

There are a number of factors outside of your library setup that will impact site performance.

Image Compression & Sizing
Aggregation and Minification CSS/JS
Third Party scripts
Network Load

In this talk we will specifically go over how a good library set up can help with loading only the necessary js and css on your page.

https://www.flyovercamp.org/schedule/performant-libraries
Description
Speaker: Scott Connerly

First thing I do when walking into an interview is to see if there’s a whiteboard hanging on the wall. If there is, there’s a good chance somebody’s going to ask me to write code on there, and nobody’s gonna get any useful information out of the experience. There's also a good chance somebody’s going to ask me to tell them about a time I handled a difficult situation, and maybe even how I’d move Mount Fuji.

This is a session on how to have meaningful technical interviews and really learn if a candidate will be good for your team, hard skills and soft skills. I will also give away the two question code quiz, explain why these two are valuable, and how to administer them well.

https://www.flyovercamp.org/schedule/two-question-code-quiz-how-interview-programmers-effectively
Description
Speaker: Dan Goldenbaum

In this talk we will review modules that leverage Artificial Intelligence, discuss relevant use cases for AI (tagging, photo recognition, personalization etc.) and talk about content as a service and it’s applications for powering AI.

https://www.flyovercamp.org/schedule/all-your-base-are-belong-us-drupal-ai-and-rise-robots
Description
Speaker: J.D. Flynn

I’m JD and I have mental illness. I’m also not alone. Every year, roughly 20% of the US adult population deals with some form of mental illness, however that number is MUCH higher in the tech community.

In this talk I tell my story of how I came to terms with the fact that I have mental illnesses, and how I came to realize that I’m not alone. Within my story, I tell how I came to realize I needed help, how I found help, what treatments worked for me, and how I came to be active in OSMI (Open Sourcing Mental Illness) with a mission of Erasing the Stigma that surrounds mental illness.

Attendees will walk away from this session with knowledge of resources that are available, statistics that have been collected, and hopefully a new view on mental illness that helps them Erase the Stigma from their own point of view.

https://www.flyovercamp.org/schedule/dealing-devpression-or-how-i-learned-dislike-myself-less
Description
Speaker: Benji Damron

Modules/subjects covered:

Metatag
xmlsitemap (and overrides)
GA/GTM
Datalayer (and overrides)
Schema (and overrides)

https://www.flyovercamp.org/schedule/do-you-even-seo-bro
Description
Speaker: Selina Kendall

The basics of accessibility will be explored. Attendees will learn about what accessibility means, the impact upon websites that must meet accessibility requirements, and how to utilize tools in our design process from the start.

https://www.flyovercamp.org/schedule/introduction-accessibility-design
Description
Speaker: Rhia Dixon

Logging is essential for visibility and resiliency, especially when monitoring and debugging software applications. However, overzealous logging of everything can do more harm than good. For integrated applications, generating massive files of data no one reads can lead to days of troubleshooting and weeks of fixing the “fix”. The time lost multiplies when these logs live in various places with no system to sound the alarm. Learning to use Amazon CloudWatch for streamlined, meaningful, centralized logging and alerts can drastically reduce the time it takes to notice issues, find bugs, and fix them.

https://www.flyovercamp.org/schedule/cloudwatch-ing-creating-more-useful-logs-alerts-aws
Description
Speaker: Josh Fabean

Git is a great tool which enables teams to work together and deploy code. What if you need to deploy a single hotfix into your prod build, without pushing in any more code than needed, or how can you roll back to an older version of your code? With the right git flow this is a breeze. With the wrong git flow this can be a nightmare. You want to deploy all the changes that exist in staging to production but the environments are so far apart at this point merging code is scary.

In this talk we will go over the git flow that we at Code Koalas have adopted to fix this issue. Now deploying code changes to production sites is no longer scary. Either is only deploying one feature out of many being worked on at once.

This flow is simple and open ended enough that anyone should be able to take ideas from it to implement as much or as little as is desired.

https://www.flyovercamp.org/schedule/bringing-sanity-your-git-flow
Description
Speaker: Andrew Koebbe

There comes a point in every career when it's time to move on and take the next step with another employer. Even if that day isn't today you need to have a plan and calculate the numbers to determine when it's time to jump ship and which ship to climb aboard next.

We'll talk about building connections and support, litmus tests for evaluating potential jobs, a framework for handling job offers, and a plan to jump ship in which your former colleagues will cheer you on.

https://www.flyovercamp.org/schedule/jumping-ship-holistic-approach-switching-jobs
Description
Speaker: David Needham

How do you tell if a change you made to your website has unintended side effects? Security updates should rarely result in anything changing visually, but how can you be sure?

Visual regression testing automates the comparison process by taking screenshots of two URLs and comparing them. You can view a report that highlights the differences and use the pass/fail result to make decisions.

In this session, we will use the BackstopJS visual regression tool locally, via Node JS, to automate visual QA. We will also learn how to scale and automate these tests across multiple sites and URLs.

About The Speaker
David Needham is a Developer Advocate at Pantheon where he focuses on developer education and training. When he’s not blogging about productivity at davidneedham.me or speaking at conferences, you can probably find him with his bicycle-loving family playing board games in Champaign, IL.

https://www.flyovercamp.org/schedule/visual-regression-testing-backstopjs
Description
Speaker: Patrick Thurmond

In this talk I will do a walk through of setting up Drupal 8 on Azure. This will include the many struggles I had along the way and how I ultimately solved the problem and got Drupal to load.

This includes a walk through of setting up the resources in Azure with the most basic setup. Dealing with Linux restrictions in Azure. Dealing with instance lifetime. Code deployment scripts. Azure CLI and deployment tools. Challenges with Apache restrictions. What I tried and ultimately what I figured out to get Drupal to run.

https://www.flyovercamp.org/schedule/basic-setup-drupal-8-azure-app-service
Description
Speaker: Bill Dinger

OWASP has a number of flagship projects designed to help us deliver secure applications. The OWASP Dependency Check works with dependencies to check for known security vulnerabilities. The OWASP ZAP is a attack proxy to actively probe your application and the OWTF (offensive web testing framework). Finally, we’ll go over the Application Security Verification Series (ASVS) as it applies to your DevOps toolchain itself to make sure you know and are securing your pipeline itself.

https://www.flyovercamp.org/schedule/continuous-security-integrate-security-your-devops-pipelines
Description
Speaker: Jeff Geerling

In 2014, I built the first version of the Raspberry Pi Dramble—a cluster of Raspberry Pi single-board computers which ran Drupal 8.

In 2017, I started migrating the cluster to use Kubernetes, running Drupal as a scalable, highly-available application on top of Kubernetes.

In this presentation, I'll present the new Kubernetes-driven version of the Raspberry Pi Dramble cluster (in person!), and I'll walk through the decision behind switching to Kubernetes, risks and common pitfalls encountered when running Drupal on Kubernetes, and how you can set up your own scalable Kubernetes cluster—either on Raspberry Pis or on some VMs running on your computer!

Before coming to this presentation, you should know:

Basic server administration.
How to build a simple Drupal 8 website.

You will learn:

How to deploy Kubernetes to a set of Raspberry Pis (or VMs).
Why you might not want to deploy Kubernetes to a set of Raspberry Pis.
How to deploy Drupal 8 to a Kubernetes cluster.
How to evaluate whether Kubernetes is right for your Drupal websites.

Session Slides: https://www.slideshare.net/geerlingguy/everything-i-know-about-kubernetes-i-learned-from-a-raspberry-pi-cluster

https://www.flyovercamp.org/schedule/everything-i-know-about-kubernetes-i-learned-cluster-raspberry-pis
Description
Speaker: Tess Flynn

In this session we'll introduce the tools and techniques to perform a health-check on your Drupal site using easy, off-the-shelf tools. We'll outline the goals of the health check, and what to do if you discover something wrong, or worse, how to recover from a hack.

Knowledge of Drupal, business processes, and the command line are helpful, but not required.

Learning Objectives & Outcomes:

Goals of a site health check.
Outline the mindset of an auditor.
Using Drupal's built in tools.
Using Hacked Module.
Using Site Audit.
Checking the human processes.
Checking infrastructure.
What to do if you discover a hack.
When to ask for help.

https://www.flyovercamp.org/schedule/dr-upal-healthcheck-your-site
Description
Speaker: Ashish Jain

Remote working has picked up and is here to stay/expand. I plan to share our experience and methodologies which helped us in delivering projects successfully sitting remotely in different geographies. This could prove to be of some help who already doing it or plan to do it and looking for the best way out, as we have been working in this ecosystem for 5+ years, so our experiences could be of great value to the attendees.

https://www.flyovercamp.org/schedule/getting-most-remote-helping-hands
Description
Speaker: Chris Wright

In this session we will discuss how to:

Retrieve needed variables and data using hook_preprocess functions to use this data in Twig templates.
Use the devel module and xdebug (briefly) to debug your code.
Set, adjust and view variables before they are printed on the page and briefly discuss HOOK_form_alters as well.
Create a render array, what that does and how to use this in Twig for rendering custom content.

https://www.flyovercamp.org/schedule/preprocess-all-things
Description
Speaker: David Needham

You made a mistake weeks ago and a part of the site is broken. No one noticed at first, but now the client is upset. You need to fix it - and fast! But where in the code was this bug introduced?

What if I told you there’s a tool hidden within Git to quickly find when a bug was committed and then fix it? Git Bisect allows you to jump through dozens of commits at once and find the culprit within seconds - even when you don’t know exactly when it happened or even what file was edited.

Git Bisect uses a computer science technique called “binary search”. To explain the concept simply, we’ll play a quick audience participation guessing game and demonstrate many real-world examples. Once we understand the basics, we’ll take it a step further with automation.

This session is appropriate for anyone comfortable with Git and who sometimes makes mistakes.

Presentation Recap: https://www.davidneedham.me/flyover2019/

About The Speaker
David Needham is a Developer Advocate at Pantheon where he focuses on developer education and training. When he’s not blogging about productivity at davidneedham.me or speaking at conferences, you can probably find him with his bicycle-loving family playing board games in Champaign, IL.

https://www.flyovercamp.org/schedule/regression-resolved-compare-months-commits-seconds-git-bisect
Description
Speaker: John Rearick

You may have heard about the new Configuration Management system in Drupal 8. In this session we'll explore what configuration management is, what problem it solves, and the basics of how to use it.

Do you have a local development environment or a testing or staging environment for your site? Do you often develop locally and realize that you have to go through all the pointy-clicky configuration on the testing site and again on the live site (with varying level of accuracy)? There is a better way!

Configuration Management allows you to export your sites configuration to files that can be imported on the same site in test or live environments. You can do this either through the UI or Drush very easily!

https://www.flyovercamp.org/schedule/introduction-configuration-management
Description
Speaker: Justin Langley

"Are you kidding me with these designs?! We have 2 months; we are not having crazy drag'n'drop UIs for the landing page content type. We don't have time!"
 - Said every developer ever on a tight deadline when handed high-fidelity designs for the site's landing pages and the requirements ask for a "Customizable, extendable and easy-to-use drag'n'drop interface for Content Editors to visually layout pages."

Oh and did they mention they should still be revisionable?

---

Drag'n'drop UI/UX experiences for Content Editors have become immensely popular over the past couple years, tools like Gutenberg Editor, Elementor, Beaver Builder and more. And some are available as Drupal modules, but all have varying levels of compatibility with some of Drupal's core mechanisms: translations, revisioning, blocks, etc etc.

Layout Builder is here to provide an out-of-the-box solution for giving Content Editors a drag'n'drop interface for building pages. And the best part is; it all comes with Drupal core now.

In this talk I'll go over the basics of how Layout Builder works and then show what it looks like in action.

https://www.flyovercamp.org/schedule/snazzify-your-content-layout-builder
Description
Speaker: Laura Haskell

Our Drupal community is as strong as our ability to share our practice with others. To successfully teach others, we need to first step back and remember the obstacles Drupal beginners face.

When it comes to conquering any new skill in the technology world, a common representation of the learning curve is the inverse relationship between confidence and scope of knowledge. As we set out on a journey to a new level of competence, we often start on an upwards trajectory with a plethora of hand-holding resources that can get us to a basic level of knowledge. However, this state can fade quickly into what has been called the "cliff of confusion" that slopes down into the "desert of despair." This dip is where we venture out on our own to experiment beyond the borders of what standard documentation can teach us and into a realm of solving our unique, project-specific problems. The scope of what developers need to know is at its peak, but confidence is low due to infinite paths to explore and sparse resources to target specific problems.

As a person who is just getting started with Drupal and is brand new to the tech community, I am very familiar with this territory. My hope in offering my experience and perspective is to call out what people beginning Drupal should know before they start and help shed light on how we can combat these obstacles to get people out of the "desert" faster.

https://www.flyovercamp.org/schedule/surviving-drupal-learning-curve
Description
Speaker: Ben Stallings

Drupal 8 has a powerful Migrate module for importing data from other sites or from export files, but as yet the documentation is a little lacking. This workshop will walk you through how to create custom migrations for entities like users, nodes, paragraphs, and products from another database, XML, or CSV files. We'll cover some of the common pitfalls and how to avoid them.

Ben Stallings has been migrating data into Drupal for over a decade and is currently Data Migration Specialist for the Unitarian Universalist Association.

https://www.flyovercamp.org/schedule/migrate-all-things
Description
Speaker: Avi Schwab

Avi will be sharing some advice on staying active while working remotely. When he began full-time remote work last year, Avi made a commitment to a go to the gym, mostly as a way to make sure he got out of the house at least a few times a week during the Chicago winter. After over a year of work with a trainer and 3+ years at a standing desk, he'll share some tips on how to stay active and moving when we're desk bound for 40+ hours a week.

We'll talk about how to set up your space, how to get your body moving, and we'll even stand up & move to practice some movements that you can do at home.

https://www.flyovercamp.org/schedule/energizing-seated
Description
Speaker: Rhia Dixon

You have just graduated from a bootcamp, finished a degree, or perhaps, taught yourself to make awesome things via self-paced courses and decided to switch careers. Now you need a job. The problem is you’re new to the field, looking to gain experience, and every open position states you are required to have a gazillion years of specific experience and/or education. But do you really need all of that?
A hardworking, eager, amazing candidate can submit 1,000+ resumes with all the right buzzwords, beautiful projects, solid education...and still not make it to the phone interview! Rhia will walk you through how she used an unexpected networking opportunity during her coding bootcamp to land her current role before she was even looking for a job. She will share with you what she has learned about networking -- what it is and isn’t, when and where to network, and how to do it effectively. Learn networking tactics to get you on the radar and in the door.

Session Slides: https://www.rhiadixon.com/CONNECTwork

https://www.flyovercamp.org/schedule/networking-your-way-your-next-role
Description
Speaker: Michael Smith

Every new project we start builds off the success and failures of our past experience. Utilize an architecture review and early planning to ensure your project success and no more after thought systems.

https://www.flyovercamp.org/schedule/architecture-reviews-proper-planning-avoid-spaghetti
Description
Speaker: Josh Fabean

Drupal 8 brings us config in yml files. This is great for deploying changes to your site without having to re-click all the button in production or worse trying to sync your staging database up to prod. What about when certain config things you only want in dev and not prod. What if you’re using a multi-site and you want to share most of the config across those?

These are all things I will be able to show you how to get setup and going with. Config Split is a great tool you should be using and hopefully after this talk you will be using it.

https://www.flyovercamp.org/schedule/using-config-split-split-your-config-across-environments-and-sites