Conference:March 6-8, 2017
Workshops:March 9-10, 2017
Keynote: Our Concurrent Past; Our Distributed Future
Location:
- Fleming / Whittle, 3rd fl.
Day of the Week:
- Wednesday
It's hard to believe a world existed before multi-core. Developers today use concurrency in all aspects of their software, every day, as though it is second nature: concurrency to accomplish many tasks at once; parallelism to complete one task faster; and asynchrony to improve a program's overall efficiency by overlapping multiple I/O operations (which, it turns out, dates back to the 1960s). And many supporting tools and abstractions. These days every programming language has embraced concurrency, an interesting evolution that has only recently become true.
This mainstream transformation happened over the past 15 years and borrowed aggressively from prior art in academia, most of it dating back to decades before. Another mainstream transformation is underway right now that is similar in many regards. The shift to the cloud, increasingly smaller services, and proliferation of connected devices ("things") means that distributed programming is something that every software developer will now need to similarly think about.
Thank goodness that distributed and concurrent programming share so much in common. Indeed, if we go back to the same literature that influenced concurrency over the past 15 years, we will see something interesting: the early pioneers and deep thinkers didn't draw such a hard distinction between concurrent and distributed as we do today. Furthermore, by shining a "distributed" light on classical concurrency problems, we are often forced to think about architecture, scaling, and safety in new and interesting ways. Similarly, by examining how we solved some of concurrency's hardest problems, we can discover some fascinating paths forward for solving some of distributed programming's hardest ones.
In this talk, we will first take a journey through concurrency's explosion onto the mainstream over the past 15 years. That in hand, we will then look at some of today's hottest trends (cloud, IoT, microservices) and attempt to predict what lies ahead not only for concurrent programming, but also distributed, from now to 15 years into the future.
Tracks
-
Architecting for Failure
Building fault tolerate systems that are truly resilient
-
Architectures You've Always Wondered about
QCon classic track. You know the names. Hear their lessons and challenges.
-
Modern Distributed Architectures
Migrating, deploying, and realizing modern cloud architecture.
-
Fast & Furious: Ad Serving, Finance, & Performance
Learn some of the tips and technicals of high speed, low latency systems in Ad Serving and Finance
-
Java - Performance, Patterns and Predictions
Skills embracing the evolution of Java (multi-core, cloud, modularity) and reenforcing core platform fundamentals (performance, concurrency, ubiquity).
-
Performance Mythbusting
Performance myths that need busting and the tools & techniques to get there
-
Dark Code: The Legacy/Tech Debt Dilemma
How do you evolve your code and modernize your architecture when you're stuck with part legacy code and technical debt? Lessons from the trenches.
-
Modern Learning Systems
Real world use of the latest machine learning technologies in production environments
-
Practical Cryptography & Blockchains: Beyond the Hype
Looking past the hype of blockchain technologies, alternate title: Weaselfree Cryptography & Blockchain
-
Applied JavaScript - Atomic Applications and APIs
Angular, React, Electron, Node: The hottest trends and techniques in the JavaScript space
-
Containers - State Of The Art
What is the state of the art, what's next, & other interesting questions on containers.
-
Observability Done Right: Automating Insight & Software Telemetry
Tools, practices, and methods to know what your system is doing
-
Data Engineering : Where the Rubber meets the Road in Data Science
Science does not imply engineering. Engineering tools and techniques for Data Scientists
-
Modern CS in the Real World
Applied, practical, & real-world dive into industry adoption of modern CS ideas
-
Workhorse Languages, Not Called Java
Workhorse languages not called Java.
-
Security: Lessons Learned From Being Pwned
How Attackers Think. Penetration testing techniques, exploits, toolsets, and skills of software hackers
-
Engineering Culture @{{cool_company}}
Culture, Organization Structure, Modern Agile War Stories
-
Softskills: Essential Skills for Developers
Skills for the developer in the workplace