A software engineering organization is most useful to the business when its time is totally focused on the art and science of building great software products and services. Developer Experience is about maximizing that effectiveness by simplifying the process of developing, deploying, operating and supporting software. Practices like Continuous Delivery are a great step in that direction, but we need to also succeed in many other areas. We will explore tools and techniques to manage cross-platform environments, evaluate detailed insights into these systems and study lessons learned with the intricacies of managing complex test environments.
Track: Developer Experience: Level up Your Engineering Effectiveness
Location: Broadway Ballroom South, 6th fl.
Day of week:
Track Host: Sangeeta Narayanan
Sangeeta leads the Edge Developer Experience team at Netflix, whose mission is to ensure that engineers are focused on providing the best possible video streaming experience for millions of people around the world. She and her team accomplish this by building world class tools to enable a simplified developer experience and enhanced operational visibility at cloud scale. Sangeeta has held varying roles at companies large and small, including Test Engineering, Sales Engineering, Consulting and Leadership. Her passion for simplifying the process of developing and operating software has been the common theme across all those experiences.
Trackhost Interview
- QCon: What’s the motivation for your track?
Sangeeta: Over the past few years, architectural patterns and practices like microservices, serverless and DevOps have revolutionized the way we work in the software industry. They have enabled organizations to move rapidly and handle ever-increasing scalability challenges in their systems. While there is no question as to the benefits of these concepts, there is a real danger of engineers spending more energies in the process of delivering functionality and keeping the lights on as opposed to generating value for their businesses. Having experience first hand the benefits of simplifying some of these processes and the pitfalls of not doing so (in the form of burnout, lost productivity and bugs), I have one mission for my team - to ensure that Netflix engineers spend the bulk of their energies on building the best-in-class online streaming experience for our customers. I'm always interested in newer and better ways of working towards that mission, which is what I hope to share with attendees.
- QCon: What’s the level & core persona?
Sangeeta: Anyone with an interest in wanting to ship software quickly and reliably will derive value from these talks - development and ops engineers, architects and technical managers. They assume some familiarity with microservices and cloud technologies, but most of the approaches should be broadly applicable.
- QCon: What 3 actionable things do you want persona to walk away with?
Sangeeta: My biggest hope is to spark ideas and encourage attendees to challenge status quo in their organizations in a quest to find ways to improve their velocity while maintaining reliability. A few specifics they can expect to learn:
- QCon: What's new here and how is this different from DevOps?
- Sangeeta: My view is that DevEx encompasses everything involved in the process of developing and shipping software, which includes DevOps and much more. Given the way in which we build software today, that covers everything from developer tools like IDEs, API discovery and explorer frameworks, bootstrapping projects, testing solutions, operations, support, education and even organizational practices. Devops practices like CI/CD and architectural patterns like microservices are certainly a key part of the story, but here we take a more holistic view of the entire software lifecycle.
Zero to Production-Ready in Minutes
The fabric of Netflix's approach to building new highly-available services is evolving. The Runtime Platform Team is focused on improving developer productivity while simultaneously making it simpler to build and maintain the high-availability services that Netflix expects. Starting with application generation, and leveraging a new approach to communication between services (RPC), we're simplifying what's needed to build a fast, reliable, and optimized service capable of delivering a fantastic customer experience.
We'll be sharing how Netflix is enabling engineers to go from "zero" to "production ready" in minutes - incorporating best-practices learned through years in the cloud. We will also share the story of transitioning from our home-grown RPC machinery to open-source standards, how we recognized when it was the right time to walk away from our own creations, and how our new approach is improving team velocity across Netflix engineering.
Spotify Lessons: Learning to Let Go of Machines
Spotify is currently one of the most popular music streaming services in the world with over 100 million monthly active users. At Spotify, a team of 6 engineers maintains the machine provisioning and capacity fleet for all 150+ Spotify teams. This talk is going to tell the story of how Spotify’s infrastructure evolved from teams owning and doting on groups of long-running servers to a distinctive separation of business code and value from the underlying ephemeral machines all of Spotify's services actually run on. We'll examine how this evolution also changed the way that Spotify developers write code and the vast increase in iteration and shipping speed. This talk will also cover a potential endpoint of improving the provisioning and capacity experience for developers: a world where service developers don't need to handle or concern themselves with any of the infrastructure at all. We'll discuss why Spotify wants to move toward this state and how we're getting there.
Removing Friction In the Developer Experience
Our ability to be productive engineers can be distilled to the sum of two forces: things that motivate us, and -things that hold us back. While the levers of autonomy, mastery and purpose and their effect on motivation are well popularised, engineering organisations are often held back by different forms of friction. We’ll discuss how we’ve applied a potent blend of microservice / serverless architectures, continuous deployment, and cloud technology to make it easy to push code swiftly, safely and frequently and operate it reliably in production . And, we’ll discuss the organisational tools like team self-selection, team ingredients model, voluntary adoption, internal startups that allow us to decentralise and decouple high-performing teams.
HBC Digital is the tech team behind the luxury experience at saks.com, saksoff5th.com, gilt.com, lordandtaylor.com and thebay.com.
Reasoning About Complex Distributed Systems
One of the biggest challenges of working with distributed systems (even small ones with only 10 services) is maintaining them once they're live and performing triage of major issues and returning systems back to health as quickly as possible. This creates a key need for a good developer experience with complex systems: how to minimize the amount of time spent awake at 2am in order to achieve Return To Service. Having a good experience for developers is founded upon how the distributed system is built and developing specific problem solving strategies. For example, using technical tools (such as distributed tracing techniques) strategically to understand how a system is currently behaving and quickly identify what is misbehaving. This talk will cover the technical tools you need to gain information on a complex system and practical approaches to convert that information into an actual understanding of the system.
Production - Designing for Testability
A major part of our lives is working safely with production - yet few organizations today are designing production to enable higher quality and end to end verification of the code we write and deploy. In this talk, we build on the foundation of great microservice architectures to include the first class design of testability as one of the most important artifacts that high velocity and high-quality teams should consider. In particular, we’ll explore what it’s like to build quality software with no development, QA, or staging environments. We'll include a deep dive into “verification in production” and what it really takes to build software that can safely be tested continuously in production. Let’s build developer happiness by *knowing* production is correct.