Track: Developer Experience: Level up Your Engineering Effectiveness

Location: Broadway Ballroom North Center, 6th fl.

Day of week: Friday

If software (developers) are eating the world, then, improving the developers’ experience and hence productivity should be paramount! Organizations are becoming flatter and engineers are being asked to do more than ever before. All of this contributes to an increase in cognitive load for engineers. How can we apply software to the problem of enabling high velocity development and while concurrently considering the human factors? 

In this track, we will focus on discussing the future of engineering productivity.  We will see how the best organizations are very focused on reducing the cognitive load for engineers and organizations, so they can better  focus on delivering business value. We will hear experience reports and real world stories about  the various ways individuals, teams and organizations have augmented people, process and/or technology to level up their engineering effectiveness.

Track Host: Mike McGarr

Manager of Developer Productivity @Netflix and Co-Host of the Productivity Engineering Silicon Valley Meetup

Mike McGarr is the Engineering Manager for the Netflix Developer Productivity team. He is also a co-host of the Ship Show Podcast. He has been developing Java/JVM-based applications for most of his career and been known to dabble in other languages as well. He is passionate about building quality software through automation. Mike can frequently be found talking about Agile, Continuous Delivery, DevOps, or build and test automation. Prior to joining Netflix, Mike was the Director of DevOps at Blackboard and the founder of the DC Continuous Delivery meetup.


10:35am - 11:25am

Software Is Eating the World, ML Is Going to Eat Software

"Democratizing ML" is a hot topic these days - particularly in industry. Efficiency, composability and accessibility of machine learning technology are active areas of investment for many research and product groups. Unfortunately, while machine learning has the potential to fundamentally improve how software is constructed, opportunities to leverage machine learning to improve more conventional developer tools (languages, compilers, and IDEs for example) have largely gone untapped.

At Facebook we see an opportunity in this challenge. Our Developer Infrastructure team is on a mission to fundamentally rethink and retool Facebook's developer toolchain by applying machine learning at every layer in our stack. Our goal is to make our developers more productive, and our processes and infrastructure more efficient, by deeply integrating ML into our programming languages and developer tools (such as IDEs, version control, or continuous integration systems) in novel ways.


This talk will detail the work our team has done to improve developer efficiency and resource utilization at Facebook - from updating the Hack programming language to support probabilistic programming techniques, to developing a new suite of AI-driven developer tools. I'll describe the lessons we've learned along the way, as well as future opportunities we see to optimize or auto-tune other common pieces of developer infrastructure

Joe Pamer, Language Designer Working on Tooling @Facebook, worked on TypeScript, F#, & Swift

11:50am - 12:40pm

Succession: A Refactoring Story

Refactoring sometimes devolves into an appalling mess. You're chasing  a broken test suite, and every change just makes it worse. At other  times it's a slow, controlled process culminating in dreadful design.  This talk presents an end-to-end refactoring that demonstrates simple  strategies to avoid such misadventures.   

Duplication catches our eye, yet much of design is about encapsulating  differences. Focusing on the bits that are alike leads to awkward  abstractions. Focusing on meaningful differences provides a better  outcome.   

The talk explores a meticulous style of refactoring that Martin Fowler  alludes to in his book:   

> [The] rhythm of refactoring: 
> test, small change, test small change, test small change.   

If every step is safe, then the test suite should never fail. Taking  this idea to its extreme results in an artificial but potent  constraint: stay one undo away from green. This constraint, which  can initially seem awkward and mechanical offloads a morass of  details into the process—freeing your working memory and reducing  cognitive load. This is a powerful approach to keeping your code deployable, even while making dramatic changes.

Katrina Owen, Ecosystem engineer @github

1:40pm - 2:30pm

Better DevEx at Netflix: Polyglot and Containers

A quick scan through Netflix Github repository reveals how deeply invested Netflix engineering has been on Java and the cloud. While both of these remain true, the story has gotten increasingly more complex over time. Growth and various business drivers have propelled Netflix beyond a single language company to multi-language support. The rise of containers and diverse programming environments means that the tools written for yesterday, will likely not work for tomorrow.   

In this talk, Mike McGarr (Engineering Leader, Netflix) will talk about the evolution of developer tooling at Netflix, focusing on command line tools they built to address evolving needs around programming languages, containers and more. He will share lessons learned while trying to support diverse programming languages and environments within a centralized team. He will also talk about how containers have played a role on influencing the developer experience at Netflix. Lastly, he will share insights learned by building a platform that enables teams to solve a diverse set of problems.

Mike McGarr, Manager of Developer Productivity @Netflix and Co-Host of the Productivity Engineering Silicon Valley Meetup

2:55pm - 3:45pm

Help! I Accidentally Distributed My System!

Mobile and web apps are increasingly built on Backends as a Service, Platforms as a Service, and Infrastructure as a Service solutions. We snap together SaaS software and vendor products, adding pieces until we’ve built a complex system out of seemingly simple parts. We’ve all become distributed systems engineers, intentionally or not.

This talk is a practical talk about the tools and skills we can use to get ourselves out of the corner we’ve boxed ourselves into. We propose ways we can move towards optimizing for the operator experience and our ability to understand how data moves through the system. We’ll discuss how to choose your pieces wisely, how to debug the newly complex systems you’ve built, and how to manage the ever-increasing cognitive load of it all.

Emily Nakashima, Software Engineer & Engineering Manager @Honeycombio
Rachel Myers, Developer Programs Engineer @Google

4:10pm - 5:00pm

Platforms at Twilio: Unlocking Developer Effectiveness

What does the DevOps tooling look like at your organization? A result of the mainstream adoption of microservice architectures and DevOps culture is the increased burden of complexity and responsibilities for software engineers. Since Twilio’s inception, it has adopted a DevOps culture of “You build it, you run it”. Learn how Twilio’s internal Platform has evolved to reduce their engineer’s cognitive load by providing a unified self-service, declarative platform to build, deliver, and run the thousands of global microservices that make up Twilio. This talk will discuss the evolution, tenets, and lessons learned of Twilio’s internal Platform.

Find out how Twilio's Platform Engineering team takes the learnings acquired from Twilio, uses those developer-centric values to boost productivity and reduce cognitive load for Twilio's R&D organization, and strives to achieve their mission to be “Twilio for Twilio”.


Justin Kitagawa, Senior Director Platform Engineering @twilio