nerdsummit.

#nerds18

March 17th - 18th 2018

Thanks for another great NERD Summit! See ya next year for #nerds19!

Your donations to NERD help fund ongoing efforts such as monthly developer group meetings.

Look for the app on the iOS App Store, thanks to Lou Franco.

about.

be a nerd.

Stay in the loop

location.

See large map image

Parking

The most convenient parking is the Campus Center Parking Garage at a cost of $1.75/hr. Other options can be found here.

Hotels

There are many hotels in the area close by to UMass, including Hotel UMass very near the ISB building.

sessions.

Sessions that were recorded are here: https://www.youtube.com/user/nerdsummit

Look for the app on the iOS App Store, thanks to Lou Franco.


SATURDAY

Click on a session for more info.

8:30AM - 9:15AM
Room: Atrium

RECEPTION & COFFEE

Sponsored by Common Media

Audience: All | Good morning!

Traditional Continental
Serve Time: 8:30 AM to: 11:00 AM
Assorted Pastries
Seasonal Hand Fruit
Fruit Juices and Water
Hot Beverage Service - Columbian Coffee and Tea Assortment, decaffeinated options, served with all natural milk and creamer and an assortment of sweeteners.

9:15AM - 9:45AM
Room: 135

WELCOME & OPENING REMARKS

Kelly Albrecht & Rick Hood

Audience: All | Welcome NERDS!

Please attend the welcome session for information and orientation about today's schedule.

10:00AM - 10:45AM
Room: 135

Horizontal DevOps

Geoff St. Pierre & Rob Bayliss

Audience: All | devops, agile, business

Who?
-----
Beginner / Intermediate / Advanced

All concepts will be discussed at a high level. This will be talk about code and workflow examples, but your experience level will not preclude you from gaining contextual benefit and it is probably good for a beginner to be exposed to some of the concepts and vocabulary.

* If you are a decision maker (or have or intend to influence decision making) for your agency/company
* CEO
* CTO
* Lead Developer
* People who are thinking about workflows, efficiency, and repeatability for their company

Why?
----

* Sanity
* Efficiency
* Stability
* Repeatability
* Sustainability
* Profitability


How?
----

* Documentation, Documentation, Documentation
* Processes (People and Machines)
* Communication
* Real time vs. Asynchronous
* ChatOps
* Email
* Issue Queues
* Tooling
* Automation

10:00AM - 10:45AM
Room: 145

MOVED TO SUNDAY 1:00PM Living With Drupal 6 in 2018 - A Bad Case (Study) of D8 Deficiency

Jenn Johnson & Steve Demo

Audience: Intermediate | project management, drupal, migration

Relieve Symptoms Now!

Are you struggling with end of life care? Has your website left you feeling sad, prickly, and itching to upgrade?

There is help.

While not quite a case study, we will speak through the following as if it were:

How we use Drupal

- Our challenges, expressed as symptoms, anecdotes, and relatable experiences

A timeline of our journey
- Redefining fixes and milestones
- How core business decisions and organizational structure were impacted

Learnable moments
- Key collaborations with wonderful vendors, industry experts and the Drupal community

Addressing barriers
- How we made the incredible leap in funding, structure, and confidence

This is not just your normal prescriptive session filled with best practices and lists. Join us and learn more about how you can cure your Drupal 8 deficiency today(ish)!

10:00AM - 10:45AM
Room: 221

Accessibility for NERDs

Abby Kingman

Audience: All | basics, accessibility

Website accessibility is a topic that is getting more attention, both from people who create code and build sites and from people who are in the market for website development services. While the interest in building accessible sites has arisen in part from a need for some organizations to comply with federal regulations in order to satisfy funding requirements, other organizations have embraced accessibility as a way to make their message available to a broader population. This presentation will provide a quick introduction of Section 508 and the WCAG 2.0 framework with its layers of guidance. Then we will take a look at some resources and tools for evaluating accessibility. If time permits, we will wrap up with some discussion among session attendees about how successful (or not) we are at achieving our accessibility goals and what is (or is not) working for each of us. This talk will not be focused on specific code for making sites accessible, but on the means for evaluating code. However, coding tips, tricks and best practices based on personal experiences can be shared by participants during the discussion.

10:00AM - 10:45AM
Room: 321

Where to start when starting a project

Joe Monti

Audience: All | project frameworks, build tools, databases

Starting a new project can be intimidating. There are so many options for frameworks, build tools, databases, and many other aspects of the project. If you want this project to be around for a while, how do you make sure you make the right choices that will stand the tests of time? Let's say you have a great idea and have the opportunity to start from scratch with little or no help. It could be building a new product for your employer or starting your own company. Either way, you need to make sure it will succeed and be able to grow. In this talk I will go through some of the decisions you might have to make and walk you through how you might scale it to to be a highly-available, high-performance web application.

