Polyglot Unconference 2015

May 22nd-23rd

Vancouver, Canada


The 4th annual Polyglot Unconference.

Polyglot is a "non-denominational" software development un-conference event that encourages software developers and operators from different stacks, backgrounds and with different opinions to come together for one day of spontaneous sharing, teaching and learning.


Polyglot software development is the practice of utilizing multiple languages, frameworks and stacks to build software.

At the core of the Polyglot Conference is creating an opportunity to celebrate software development diversity and break away from typically language-specific user groups and conferences to come together to talk about the challenges and interests that we all have in common.


What's an "un"-conference?

Also called an "open space", an un-conference is a participant driven conference. Attendees will come together in the morning to propose conference topics and offer to lead and facilitate these talks, discussions, panels, coding dojos, and more. Open space events have an emphasis on spontaneous learning and sharing that differs from traditional conference formats. It's an experience like no other.

Conference Saturday May 23

Open Space

Open-space conferences are spontaneously scheduled 100% attendee driven. Sessions will be proposed, selected and organized at the opening the conference but we encourage attendees to suggest and discuss ideas in advance.

For now, you can use the #polyglotconf hashtag or tweet your ideas @polyglotconf and we will share them with other attendees.


08:00 AMRegistration Starts
08:45Opening and Introduction (Theatre Room C300)
09:15Session Pitching and Voting
10:00Lightning Talks: Learning to Learn
10:30Session 1
11:30Session 2
12:15 PMLunch
01:30Session 3
02:30Session 4
03:30Session 5
04:30Closing Remarks (Theatre Room C300)
05:30Social at Steamworks


There will be a social gathering at Steamworks immediately following the Conference.

Complimentary food and refreshments will be available throughout the night to keep the conversations going.

Conference Tickets

Conference tickets are sold out.


UBC Robson Square Workshops and Conference

800 Robson St (between Hornby St and Howe St) Downtown Vancouver Canada

Enter on "Plaza Level", immediately beside (west of) outdoor Skating Rink. Go downstairs to "Classroom Level". Refer to floor plan.

Steamworks Brew Pub Saturday Afterparty

The Landing, 375 Water St (at Richards St) Downtown Vancouver Canada







The Polyglot Conference is made possible by our generous sponsors and volunteers.

If you are interested in sponsorship opportunities please contact us at sponsors@polyglotconf.com.

Volunteer at the Polyglot Conference

If you are interested in helping out and volunteering at the conference, please contact us at volunteers@polyglotconf.com.

Workshops Friday May 22

Half Day Workshops: Morning 4 hours: 8AM to 12PM


Every week the news around us are full of "scientific" life/business advice. "Coffee is good for you" - "Coffee is bad for you" - "Mozart's music makes you smarter" - "Multitasking makes you stupid" - "Your Late-Night Emails Are Hurting Your Team" - the list goes on and on. In this workshop we will cover the important scientific and statistical concepts you need to understand in order to separate the wheat from the chaff. You will learn how to dissect the information being presented, determine what it claims, and judge the strength of the evidence brought in support of the claims. The content is intended for a wide audience. Technical jargon will be kept to a minimum and explained. No "scary" math. We will use a lot of real-world examples (i.e. actual news stories and scientific studies) to illustrate the concepts and to practice on during the workshop.


  • Knowledge: None. This class is for you if:
    • you've never taken a statistics class (and may be intimidated by topic)
    • you have, but it's been too long and you've never applied it anyway
    • you thought only scientists need to learn statistics
    • you heard "Data Scientist" is a high-prospects job and want to move into the field, but don't know where to start
    • or, you simply want to make better decisions
  • Materials: You may want to bring a laptop, though this is not required.



About Elena

Elena is a computer scientist (B.S., M.S., Ph.D.) with over 8 years experience in a predictive analytics consultancy, doing data analysis, visualization, modeling and simulation, and optimization. She has applied a breadth of computer science techniques to a variety of domains including engineering design, text mining and visualization, contextual advertising, route optimization, strategic portfolio planning, consumer decision making, etc. She has been conducting theoretical and applied research for over 15 years, with a focus on evolutionary computation and optimization. She has won multiple best-paper awards for her publications, awards in algorithm and programming competitions and merit scholarships during her academic studies. Elena has also given many talks and taught a couple of tutorials at international scientific conferences, spoken on data analysis at local meetup groups, designed and recorded software-tutorial screencasts and was a teaching assistant and instructor for graduate level computer science courses.

Half Day Workshops: Afternoon 4 hours: 1PM to 5PM


