Monday, November 9th
10:00amA Gentle Guide to Genetic Algorithms
This talk will be a practical introduction to the algorithms at the intersection of biology and machine learning, genetic algorithms. A small segment of the talk will cover the history of genetic algorithms and the circumstances of their birth. The rest of the talk will cover an implementation of a GA used to create seating assignments in one row of seating at a conference room and the pros and cons of these algorithms based on the results of this use case. This talk is aimed data scientists, computer science researchers, and machine learning practitioners looking to learn something new about a topic they may have heard about and to those interested in learning about an interesting algorithm in the field of machine learning. The talk will be a fantastic way to get people thinking and stimulated about an interesting concept in the field using a use case that's close to the conference setting.Data Scientist
Safia is the co-organizer of PyLadies Chicago, the Lead of Mentorship Initiatives at ChickTech Chicago, and the founder at Data Science for America. She's excited about making things fast, using data for social good, reading interesting research papers, and coffee. In her spare time, she enjoys conversations with interesting people, running alongside Lake Michigan, and chocolate.
10:00amModern iOS Applications with Swift
Swift, Apple's successor to Objective-C, opens new avenues for iOS applications. In this talk, The talk will present pains in Objective-C and patterns in swift to resolve them as well as incremental steps you can take to move your team towards a more functional style. The talk will also cover ways to structure your project for maximal modularity and compilation speed. Finally, the talk will discuss testing, deployment, and continuous integration changes that Swift requires.
You should attend this talk if you're interested in adopting Swift for your iOS application. Don't make the same mistakes I did.Staff Engineer
Heath has been developing professionally for iOS since iOS 2.0 (2008), and amateurishly for Android since Android 1.5 Cupcake (2009). He was a consultant for 6 years working on mobile apps for Deloitte, Kaiser Permanente, and Bridgewater Associates, and now is a Staff Engineer leading a team of 6 Swift developers at Jive Software.
11:00amA Brief History of (Logical) Time
Nearly 40 years ago, Leslie Lamport wrote the seminal work "Time, Clocks and the Ordering of Events in a Distributed System". Ever since then academia and industry have been struggling with the implications of this sentence: "In a distributed system, it is sometimes impossible to say that one of two events occurred first."
(Of course, Albert Einstein didn't need Lamport to point that out.)
If the fundamental laws of physics stand in our way, what can we do to track causality?
Among other topics we'll discuss Lamport timestamps, CRDTs, NTP, and databases. Expect the dreaded concept of "eventual consistency" to rear its head. Often.
Attendees are expected to have an inquisitive mind, but no other prerequisites are required. You should not expect to come away with any packaged solutions to your problems, but you'll have a greater awareness of the pitfalls you'll face as distributed systems become the norm in this era of mobile computing, cloud computing, and big data.Software Developer
John Daily has wandered a meandering path through systems and network administration, cyber security, global iOS mobile device management, technical evangelism, and software development. He currently helps develop the Riak NoSQL database for Basho.
He has a passion for pragmatic programming languages such as C, Perl, and Erlang. Beauty is definitely in the eye of the beholder.
11:00amWhere, Ware, and Wear: Connect IQ and the Wearable World
This talk will overview the history of Connect IQ and outline some of the challenges and gambles of making an app system for low resource, use case focused wearable products. It will cover topics of programming languages, virtual machine design, and how monkeys make everything better.Product Achitect
As a product architect at Garmin International, Nicolas designed the Connect IQ app system for Garmin wearables and created the Monkey C programming language. He now serves as the Connect IQ Alpha Monkey, and has been a member of the Evil League of Evil since 2008.
12:00pmThe Next Generation of Software Engineers
A child that wants to become a software engineer today faces a myriad of challenges that were not present 30 years ago. These challenges are discouraging the next generation from pursuing careers in technology. This talk will walk you through the journey of a what it takes to become a software engineer.
We will be breaking down the societal, educational and pop culture influences that steer a child closer or further from a career in technology. We'll examine snapshots of critical moments in the lives of a boy and a girl, starting at age 5 until age 35. We'll spend some time explaining what these trends mean for the technology industry and world culture both today and in the future. If you are not comfortable with our current trajectory, I'll discuss effective ways to change it.
Software is a rewarding and booming field. Come find out what is stopping your child from being a part of it.Software Engineer
Jordan Kalal has developed after-school engineering programs for elementary, middle and high school level students. Her current project is piloting the second semester of curriculum for Tech sHeroes, an after-school program targeted at teaching girls programming skills at Trial Ridge Middle School. She has been working at Cerner for 2 years as a Software Engineer.
12:00pmToolmaking with Syntax Trees
During this session, we'll learn to reason about ASTs to detect good and bad patterns in computer language. To drive this home, we'll build our own tools including custom rules for ESLint.Software Engineer
Technical operations is plagued with an unhealthy infatuation of typically untested, imperative code with a high reliance on shared mutable state using dynamically typed languages such as Ruby, Python, Bash, and - ugh - remember Perl? :)
In an age where building reliable infrastructure to elastically scale applications and services are paramount to business success, we need to start rethinking the infrastructure engineer’s toolkit and guiding principles.
This talk will take a look at applying various declarative and functional techniques to building and automating infrastructure. From functional package management and congruent configuration to declarative cloud provisioning we’ll see just how practical these techniques typically used in functional programming for applications can be used to help build more robust and predictable infrastructures.
While specific code examples will be offered, the emphasis of this talk will be on guiding principles.Software Engineer
Susan is a distributed systems software engineer straddling engineering and operations to help make data and service infrastructure more operationally manageable at scale.
Over the last 16 years Susan has worked on large scale trading systems, multi-tenant service oriented architectures, continuous deployment as well as ""big data"" analytics products. She currently works at Lookout building a service delivery pipeline that delivers verifiable infrastructure using declarative and functional programming approaches.
1:00pmHow to Write a Worthwhile Test
Open a test at random. Answer:
- Why does it exist?
- What is under test?
- How does it explain edge cases?
- What real things does it replace with fake things?
- What can cause the test to fail?
Unless the answers to those questions are obvious, no one has any clue whether the test is worthwhile. But the murkiness of most test code drives teams to ritualize its upkeep. When tests glow red, generous sacrifices are offered until they turn green again. Over time, faith in the Agile Church of Testing has eroded. Dogma that "thou shalt test" now rings hollow.
Epic tomes have been written on the theory of sound testing, but their detached wisdom rarely survives contact with actual projects. Our understanding becomes muddied as we mangle our tests under the pressure to get things working and features out the door.
This talk will clear the waters by presenting a guideline for testing: a set of sensible defaults to be adopted and tweaked for your own projects. Each rule will be easy-to-follow, promote consistency, and backed by deeper reasoning available to anyone who seeks it. By planting a shared guidepost, everyone on a team or in a community—from novices to experts—will be better-equipped to write tests that can be plainly understood by others.Co-Founder
Justin spends most of his time troubleshooting npm, tweeting about flight delays, and foolishly exhorting other people to write tests the same way he does. He helped co-found Test Double, a software agency dedicated to making software that's better for users to use, businesses to own, and developers to work with.
2:00pmAchievement Unlocked: A Better Path to Language Learning
We are all familiar with the standard tedious method of learning new programming languages: "hello world", then some builtin functions, then basic data types, etc, ad naseum. But what if we could turn the process of learning a new language into an addictive game.
In this talk I will introduce you to the make-a-lisp process (the game) and show how its structure enables Charles Coonradt's 5 principles of gamification: defined goals, scorekeeping, frequent feedback, personal choice of methods, and consistent coaching. I hope to convince you that gamification of the learning process, and specifically the make-a-lisp process, is one of the most effective and efficient ways to learn new programming languages. Or at least I hope I will have convinced you to try out the "game".Principal Software Engineer
Joel Martin is a Principal Software Engineer at ViaSat (formerly LonoCloud) and a PhD student at the University of Texas at Arlington. He enjoys taking new and old ideas and combining them in interesting ways. Some of his other projects include noVNC (HTML5 VNC client used in OpenStack), ClojureScript-in-ClojureScript (port of ClojureScript to ClojureScript, clojurescript.net), and Raft.js (JS implementation of the Raft distributed consensus protocol).
2:00pmData Streams on ElasticSearch
Databases were traditionally designed to operate on CRUD apps. With the explosion of data in early 2000s, the whole NoSQL movement was born to allow web-scale CRUD operations.
However with the emergence of the #realtimeweb, database designs find themselves broken yet again. IoT is fundamentally transforming the data processing needs from hours and minutes to mini and μ-second scales.
Appbase.io is building the first streaming DB, for the most performance intensive data processing needs. The role of data and queries is fundamentally reversed here - Queries are always indexed and data is treated as a fast changing incoming stream to be matched against queries.
In this talk, I would like to introduce the concept of streaming DBs, and go over an open-source implementation where we have integrated this interface into ElasticSearch. We are able to scale this to over 100,000 documents per second over just 12 c4.2xlarge EC2 instances. I would also like to cover the use-cases we are seeing in IoT, e-commerce, travel, consumer apps space; and how "streaming" will influence database designs over the coming years.
3:00pmThe Fun of Connection: Abstraction for Adaptive Data Systems
In the new Cooper-Hewitt museum in NYC there was a display about the Free Universal Construction Kit, an abstraction around most popular building toys like Lego, Tinkertoy, K'nex, and Lincoln Logs, made possible by 3D printing.
This incredible toy can help inspire even the most advanced developers for how we think about abstractions in our applications, building technology agnostic services. We'll talk about POSIX stdin/stdout, Google's protobufs, JSON, and other data serialization formats and protocols.
This talk will be somewhat high level. While we'll write some code, it's about getting to the core of computer science: thinking abstractly as opposed to digging into a single specific technology.
This talk should appeal to developers of any ability. Many of us grew up in systems of construction toys, building cities merging our Lego and our Fishertechnik. As adults we live in a similar world, often building systems in walled gardens and needing new ways to break down the barriers and rethink our perspectives on programming.Data Engineer
Chet Mancini is a data engineer at Intent Media, Inc in NYC, where he works on the data science team to store and process terabytes of web travel data to build predictive models of shopper behavior. He enjoys functional programming, immutable data structures, downhill skiing, and cycling around Brooklyn. Chet has a master’s degree in computer science from Cornell University. You can find him on Twitter and Github under @chetmancini.
3:00pmMeasuring the Performance of Single Page Web Applications
The "onload" event no longer matters. Single Page Applications are a problem when trying to measure page load performance because there aren’t easy ways to tell when a new "page load" has been requested as a result of an intentional user action, or when all of the resource fetches triggered by that action have completed.
Even with requests that are initiated by a user action, not all may fit into the definition of a “page view”. For example, a user typing into a search box that has auto-complete capabilities will often result in network requests, but these requests result in very small amounts of data transfer, happen very frequently, and do not count towards page-views.
The scene is further complicated by the variety of SPA frameworks like AngularJS, Backbone.js, Ember.js and others.
In this talk, we’ll learn about some of the tricks used by boomerang to measure the performance of single page applications, going as far as capturing errors and waterfall information across browsers.
4:00pmYou May Not be a Polyglot, but Your Software Needs to Be
As business needs continue to go global, so have the needs of software applications. You may not speak multiple languages, but your software should. A properly globalized solution is generally achieved by ensuring the appropriate internationalization, localization and translation steps have taken place, however as developers we have misconceptions that make this process more costly and less effective than it needs to be.
Having worked in Engineering, Translation and Localization for over a decade, I have seen first-hand how projects struggle through the Globalization process. I will discuss common misconceptions and I will provide tips to help engineers be better positioned to be successful in these projects.Chapter Leader
Denisse is currently an Engineering Executive at Cerner Corporation. Early in her career Denisse worked as a software engineer focusing on web applications. She has extensive experience with globalization and translation of software systems. Denisse has two daughters and hopes they will one day become programmers.
Have you heard of CoffeeScript? Dart? TypeScript? Have you ever wanted to invent your own programming language and run it in the browser? Well, you can! Write your own compiler! Or a transpiler, or whatever the cool kids are calling them these days. No formal knowledge of compilers is required.
We'll then put it to use by writing a compiler for the greatest programming language of all time: ArnoldC.Front-end Developer
Tuesday, November 10th
10:00amNext-level Web Design with SVG
It can be a struggle to translate the details of a design vision into the browser. Creating bitmap images, icons, and graphics can be time consuming and result in inconsistency and difficulty with managing updates. Scalable vector graphics (SVGs) might be just what you're looking for.
SVGs are now supported on every modern browser and mobile device, and usage is on the upswing, but most people only use them for icons. Most developers and designers don’t realize how powerful and useful SVGs are. From scalable images to full-blown web applications, SVGs fit many needs.
In this session:
Front-end Web Developer
- I will discuss the importance of understanding the capabilities of SVGs and how developers and designers can improve the quality of designs created in the browser.
- Through an understanding of SVG capabilities you will know how each layer of Illustrator is rendered through SVGs in the browser.
- You won’t learn about SVG font icons; you WILL learn about how to efficiently export SVGs so your team won’t curse your name. With SVGs you can render each design layer directly in the browser.
- Apply filters, lighting effects, gaussian blur, and animations, all directly through the use of this file format. Get exactly what you want in the browser.
- Plus a few of my favorite tips/tricks about SVG elements and attributes.
10:00amReliable Concurrency Without the Actor Model
The challenges of concurrent programming are well known. Commonly the actor model and Erlang are proposed as the solution. Unaddressed, however, is what to do when your problem doesn't fit the actor model. What happens if you are working on streaming data, or if you need to share memory? In this talk we will explore how to achieve safe concurrency without queues, messages, or multiple processes; using software transactional memory.Co-Founder
Andrew is a co-founder of Edge Up Sports, a company applying human behavior modeling to fantasy football. At Edge Up Sports, he has deployed large architectures entirely in functional languages like Haskell. Additionally, he speaks regularly on functional programming and the Haskell programming language.
Development practices for distributed systems promise the benefits of both flexibility and velocity, but confidence enables those benefits. As these systems evolve, they exceed the ability of any single human to mentally model. The future of software is complex, increasingly opaque even to the engineers building it. We can no longer rely on an architect to reason about these systems. If we can’t reason about them, how can we have confidence in them?
An empirical, systems-based approach is needed to build confidence. We learn about the behavior of a distributed system by observing and experimenting on the system as it runs in production. We call this Chaos Engineering.
Chaos Engineering is a powerful practice that is already changing how software is designed and engineered at some of the largest-scale operations in the world. Where other practices address velocity and flexibility, Chaos specifically tackles systemic uncertainty in these distributed systems. The Principles of Chaos provide confidence to innovate quickly at massive scales and give customers the high quality experiences they deserve.
Engineers and architects will walk away from this talk with an appreciation for complexity in distributed systems, and excited about this new approach to building confidence on top of that complexity.Engineering Manager
Casey is the Traffic and Chaos Engineering Manager at Netflix, with a mission to fortify availability in anticipation of failures. We respond to devastating outages in stride while preserving the quality of service for our customers. As an Executive Manager, Senior Architect, and Software Engineer, Casey has managed teams to tackle Big Data, architect solutions to difficult problems, and train others to do the same. He leverages experience with distributed systems, artificial intelligence, translating novel algorithms and academia into working models, and selling a 'vision of the possible' to clients and colleagues alike. For fun, he models human behavior using personality profiles in Ruby, Erlang, Prolog, and Scala.
11:00amSystem Images Are Nothing Like Heirloom Sourdough Starters
Virtual machine images shouldn't be handed down from generation to generation like a much beloved sourdough starter. Learn why to build deployment ready VM images with every check-in and learn how to do it across most virtualization platforms using Jenkins, Packer, and more. After this talk you'll have tools to build images that run seamlessly on your laptop and in production.
12:00pmSecuring Your Company's Data: Encryption, Deleting and Other Best Practices
If your company is storing customer information, then it's a safe bet that some hacker will (eventually) try to steal it. Without being security experts ourselves, how can we secure our organizations - and our customer data? Using Sony, OPM and other well known hacks as examples, we'll examine how we can improve security at our own organizations.
This talk is designed for developers and entrepreneurs who wish to learn about basic best practices for data security. We'll focus on security tools that are relatively affordable and easy to implement. Shevinsky will also discuss the political and social reasons why organizations often fail at security.CEO
Elissa Shevinsky is a serial entrepreneur and CEO of Jekudo Privacy Company. Elissa has been building successful startups since she joined Geekcorps as an R&D intern in 2000. She learned how to build software at Everyday Health (filed for IPO in 2010) in 2003. In 2008 she started her first company.
Editor of “Lean Out” published by OR Books, Shevinsky is frequently quoted in the press on Silicon Valley and tech culture.
12:00pmPerformance Testing for Modern Apps
The performance of your application affects your business more than you might think. Top engineering organizations think of performance not as a nice-to-have, but as a crucial feature of their product. Unfortunately, most engineering teams do not regularly test the performance and scalability of their infrastructure. Dustin Whittle shares the latest techniques and tools for performance testing modern web and mobile applications. Join this session and learn how to capacity plan and evaluate performance and the scalability of the server-side through Siege, Bees with Machine Guns, and Locust.io. We will dive into modern performance testing on the client-side and how to leverage navigation/resource timing apis and tools like Google PageSpeed and SiteSpeed.io to understand the real world performance of your users. We will cover how HTTP2 and modern browsers change the game for performance optimization with new best practices. Take back an understanding of how to automate performance and load testing and evaluate the impact it has on performance and your business.Developer Evangelist
Dustin Whittle is a Developer Evangelist at AppDynamics where he focuses on helping organizations manage application performance. Before joining AppDynamics, Dustin was CTO at Kwarter, a consultant at SensioLabs, and developer evangelist at Yahoo!. He has experience building and leading engineering teams and working with developers and partners to drive platform adoption. When Dustin isn’t working he enjoys flying, sailing, diving, golfing, and traveling around the world. Find out more at dustinwhittle.com or follow him @dustinwhittle.
1:00pmAll You Need Is Fold
(Fold, fold, fold)
(Fold, fold, fold)
(Fold, fold, fold)
"There's nothing you can do that can't be done
Nothing you can sing that can't be sung
Nothing you can say but you can learn how to play the game
There's nothing you can make that can't be made
No one you can save that can't be saved
Nothing you can do but you can learn to be you in time
All you need is fold
All you need is fold
All you need is fold, fold
Fold is all you need
Using the work of Dr. Graham Hutton as our guide, we'll look at how to satisfy all of your list processing needs with one function, fold.
First we'll start off simple by finding the length of a list, then we'll reverse a list, followed by and-ing and or-ing a list; all using fold.
Next we'll look at implementing the higher order functions of: map, filter, and zip.
Last we'll look at fold in action by using it on the Coin Changer kata.
You'll never look at fold the same way again.Software Developer
Mike Harris is a software craftsman and life long learner, who is constantly searching for the best tools for the job. Mike enjoys learning new program languages, tools, and techniques which he uses in his day-to-day work as a Software Developer at Robert W. Baird & Co. Mike blogs at http://comp-phil.blogspot.com/
Abstract coming soonData Scientist
Juliet is a Data Scientist at Cloudera, and contributor/committer/maintainer for the Sparkling Pandas project. Her commercial applications of data science include developing predictive maintenance models for oil & gas pipelines at Deep Signal, and designing/building a platform for real-time model application, data storage, and model building at WibiData. Juliet was the technical editor for Learning Spark by Karau et al. and Advanced Analytics with Spark by Ryza et al. She holds an MS in Applied Mathematics from University of Colorado, Boulder and graduated Phi Beta Kappa from Reed College with a BA in Math-Physics.
2:00pmKeep Calm, it's Reverse Engineering Time
As developers, sometimes we have to investigate a bug, or add a new feature in a codebase that is completely new to us. Sometimes it can be even developed in technology that we are unfamiliar with, often with no one available to ask anything about that code. How can we do this?
In this talk I would like to share some ideas, tips and tools related to reverse engineering of various code components (server side, frontend, etc) – that can help developers to successfully overcome this challenge.
2:00pmWriting Custom In-browser Tools for Smarter WebApp Development
Modern browsers include their own flavor of development tools (Chrome DevTools, Firebug, IE's Developer Tools, etc.) that are excellent for speeding up webapp development and debugging common issues. But what if you had custom, in-browser tools that were tailored for developing and debugging your application?
Every webapp has concerns of its own that generic tools don't address. Perhaps you've dug through custom HTML attributes for entity IDs to diagnose a database issue. Or maybe you've searched the codebase for CSS class names in hope of finding some clue as to what code generated a piece of HTML.
Outside of the office, Lyle is a recreational snowboarder and an avid traveler with a hunger for experiencing new cultures.
3:00pmTelling Stories with Data Visualization
Data visualization lives in the intersection of art and science. Designing compelling visuals reveals information about our systems, and in turn allows us to ask new and more interesting questions. However knowing how to find the stories in our data is hard and knowing how to tell those story visually is even harder.
In this talk we'll explore some historical data visualization techniques and best practices and show how we can use modern tools to implement them.
Attendees will leave with a better understanding of data visualization and some practical examples of how to utilize this knowledge.Software Developer
3:00pmWhat's in a Name? Fast Fuzzy String Matching
Searching for similar strings is harder than it sounds. Variations in formatting and misspellings make exact matches impossible and there are many different similarity functions to choose from. This talk is about the development of a fast custom index for fuzzy name matching.
This is a technical talk that will interest anyone who wants to see an example of bit level optimization being used in practice. Name matching has applications in record linkage, de-duplication, and fraud detection. While it doesn’t shy away from technical details, you don’t need to know much about bitwise algorithms in advance.Seth Verrinder & Kyle PutnamSoftware Developers
Kyle and Seth are both software developers who work together at DST in Kansas City.
Kyle’s experience includes healthcare, marketing, and financial services. His interests include machine learning, functional programming, and mathematics. In his spare time, he does whatever he wants.
Seth has worked on software for point-of-sale, color management, athletic training, and financial services. His interests include functional programming and finding ways to make software more efficient.
4:00pmTalmudic Maxims to Maximize Your Growth as a Developer
You’ve been programming for a while now. You’re beginning to feel that you’ve got a handle on things but at the same time can’t escape the feeling that you’ve somehow plateaued in your growth as a software developer. In this talk Yitzchok, a rabbinic scholar and software developer, shares the “wisdom of the sages” as practical, actionable advice – strategies and tactics – that you can use to reinvigorate your growth as a software developer.Developer & Rabbi
Yitzchok Willroth is a Talmudic scholar and enterprise web application developer (though seldom at the same time) living in Lakewood, NJ. A start-up veteran and dev bootcamp instructor, he is the founder and organizer of the ShorePHP User Group, co-organizer of the New York PHP User Group, and an active participant in the PHPMentoring initiative. Passionate about clean code and robust application architecture, he is also a strong proponent of remote teams as a way for organizations to thrive while affording developers a healthy work:life balance.