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.
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.
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.
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.
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:
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:
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.
Please follow the installation and verification instructions at: full-stack-testing.formidablelabs.com/#installation. You'll want to walk into the workshop with:
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.
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.
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.
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.
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.
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.
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.
Ticket sales are now closed.
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.
|08:00 AM||Registration Starts|
|08:45||Opening and Introduction (Theatre Room C300)|
|09:15||Session Pitching and Voting|
|10:00||Lightning Talks: Learning to Learn|
|04:30||Closing Remarks (Theatre Room C300)|
|05:30||Social 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.
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 email@example.com.
If you are interested in helping out and volunteering at the conference, please contact us at firstname.lastname@example.org.
tl;dr: Be Excellent To Each Other! And please, don’t be a jerk. Read the full policy.