10:35am - 11:25am
"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 ML + Tooling @Facebook & previously Developed TypeScript, F#, & Swift
11:50am - 12:40pm
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.
1:40pm - 2:30pm
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
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.
4:10pm - 5:00pm
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”.