Beginning with the Observer Pattern, jQuery and Twitter’s Flight.js and Facebook’s Flux Pattern, we will explore several approaches for creating simple and scalable applications in the browser. Along the way, we will learn how to build independent components that communicate with one another using events and explore various patterns for translating data into scalable, modular web applications. We will attempt to not drown in a sea of event soup, learn ways to organize and tame our code and ultimately build simple, clear and reusable modules.


  • Materials: Students should bring a laptop, with Chrome, a text editor and a working node.js environment, including NPM
  • Knowledge: A basic knowledge of Javascript and experience with jQuery

About Keith (@kbingman)

Keith Bingman

Keith has worked as a web developer for almost fifteen years, since he took responsibility for the website at the photo studio where he was working. Recently arrived in Vancouver from Germany, he has been writing Javascript every waking moment at Wantering, a fashion search platform in Vancouver.

Full Day Workshops 8 hours: 8AM to 5PM (1 hour lunch between 12PM and 1PM)


C++ has a reputation of being an experts-only low-level programming language. But this is not the case anymore. C++11 and 14 introduce smart pointers, multi-threading, lambdas, move semantics, scoped enums, const expressions, user-defined literals, and a lot of other new features. The C++ standards committee is shortening the release cycle and modernizing the language.

This workshop is an introduction to new features and best practices of modern C++. We will delve into the core of C++ and all new features introduced in C++11 and C++14. There are two specific aims: to introduce you to C++ with emphasis on modern features and to help you make well-informed decisions when writing C++ code.

On completion of this workshop you should be able to:

  • Write C++ code using the latest language features while following the best practices
  • Identify modern C++ features and techniques
  • Use third-party libraries and frameworks


  • Materials: Bring a laptop with a C++ compiler that supports at least C++11, preferably C++14 (Clang 3.4 (Xcode 6), VS 2015 Preview, GCC 4.9). Install boost and SFML (e.g. brew install boost sfml). Bring your favourite text editor or IDE.
  • Knowledge: Basic programming experience in a C-like language



About Alejandro (@aleph7)

Alejandro Isaza

Alejandro Isaza is a polyglot software developer. He has a M.Sc. in Computing Science from the University of Alberta and bachelor degrees in both computers and physics. He currently works for Venture Media Labs as lead mobile developer. He has been programming in C++ for more than 10 years, using it for a wide variety of applications including physics simulations, AI, low-level networking, mobile games and music.


Modern application testing faces so many options for frontend, backend, and integration tests that developers can be overwhelmed in a sea of choices and technologies. As a take on "full-stack" development, we will explore full-stack testing -- using a single stack of core techniques and libraries that offer a cogent, minimal way to "test all the things" in your application.

Our workshop will explore what types of tests you should write and how to write them, with a focus on:

  • Backend Tests: Server code, network payloads.
  • Frontend Tests: UI/UX and browser code.
  • Integration Tests: Automating end-to-end user interactions with the full application.

We will walk through unified test framework with Mocha / Chai / Sinon.JS and complete targeted test exercises while learning practical guidelines and best practices. If time permits, we will cover advanced topics like code coverage, CI, etc.

If you have a web application and are wondering, "how do I start testing this?", then this workshop is for you. And even if you have a backend in a non-JavaScript language, we'll cover principles, techniques, and technologies that will apply to backends written in any language.


Please follow the installation and verification instructions at: full-stack-testing.formidablelabs.com/#installation. You'll want to walk into the workshop with:

  • A laptop with a good text editor and a web browser (preferably Chrome).
  • Software: Git, Node.js/NPM, and Java. (Per installation guide).
  • Project: Clone the repository github.com/FormidableLabs/full-stack-testing and verify. (Per installation guide).

Attendees should be familiar with basic JavaScript programming and hopefully jQuery. Test development experience (unit, integration) in any language is useful, but not necessary.



About Ryan (@ryan_roemer)

Ryan Roemer

Ryan is the CTO and co-founder of Formidable Labs, a boutique development shop in (the delightfully weird neighborhood of) Fremont in Seattle, WA. He helps lead the Seattle Node.js Meetup, curates the Server Day for Cascadia JSFest 2015, and is the author of "Backbone.js Testing", a comprehensive test development guide for modern Backbone.js web applications.

Ryan architects full-stack applications and backend Node.js services, and leads frontend development groups ranging from small startups to Fortune 500 engineering teams. Previously, Ryan was a distributed systems engineer, and in his deep, dark past was a patent attorney, although it has been a long time since he has put on his "lawyer" hat.


Machine learning endeavors to find patterns in data algorithmically, arguably through a combination of: (mostly intuitive) basic statistical principles, intensive (and often hacky) application-specific optimization, and lots of (sometimes indecipherable) mathematical notation.