10:00AM - 11:45AM
Room: 325

Intro to Scratch

Joe Bacal and Holyoke Codes

Audience: Beginner | beginner, kids 7+ and families
[click to see registration link]

Learn to code with this simple, powerful visual programming environment!

With Scratch, you can program your own interactive stories, games, and animations -- and share your creations with others in the online community. Scratch helps young people learn to think creatively, reason systematically, and work collaboratively -- essential skills for life in the 21st century.

At this introductory workshop, we'll help students create free accounts and explain the basics of sprites, costumes, and coding with visual blocks to create engaging, interactive stories. Students will learn to incorporate rich, multimedia into their projects.

Please register since space is limited.

10:00AM - 10:45AM
Room: 329

How to Do Code Reviews Like a Human

Michael Lynch

Audience: All | code-reviews, teamwork

Are code reviews a source of tension on your team? Do they lead to conflict, bikeshedding, or wasted time?

Most of the discussion we hear about code reviews is technical. We focus myopically on minimizing cost and maximizing bug discoveries. But reviews are as much a social exercise as a technical one. They're an opportunity for teammates to share knowledge and bond through collaboration. That can't happen if people are strangling each other over where to place the curly braces.

In this talk, you�ll learn practical techniques your team can use to improve communication and minimize conflict during code reviews. I�ll talk about:

* Reducing human effort of reviews through automation
* Increasing your team�s review velocity
* Giving sincere praise
* Framing discussions for constructive debate
* Mitigating stalemates

11:00AM - 11:45AM
Room: 135

Hey NERDs, have you heard? - An overview of the 2018 Technical Job Market

Meghan Fallon

Audience: All | Job market, Interviews, Tech jobs

- The current job market in this area/average salaries
- Types of jobs available/types of companies
- The difference between W2 and Independent Contractor engagements
- How/where to look for a job
- Interview preparation/Interview best practices

11:00AM - 11:45AM
Room: 145

The traffic fallacy

Sean Eddings

Audience: All | project management, agile, basics, kanban, lean, flow

You've probably been late to something once, only to find as you drive onto the freeway hoping that you can try to make up for some of that lost time, it's backed up for what looks like miles and miles. You call your friend and update them that the 15 min drive is now looking like at least an hour. That's just a guess, though, you really have no idea as you lack the visibility into the conditions of the bigger system that you're now a part of. You're probably annoyed too, because waiting and sitting in traffic is a waste of time and the person behind you is trying to honk their way through it! It'd be great if this 4-lane freeway were 6-lanes! Ugh!

The solution cities have historically taken to traffic problems has been to add more lanes (capacity) or more traffic signals (process). Similarities exist in software development, where in the spirit of trying to get more things done faster, often times more people are added or more process is enforced. While well intentioned, this can end up slowing things down even more.

In order to sustainably do more, faster, a solution we've found to be successful is to visualize our workflow and limit our work in progress. Traffic jams have become rare, and most importantly, value is delivered to customer's with increased predictability, along with improvements to team morale.

In this session we'll explore:
* What a work unit is
* Techniques to visualize and organize the flow of work
* Why we limit work in progress
* Finding the right work in progress limit for a team
* Pull versus push
* Going from good to great

11:00AM - 11:45AM
Room: 221

Research is the Glue

Matthew Eng

Audience: Intermediate | Agile, UX, Research

"Teams form bad habits that they need to break"
-Lucy Dotson
When IBM started its design division, it adopted and leveraged design thinking to propel a culture of design throughout its organization. The teams on the Platform used design thinking and research to answer squad specific questions. We had very little guidance on our practices. Nor did we coordinate with our developers or product managers to triangulate our efforts to arrive at a conclusion all parties agreed with.

While we used design thinking methodologies to bring teams together for project planning workshops, the teams consistently struggled to align on a shared vision. As deadlines approached, poorly established communication protocols broke down and misunderstandings multiplied. Our relationships suffered across design, development and product management as we each pushed our own ideas of the right path forward. Design Thinking methods alone could not help us unify towards a shared vision.
Early in 2017, I was tapped to spin up and lead a research team to not only open a channel with our existing customers but to also shine a light on the other data sources and practices that influence each member of the tribe. Over the year, we rethought our practices to be more inclusive of the other members of the tribe with the goal of discovering and synthesizing data from both qualitative and quantitative sources together to tighten the decision and feedback loop.
In this case study, I will discuss
-Recognize the need to defuse and reset cross-disciplinary relationships
-Test and implement techniques for timely communication with large, cross-disciplinary non co-located teams
-Rethink our approach to cross-team workshops for planning, facilitating, and debriefing
-Decouple from design to bring development and product management closer
-Discover the common desire to find, digest, and process data across the tribe

