Asha Karim
Associate Software Engineer at Salesforce
Asha Karim is an associate software engineer at Salesforce where she works to characterize and minimize the fault space for emerging systems. She is a recent graduate from University of California Santa Cruz, where she earned her Bachelor's under the supervision of Peter Alvaro. Her research focused on resiliency in distributed systems. She has previously interned with Twitter and Google Research and spoke at HPTS 2017.
What Could Possibly Go Wrong? Testing in Black-box Distributed Systems
Black-box testing methods such as Jepsen have toppled many guarantees such as strong consistency and snapshot isolation promised by distributed SQL and SQL-like databases. Such implementations are difficult to get right, and often wrought with errors. Accordingly, there has been an increase in the use of such black-box testing tools to ensure consistency guarantees are upheld during development. The increased interest in Jepsen is evidence that traditional software quality approaches such as formal verification and white-box testing are inadequate for these systems due to their complexity. However, though this solution is quite attractive, the question arises as to whether the tools themselves are correct.This talk discusses a generative method for assembling nontrivial, non-serializable histories to test these black-box serializability checkers rooted in theoretical explorations of consistency anomalies.
Don Syme
Principal Researcher at Microsoft Research
Don is a computer science researcher interested in just about everything. He designed a programming language (F#) and currently works on compilers and tools for mobile and cloud programming with that language, which is fun though challenging. He comes from Australia, lives in London, works for an American company and has European kids. Sometimes he's too serious, help him with that :)
The F# Path to Relaxation
Born in a lab, matured in the enterprise, and now fully baked as an open-source, cross-platform, professionally-supported language: the F# journey has always been about reconciling the apparently irreconcilable. Javascript and .NET, Linux and Windows, Functional and Objects, Company and Openness, Android and iOS, Programming and Data, Server and Client - F# finds a way. Come along and take a journey with me through the modern programming landscape and the F# approach to language design, interoperability, tooling and community.
Holden Karau
Committer Apache Spark at Google
Holden is a transgender Canadian open source developer advocate with a focus on Apache Spark, BEAM, and related "big data" tools. She is the co-author of Learning Spark, High Performance Spark, and another Spark book that's a bit more out of date. She is a commiter on and PMC member on Apache Spark and committer on SystemML & Mahout projects. Prior to joining Google as a Developer Advocate she worked at IBM, Alpine, Databricks, Google (yes this is her second time), Foursquare, and Amazon. When not in San Francisco, Holden speaks internationally about different big data technologies (mostly Spark). She was tricked into the world of big data while trying to improve search and recommendation systems and has long since forgotten her original goal. Outside of work she enjoys playing with fire, riding scooters, and dancing.
General Purpose Big Data Systems are eating the world: Tool consolidation -- is it inevitable?
Every-time there is a new piece of big data technology we often see many different specific implementations of the concepts, which often eventually consolidate down to a few viable options, and then frequently end up getting rolled into part of another larger project. This talk will examine this trend in big data ecosystem, look at the exceptions to the "rule", and look at how better interchange formats like Apache Arrow have the potential to change this going forward. In addition to general vague happy feelings (or sad depending on your ideas about how software should be made), this talk will look at some specific examples with deep learning, so if anyone is looking for a little bit of pixie dust to sprinkle on a failing business plan to take to silicon valley to raise a series A, you'll get something out this as well.
Joe Armstrong
Computer scientist retired
Joe Armstrong is a retired computer scientist. He got his grey hairs inventing Erlang, starting a few companies, writing a few books, doing some research and teaching people to program.
His hobbies are playing the piano, chopping wood and grumbling.
Good ideas that we forgot.
Over the years there have been many good ideas in computer science and many stupid ideas. What can we learn from history? Which of the old and forgotten ideas should be brought back to life and re-evaluated? What can we learn from the stupid ideas of the past?
Mario Fusco
Senior Software Engineer at Red Hat
Mario is a senior software engineer at Red Hat working at the development of the core of Drools, the JBoss rule engine. He has a huge experience as Java developer having been involved in (and often leading) many enterprise level projects in several industries ranging from media companies to the financial sector. Among his interests there are also functional programming and Domain Specific Languages. By leveraging these 2 passions he created the open source library lambdaj with the purposes of providing an internal Java DSL for manipulating collections and allowing a bit of functional programming in Java. He is also a Java Champion and the co-author of "Java 8 in Action" published by Manning.
Lazy Java
Like all imperative languages Java is, with some minor but notable exceptions, an eagerly evaluated programming language. Nevertheless the introduction of lambdas in Java 8 also allowed the adoption of some lazy patterns and data structures that are more typically employed in functional languages. Streams represent the most evident example of how also native Java API has taken advantage of laziness, but there is a number of other interesting scenarios where laziness can be an effective solution to quite common problems. In fact laziness is the only possible technique to process potentially infinite amount of data, or more in general to delay the expensive evaluation of an expression only when and if it is necessary. But laziness is even more than that: for instance the reader monad delays not only a computation but also the need of external dependencies thus lowering the abuse of dependency injection, while a trampoline uses laziness to delay and then linearize recursive calls preventing the overflow of the stack. The purpose of this talk is illustrating why and how implementing laziness in Java with practical examples delivered with both slides and live coding sessions.
Martin Thompson
High Performance Gangster
Martin is a Java Champion with over 2 decades of experience building complex and high-performance computing systems. He is most recently known for his work on Aeron and SBE. Previously at LMAX he was the co-founder and CTO when he created the Disruptor. Prior to LMAX Martin worked for Betfair, three different content companies wrestling with the world largest product catalogues, and was a lead on some of the most significant C++ and Java systems of the 1990s in the automotive and finance domains.
Cluster Consensus: when Aeron met Raft
Want to know what is possible in the field of high performance consensus algorithms for distributed systems? If the answer is yes then come to this talk.
Martin Kleppmann
Researcher at University of Cambridge
Martin is a distributed systems researcher at the University of Cambridge and author of the acclaimed O'Reilly book Designing Data-Intensive Applications (http://dataintensive.net/). Previously he was a software engineer and entrepreneur, co-founding and selling two startups, and working on large-scale data infrastructure at LinkedIn.
Automerge: Making servers optional for real-time collaboration
Once upon a time, we used software that ran on our own computers, that worked offline, and that stored its data in files on the local disk. Then we decided to put it all in the cloud. We gained some great features: real-time collaboration, like in Google Docs, for example. But we also lost control of our own data, and became dependent on far-away servers to allow us to access the data that we created. Automerge is part of an effort to get the best of both worlds. It is a JavaScript library for building real-time collaborative applications. However, apps built with Automerge also work offline, storing data locally, and synchronise their data with collaborators whenever a network is available. And although you can use it with servers, you don’t have to: synchronisation also works peer-to-peer, or via any network you choose. In this talk we will explore how Automerge deals with different users independently modifying shared data in a collaborative application (hint: by merging the changes... automatically!), how it achieves consistency in highly distributed settings, and where it is heading in the future.
Mitchell Hashimoto
Founder of Hashicorp
Mitchell Hashimoto is best known as the creator of Vagrant, Packer, Terraform, Vault, and more. Mitchell is the founder of HashiCorp, a company that builds powerful and elegant DevOps tools. He is also an O’Reilly author. He is one of the top GitHub users by followers, activity, and contributions. “Automation obsessed,” Mitchell solves problems with as much computer automation as possible.
Infrastructure as Code with Terraform
Terraform enables you to describe almost anything with an API as code. From infrastructure to high level services, Terraform can help construct everything required to run your applications. In this talk, we’ll explore using Terraform to manage both traditional and non-traditional resources and dive into how to write best practices Terraform for reusability within teams.
Rebecca Taft
Software Engineer at Cockroach Labs
Rebecca is a software engineer at Cockroach Labs and a recent graduate of MIT's Computer Science PhD program. While at MIT, she worked with Michael Stonebraker on distributed database elasticity and muti-tenancy. Outside of work, her favorite activities include rowing on Boston's Charles River and enjoying the great outdoors.
Predictive Elastic Database Systems
On-line transaction processing (OLTP) database management systems (DBMSs) are a critical part of the operation of many large enterprises. These systems often serve time-varying workloads due to daily, weekly or seasonal fluctuations in demand, or because of rapid growth in demand due to a company’s business success. In addition, many OLTP workloads are heavily skewed to “hot” tuples or ranges of tuples. For example, the majority of NYSE volume involves only 40 stocks. To deal with such fluctuations, an OLTP DBMS needs to be elastic; that is, it must be able to expand and contract resources in response to load fluctuations and dynamically balance load as hot tuples vary over time. In this talk, I will present a system we built at MIT called P-Store, which uses predictive modeling to reconfigure the system in advance of predicted load changes. I will show that when running a real database workload, P-Store achieves comparable performance to a traditional static OLTP DBMS while using 50% fewer computing resources.
Venkat Subramaniam
Founder of Agile Developer, Inc.
Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., creator of agilelearner.com, and an instructional professor at the University of Houston.
He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with sustainable agile practices on their software projects.
Venkat is a (co)author of multiple technical books, including the 2007 Jolt Productivity award-winning book Practices of an Agile Developer. You can find a list of his books at agiledeveloper.com. You can reach him by email at venkats@agiledeveloper.com or on Twitter at @venkat_s.
Exploring Java 9
If Java 8 was all about how we code, Java 9 is all about how we will build. Modularization will have the biggest impact of any change that happened in Java since its inception. In this presentation we will learn about the need for modularization, how it impacts development, the rules to follow when creating modules, and the effect it has on legacy code. We will explore creating module, using modules, readability, exports, automatic modules, and unnamed modules.
John Feminella
Advisor at Pivotal
John Feminella is an avid technologist, occasional public speaker, and curiosity advocate. He serves as an advisor to Pivotal, where he works on helping enterprises transform the way they write, operate, and deploy software. He’s also the cofounder of a tiny analytics monitoring and reporting startup named UpHex.
John lives in Charlottesville, VA and likes meta-jokes, milkshakes, and referring to himself in the third person in speaker bios.
Your Attention, Please: Optimizing for Humans
Operators of large distributed systems often try to optimize for scarce computational resources — memory, network bandwidth, and CPU cycles. However, research shows that if we want to maximize the health of our systems, there’s another scarce resource we should be prioritizing instead: the attention of our users.
In this talk, I’ll show how we can use machine learning to improve how we present data and information and tell a story to our users, optimizing for their attention and holistic understanding, instead of overwhelming them with a barrage of low-level metrics. More intriguingly, we’ll see how this approach has produced massive improvements in several real-world systems at large Fortune 100 institutions. By the end of the talk, we’ll hopefully have convinced you that happier and more informed operators isn’t merely a good outcome, but rather is the most ethical thing to do if we don’t want to lead people astray.