This workshop takes a simplifying approach to the most basic principles of supervised learning (by example of linear regression), unsupervised learning (by example of k-means clustering), and reinforcement learning (by example of Q-learning), while surveying the types of extensions that lead to more complex approaches like support vector machines, Gaussian mixture models, and Markov decision processes.

In doing so, we will use the abstractions provided by Apache Spark (via the Scala API) to allow for rapid development and prototyping in an interactive shell, while simultaneously maintaining a clear path forward to the scalability afforded by distributed computing.


  • Materials: laptop, lightweight desktop, or portable supercomputer running Vagrant and VirtualBox.
  • Knowledge: Basic familiarity with Scala is useful but is definitely not required, especially if you are cool with the general spirit of functional programming and/or map-reduce (like, viewing functions as first-class objects).


Maintained as this gist.

About Eric (@ericihsu)

Eric Hsu

Eric Hsu is a software engineer with about 15 years of commerical research, academic, and industrial experience in studying and applying artificial intelligence and machine learning.


Web apps and APIs are hugely important parts of modern life, but not every technique for building them is equally effective. With the right toolchain, correctness needn't require exhaustive test cases, scaling-out doesn't have to imply redesign, and failures can be handled gracefully with hardly any error-handling code.

Let's take a deep dive into a technology stack that is designed from the ground up for productivity, scalability, correctness and fault tolerance, and see how much can be achieved with surprisingly little code.


  • Materials: Laptop (4GB of RAM minimum, more is better), 1.7+ JDK already installed and working (i.e. type "javac" from the command prompt, it works), SBT 0.13.8 installed and working with a "hello world" project (instructions), Your favourite Scala IDE/Editor, cURL or equivalent for HTTP testing
  • Knowledge: Basics of Scala, specific language features will be covered within the course. For those wanting a leg up see here and here.


Syllabus on Google Drive

About Alex (@alexcruise)

Alex Cruise

I've been building software for a disturbingly long time, and felt like I knew what I was doing until I met Scala and realized how much of the world of computer science I'd been missing.

Over the past six years, I've used Scala for all my serious development work, and have accumulated a tiny bit of wisdom and a lot of humility to go with my battle scars and war stories.


Docker is an open-source engine that automates the deployment of any application as a lightweight, portable, self-sufficient container that will run virtually anywhere. Docker containers are both hardware-agnostic and platform-agnostic. This means that they can run anywhere, from your laptop to the largest servers and everything in between - and they don't require that you use a particular language, framework or packaging system. That makes them great building blocks for deploying and scaling web apps, databases and backend services without depending on a particular stack or provider.

Once you have a lot of containers running, you need to keep track of them, keep them healthy and make sure they can find each other. Kubernetes (http://kubernetes.io) is an open source cluster manager and scheduler that simplifies deploying and managing the containers that make up your application. You declare the desired state and Kubernetes does the work to keep it that way. It assigns resources, recovers from failures, and scales easily.

This full day lab will cover Docker and Kubernetes in depth: from the basics to advanced use cases. Students will progress from introductory exercises on individual containers to creating, monitoring and troubleshooting larger systems with clusters of interlinked containers.

In the morning, we’ll cover the essentials and essence of docker.

In the afternoon, we'll deploy a simple application built with several different containers, and walk through how Kubernetes services allow containers to find each other and communicate over the network. Then we'll scale it up, give new versions of containers a small percentage of traffic, and then do rolling upgrades of all containers to those new versions.

We will be learning via hands-on examples and exercises rather than via lecture.


  • Material:

    Students should come with a laptop, a text editor, a terminal emulator and ssh. The exercises themselves will be performed on cloud vms so no additional software is required.

  • Knowledge:

    Intermediate Unix system administration knowledge and command line skills. If you're not already familiar with Bash and basic Python, please do some self study first. We want you to spend the tutorial day active at the keyboard not listening passively.


Syllabus on Google Drive

About Tavis (@tavisrudd)

Tavis Rudd

I’m one of the organizers of the Polyglot Meetup and Conference. With Brian’s help, I taught a docker workshop at last year’s conference.

About Brian (@briandorsey)

Brian Dorsey

I'm a Developer Advocate on the Google Cloud Developer Relations team. I focus on the open source Kubernetes cluster manager and our Cloud Platform, especially Compute Engine and Cloud Storage. I write sample code and create demos, present at conferences, and create screencasts. Feel free to drop me a note if you have any questions about our APIs.I've taught Python at the University of Washington & spoken at both PyCon US & PyCon Japan. I'm a bit of a Python fan. (understatement) I'm currently learning Go and enjoying it.

Workshop Tickets

Ticket sales are now closed.




Alumni ♥

Conference Participants

Mark your attendance on Lanyrd

Code of Conduct

tl;dr: Be Excellent To Each Other! And please, don’t be a jerk. Read the full policy.