11:00AM - 11:45AM
Room: 321

It's not your parents' HTTP

Gleb Bahmutov

Audience: Intermediate | HTTP, World Wide Web, Browser

I will start with the history of HTTP, and how it changes from 0.9 to 1.0 and to 1.1.
I will explain the performance benefit of HTTP/2, the state of support and
a very interesting performance feature (Server Push). Then I will talk about
real time systems that use Web Sockets for persistent data connection.
Then I will talk about data synchronization solutions via in-browser database
that can sync automatically. I will talk about offline support and
instant web applications using ServiceWorker, and finally I will describe why HTTP/2
is going to be replaced by a protocol named QUIC based on UDP.

11:00AM - 11:45AM
Room: 329

Drupal 8 Translation - A Live Demo

John Picozzi

Audience: All | Drupal 8, drupal, translation

Anyone that has been to a conference knows that Live Demo's are the double edged sword of any speaker. If the Live Demo goes off without a hitch, the speaker is a rockstar and the audience will sing his praises. If the Demo crashes and burns in a heap at the podium, the speaker will be drawn and quartered by the audience. So, live demos can be challenging and if your going to take the risk of doing a live demo why not amp up the difficultly level by adding a topic like Translation.

This live demo will be something of a working session where we will use a local Drupal environment to show the following three things:

- How to get Drupal Multilingual setup from a basic Drupal 8 Install
- How to translate Items using Drupal's built-in Translation System.
- How to integrate with a translation service like Lingotek to do easy machine translation

To participate with this talk you should have the following:

