The big names and bigger architectures... the hugely recognizable shops, including traditionally from companies like Google, Lyft, Ocado, Expedia, Netflix, and the like. These are their practices and proofs, look for topics like next-gen architecture mixed with applied use cases found in some of today's large-scale systems. Talks in the track range cover large well-known software shops to small innovators poised to disrupt software today.
Track: Architectures You've Always Wondered About
Location: Ballroom A
Day of week: Tuesday
Track Host: Randy Shoup
Randy is a 25-year veteran of Silicon Valley, and has worked as a senior technology leader and executive at companies ranging from small startups, to mid-sized places, to eBay and Google. Randy is currently VP Engineering at WeWork in San Francisco. He is particularly passionate about the nexus of culture, technology, and organization.
10:35am - 11:25am
Airbnb's Great Migration: From Monolith to Service-Oriented
Redesigning your whole engineering architecture is costly and risky, but sometimes it’s worth it! At Airbnb, our Ruby on Rails monolith reached a point where it was difficult to scale alongside our growing engineering team and products. From our ongoing migration from monolithic to service-oriented architecture (SOA), we are already seeing various benefits including improved developer productivity, build and deploy times, site reliability, and latency.
This talk will provide an overview of trade-offs and motivation for the SOA migration. After discussing our proof of concept steps to break apart our monolith, I’ll discuss our architectural tenets around service building. The talk will then dive deep into lessons learned and best practices developed when undertaking the massive SOA challenge.
Key Takeaways:
- Identify tradeoffs between monolith and SOA
- Recognize how to apply design principles for building new services
- Understand best practices for caution, comparison, and standardization when migrating architecture
- Learn about Airbnb’s wins so far from the SOA migration
11:50am - 12:40pm
What We Got Wrong: Lessons From the Birth of Microservices
Google deserves a lot of credit for imagining (and popularizing) what we now call "microservice architectures." That said, hindsight is 20/20, and many of the mistakes we made at Google are being recreated by the rest of the industry today. What did we get wrong about microservices at Google, and how can we apply those lessons today?
1:40pm - 2:30pm
Netflix Play API - An Evolutionary Architecture
-
Three foundational principles that can guide you in designing a microservice architecture:
-
Why focussing on “identity” lays the foundation for your architectural design
-
Why it is important to identify Type1/Type2 decisions
-
Why evolvability is crucial, specifically when it comes to “known unknowns”!
-
Concrete lessons learned around:
-
Different types of coupling and its limitations
-
How we can choose a mix of async/sync architectures to unlock evolvability
-
Ensuring we are not building a Data Monolith
2:55pm - 3:45pm
Scaling Slack - The Good, the Unexpected, and the Road Ahead
Slack is a persistent communication app for teams, with high customer expectations to deliver a reliable, rich, low latency client experience.
Over the past couple of years, we've made major changes to the core service architecture to meet these needs for larger and larger enterprise customers. This talk will present three of these changes -- decomposition of the real-time message service, client-side lazy loading via edge caching, and scaling the primary data storage tier with fine-grained horizontal sharding using Vitess.
Each of these projects has resulted in significant improvements to the reliability and performance of the Slack service, yet ran into some bumps along the way during the deployment process. Still, we're far from done with this journey, so we'll touch on some of the pain points that remain and high-level thoughts for how we plan to address them.
4:10pm - 5:00pm
Paying Technical Debt at Scale - Migrations @Stripe
Migrations are both essential and frustratingly frequent as your codebase ages and your business grows: most tools and processes only support about one order of magnitude of growth before becoming ineffective, so rapid growth makes them a way of life.
Two of Stripe’s most important migrations have been typing our Ruby codebase and migrating our metrics and dashboard stack. This talk will explore why migrations are the only mechanism to effectively manage technical debt as your company and code grows, what makes running them so hard, and a repeatable approach to running them effectively:
- derisking the migration by testing the approach
- enabling the migration with documentation, tools and self-service to make it go as quickly as possible, and
- finishing the thing.
If you're already languishing in technical debt and are afraid to even consider how you'll dig out, this talk is for you.
5:25pm - 6:15pm
Real-World Architecture Panel
Come hear a panel of experts discuss the unique challenges and opportunities in software / hardware architectures that interact with the physical world, with particular emphasis on automation, instrumentation, control flow, and machine learning. David Banyard built the new stadium for the championship Golden State Warriors, complete with sensors and drones, and now constructs the offices of the future at WeWork. Tessa Lau is a long-time roboticist, and is currently bringing automation to building construction as the CEO and cofounder of Dusty Robotics. Colin Breck builds world-leading industrial control systems for Tesla. Jeff Williams has spent the last quarter century in industrial and warehouse automation, and his current labor of love is nothing short of the complete democratization of robotics. Bring your curiosity and leave inspired.
David Banyard, Senior Construction Technology Disrupter @WeWork
Tessa Lau, CEO and cofounder of Dusty Robotics
Jeff Williams, Robotics Systems Developer at AddRobots
Colin Breck, Sr. Staff Software Engineer @Tesla
Tracks
Monday, 5 November
-
Microservices / Serverless Patterns & Practices
Evolving, observing, persisting, and building modern microservices
-
Practices of DevOps & Lean Thinking
Practical approaches using DevOps & Lean Thinking
-
JavaScript & Web Tech
Beyond JavaScript in the Browser. Exploring WebAssembly, Electron, & Modern Frameworks
-
Modern CS in the Real World
Thoughts pushing software forward, including consensus, CRDT's, formal methods, & probabilistic programming
-
Modern Operating Systems
Applied, practical, & real-world deep-dive into industry adoption of OS, containers and virtualization, including Linux on Windows, LinuxKit, and Unikernels
-
Optimizing You: Human Skills for Individuals
Better teams start with a better self. Learn practical skills for IC
Tuesday, 6 November
-
Architectures You've Always Wondered About
Next-gen architectures from the most admired companies in software, such as Netflix, Google, Facebook, Twitter, & more
-
21st Century Languages
Lessons learned from languages like Rust, Go-lang, Swift, Kotlin, and more.
-
Emerging Trends in Data Engineering
Showcasing DataEng tech and highlighting the strengths of each in real-world applications.
-
Bare Knuckle Performance
Killing latency and getting the most out of your hardware
-
Socially Conscious Software
Building socially responsible software that protects users privacy & safety
-
Delivering on the Promise of Containers
Runtime containers, libraries, and services that power microservices
Wednesday, 7 November
-
Applied AI & Machine Learning
Applied machine learning lessons for SWEs, including tech around TensorFlow, TPUs, Keras, PyTorch, & more
-
Production Readiness: Building Resilient Systems
More than just building software, building deployable production ready software
-
Developer Experience: Level up your Engineering Effectiveness
Improving the end to end developer experience - design, dev, test, deploy, operate/understand.
-
Security: Lessons Attacking & Defending
Security from the defender's AND the attacker's point of view
-
Future of Human Computer Interaction
IoT, voice, mobile: Interfaces pushing the boundary of what we consider to be the interface
-
Enterprise Languages
Workhorse languages found in modern enterprises. Expect Java, .NET, & Node in this track