Summary
A common piece of advice when starting anything new is to "begin with the end in mind". In order to help the engineers at Wayfair manage the complete lifecycle of their applications Joshua Woodward runs a team that provides tooling and assistance along every step of the journey. In this episode he shares some of the lessons and tactics that they have developed while assisting other engineering teams with starting, deploying, and sunsetting projects. This is an interesting look at the inner workings of large organizations and how they invest in the scaffolding that supports their myriad efforts.
Announcements
- Hello and welcome to Podcast.__init__, the podcast about Python’s role in data and science.
- When you’re ready to launch your next app or want to try a project you hear about on the show, you’ll need somewhere to deploy it, so take a look at our friends over at Linode. With the launch of their managed Kubernetes platform it’s easy to get started with the next generation of deployment and scaling, powered by the battle tested Linode platform, including simple pricing, node balancers, 40Gbit networking, dedicated CPU and GPU instances, and worldwide data centers. Go to pythonpodcast.com/linode and get a $100 credit to try out a Kubernetes cluster of your own. And don’t forget to thank them for their continued support of this show!
- So now your modern data stack is set up. How is everyone going to find the data they need, and understand it? Select Star is a data discovery platform that automatically analyzes & documents your data. For every table in Select Star, you can find out where the data originated, which dashboards are built on top of it, who’s using it in the company, and how they’re using it, all the way down to the SQL queries. Best of all, it’s simple to set up, and easy for both engineering and operations teams to use. With Select Star’s data catalog, a single source of truth for your data is built in minutes, even across thousands of datasets. Try it out for free and double the length of your free trial today at pythonpodcast.com/selectstar. You’ll also get a swag package when you continue on a paid plan.
- Your host as usual is Tobias Macey and today I’m interviewing Joshua Woodward about how the application lifecycle team at Wayfair uses Python to
Interview
- Introductions
- Josh Woodward, for the past year have been managing the application lifecycle team at Wayfair. Prior to that, IC on python platforms team. Embed with teams looking to decouple from monolith. See pain points first hand.
- How did you get introduced to Python?
- High school physics class, TI84 Calculator, friend wrote a program to solve vector problems, I thought it was amazing.
- Used TI-Basic to solve specific physics problems for me. (Give fixed inputs, run through equation, get outputs)
- Approaching college, thinking about student loans.
- Heard about python and decided to give it a shot.
- Wrote program to simulate various payback / interest scenarios.
- Went to college for ME, switched to SE when I found out my dorm neighbors were using python to draw cool images with python + turtle
- Can you describe what the role of the application lifecycle team is and the story behind it?
- Story behind it:
- Around 2018, in a state where we had deploy congestion, challenging to iterate and ship changes. tech org invested in containerization and decoupling to directly combat this problem. Teams incentiviced to decouple.
- While on python platforms, the team had already been experimenting with code templating.
- Standard cookiecutter template for flask apps.
- Wayfair experimenting with Kubernetes late 2017.
- Spent 1 year embedding with 4 different teams to help knowledge transfer re: k8s, containers, application setup, python best practices, testing, linting, etc – through that we got a lot of great feedback on our tooling.
- Took senior engineers weeks to get something setup.
- Know who to contact, click the right buttons, file the right ticket
- Approach: Counted manual steps. Something like 60 distinct / atomic activities that had to be performed to get a "hello world" response from a basic flask app in production.
- Focus on reduce manual steps
- Released product (Mamba, on theme of snakes)
- Initially, supporting one main user story.
- User story: "As an engineer, I would like to create a production ready application in 10 mi