- Whatever local environment you want (MAMP, Vagrant, etc)
- A base Drupal install built with Drupal Composer (If you're more comfortable using Drush feel free!)
- A basic knowledge of Drupal 8 and how to install modules via Composer
The above are not needed if you just want to come, watch and ask questions. However, if you would like to leave with a fully working (hopefully) translation demo you can show your friends, come prepared!

12:00PM - 12:45PM
Room: Atrium

LUNCH

Audience: All | Eat!

Sandwich Platters (Turkey & Club, Italian, Ham & Roast beef, Chicken Salad & Tuna Salad, Veggie & Caprese)
Sandwich Platter (all sandwiches VEGAN & GLUTEN FREE)
Sliced Fruit Platter (VG, GF, DF)
Lemonade, Water

1:00PM - 1:45PM
Room: 135

KEYNOTE: Quantum Computing and the Future of Software Development

Jerry Nixon

Audience: All | The future of computing

As the future of computers continues to change as scientific advancement progresses faster and faster, classic software development is also going to change. Most of us consider ourselves software developers, but in the future, the role we're going to play is going to be dramatically different. Microsoft research is building the first practical quantum computer using topological qubits, come learn what this will quickly mean to you and the rest of mankind once it comes online. .

1:00PM - 2:45PM
Room: 325

Intro to RenPy

Amy Lashley and Holyoke Codes

Audience: Beginner | beginner, ages 12+
[click to see registration link]

Tell your own stories as an interactive graphic novel!

You'll learn to use Ren'Py, a Python-based tool that enables you to easily create visual novels with words, images, and sounds. You can combine multi-media capabilities and digital storytelling, offering your readers the ability to engage with your story and make choices that affect the outcome!

Please register since space is limited.

2:00PM - 2:45PM
Room: 135

Managing the MVP in an early stage startup

James Kupernik

Audience: All | project management, agile

When developing a new product or feature, getting it into the hands of users provides the best insight and feedback. This is critically valuable to an early stage startup where you are trying to decide if your idea is sound, if the product usable and if there is a market fit.

Using VidMob as a case study we will talk about how we went from launching a consumer-focused mobile experience in a few months to becoming a creative partner for the largest brands running video on Facebook, Instagram, Snapchat, Pinterest and Twitter in less than 2 years.

The four topics we will cover in this discussion are:

### Identifying the MVP and why that is important
* Intro
* Identify core functions that enable clients to use your product
* Find honest friends, mentors, and advisors to provide feedback

### Managing limited resources
* Adopt agile early (even just loosely)
* Identify complexity quickly
* Don't reinvent the wheel, use the cloud

### Manage technical debt
* DON'T over-engineer
* DO engineer for the future

### Be ready to pivot
* Listen to your users
* Be honest with the market fit
* Move quickly

2:00PM - 2:45PM
Room: 145

Consumption is Fractal: Open Source Sustainability

Noah Kantrowitz

Audience: All | open source, foss, funding, sustainability

While open-source sustainability has been a common topic in the hallways tracks and dev channels of major projects for years, the Heartbleed vulnerability in 2014 catapulted the topic in to the spotlight. Since then we've seen many discussions about how open-source should be supported for the long term, but rarely much action beyond a few token donations and some long Twitter threads. In this talk we'll look at an overview of what kinds of projects are out there, how sustainability works in real terms, and what techniques have worked or not worked over the years.

2:00PM - 2:45PM
Room: 221

DataScience with Python

Anandkarthick

Audience: All | python, machine learning, Jupyter Notebook, basics, data science

Practical Introduction to Data Science in Python. We will work with Jupyter Notebook created for this exercise. We will discuss python libraries, basic data analysis and data cleansing, data visualization with Matplotlib and Mapbox, machine learning and it's types.

Session materials include presentation, Jupyter notebook with code block for participants to work on, reference links and materials to get them started with data science journey.

2:00PM - 2:45PM
Room: 321

Secrets to Great Web Forms

Paul Grenier

Audience: All | html, css, javascript, basics, advanced, design

Does your company or business rely on a web form for important activities? What happens when someone loads your page without JavaScript? Can the user complete their task? If not, will you know about the failure if they don't call or email you?

First, you're not alone. But that doesn't mean you shouldn't worry. Together we will cover topics and technologies to increase confidence and conversion. The good news: you don't need to learn some fancy new framework. The bad news: you probably have to [re]learn the basics. Changes in our devices, browsers, networks, and society have all altered how users interact with our forms.

2:00PM - 2:45PM
Room: 329

Intro to GraphQL (with Relay Modern and Postgraphile)

Chad Furman

Audience: Intermediate | javascript, advanced, mobile apps

GraphQL is a query-language for APIs as opposed to databases. GraphQL allows for an API to share a common schema with a client, including type-checking and documentation.

Relay Modern is a frontend framework that consumes a GraphQL schema and allows you to declare data dependencies on your React components. These dependencies get merged into a single request on page-load, minimizing network traffic. Moreover, the results of the queries are stored in a client-side cache which makes navigating a single-page application remarkably fast.

The schema for the GraphQL API and client can be automatically generated from a specially-designed Postgres database (and optional API 'plugins' written in NodeJS for things like sending emails, talking to external APIs, etc). The CRUD fields (fields are a bit like an endpoint in REST, except they're quite different) are built for all tables and relations, and the queries include pagination, filtering, ordering, and more.

With GraphQL, Relay Modern, and Postgraphile, a modern and performant API and frontend can be constructed fairly quickly. Moreover, it's much easier to maintain a GraphQL API than it is a REST API as you don't have to make new endpoints all of the time, and you never have multiple versions of the same API (only deprecated fields)

The maintainability and cleanliness of GraphQL, the declarative data dependencies of Relay Modern, and the API-autogeneration-introspection of Postgraphile combine to deliver an amazing developer experience that I'm excited to share with you :)

3:00PM - 3:45PM
Room: 135

Introduction to Serverless Computing on AWS

Trevor Morris

Audience: Intermediate | AWS, Kinesis, Lambda, DynamoDB, S3

In this talk, I'll show how to set up an AWS Kinesis stream, hook it
up to AWS Lambda, and store the data into DynamoDB and S3.
Then, we'll look at accessing the S3 data using Athena.

No AWS experience is necessary, but there are a lot of moving parts,
so some technical background will be helpful.

3:00PM - 3:45PM
Room: 145

Getting Going with Gutenberg

Amanda Giles

Audience: Advanced | advanced, php, cms, wordpress, javascript

The future is Gutenberg and it is coming. Will you be ready? Gutenberg is a whole new editing experience for WordPress. If you are a WordPress developer you will not want to miss this talk where we will dive into the world of building your own Guten Blocks.

3:00PM - 3:45PM
Room: 221

'Do Your Job' philosophy for Driving Digital Transformation

Angela Govila

Audience: All | coaching, project management, agile, team building, leadership

Driving digital transformation in any program requires a change in the org mindset. It also requires a very clear up methodical approach to articulating the vision, business objectives, goals, how that will be broken down to actually execute and deliver on the business strategy. Often times, organizations are stick in their old ways even with all the latest tools and thinking around them. Common problems include lack of executive understanding of what it means to agile and what digital software product development actually means. Lack of trust, accountability, communications, vision and unhappy stakeholders all mean we are not delivering on the business needs. Drawing a comparison to football, we are not winning the Super Bowl, heck, we may not even be making it to the playoffs with a large disparate, disjointed and dysfunctional team. In this talk, you will learn how to apply discipline, rigor, structure, excellence and leadership to make to get your organization moving in the right direction and ultimately becoming a winning team!

3:00PM - 3:45PM
Room: 321

Respect the classics, man.

Andrew Predmore

Audience: All | project management, agile

Mark Twain once said, "A classic is something that everybody wants to have read and nobody wants to read."

Presented in a lighthearted manner, this session will introduce several classic programming books, and hopefully inspire you to actually want to read them. You will discover that many of the big challenges you are grappling with are not new, and that there are solutions. The "classics" cover high-level concepts in project management and programming. No technical experience is necessary, yet even experts will probably learn something exciting and new.

Some of the books that will be covered include:

- Peopleware
- The Mythical Man Month
- Design Patterns
- The Cathedral and The Bazaar
- And more?
Time will be provided for the audience to participate in a discussion driven by their interests.

3:00PM - 4:45PM
Room: 325

Intro to HTML / CSS / JS

Joe Bacal and Holyoke Codes

Audience: Beginner | beginner, adult & teens
[click to see registration link]

The web is built with HTML!

In this workshop you will learn how to create webpages with Hypertext Markup Language (HTML) and make them look nice with Cascading Style Sheets (CSS). We'll add a bit of Javascript to make them interactive!

No previous experience is necessary, but you should be comfortable typing with a keyboard.

Please register since space is limited.

3:00PM - 3:45PM
Room: 329

How to Choose an Open Source Licence

Michael Miles

Audience: All | open-source, licensing, basics

Open source projects are unique in that they invite the world to use, improve and add onto them. Allowing the world to use that software to solve its problems. To open-source your software and make it available for the world to improve you need to add an open-source license. But with many types of open-source licenses to choose from, how do you select the "right one"? This presentation walks through the values of creating open-source software and how to select the right open-source license for your project.

Attendees of this session will walk out with three fundamental lessons:
* The value that open-source software provides to the world.
* An understanding of the different between the three(3) main types of open-source licenses available.
* How to select the right open-source license for your project.

4:00PM - 4:45PM
Room: 135

Vision & Artificial Intelligence for Enterprise Developers

Jerry Nixon

Audience: All | Artificial Intelligence, AI, Vision, Imaging, Cloud, Mobile, ML

This is a terrific talk that goes into available services wrapping Machine Learning algorithms in simple-to-use REST endpoints for web sites and desktop apps to incorporate with extraordinarily little effort. I will discuss the history of vision AI, the capabilities we are seeing enterprises leverage today, and what we expect to see as this field continues. Tons of inspiring demos. Tons of amazing vision.

4:00PM - 4:45PM
Room: 145

Make your own Snapchat filter

Jacob Bashista

Audience: All | Lens Studio

Learn how to work with and use Snapchat Lens Studio, a tool that allows anyone to make their own custom Snapchat filters. In this talk you will learn the basics of each custom filter in Snapchat, and how to navigate Lens Studio.

4:00PM - 4:45PM
Room: 221

Opening the Black Box: Becoming a Better Developer Through Debugging

Dustin Younse

Audience: Intermediate | php, drupal, javascript

Trying to tame a modern, fully-featured web application like Drupal can be an exercise in frustration. Whether you've been using a piece of software for years or you were just handed the codebase, many of the same problems can confound you.

* Why are you seeing that piece of content there?

* Why am I seeing a negative integer instead of a string from this function?

* What does this PDOException in my Watchdog log even mean?

In my career I've come to realize that the key to being a better developer is not having more tools in my toolbox, but in really knowing those tools - knowing not only when but how to deploy them to best solve the problem in front of me.
In this session we will be going over useful debugging tools and techniques that can help you start to see into the inner workings of all versions of Drupal, and really any codebase you might have in front of you. You will be better prepared to start building truly custom features into your projects and you'll be able to remain calm when you get the inevitable email that your site is showing the dreaded White Screen Of Death at 4:45pm on a Friday afternoon.

4:00PM - 4:45PM
Room: 321

Docker for Development

Geri Jennings

Audience: Intermediate | docker, development

In this talk, I'll be setting up a simple (pre-written) web application using Docker. At first, only a single container will be required, but as the app becomes more complex we'll add a network of containers and spin them up using Docker Compose. Time permitting, we may talk briefly about how Docker can be leveraged to make setting up a CI / CD pipeline easier (using Jenkins as a reference). In general, we will seek to demonstrate how Docker can be used to easily get fast feedback on the software that you write - does it work? What does it look like in a browser?

4:00PM - 4:45PM
Room: 329

Building the web application that runs a global startup accelerator

Paul Bissex

Audience: Intermediate | python, aws, django

MassChallenge's **Accelerate** is a software platform that supports all phases of startup accelerator operation: application acceptance, application judging, mentor recruitment and matching, startup communication, office hour scheduling, and more. A team of seven engineers builds the system. Most are based in Boston.

The application is written in Python on the Django web framework and deployed using Amazon Web Services. An increasing number of the system's components are being released as open source.

5:00PM - 7:30PM
Room: Campus Center

PARTY!

Sponsored By Platform.sh & Vidmob

Audience: All | Have fun!

Appetizers, cash bar.
Location: The Marriott Center.
11th floor of the Campus Center Hotel.
Take elevator from the first floor of Lincoln Campus Center.
This is a very short walk from the event, and is on the way back to the parking garage.

SUNDAY

Click on a session for more info.

8:30AM - 9:15AM
Room: Atrium

RECEPTION & COFFEE

Sponsored by Platform.sh

Audience: All | Good morning!

Traditional Continental
Serve Time: 8:30 AM to: 11:00 AM
Assorted Pastries
Seasonal Hand Fruit
Fruit Juices and Water
Hot Beverage Service - Columbian Coffee and Tea Assortment, decaffeinated options, served with all natural milk and creamer and an assortment of sweeteners.

9:15AM - 9:45AM
Room: 135

WELCOME & OPENING REMARKS

Kelly Albrecht & Rick Hood

Audience: All | Welcome NERDS!

Please attend the welcome session for information and orientation about today's schedule.

10:00AM - 10:45PM
Room: 135

Our Digital Transformation to Agile: Challenges and Insights

Chris Smith & Andrea Kvasnica

Audience: All | workshop, project management, agile, drupal, scrum, waterfall

The rules and practices for Scrum - a simple process for managing complex projects - are few, straightforward, and easy to learn.

But Scrum's simplicity itself - its lack of prescription - can be disarming, and new practitioners often find themselves reverting to
old project management habits and tools and yielding lesser results.

During this presentation, I will highlight:
- The challenges we were facing with waterfall project management.
- A (very) brief overview of key concepts of agile and scrum.
- Why we chose agile and scrum to replace waterfall.
- How we introduced agile to our teams and what training looked like.
- Some of the immediate benefits we realized.
- The challenges we face (and continue to face) in our transformation.
- Our next steps and how we are continually improving our approach each week.

10:00AM - 10:45AM
Room: 221

Frontend Development with React and ClojureScript

Jochen Rau

Audience: Intermediate | React, ClojureScript.

Single-page applications and dashboards are hard to architect, develop, and maintain as they grow. Frameworks like AngularJS, Backbone, or GWT try to make this easier. But they often cause incidental complexity by introducing tight coupling and special semantics. You will get an overview over how to create a modular and scalable web application using React and ClojureScript. React is a component based, reactive JavaScript library that handles state changes, component lifecycles, and UI updates without getting in your way. ClojureScript with its functional paradigm and immutable data structures complements React perfectly. After a brief introduction to the core concepts of React and ClojureScript, we will take a look at a real-world application, discuss best practices and some possible pitfalls.

10:00AM - 10:45AM
Room: 321

De-mystifying Serverless Platforms

Aditya Relangi

Audience: Intermediate | serverless, devops, golang, architecture

About two to four years ago it was microservices, then there is the craze about containers and now we keep hearing about serverless. Although for people that tap into tech ocassionally, it might seem like another buzzword every few years it is but a natural progression to go from microservices to serverless via containers.

While microservices are the first step in breaking monolithic systems into small, modular, easy to manage applications, Containers let us achieve this state by efficiently isolating, deploying and distributing these services. Serverless takes this to the next logical step of having our code be running only when it needs to.
Understanding how this is achieved is the objective of this talk. We de-mystify serverless platforms by building a Serverless platfrom Granda in Golang. The audience will walk out of this talk with a deeper understanding of Serverless systems.

11:00AM - 11:45AM
Room: 135

Modern JavaScript

Gleb Bahmutov

Audience: Beginner | JavaScript

I am going to cover the following topics:
- where JavaScript is used today: browser, mobile, server, desktop, build scripts, service workers.
- how new features are added to the language
- main tools for testing, linting and bundling code

11:00AM - 11:45AM
Room: 221

ISLE: Running Islandora locally with Docker

Gavin Morris

Audience: Advanced | Islandora, Fedora, Drupal

An introduction to the mechanics of ISLE, including a demo of new systems creation and existing systems maintenance processes. ISLE separates an institution's customizations from systems software, moving those components into containers that are easily updated. This simplifies and largely automates the processes of installation and maintenance for Islandora/Fedora environments. While this workshop will focus on building a local development environment, ISLE also delivers a production-ready and security-hardened platform.
For institutions considering migrating from a proprietary digital repository to a Fedora-based open source collections management platform, ISLE offers an appealing jump-start alternative to Samvera's "HykuDirect." For institutions already using Islandora, ISLE is expected to cut maintenance costs in half and improve overall security.

11:00AM - 11:45AM
Room: 321

Pathways to Tech

Facilitated group discussion

Audience: All | career, imposter syndrome

Join in for a group dicusssion about how people get into a career in tech. Bring your story and hear others' stories. Share your story and learn about what others have had to overcome and how they did it. [Sharing your story is not required]

11:00AM - 11:45AM
Room: 329

Intro to Elixir and Phoenix

Doug Martin

Audience: All | Elixir, Phoenix, functional programming

High level introduction to both the Elixir language and Phoenix, a Rails-like web development framework for Elixir.

12:00PM - 12:45PM
Room: Atrium

LUNCH

Audience: All | Eat!

Cheese Pizza
Personal GLUTEN FREE Cheese Pizza
Fruit Platter (VG, GF, DF)
Lemonade, Water

1:00PM - 1:45PM
Room: 135

Living With Drupal 6 in 2018 - A Bad Case (Study) of D8 Deficiency

Jenn Johnson & Steve Demo

Audience: Intermediate | project management, drupal, migration

Relieve Symptoms Now!

Are you struggling with end of life care? Has your website left you feeling sad, prickly, and itching to upgrade?

There is help.

While not quite a case study, we will speak through the following as if it were:

How we use Drupal

- Our challenges, expressed as symptoms, anecdotes, and relatable experiences

A timeline of our journey
- Redefining fixes and milestones
- How core business decisions and organizational structure were impacted

Learnable moments
- Key collaborations with wonderful vendors, industry experts and the Drupal community

Addressing barriers
- How we made the incredible leap in funding, structure, and confidence

This is not just your normal prescriptive session filled with best practices and lists. Join us and learn more about how you can cure your Drupal 8 deficiency today(ish)!

1:00PM - 1:45PM
Room: 221

Docksal: The Last Local Environment

Les Peabody

Audience: All | drupal, php, wordpress

PHP development is a complex creature these days. How do you approach incorporating all of the technology needed to develop a pristine application? From the environment you need to run your application, to the software you need to build it, how do you connect it all together? You need a pluggable local environment for you and your team to work in, and a common project command library that will join your software tech and workflow together. Using Docksal, this is emphatically achievable.

Docksal is your new local environment. It's intuitive service architecture and configuration scheme enables you and your team to rapidly spin up local development environments with whatever services your application needs (Varnish, Solr, Memcache, etc.) without having to actually learn how to setup something like a complex Varnish server. More importantly, the configuration is stored alongside your project, ensuring that everyone on your team is developing in identical local environments, always.

After this talk, you will have learned how Docksal can simplify and streamline your PHP development process across your entire team. You will feel relief in knowing that the skill barrier and time investment to start using Docksal is in fact very low. Perhaps also you will feel a sense of relaxation, as your journey for finding the last local environment setup you'll ever use may finally be at an end.

1:00PM - 1:45PM
Room: 321

The Fundamental Building Blocks of Data Processing

Jochen Rau

Audience: Intermediate | data, Clojure,

Concurrent processing of large amounts of data can be broken down into computational building blocks represented by functions like map, filter, reduce, fold, and combine. In this talk we will take a look at the semantics of these building blocks and how to compose them into more complex processing pipelines. This will give you a better understanding of frameworks like Hadoop MapReduce or Clojure's Reducers. The examples will be in Clojure, but no prior knowledge of Clojure is required.

1:00PM - 2:45PM
Room: 325

Makers at Amherst Media: E-textile Drop-in

Christine Olson & Steve Brewer

Audience: Beginner | Arduino Lilypad, e-textiles,

Come learn about e-textiles while contributing to the creation of an interactive tapestry. Using the Arduino Lilypad, we will make a wall hanging that includes lights and sensors. This is an on-going project so feel free to drop by and contribute for as long as you can.

2:00PM - 2:45PM
Room: 135

What's all the fuss about fonts? Typography for the rest of us.

Thomas Urell

Audience: All | design, typography, Comic Sans

As a condensed version of an "Introduction to Typography" course, this talk will look at the basic concepts of typography at the scale of letterforms, words, paragraphs, and pages. Starting with a brief overview of the history and classification of fonts and their historical uses, we'll then look at some of the ways fonts are used for expression and to carry meaning and voice. Finally, we'll talk about resources for learning more about typography from a design and practical perspective, including recommended exercises and sources for fonts.

2:00PM - 2:45PM
Room: 221

Build, Don't Code

Chris Davis

Audience: Beginner | Workshop, Web app, lean startup, full stack, apis

During this workshop, I will walk through building a functional application and introduce the superpowers the platform Bubble provides non-developers.

Know how to code? Even better. Learn how Bubble can expedite your development process and enable quicker iterations.

2:00PM - 2:45PM
Room: 321

Orchestrating Serverless with Step Functions

Matt Williams

Audience: Intermediate | lambda, step functions, serverless, raspberry pi, nodejs, javascript

Serverless and AWS Lambda specifically allows developers to build super scalable application components with minimal effort. AWS Kinesis and SQS can be used to create a universal event stream to orchestrate Lambdas into much more complex applications. Now, with AWS Step Functions we can build large distributed applications with Lambdas using visual workflows. In this session you will see how Step Functions are different from Amazon Simple Workflow, how to get started with Step Functions, and how to use them to take your Lambda-based applications to the next level. We will start with a few granular functions and stitch them up using Step Functions. As we build out the application, we'll add monitoring so that we can ensure that changes we make actually improve things rather than make them worse. You will leave the session with actionable learnings about how to use AWS Step Functions in your environment right away.

2:00PM - 2:45PM
Room: 329

CANCELLED Thinking Reactively with RxJS

Mayank Raj

Audience: All | Frontend, Web

Handling the flow of asynchronous data streams has always been a challenging task. Callbacks offer the quick solution. Then came promises which made it easier to write and maintain code around such data streams. Reactive programming is another take on the problem. With implementations in languages like .net, java, scala, JavaScript etc, with big names like Google, Microsoft, Netflix actively supporting and maintaining implementations of the idea in these languages, the style of programming is here to stay.
JS community has been appreciating the ease it brings in given the asynchronous nature of the language. Angular has adopted it as a core library, React-redux uses it. It's safe to bet that the javascript implementation, RxJS if used in the right way can help in many ways.

3:00PM - 3:45PM
Room: 135

Everything Is Broken, and It's OK

John Sawers

Audience: All | programming in general, daily life, bugs, errors, basics

It can be discouraging to look at broken code all day, but that's what we do. It's tempting to think that once we get more experience this won't happen any more. But it does, no matter our level of experience.

The reason for this is the almost invisible process of learning. As we learn more we make the hard problems easy and find new hard problems. This process continues our entire career; things are always broken, and it's always hard to fix it.

But it's OK. If we take the time to notice the things we're learning and to celebrate the times we've leveled up, we can actually relax and enjoy this process.

3:00PM - 3:45PM
Room: 221

Common Patterns & Pitfalls in Multi-Threading (Asynchronous) Software

Andy Klapper

Audience: All | design, advanced, Asynchronous

Modern software needs to be multi-threaded to take advantage of the increasing number of CPUs per processor. However, multi-threaded software comes with its own additional set of unique bugs and pitfalls. Because the timing between threads isn't deterministic, the interactions between threads, without taking the proper precautions, is also nondeterministic which leads to bugs that happen seemingly randomly. This talk will introduce the core concepts of multi-threaded programming along with the most important design patterns, tricks and pitfalls that you should be aware of if you want to avoid the dreaded randomized bug.

3:00PM - 3:45PM
Room: 329

Internet For All

Aaron E-J, Jamie Guerin, Thomas Grzybowski, Jim Drawe

Audience: All | workshop, advanced, basics, networking

What would a cooperatively run internet, built by the community, for the community, that is fast, private, neutral, and innovative, look like? Join us in shaping the network *we* want.

The first part of this workshop will be an informative overview of the current state of internet in Western Mass and what options there are in structuring the system (municipal, private cooperative, nonprofit corporation). The second part will be a brainstorming session on things you would like to see in the area and ways of making this happen.

This workshop will hopefully be informative to both beginners and veterans in technology. We definitely want both groups, as well as members of the public outside the web development industry, to be at the workshop. This will make the brainstorming more fruitful. Additionally, the workshop is just a way of having a face-to-face discussion and meeting new people; you can join the project and continue the discussion on our listserve and Facebook page:

**Listserve:** https://lists.riseup.net/www/info/internet-for-all
**Facebook:** https://www.facebook.com/groups/TheInternetIsForAll/
**Website with more information:** https://otherrealm.org/internet-for-all/

####These are the goals that the currently active community members came up with and hope to achieve:
**Fast** (broadband quality connectivity)
**Reliable** (robust and neutral, not subject to disruptions or throttling)
**Private** (meaning ensured privacy)
**Our Control** (meaning that other institutions cannot impose control over functionality because it is a structure which is owned, understood and controlled by those who use it)
**Empowerment for a more informed society** (providing people the tools necessary to make informed decisions and the ability to use them to contribute to society productively)

Online contact and registration forms from Wufoo.