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.
Who ever said payments were complicated/boring?
This will be an introduction into the world of online payments and how to make it fun and enjoyable for your customer. Whether it be on your smartphone or website, we'll show you how you can get setup and accept payments quickly. We'll also show you some cool tricks, tips and best practices and ways to get started. At the end of this expect to be able to make the most fun, enjoyable and seamless shopping cart checkout experience ever.
Justin Woo is a Developer Evangelist at PayPal and has been programming ever since he got his first IBM XT running DOS. He loves writing mobile applications (especially hybrid-HTML5 applications) and wishes everything could be done in LISP. In his spare time he enjoys tinkering around with cool hardware. He’s built a game for Autistic Children, a Robot that can be controlled remotely and even a Kinect game involving tapeworms. He graduated from Purdue University with a degree in Computer Engineering and was previously a Program Manager at Microsoft. He lives with his wife and two wonderful dogs - one of which refuses to admit that he is blind and the other that likes to pretend she's a rabbit. In his spare time he loves playing squash and board games (his favorite being Settlers of Catan). He also grew up in Singapore and so please don't mind his Singlish.
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.
Our markets are multilingual and international. Localizing our software for other languages and markets is no longer an afterthought, delegated to the high priests of the "international" department. Every software engineer is now expected to know the basics of preparing software for translation, Unicode, locales, and so on.This workshop is for the general software engineer, by one of the high priests. It will walk you through the most important concepts and technologies of "international" which you, as a well-rounded software engineer, are now expected to know. There will be plenty of time to dive deep on the topics which are important to you know, be it UTF-8 vs UTF-16 or how to test for translatability.
Jim DeLaHunt is a Vancouver, Canada-based software engineer and consultant in multilingual websites, and a seasoned software developer and manager. He helped found VanGLUG, the Vancouver Globalization and Localization Users Group. He is an active participant in several free software and open data projects, in addition to consulting work with Canadian and US tech companies. He is a regular Unicode conference participant. Earlier, he worked 16 years in Silicon Valley for Adobe Systems. Jim is a licensed paraglider and airplane pilot, and sings tenor with an opera company and a chorus in Vancouver. You can contact Jim at jdlh.com, or @jdlh on Twitter.
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 five 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.
Writing distributed applications requires coordination. ZooKeeper is an open source high-performance coordination service developed at Apache. With ZooKeeper one can use it off-the-shelf to implement consensus, group management, leader election, and presence protocols. This workshop will introduce you to ZooKeeper. You will learn how to setup a development environment and how to program with the ZooKeeper interface. Most of the exercises and demos will be in Java. We’ll also look at available interfaces in other programming languages. Last but not least, you’ll learn how to deploy ZooKeeper in a production environment and what to consider when setting up a high available cluster.
Gunnar Wagenknecht is Director of Engineering at Tasktop where he is responsible for Engineering Services, Operations and Engineering Effectiveness. Before Tasktop he was CTO at AGETO and lead the development and operation of a multi-tenant, worldwide e-commerce platform serving millions of transactions each day. He also is a prolific contributor with many years of experience in the Eclipse Open Source Community where he has recently been awarded with the Lifetime Contribution Award. Apart from software and computers he loves chatting about fishing, diving and other things that matters over a good beer or a glass of wine.
Gunnar is an experienced speaker at large, international conferences. Previous conferences include talks at JavaOne, talks and half & full-day workshops at EclipseCon (North America and Europe), JAX (Germany and UK) and FOSDEM (Belgium), as well as small regional events (main speaker at Java User Groups, sessions at other special topic days).
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.
We all know we should be doing functional design and using a functional programming language since this makes software more reliable and easier to run on multi-core CPUs. We will be going through the mind set required to do functional programming and how it differs from imperative programming. The higher abstraction level will be emphasized.
Ticket prices are $350 for full day workshops and $200 for half day workshops.
Workshop tickets are sold separately from conference tickets.
Get your tickets early, as popular workshops do sell out.
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 (Concourse)|
|09:00||Session Pitching (Concourse)|
|09:45||Lightning Talks: Learning to Learn|
|01:30 PM||Session 3|
|06:00||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.
800 Robson St (between Hornby St and Howe St) Downtown Vancouver Canada
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 firstname.lastname@example.org.
If you are interested in helping out and volunteering at the conference, please contact us at email@example.com.
tl;dr: Be Excellent To Each Other! And please, don’t be a jerk. Read the full policy.