Talks
Events

Strange Loop 2019

Talks

A better story for Kubernetes secrets

Secrets are a key pillar of Kubernetes, but anyone with access to etcd can all the plaintext values! Attendees will learn techniques for securing Kubernetes secrets including encryption, KMS plugins, and tools like HashiCorp Vault, and the trad...

Seth Vargo

Kubernetes

Computer Vision and NLP for Multi-Task Fashion Modeling

Shoprunner aggregates millions of products from 140 retailers which represent thousands of brands. In order to make these products findable and searchable by users it is important for Shoprunner to be able to standardize the attributes (style, col...

Michael Sugimura

Machine Learning

Alda's dynamic relationship with Clojure

Alda is a music programming language that provides a way to describe a musical composition as a text document. Its syntax is easy to use and well-suited for both musicians with little-to-no programming knowledge and programmers who lack music theo...

Dave Yarwood

Clojure

Performance Matters

Performance clearly matters to users. For example, the most common software update on the AppStore is "Bug fixes and performance enhancements." Now that Moore's Law has ended, programmers have to work hard to get high performance for their applica...

Emery Berger

Behind The New York Times Crossword

The New York Times Crossword is serious business. Operated like a startup within the company, the NYT Games Team works tirelessly to keep our 500,000+ subscribers happily solving while driving significant revenue to support great journalism. With ...

Darren McCleary

Safety in Chaos: Forming Realistic Failure Hypotheses

Subjecting systems to failures is supposed to increase confidence in their stability. But why? How do you form failure hypotheses? How do you reason about their safety? Why should your organization listen to you and invest in testing your failure ...

Subbu Allamaraju

Formal Specification and Taming Other People's Tech

Formal specifications are not just for academics and have applications way beyond checking algorithms like Paxos and Raft. Join us for a tour of using formal specifications for every day system design. If you've ever configured a load balancer or ...

Marianne Bellotti

Automating Operations of a Global CDN

Aspects of the Netflix growth story are very visible - the transition from physical media delivery to digital streaming, or from a domestic focus to a global one. However, there are some transitions that may be less noticeable. One example of t...

Robert Fernandes

Declarative APIs in an Imperative World

Declarative UI frameworks have taken over the JavaScript landscape. Which is great, because making assumptions about your application's state is a source of pain, frustration, and bugs. But what happens when you need to glue together imperative AP...

Tilde Thurium

ASTRIAGraph: Monitoring Global Traffic in Space!

ASTRIAGraph: Toward an open, transparent, and crowdsourced space traffic and environment monitoring and awareness system The US department of defense tracks approximately 26000 resident space objects (RSOs) ranging from the size of a softball t...

Moriba Jah

How to build with data trust and privacy as a baseline

Tim Berners-Lee recently published his Contract for the Web with a core principle stating we must "Respect consumers' privacy and personal data so people are in control of their lives online." Noble's talk explores tactical approaches to be goo...

Noble Ackerson

Dive into Streams with Brooklin

Although LinkedIn data continues to grow rapidly over the years, scaling up to handle the increasing data volume has not been the only challenge in streaming data in near real-time. Supporting the proliferation of new data systems has become yet a...

Celia Kung

Beyond traces: the insights in trace aggregates

The value proposition for distributed tracing is well-understood: assembling and visualizing end-to-end transactions helps to identify latency bottlenecks and provides a head-start on problem diagnosis. However, traditional tracing practices enabl...

Daniela Miao

Watch the Watcher: Facial-Recognition& Police Oversight

Increased state use of facial recognition technology threatens to increase the power dynamic between the state and disenfranchised communities. However, what happens when individuals use facial recognition to watch the watchers? OpenOversight is a...

Eileen McFarland

Why do tree ensembles work?

Ensembles of decision trees (e.g., the random forest and AdaBoost algorithms) are powerful and well-known methods of classification and regression. This talk will survey work aimed at understanding the statistical properties of decision tree ensem...

Joe Ross

How to Fix AI: Solutions to ML Bias (And Why They Don't Matter)

Bias in machine learning is a Problem. This is common knowledge for many of us now, and yet our algorithms continue to operate unfairly in the real world, perpetuating structural inequality along lines of class and color. After all, "better traini...

Joyce Xu

Machine Learning

#lang wishful thinking

What might solving a real production problem in a language specifically designed for building languages that cooperate look like? Racket lets you program by fusing multiple DSLs together, reshaping and moulding your language to fit the domain, put...

Vlad Kozin

Explainable AI: the apex of human and machine learning

Black Box AI technologies like Deep Learning have seen great success in domains like ad delivery, speech recognition, and image classification; and have even defeated the world's best human players in Go, Starcraft, and DOTA. As a result, adoption...

Baxter Eaves

Machine Learning

Observability: Superpowers for Developers

Who wants to spend time dreaming about the ability to leap tall buildings with a single bound, when we can recast stories we live day to day as powers of our own... and improve our own lives in a practical way? When observability is folded into th...

Christine Yen

Beyond Alt-Text: Trends in Online Accessibility

If you're like the 2016 version of me, then you think you have a decent handle on web accessibility. You put alt attributes on all your images (though you don't give much thought to the actual text) and you make sure your sites can be used with a ...

Ian Forrest

Building an Open Source Artificial Pancreas

Have you ever thought about what open source software or hardware could achieve? What if it could help improve people's lives by solving some of their health problems? After the medical tech industry kept promising a system to help automaticall...

Sarah Withee

Better Integration Tests for Performance Monitoring

In late 2017, Slack's largest customers were plagued with relentless performance-related outages. Our monolithic, spaghetti codebase was increasingly difficult to reason about; small, innocuous changes might accidentally cause a cascade of regress...

Maude Lemaire

Testing

Improving law interpretability using NLP

The process of legal reasoning is heavily reliant on information stored in text, but while legal texts are generally easily accessible, their interpretation often isn't straight forward, making the understanding of the law effectively inaccessible...

Serena Peruzzo

Rhapsody in Zero Knowledge: Proving Without Revealing

What does it mean to prove something? Propositional logic requires we reveal propositions and then prove them true, but what if it were possible to create proofs which reveal nothing but their own validity? This is the core idea behind the emergen...

Tony Arcieri

Realtime Hybrid Reinforcement Learning at Scale

Next best action (NBA) is a technique that takes unique user history and characteristics into consideration and recommends the next actions that help the customer progressing towards business goals as quickly and smoothly as possible. It is not ea...

Kexin Xie, Yuxi Zhang

Riding the stream processing wave

At LinkedIn, we run several thousands of stream processing applications which, coupled with our scale, has exposed us to some unique challenges. We will talk about the 3 kinds of applications that have made the most impact on our stream processing...

Samarth Shetty

Zipline - A Declarative Feature Engineering Library

Zipline is Airbnb's data management platform specifically designed for ML use cases. Previously, ML practitioners at Airbnb spent roughly 60% of their time on collecting and writing transformations for machine learning tasks. Zipline reduces this ...

Nikhil Simha

CSS Algorithms

Wait...CSS algorithms? Can one really write algorithms in CSS? Absolutely. This talk is all about CSS algorithms: what they are, how to write them, and the potential impacts of a word like "algorithm" when it comes to both the CSS in your code-...

Lara Schenck

CSS

Unison: a new distributed programming language

Unison is an open source functional programming language with special support for building distributed, elastic systems. It began as an experiment: rethink all aspects of the programming experience, including the core language, runtime, tooling, a...

Paul Chiusano

Building Haskell Programs with Fused Effects

Haskell is a purely functional programming language: by default, Haskell functions do not cause side effects such as system I/O, nondeterminism, or exception handling. As such, Haskell programs are generally expressed in terms of monad transformer...

Patrick Thomson

Haskell

Building a Unified Cancer Immunotherapy Data Library

The introduction of immunotherapies has revolutionized the treatment of cancer and ushered in a corresponding explosion of research into cancer, the immune system, and their interaction. In September 2018, there were 3,394 Cancer Immunotherapy age...

Lacey Kitch, Ben Kamphaus

The Idea Becomes a Machine That Makes the Art That...

...Makes a Machine That Makes the Art Sol LeWitt was a prolific American artist credited with founding Conceptual Art and Minimalism. This talk is inspired by his series of participatory, conceptual art called, "Wall Drawings". The Wall Drawing...

Christine Stavridis, Jonathan King

Privacy Governance & Explainability in ML/AI

Since the General Data Protection Regulation (GDPR) went into effect in May 2018, matters of data privacy have grown from minor organizational adjustments to enterprise-level initiatives with impact on innovation and day-to-day operations alike. W...

Jared Maslin

Machine Learning

¡Escuincla babosa! A Python Deep Learning Telenovela

Telenovelas are beloved for their over the top drama and intricate plot twists. In this talk, we'll review popular telenovelas to synthesize a typical telenovela arc and use it to train a deep learning model. What would a telenovela script look...

Lorena Mesa

Machine Learning

Python

Recreating forgotten programming languages, for art!

The early beginnings of computer graphics in the 1960s saw the birth of a number programming languages that were created specifically for making animations and graphics. Almost all of them are now obsolete and mostly forgotten. However, back then,...

Sher Minn Chong

Empowering people to build a digital bank

We are going to talk about how we built, maintain and scale our microservices architecture. We are a fast-growing digital bank with a lot of challenges regarding scalability, operability and reliability and we would like to present a structured ta...

Riad Vargas, Eric Yoshimura

Myths and Metaphors of Open Source

Open Source Software (OSS) is built on a rich history of myths and metaphors. This talk will examine these myths and metaphors, and how physical metaphors can lead us astray in a digital world. It will also explain why Open Source Software is not ...

Daniel Compton

RGB to XYZ: The Science and History of Color

Color is a fascinating subject. It is both incredibly subjective (ie. what makes a painting beautiful) and perfectly scientific (ie. wavelengths of light) at the same time. This talk will be a deep dive into the history and science of color and th...

John Austin

Community Driven Development

As developers who want to lend our skills to support organizations fighting for social justice, how do we build effective, impactful collaborations with organizations and make the resulting open source projects sustainable? Over two years and 1,06...

Christine Zagrobelny

Pattern Matching @ Scale Using Finite State Machine

Working with data often means trying to locate data that fits patterns, akin to finding a needle in a haystack. When we add big data from non homogenous sources to the mix, this problem becomes exponentially complex. One of the use cases at Netfli...

Ajit Koti, Rashmi Shamprasad

Tweet My Wedding Dress

Inspired by a love of rainbows and silly tech projects, I decided to make my own first wearable tech - a wedding dress full of lights that could be controlled by tweets from my friends and family! This talk will go over the tech I used (suitabl...

Jo Franchetti

Can Androids Conceive of Electric Sheep

What began as a hackathon project turned into a minor obsession... A few years ago, I wrote a script that turns a photo into an animation of a hand drawing the photo. At first it was just a fun hack but as I ironed out the perfections, I encoun...

Kwame Thomison

Temporal Databases for Streaming Architectures

Time is intrinsic to information and yet it is usually an afterthought in database designs. We present Crux, a general purpose open source document database with bitemporal graph queries. This talk will explore the journey of how Crux was conce...

Jon Pither, Jeremy Taylor

Databases

Minimalist Piano Forever

French composer Erik Satie was the forefather of avant-garde music, the founder of a one-man occult sect, and the inventor of entirely new genres for his hauntingly repetitive, minimalist piano works. Personally, I could listen to his "Gnossiennes...

Mouse Reeve

Federated learning: private distributed ML

Federated learning is a way to do machine learning when training data is partitioned between nodes that are either unable or unwilling to share it. The nodes can be embedded devices, smartphones or even legal entitities like companies or countr...

Mike Lee Williams

Machine Learning

How to teach programming (and other things)?

Everyone should learn programming, right? Yes! But how... Should we allow children to explore and learn about syntax on their own, or should we drill programming like we rote memorize the table of multiplication or German grammatical cases? Felien...

Felienne Hermans

Ruby on the Apple II: Adventures in Retro Programming

The minimum system requirements for PowerPoint 2019 are 4 GB of RAM and a 1.6 GHz CPU. The system requirements for this talk are a few kilobytes of RAM, a 5 1/4" floppy disk drive, and a 30 year old computer. With an 8-bit CPU running at 1 mega...

Colin Fulton

Ruby

Digital and Social Resilience through the NYC Mesh

NYC Mesh is a community-run mesh network that helps over three-hundred homes connect to high-speed Internet; making it one of the largest mesh networks in the world. We work with anyone interested in reclaiming ownership over their Internet, but s...

Michael Donatz, Jillian Murphy

Makings of a Modern ACID Compliant Distributed Database

There's plenty of distributed databases on the market these days. There's only a few that are both distributed and provide ACID guarantees. In this talk, I'll be shedding light on some of the more interesting aspects of the internal design of Faun...

Attila Szegedi

Databases

Meander: Declarative Explorations at the Limits of FP

As functional programmers we love to pay lip service to declarative data transformation. Yet this allegiance rarely plays out in our actual code. Data transforming combinators (map, filter, reduce, etc) offer significant expressive power over manu...

Jimmy Miller

Functional Programming

Parser Parser Combinators for Program Transformation

Multi-language tool support for syntax transformation is hard due to heterogeneous representations in syntax and abstract syntax trees (ASTs). Regex-based search-and-replace falls short of recognizing syntax that fundamentally delineates tree data...

Rijnard van Tonder

Networking and Go: An Engineer's Journey

My foray into Go began a few years ago when I started working at DigitalOcean. While building an abstraction layer on top of Kubernetes and familiarizing myself with the language, I began to love it. Syntactically simple, with amazing concurrency ...

Sneha Inguva

Go

Jagged, ragged, awkward arrays

Data processing languages, such as SQL, R, MATLAB, and Numpy/Pandas, implicitly loop over identically-typed objects ("rows") of a dataset ("table"). This makes for a succinct syntax in an interactive environment, but what do you do if your table d...

Jim Pivarski

Probabilistic scripts for automating common-sense tasks

As engineers, we love automating tedious tasks. But when those tasks require common-sense reasoning, automation can be difficult. Consider, for example, cleaning a messy dataset-full of typos, NULL values, numbers in the wrong units, and other pro...

Alexander Lew

Finding bugs without running or even looking at code

What if you could find complex bugs in systems without ever having looked at any of the code, without running the code, without cloning the code, or even knowing what language the code is written in or where its git repo lives? What if you could v...

Jay Parlar

Deterministic Docker Images with Go Microservices

At Samsara, we continuously deploy more than a hundred different microservices, all of which we wanted to do as easily and automatically as possible. We wanted to make this even better by bringing our deploy times to under 20 minutes while minimiz...

Jon San Miguel

Docker

Securing cloud applications and their credentials

With the rise of containerized cloud-based infrastructure, security in these architectures has been an area that has been often deferred to developers and "shadow IT" because the tools and technologies used previously have have not been as quick t...

Srdjan Grubor

How not to read the room: Creating wearables with ML

I'm an introvert. This can be a bit unfortunate, when you are a person that enjoys spending a lot of free time creating fashion things bedazzled with LEDs... only to rarely wear them out in public. In an effort to actually share my weird and wonde...

Stephanie Nemeth

Machine Learning

How Your Company Can Help Sustain Open Source

Would you like your company and co-workers to be giving back to the open source projects you use every day? In this talk, I will present a number of different ways that companies are contributing to open source, and discuss the pros and cons of ea...

Danielle Gellis

Uptime 15,364 days - The Computers of Voyager

The Voyager 1 and Voyager 2 space probes, both launched in 1977, each had a primary objective to explore Jupiter and Saturn. This goal was achieved by 1981. Yet Voyager, NASA's longest running mission, has continued to this day. Both Voyager probe...

Aaron Cummings

Enhancing Angklung Music Rehearsals with Modern Tech

Angklung is a traditional musical instrument from Indonesia. This instrument has a lot of variety in how it is performed; a common format is the orchestral format in which 15-30 players gather to form a team. Playing angklung in this way is fun bu...

Trapsilo Bumi

Compacting the Uncompactable

Programs written in C/C++, can suffer from serious memory fragmentation, leading to low utilization of memory, degraded performance, and application failure due to memory exhaustion. This problem extends to languages like Ruby and Python, where th...

Bobby Powers

Typing the Untyped: Soundness in Gradual Type Systems

Recent years have seen an explosion of gradual type systems and superset languages that add types to previously untyped languages: TypeScript & Flow for Javascript, MyPy and Pyre for Python, Hack and PHP7 for PHP, Sorbet for Ruby, and many more. I...

Ben Weissmann

Complexities of Color in Computing

Most of us don't question the assumptions we make about color and how we implement it in the technology we build, beyond perhaps a quick contrast check. This inattention to color is a grave mistake, as the history of color in computing is vibrant,...

Ellen Wondra

A Robot Poet Goes for a Walk in the Park

Designing complex, dynamic systems that can produce interesting and aesthetically pleasing art is a very hard problem to solve, even when you're just talking about something as focused as a Twitter bot. What happens when you try to make procgen ar...

Em Lazer-Walker

Apache Pulsar and the Legacy of Telegraphy

The Wireless Telegraph was invited in the 1890s and quickly spread to be the dominant method of peer-to-peer communication throughout the 19th century. As a method of communication, the Telegraph allowed for a secure, Intercontinental, high-throug...

Jowanza Joseph

Learning to Love JavaScript

JavaScript is an imperfect programming language. It’s weakly-typed, scoping rules and type coercion can make difficult-to-diagnose bugs, and cross-browser compatibility sometimes feels like a pipe dream. But does it matter? JavaScript is the mo...

Tara Vancil

JavaScript

Functional DevOps in a Dysfunctional World

Nix is a package manager, and a programming language for writing packages in that package manager, that enables reliable and reproducible software development workflows, e.g. a reproducible dev environment, a package that installs correctly every ...

Vaibhav Sagar

How We Tell Stories In Code

If you you ask the experts how to write 'good' software, they will likely emphasize precision and predictability. They may recommend great tools like functional programming, immutability, testing, and type systems - all of which aim to make softwa...

Hannah Howard

New programming constructs for probabilistic AI

What if it were possible to do state-of-the-art AI programming without having to do math? This talk presents novel programming constructs for probabilistic AI that automate and hide difficult mathematical and numerical details from the user. These...

Marco Cusumano-Towner

Everything You Wanted to Know About Distributed Tracing

In the age of microservices, understanding how applications are executing in a highly distributed environment can be complicated. Looking at log files only gives a snapshot of the whole story and looking at a single service in isolation simply doe...

Hungai Kevin Amuhinda

Towards an Open, Reason(ML)able Web

Web technologies today are converging towards two paradigms - static typing and compilation to JavaScript. More than ever before, engineers want sound type systems and elegant language ergonomics while generating performant JS. ReasonML promises t...

Parker Ziegler

JavaScript

InferenceQL: AI for data engineers, without the math

Can we empower data engineers to use AI to explore, monitor, clean, and predict data streams, without having to learn math? InferenceQL is a new open-source AI platform for semi-structured data that is being developed at MIT. InferenceQL users ...

Ulrich Schaechtle

Easy Abstract Interpretation with SPARTA

Using abstract interpretation to build a scalable tool from scratch is a daunting engineering task that generally requires a protracted development effort. To streamline that process, we built (SPARTA)1, a C++ library of components for building hi...

Jez Ng, Arnaud Venet

Better Spotify Playlists through Discrete Optimization

I am a Spotify addict, former DJ, amateur musician, and professional software engineer. I take special pride in making expertly-curated playlists for myself and friends. It takes a lot of time and energy to set the right mood and tone, and even mo...

Cedric Hurst

Assistive Augmentation: Lip Reading with AI

In the US alone, approximately 3% of the population (10 million) are either deaf or have moderate to profound hearing loss. This is 3 times as many people than those in wheelchairs yet reasonable disability accommodations for the deaf or hearing i...

Serg Masis

The strange loop making parasitic insects our friends

The history of ecology and functional programming are intertwined. The Fibonacci sequence, commonly used to illustrate recursion for learners of functional programming, was initially created to model a population of rabbits. In 1935, the entomolog...

Mary Marek-Spartz

Correctness proofs of distributed systems with Isabelle

Testing systems is great, but tests can only explore a finite set of inputs and behaviors. Many real systems, especially distributed systems, have a potentially infinite state space. If you want to be sure that a program does the right thing in al...

Martin Kleppmann

Voice Driven Development: Who needs a keyboard anyway?

As a programmer, being unable to use a keyboard can seem like a career-ending limitation. I was facing that reality a year ago due to Repetitive Strain Injury, when every productive day was a step back for my health. In a futile, last-ditch effort...

Emily Shea