Summary
Open source has proven its value in many ways over the years. In many companies that value is purely in terms of consuming available projects and platforms. In this episode Zalando describes their recent move to creating and releasing a number of their internal projects as open source and how that has benefited their business. We also discussed how they are leveraging Python and a couple of the libraries that they have published.
Brief Introduction
- Hello and welcome to Podcast.__init__, the podcast about Python and the people who make it great.
- I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. For details on how to support the show you can visit our site at pythonpodcast.com
- Linode is sponsoring us this week. Check them out at linode.com/podcastinit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project
- Rollbar is also sponsoring us this week. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcastinit to get 90 days and 300,000 errors for free on their bootstrap plan.
- Hired has also returned as a sponsor this week. If you’re looking for a job as a developer or designer then Hired will bring the opportunities to you. Sign up at hired.com/podcastinit to double your signing bonus.
- Visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch.
- To help other people find the show you can leave a review on iTunes, or Google Play Music, and tell your friends and co-workers
- Join our community! Visit discourse.pythonpodcast.com for your opportunity to find out about upcoming guests, suggest questions, and propose show ideas.
- Your hosts as usual are Tobias Macey and Chris Patti
- Today we’re interviewing Jie Bao and João Santos about their use of Python at Zalando
Interview with Zalando
- Introductions
- How did you get introduced to Python? – Tobias
- Can you start by telling us a bit about what Zalando does and some of the technologies that you use? – Tobias
- What role does Python play in your environment? – Tobias
- Is the use of Python for a particular project governed by any particular operational guidelines or is it largely a matter of developer choice? – Tobias
- Given that you have such a variety of platforms to support, how do you architect your systems to keep them easy to maintain and reason about? – Tobias
- One of the projects that you have open sourced is Connexion. Can you explain a bit about what that is and what it is used for at Zalando? – Tobias
- What made you choose to standardize on Swagger/OpenAPI vs RAML or some of the other API standards? – Tobias
- Did Connexion start its life as open source or was it extracted from another project? – Tobias
- ExpAn is another one of your projects that is written in Python. What do you use that for? – Tobias
- Can you describe the internal implementation of ExpAn and what it takes to get it set up? – Tobias
- Given the potential complexity of and the need for statistical significance in the data for proper A/B testing, how did you design ExpAn to satisfy those requirements? – Tobias
- Given the laws in Germany around digital privacy, were there any special considerations that needed to be made in the collection strategy for the data that gets used in ExpAn? – Tobias
Keep In Touch
Picks
- Tobias
- Jie
- Shah of Shahs by Ryszard Kapuściński
- João
- Laurie
- Flow)
The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA
Hello, and welcome to podcast.init, the podcast about Python and the people who make it great. I would like to thank everyone who has donated to the show. Your contributions help us make the show sustainable. Linode is sponsoring us this week. Check them out at linode.com/podcastinnit and get a $20 credit to try out their fast and reliable Linux virtual servers for your next project. Rollbar is also sponsoring us this week. Rollbar is a service for tracking and aggregating your application errors so that you can find and fix the bugs in your application before your users notice they exist. Use the link rollbar.com/podcast in it to get 90 days and 300, 000 errors tracked for free on their bootstrap plan. Hired has also returned as a sponsor this week. If you're looking for a job as a developer or designer, then Hired will bring the opportunities to you. Sign up athired.com/podcast in it to double your signing bonus.
You can also visit our site to subscribe to our show, sign up for our newsletter, read the show notes, and get in touch. And to help other people find the show, you can leave a review on Itunes, Google Play Music, and tell your friends and coworkers. Your host today is Tobias Macy. And today, I'm interviewing Zhibo, Joao Santos, and Laurie Apple about their use of Python at Zalando. So if you guys could introduce yourselves, how about Gee, you go first.
[00:01:29] Unknown:
Hi. Yes. My name is Jerry. I'm so I'm a data scientist working in Zalando, currently in the team of AB testing and personalization. So we are actively, working with Python and developing on this analysis, analytic, library and also, our, kind of, AB testing self-service, platform. So that's kind of a short introduction. Okay. And, Joao, how about you?
[00:02:00] Unknown:
Okay. I'm I'm Joao. I'm a software engineer for Zalando since last 3 years. I worked mostly on platform level tools. This means tools that are used by another developers. Currently, I work mostly on deployment tools, but I have worked a little bit for everything inside as I'm on the platform. It's pretty legit.
[00:02:23] Unknown:
And, Laurie, how about you?
[00:02:25] Unknown:
Hi. I'm Laurie Apple. I'm the open source evangelist at Zalando and also an Agile project manager. So I promote the open source work that we do and build community around the projects and hope the projects grow and succeed.
[00:02:42] Unknown:
And going in the same order, how did you each get introduced to Python?
[00:02:48] Unknown:
Yeah. So it might be a bit, interesting story for me. I'm actually a biologist turned, data scientist, so my first, kind of software project was, with, and, MATLAB. I was during time, I was, doing an internship, where it has to do with, assimilation of brain or neural networks and analysis of, connectivity between different cell types. Then later on, during master's thesis, we were, yeah, kind of, working with a mixture of MATLAB and Python because the simulation tool, was built in Python, and then it's a initial, yeah, step that I was actually looking, for something to replace MATLAB, for visualization.
That's, I can't, yeah, use MATLAB MATLAB clip quite a lot. Of course, I realized, yeah, how so Python is such a, like, a generic purpose language, and it's kind of, powerful and, yeah. So we're currently using it, on some databases.
[00:04:06] Unknown:
Okay. So I discovered Python when I was about 14, 15 years old. I was learning programming by myself and trying several different programming languages, and, well, Python was just love love at first sight. And since then, I I've been mostly using Python for my own projects. Zolanda is actually the 1st place where I've done Python personally before I did other, work in a lot of languages like PHP and then other computer languages, but my favorite language is, of course, Python. And I just found Python
[00:04:43] Unknown:
I was working at Gilt Group, which didn't use Python as a JVM language company, but, I I'm not a programmer by trade, but I have done some work in Python. I just find it really easy and flexible and fun.
[00:04:59] Unknown:
And can you all start by telling us a bit about what Zalando does and some of the technologies that you guys use there?
[00:05:06] Unknown:
Sure. So, Zalando is possibly not known. And to your American, listeners, I'm American and I didn't know what it was until my ex colleague, Everett Bowman, became the VP of engineering about 2 years ago. But it's actually pretty huge in Europe. It's Europe's largest fashion platform, and we do business in 15 countries. We have more than 19, 000, 000 active customers. We went public in 2014. We're profitable. So there's all kinds of excitement around the company, and it's gross. And we're consistently expanding, both in terms of the size of the tech team and our presence on the continent with new features, new, offerings, new warehouses, new you name it.
[00:05:56] Unknown:
Yeah. In terms of technology, we use mostly JVM languages, mostly Java and Scala. But, we we try to use, the right tool for shop for everything. So we also have Python, Go, Closure, if you can name it. So because that each team has autonomy to choose technology they want, we can reason. So we use lots of technologies and we try to, you know, use the best ones for each specific case. And when he says within reason, so we've actually taken
[00:06:28] Unknown:
a note from Thoughtworks who created the tech radar, and we have our own tech radar. So we have, our own preferred languages, languages that we we suggest that teams use so that we don't go off in so many directions that we have chaos on our hands. We we need to have other we need to have multiple teams being able to work on the same service in libraries. And if we used every language, it would just be even more difficult for us to contain all of that activity in some reasonable manageable way. Yeah. And especially in terms of operational characteristics
[00:07:05] Unknown:
of being able to deploy you to those different languages because they all have slightly different mechanisms by which you can put something into production and monitor and maintain it. Right. Well, for well, for new services, we don't set that problem
[00:07:18] Unknown:
really because we are using Docker. So people just have to check that they have a working Docker image. For the same areas, we have to be be careful with what we can deploy. And, currently, we can only deploy Java and Python projects. But for, cloud projects, we already support every single technology you you can think of.
[00:07:40] Unknown:
And you said that Zalando is a fashion platform. Is that somewhat analogous to Stitch Fix here in the States? More like Zappos. Okay. And, he mentioned that you're using a lot of JVM technologies. I'm wondering, what are some of the typical areas that Python comes into play in your environment?
[00:08:00] Unknown:
I think everything from data science to development tools, for example, in we have set everything from, as an internal certificate authority to deployment tools for data center and AWS are written in Python. We have, lots of other low level tools that are used by developers, and, we also have dashboards and other tools like that.
[00:08:30] Unknown:
And we also have connection, which, we all worked on. So we're API first company. We have our own REST API guidelines, which actually describe in detail as our own experiences as kind of a use case and how we're actively working with, REST. And connection is our Python Flask framework for, working in a API first, swagger spec first context.
[00:09:01] Unknown:
Yeah. So I can also speak from our team. So as I said, we are not gonna use Python to develop this analytics library as 1 for analysis for AB test. But also, yeah, you use that to build some microservice on top of on top of the library and, yeah, running our, automated testing service.
[00:09:28] Unknown:
Yeah. And I noticed on your open source repositories that you've got a few other projects for making Postgres highly available.
[00:09:36] Unknown:
The Petroni project, that was developed by us, and we got some collaboration from Red Hat's Josh Burkes who's been key figure in the Postgres world for the illness as long as Postgres has been around. And so, Petroni is 1 example of how Postgres is so integral to our tooling and our platform infrastructure.
[00:09:58] Unknown:
It's eminently flexible and yet still maintains a high degree of stability. Mhmm. So you mentioned connection and that you're an API driven company. I'm wondering what made you guys choose to standardize on the swagger slash open open API specification versus Rammel or some of the other open API standards.
[00:10:16] Unknown:
Well, I was not part of the discussion itself, but it but I know that it was mostly because it was already more popular, and it has a better ecosystem than anything else we were aware of. And it seems we we made the right choice because the ecosystem is getting better by the way, and we are happy that we helped improve the the ecosystem not only with connection, but also with with Swagger First and other tools that we made to work with swagger and and and open API and allow people to develop API first.
[00:10:52] Unknown:
And can you dig bit into, some of the details of what connection is and, I guess, some of the internals of how it's built?
[00:11:00] Unknown:
Okay. So a little bit of context to why I started connection. So, back at, last year, we decided that we were going to do API first and, build we do we do the swagger definition first and then start implementation. And I looked at all the fight and, frameworks that existed for swagger, and every single 1 of them generated a definition file out of the of out of your code, and I wanted to do the opposite. So I started this new framework as in as in entirely open source project. And so what the connection does is you give it a Swagger definition file with some extra parameters, like what what function should be should handle each, each endpoint, and it it automatically creates class groups for you and it handles, all out authentication if if if you are using it. It it handles both both, request and response validation according to the specification.
So it ensures that your host works like documented.
[00:12:13] Unknown:
And so when it generates the routes in Flask, does it create just create stub definitions for each of the different endpoints and then you go in later and fill them out and
[00:12:25] Unknown:
connection itself doesn't do that. You have to provide, you have to provide information yourself, but there's 1 tool on the Solr website. I don't remember the exact name anymore, but, it can generate stub files in several different languages including in Python introduction.
[00:12:43] Unknown:
And is there a particular reason that you decided to use Flask versus Pyramid or Django or 1 of the other, web frameworks available?
[00:12:51] Unknown:
Well, because, well, I I really love Flask when for because it doesn't try to impose any specific way of doing things, and it's very lightweight. Django is also cool, but then you it's very opinionated, and, it was not the best fit for this kind of project.
[00:13:10] Unknown:
And you mentioned that it started as that it started its life as an open source project rather than being extracted from something else?
[00:13:17] Unknown:
Well, actually, it's been 2 hours inside another project. But, yes, it's almost since beginning,
[00:13:22] Unknown:
a completely separated open source project. Okay. So it sounds like you realized pretty early on that it would be useful outside of the context of what you were working on. Yes. That's good because I'm sure it saved a lot of effort down the road as of disentangling it from the rest of your code base and cleaning it up so that it could be used by other people.
[00:13:42] Unknown:
Yes. And 1 of the advantages of doing this is is that other people start using it really soon, and they found some initial earlier than I would have done. And they saved me lots of time later.
[00:13:55] Unknown:
Yeah. And I've also found that if you start something with the intent of it being open source from the beginning, it can also lead to some better design decisions because you're less likely to tightly couple the implementation to the rest of the things that you're creating.
[00:14:11] Unknown:
Yes. Exactly.
[00:14:12] Unknown:
And going back a bit to the operational characteristics at Zalando, you mentioned that you're using Docker for a lot of your modern services. I'm wondering if there are any particular architectural aspects to your systems that you use to keep them easy to maintain and reason about particularly with the breadth of different technologies that are used inside of the company?
[00:14:35] Unknown:
Well, about technologies, so usually usually, if you decide to use some technology, you need to you need to have a group of people inside the lineup to maintain that project that that time projects in the technology. So you don't get otherwise, you get the near end what if someone left the company, and that's the only thing we have to take care of. So just 1 more thing. So the idea the idea where we are trying to move now is that, whoever writes the services also runs them. We are creating tools to allow people to to manage their own services easily. And so at least, for the platform, teams, we just we are taking an ends of approach and trust teams to do the right choices. Yeah. It's
[00:15:25] Unknown:
a good way to encourage better reliability and stability in the applications when the people who are writing the application are also the ones who, if it crashes, get woken up in the middle of the night. We also try to get to have solid testing, and
[00:15:41] Unknown:
there are teams specifically helping, back end and front end teams to create reliable services, and I think they are having good results there.
[00:15:52] Unknown:
And as part of the product development cycle, you mentioned that you guys use AB testing and that you created the Xpand library as part of that effort. I'm wondering if you can describe a bit about what it is and how it's implemented.
[00:16:08] Unknown:
Yes. So Xpand.4 stands for experimental analysis. So, so basic idea is that Zalando is not only a tech company, so we are also kind of, like, a data driven company. So we want to, yeah, base our decisions on data. And, 1 of the key elements is, of course, AB testing or randomized experiments. We study the causal relationship between a certain, yeah, we call what we call treatment to the customer and how they behave afterwards on website or in terms of transactions. So the library was designed to be a, stand alone tool that can be ready. And I can also, probably say that it's also currently used, both for some kind of talk analysis, done by typically a data scientist or data analyst and as well as, used by our microservice, so to say, really integrated in the whole platform and, running the analysis after a certain, AB tests experiments.
[00:17:25] Unknown:
And what sort of data collection and storage mechanisms does it use for being able to make sure that the data is easy to clean and process and gain insights from?
[00:17:37] Unknown:
Yeah. So, first of all, maybe our disclaimer, so, Xplen is, not about sort of data fetching parts or data aggregation at all. So it's purely a library, so a collection of, statistical functions to evaluate, yeah, the impact of certain treatment and assign, so the estimated, so to say, the treatment fact and as well as the, error margin or confidence intervals. And we, do have developed a separate, kind of tools to to aggregate, the data beforehand and feed that again into Xpand and perform the analysis.
[00:18:24] Unknown:
And given the potential complexity of the need for statistical significance in the data for proper AB testing, how did you design expand to be able to satisfy those kinds of requirements and make sure that you don't accidentally infer meaning into the results?
[00:18:41] Unknown:
Yeah. So, very interesting point. So, again, we developed, a set of, statistical functions to estimate treatment effect for the overall effect. And, then, you can also break down the effects by certain, customer features, for example, age, gender, and you can also study the overall effect over time, so to say, in order to identify certain, patterns, over time. And, 1 of the, yeah, pitfalls of something to to to be aware is, of course, the so called multiple comparison problem at, when, you, yeah, you're looking you're doing a bunch of, kind of hypothesis test, and, so, yeah, in the end, you will in a statistical sense, you you're bound to get some, significant results, so to say, if you don't correct for, for the error rate.
And, this is also something we, really take care of and, you know, kind of, feature of the Xpand library and, yeah, among other things.
[00:20:06] Unknown:
And I know that in Germany, the laws around digital privacy are a little bit more consumer centric than they are in the United States. I'm wondering if there are any special considerations that need to be made in the collection strategy for the data that gets used in Xpand.
[00:20:21] Unknown:
Indeed. Yeah. So during the, yeah, like, data attraction, data aggregation step, we do, like, ensure, for example, the location of the data has to be in the EU, instead of somewhere else. And, also, we are really careful about, yeah, customer anonymization. So, yeah, so to say, always be sure that not to draw in, like, data sources or where sensitive data, can be can be reconstructed up upwards or or where the anonymization is not done correctly.
[00:21:07] Unknown:
And for somebody who wanted to use XBAN in their own projects, what's involved in getting it set up and configuring it?
[00:21:15] Unknown:
Yeah. So, yeah, maybe at stage I can talk about the details about Expanse. So to me, has mainly 3, parts, which are user facing. So, the experiment data class, experiment class, and the results class. So, the, first of all, the the first contact of expand so the expanded data class, which is kind of, an interface between your data, from the experiment and, the library. Right? So you you provide x plan with some input data, and so the experiment experiment data class handles it and transform it in a in a way that, that is has, kind of, a predefined structure, which is known to expand.
And, then, it's, give that over to, to the experiment class, which has all, you know, a collection of, statistical functions, For example, stuff that I mentioned previously. So the delta function, where you can estimate the impact of the experiment and also the confidence intervals, what we call a subgroup analysis, which is, break down the delta, those treatment factor by a certain, customer feature and also, trend analysis or, over time analysis. So this is also what, the user might how the user want interact with the library. So the last part is the results class, which, so where we also defined very generic data structure for storing the the unnecessary loss, again, which are kind of able to, yeah, handle all different types of analysis and, in the end, easy to to be transformed into other data formats or, incorporate into other tools or, yeah, a service.
[00:23:27] Unknown:
And earlier on, you mentioned that as as part of the way that you sort of keep the number of languages and technologies it onto the radar and where on the radar they end up, so that you can make sure that you have a good good view of what technologies are useful and are going to remain stable and usable for some time to come?
[00:23:55] Unknown:
So we have a spreadsheet where we can go to some technology should be adopted or not and, or both. So the usual redirecting. So and everyone and everyone can vote on it.
[00:24:08] Unknown:
So are there any other topics or questions that you think we should cover while we're here?
[00:24:14] Unknown:
Basically, that we're trying to boost our contributions and users. So if you go to zelando.github.io, please check out the projects that we're working on. And even if you don't see a feature that you think we should be working on, like file an issue, make a request, and, build it yourself too. Just let us know before you start building because, we may have changed plans or something. It's always best to reach out first and say, hi. We'd like to make this change or add this feature. What do you think about it? And then we'll get back to you and let you know. We didn't always have an open source culture. So last year, so that would be spring 2015, we launched this new way of thinking about the tech organization called radical agility. And this is based on Daniel Pink's drive, the pillars of autonomy, mastery, and purpose.
And so with autonomy and purpose, I kind of unleash this renaissance of sorts and open source activity because teams were free to develop, make their own decisions, release things on GitHub. We we said go go go ahead and do that. And so there's where we got so much activity going. We, at 1 point, had 330 projects on our GitHub org, and a lot of them weren't really useful to other people. Like, if you didn't work at Zalando, it wouldn't wasn't necessarily useful. So, we've pruned a lot of those projects back. So now we're about a 157. And part of this radical agility effort involves speaking more broadly to the industry and really letting the industry know what we're working on and what we're using to develop software. So, we greatly invite users and, more contributors to test out our work and provide the feedback so that we can keep iterating and making improvements and making things more useful to the community.
[00:26:20] Unknown:
Interesting point. I can also speak for Xplen and, so the original ideas for, AB testing is a kind of like a generic problem faced by all companies or really different companies across different industries. And, so that's also why we decided to that we, wanted to open source this project. So if you look at, different tech companies now, Google, Facebook, they're really, putting a lot of effort into open sourcing, this kind of also data science related projects, machine learning tools. And, if you look around for AB testing, I think we are probably amount, really first, to, like, publish, yeah, in a public domain.
There are also, yeah, available tools, but, I think they are, you know, kind of also, solve for different use cases. And we are actually also in talk with, different companies here in Berlin and even competitors. So, yes, yeah, we are really open, to suggestions, ideas,
[00:27:33] Unknown:
yeah, comments. And was the move to more of an open source culture difficult to sell at the business level, or was it just something that sort of started at the technology level level and people started doing it and it was more of an, ask forgiveness rather than permission kind of situation?
[00:27:51] Unknown:
So before Radical Agility, there was a little bit of open source activity mainly in the department that Zhao works in, the platform infra world. But when Eric Bowman, the VP of engineering I mentioned earlier, came to Zalando, he's still an active coder and he, manages as as an engineer would. You know, he's an engineer, so he he works to build a culture that engineers will thrive in and feel challenged in and find their purpose. And so open source is just a part of what an engineer wants to be able to to work on when they are at a company. And so, there was no need to really sell the idea of open source at the at the management level because the manager was already pushing for more open source even more than some of the engineers who might have felt fear or weren't sure that they could actually open source their work or hadn't really been working in an environment to date where they could create projects of their own and release them on GitHub. And then we have onboarding every month and we on we're bringing in lots of people because we have very ambitious hiring goals.
And I do the presentation and a lot of the newcomers still, they come from companies where they weren't allowed to do any open source. And we have privacy considerations like like any company working in Germany. You have to follow strict audit and compliance regulations, And we're able to show that you can have all of those requirements and still be able to open source. You just have to do it mindfully. We're not gonna open source anything that exposes our customer data or puts us in at risk. But that means that we still have tons of freedom to open source libraries and services that can be of general use.
[00:29:41] Unknown:
I do think, open source first is, a really kind of ambitious goal. It's, something that, we really have to put a lot of well, some kind of effort into that. But, this example, as we also mentioned, before, in case of, connection and, and expand, as well, I think, as long as the project is designed, in the first place, to be, something, yeah, that's shareable and that it can be easily decoupled from the rest of the, like, company internal or proprietary stuff, I think, this is then, so from my experience, that's, this mindset is really well accepted and also found a higher level.
[00:30:28] Unknown:
Yeah. And just to speak about the open source principles, so we have a how to. It's just how we how we open source, and it's on the dashboard. You can find it in the top right corner. And the dashboard, once again is alando. Github.io. But we actually encourage open source throughout all of the teams. When we did this initially, it meant that sometimes we would put online projects that were really a value to us but really not to the community. So we've created some parameters around that as well as a separate GitHub organization, which we just call the incubator. And so on our main org, you find the projects, that are mostly, like, truly open source. So they can be used by anybody. They have documentation.
They have test coverage in place. Then on the incubator are projects that are in development. So they may be useful at some point to the general public, but, in the current state, they're either not or they're so embryonic that a contributor would have trouble figuring out how to actually get started contributing. Some of our teams just wanna code in the open and show what they're working on and show off to the community. So that's what the incubator is for. And then we also have launched an InnerSource pilot for this quarter. So InnerSource was pretty much steered steered by PayPal. I think they coined the phrase InnerSource, and it means that you adopt the open source collaboration model within your tech organization.
So for reasons of lack of usefulness to the broader community or privacy, security, you know, things being very tied to the business, you would keep things private on GitHub Enterprise. And so, but if your teams aren't mutually aware of what they are all working on and, you don't maximize the value of that work, It means you can create things in duplicate, create things in a silo, create things that are not gonna have long term use that they otherwise might have if other teams could contribute and help develop it. So we've encouraged this inner source model to really take the best use of our resources and also further reinforce this open source mindset so that eventually some of those projects may go live on GitHub. And even if they don't, and our engineers are still very comfortable working in an open source collaborative model.
[00:32:56] Unknown:
Yeah. And by maintaining those same communication patterns as what you would do with an open source project, it makes sure that all of the reasoning and discussion so it from just happening person to person and not being captured anywhere for posterity's sake for when you go back and wonder why did this change happen. You can actually look at the conversation right there. Mhmm. I mean, it also is really valuable in reinforcing the idea of feature teams, which is part of our inner source pilot. So it's technically called the feature teams in inner source pilot.
[00:33:35] Unknown:
And feature teams are basically that you have a cross functional team that owned the work that they do end to end, and they're delivering products of value to customers. And so when you have an open source mindset, the idea is that if you're managing a project, then you're gonna develop a lot of other skills in addition to your basic technical coding skills. Ideally, you're going to learn how to, establish boundaries around your the scope of your project. So you'll be able to accept and reject pull requests very naturally. You'll be able to visualize the long term life cycle of your project. You'll be able to bring on other committers that, can be maintainers.
You're gonna build a team around your work and you're gonna package a product that other companies, other developers can use. You're gonna create a user friendly experience and develop with user friendliness in mind. All of these kinds of benefits that we really wanna encourage in our own teams.
[00:34:36] Unknown:
And 1 other benefit too to the open sourcing aspect of your practices is that by having all of those projects work and realize, oh, if I do take this job, then a lot of what I'm doing, work and realize, oh, if I do take this job, then a lot of what I'm doing will be open source invisible to other people, which is is a lot times a motivator for people who are into the open source movement in general.
[00:35:04] Unknown:
For sure. And I can see semi real time or sometimes in definitely real time, like, what the company is actually working on and how they're going about it. Do they practice good design patterns? Do they, have a, like, a mindful approach to the way they develop? Do they value testing and test coverage and documentation? You know, all of these things can can appeal to very good candidates or or turn them off depending on whether they're present and active or not.
[00:35:35] Unknown:
And in the dashboard, you also mentioned that you have a set of guidelines for determining whether a project is a good choice for being open sourced. And I'm wondering if there was any inspiration taken from the best practices badge project.
[00:35:52] Unknown:
Not directly. No. I mean, the guidelines were developed over the course of a year and accelerated at the turn of the year, so over the winter. So that was a collaborative effort and and some of us may have been influenced by that project.
[00:36:09] Unknown:
So are there any other topics that we should discuss before we close out the show?
[00:36:15] Unknown:
I think we've covered it. Mhmm.
[00:36:18] Unknown:
Alright. So for anybody who wants to follow you guys and keep in touch with what you're up to, what would be the best way for them to do that?
[00:36:27] Unknown:
So we have Twitter. I think we all have Twitter feeds. Zhao and I do. I have Twitter.
[00:36:35] Unknown:
I also I think I also have links to everything on on my GitHub page. Okay. Okay. I don't I have to check with a minute.
[00:36:46] Unknown:
Sure. Yeah. I'll I'll add in all your contact info into the show notes. So anybody who's interested in getting in touch can look at the show notes on the pythonpodcast.com page. So with that, I'll take us into the picks. My picks today is the hacker's keyboard on Android. Lately, I've been doing a bit of work on my tablet just by SSH ing into my SaltStack server, and having the hacker's keyboard makes it much more friendly for doing work in the terminal versus the standard Android keyboard. So for anybody who happens to be in a situation where you need to do any sort of work on the command line or in a text editor, having that keyboard is much better for that kind of work. And with that, I will pass it on to you, Jay.
[00:37:31] Unknown:
Usually, I like to, read, when I come in to work. And, 1 of the recent books I've read is called, Shah of Shats. So it's about history immediately before the Islamic revolution in Iran. And, yeah, it's just a kind of, interesting, period of history to me and, also something new, I would say. Something so I learned, quite a lot, which I I've never been exposed before.
[00:38:07] Unknown:
And, Joao, how about you? Okay. I would pick a word, serendipity. So, I usually just pick a book or a movie or whatever, and I found out that just reading random books even sort of from something that I usually don't read, sometimes I get inspiration for so protect even for technical solutions and for other things in life. So that's my pick.
[00:38:32] Unknown:
That's a good 1. Laurie, how about you?
[00:38:35] Unknown:
So I just picked up Flo, by Nihaili, I'm gonna mispronounce his name, but, he was a psychologist, and it's, it was released in the nineties, and I'm rereading it. So the book is about how anybody who gets so into a topic that it sort of feels like their time just becomes something other, and they just work and focus on the and concentrate on what they're doing so that, you know, either hours can seem like minutes or vice versa. And this is this book explores, like, how people get into flow and how flow can really add a lot of value to someone's life because they're aligned with purpose and understand their purpose and can work and and act with purpose. Even if you're on an assembly line doing the same repetitive task, you can still get flow and find value and meaning and purpose just by that task if you gamify gamify the activity or come up with some other creative way to to add value or apply value and meaning to it.
[00:39:43] Unknown:
Great. Well, I really appreciate you all taking the time out of your day to tell us more about the work you're doing at Zalando and some of the projects that you've created there. And I'm sure that our listeners will be interested and appreciate that as well. Alright. And thank you so much for having us on. Well, thanks.
Introduction and Sponsor Mentions
Meet the Guests: Zhibo, Joao Santos, and Laurie Apple
Introduction to Python and Zalando
Zalando's Business and Technology Stack
Operational Characteristics and Docker Usage
API-First Approach and Connection Framework
Maintaining Services and Encouraging Reliability
AB Testing and the Xpand Library
Technology Adoption and Tech Radar
Boosting Open Source Contributions
Open Source Culture at Zalando
Feature Teams and InnerSource Pilot
Contact Information and Closing Remarks