 We do have two speakers this time. I don't know if what's your setup actually? I didn't have time to ask. Do you have two? Screens two sharing or one, okay? The first speaker is Mario Corceiro. He is a senior software at Bloomberg He leads a Python infrastructure team in London enabling the company to work effectively in Python and using company-wide libraries and tools and Your background is actually Python and C++. Then we have Mariana Paula Toglu, I hope I pronounced it correctly She is a senior software developer in Bloomberg LP in the mobile team and also a Python enthusiast and She does the thing called the Python Guild. I think we will hear more about this So please start with your talk growing a Python community at an enterprise scale Thank you. Thank you very much well Yes, so basically we're gonna speak today about What's Bloomberg and how how Python was growing at Bloomberg? It was quite a long journey And we hope that this is helpful to you if you plan to to grow any technology within your company Or if you're thinking to try to introduce Python within your company It was quite a long trip for us and we hope that this is helpful for all the people So first of all, can I have a show hand of who knows what's what Bloomberg is? Okay, okay That's the only job for today. Don't worry. So in case in case you don't know what's Bloomberg I wanted to put a couple of slides together because at least for me when I joined Bloomberg I remember this was I knew Bloomberg as the TV channel that you would just skip through when you were trying to find the Channel that you really wanted, right? So Bloomberg is more than just a TV channel There is this product that we sell which is called the Bloomberg Tamula and basically this This is a software that puts together all kind of old thing from financial information on the world Analogies to sell stocks and see how they progress and you know anything that you might want to iron financial information Bloomberg is extremely I Was not say all but let's take elder. It's it was formed in 1981 And there are a lot of we have a lot of employees and we have more than six out six six thousand developers And the reason why I'm saying this is because I want you to understand that what I'm speaking about how how Bloomberg It started to embrace Python. This is not a small startup that you can change in a day This is a huge elephant That was mainly doing seeds plus and was used to having the whole the whole workforce within the company To know how how to work with six C++ and some many years ago as well for fun and Introducing Python of Bloomberg was was quite a challenge I think that similar to what happens in many other companies Python started to flourish at Bloomberg as a language that was useful for testing and doing some basic scripting at this was in the previous company which I was working with just some of the issues was also something similar and Given that, you know, a Python was kind of easy to write it was seen as easy to write It was preferred quite often when people wanted to do some test some kind of like high-level testing or some scripting I think this is something really important when you're trying to Introduce something in the company. I think it's quite key that You we want to start with something small and see how how it flores and how useful it is After writing some some really basic scripts Something something which was key in the history of Bloomberg happened, which is that a monster was born There was an intern who created a project called BB PI be py stands for Bloomberg Python and Which basically was a fork of the interdependent time Python 2.5 or Python 2.6 Which was statically linking all the well the main C++ libraries that were being used within Bloomberg That allow allowed Python well BB PI to tap into the solutions that many developers were accustomed in in C++ land This allowed them to use Bloomberg databases Bloomberg Bloomberg way of getting the time How to communicate across services and this was I said this was an intern and that put together This fork of the interpreter and if you know it was crushing and it was all the API's were Was were full of C++ idioms and the manage of the lifetime was really C++ Wage and but but this this monster was a really opportunities monster. This this allowed the growth of Python within Bloomberg because then When you were writing yourself where you could actually you could actually you choose Python to write meaningful code Before this you could only use Python to as I was mentioning to write some scripts and some basic testing utilities But now with this monster you were able to write like things that were providing business value and I remember back at the time When when I wrote my first Python service my mother will tell me that this is Python even safe to run in production it's where they all days where they were absolutely no support of Python in the company and You know, it was it was something it was something new but it was not something like Enterpricing and Something that you might want to take from this is that Don't be afraid to be disruptive and create Something like a simple POC can can can get to change a whole company Like we've we've also seen this many times within our company that I remember there was there was a tool Which was actually written off top of this video by interpreter that allowed people to write tests Basically for the services with basically two three lines where they were just saying the request and the response and that grew across the Across the whole they can be community and that keeps An appetite for more testing so don't be afraid to to have crappy solutions change the company This will indeed adept to your company, but but it might it might need to invite initiates a move that it's it's worth pursuing and What also why I think that Python was really important is they don't wait Python succeed was because Python arrived when when Bloomberg was looking at doing more more SOA We were trying to create more services and we're trying to communicate across teams most more to our services and libraries Back in the day everything would be basically a seamless was library. Unless you need to speak with a UI And the problem is like that the tooling was not there writing a new servicing a new service in C++ was quite costly and quite often what you would see is that someone would create the service right with like these two example requests and And then when when you needed to add some some new logic that would should probably go into a new service because of the cost of writing a new service that may be Couple of days people just say like these are related, right? So we might as well add them to the existing service, right? I'm sure everyone who is in an SOA organization have seen this and But you know the problem with this happens, right when once you let the mud lurk in your service you open the door to absolutely anything coming through it and This is something that was happening in C++ and When we started to show Python to people think with the Bloomberg I remember we would be proud to say that look come in use Python You'll be able to write a service in in just half a day or one day which at the time it was amazing Nowadays we have managed to reduce that a lot but this was This was one of the main selling points of Python of Bloomberg the fact that you could get a new service ready in half a day and This is I think this was probably one of the most important Things that Python brought and what what led to Python spreading across the company. We found something where Python Was was excellent compared to the existing solutions So if you're trying to if you're trying to introduce something in the company Try to think like what's the main value that's gonna that's running like if you want to create as well people like you want people to use it like what's what's the main thing that's gonna change on the life of Well the work of people that that are today using different solutions, right? Maybe maybe you are in an organization that is used like it's heavily depending on a multi-threaded code Maybe you want to address maybe rest is the solution for your company's try try to look for something that Will be a game changer Because because the existing solutions will have more more infrastructure support compared to to this kind of like disruptive proposals and With this we like a community was born that there was there was no infrastructure support for Python at Bloomberg I said this was this was an intern who wrote an intern in a team that was doing basically alerts in the terminal and And we decided to start organizing ourselves to share knowledge about Python because there was no material and there was no There was no training within Bloomberg to to provide knowledge about by them we started to do internal meetups and In the internal meetups that they were a total success He was full of people because Python was already spreading and we were learning about how Python was at Bloomberg and also about things outside So we're learning about the how to use Python what was coming in Python 3 things like that and I think this was also key for Python Python Python started from from the bottom up and We we had a community behind it back in at all time That was really helpful because we had a chat that allowed allowing our users to answer questions whenever they have any doubts and We were actually providing even the support in terms of like Libraries because we were using You'd have enterprise but for any probably any any other any of them any other tool that you have to share code works We were able to start creating libraries and share them across our users and and this was called community project We were basically, you know, whatever whatever I was writing for my team I was happy to share it with the rest of the company and They started to create more and more Community driven infrastructure that started to spread across Bloomberg I remember it was quite shocking when when I saw a really simple library created just for my team Being installed in tens of thousands of hosts. I was like, what is going on here? This is way too scary, right? This is not my main job How come like this library is being used across the whole company And this this was actually something that you might want to look at because I remember Coming from a company where all the infrastructure code was Supported by a team. It was quite challenging because there were some situations They were minimal but there were some situations where if something breaks They were calling me in the middle of the night Telling me to fix something right now. It's like like look like I'm happy to share this code, right? But I I'm I'm currently not there and I'll try to fix it But you cannot speak the same kind of parentheses from this code as if this were to be my main job And also We something that we did that which I think was quite successful in spreading Python was we set up a lot of workshops We were basically said the more so where we're helping and guiding people and holding hands on how to write Python for the first time Because if you're in a company trying to induce any technology and people are not comfortable with it It's really important that you make sure they have a really good experience in the first time they try it, right? So we're holding workshops every other week. We're showing people how how Python could be used and One of the main concerns I think that the people had when when we were trying to evolve for Python within Bloomberg Was that the people were worried that I can work was going to be too slow, right? We were a company where we're a financial company and a data company that needs to process a lot of data really quickly and And people were concerned that Python was going to be really slow but but but quite often the code that was being written was just only a blue code that was interacting with all the services and databases, so they both of them was really the network and And we we realized that many teams did indeed have really high volume of Transactions, but all they needed was basically to just have more instances of the service They need a throughput not latency and that thing. That's something that people really Like that's something that you need to be really careful when you think that you need your code to go faster Many times you don't need to go to the code to go faster You need you need to be able to handle more transactions and you can get that by you can just increase throughput by raising number of services If you are in an SOE organization Actually the opposite happened the people realize that Python was really fast We started We wrote one service in our team in Python and Our TL back at the time Was impressed with how quickly we were able to put that together that he decided to have the whole team Trying Python out and quite quickly all the things within the department Were impressed with how quickly we were able to put business value into production So the Python started to spread the cost of the department and like that across the company Like Python spread like a disease with the Bloomberg because it was extremely easy to write new code and to adapt to new requirements So at the end Python turned out not to be slow, but to be actually faster and at this point You know our organization were starting to do more and more Python We started to be one one of the standard tools within the company and we decided wanted to engage outside We started contributing to the pipe to see Python to other open source projects You know, I we were using all this for free. So we had to get back and We started to sponsor conferences and events we we were hosting events and we even started to have a Conference hosted in our own building And I think I want to I want to do this into this Presentation because what people well many companies will see this as you know, just giving money away I think it was super useful for us We gain on recruiting we gain on retention and we gain on scale We were a company that have no history on Python at all and by reaching out we I think we gain a lot of skill and We can and we we allow our own employees to see that, you know, Python was a thing of Bloomberg and With you know With enough time there was there was a point where managers realized that there was no stopping Python at Bloomberg So there was time to have a team dedicated to Python It was important to have a team to be able to tackle large-scale projects We were basically doing everything as you know, individual contributors trying to in our free time Trying to put some things together but there was it was time to have like a team dedicated full time to do this and We started by maintaining the interpreter that's the team. I'm currently working on so the man didn't interpret there And we're working on the migration to Python 3 speeding on the interpreters and Anything related to to Python within the company and I was I was quite touch in 2008 when the head of a side Was saying that, you know, Python should be the full language of choice when writing new code in Bloomberg So it was quite a long it was quite a long trip But I was happy to see that, you know, that this this this thing that started just from from someone was writing some Python code Transforming to DC state and I'm now gonna pass to Mariana, which is going to keep speaking about how we structure and how we collaborate Yeah, Mariana, there you go. I cannot hear you though Sorry Click a lot of buttons. So, um, as you've heard we started from an internal writing code and Actually from meetups and all of a sudden all of a sudden with some magic involved and some spells We got the Python guilt, right? That's great. Of course. There was no magic involved It took a very active community people who were very proactive Wanted to see change and actually pushed for it and worked for it, which is amazing It took a lot of hard work from everyone in the community honestly and everyone who wanted to see this happen and It takes management buying and that is important to say because the truth is that Once you have a guild then you have people dedicating part of their time to something Outside of their normal team's work. So the management need to believe that this is useful. This is helpful. This is worth it, essentially And it takes a lot of iterative reform. We didn't go overnight from the meetups to the format that the guild is today actually so Gills have had different definitions throughout the centuries really and even now in different companies where guilds exist They have different definitions. So I really wanted to get this right and What the guilds are in Bloomberg overall? They are community-centered on specific technical topics of interest and for the advancement of technology in Bloomberg That means for example, the Python guild has a very clear thing. It's about the Python language and the tooling around that in Bloomberg Of course, there are guilds like the testing guild that has to do about testing in general and doesn't have to do with a specific language and The guild leaders then are charged to influence the use of the technology internally and engage with the community Externally so that means for example like the meetups that were mentioned talking about best practices internally and Helping out with conferences and the conferences the participation of Bloomberg in the conferences as well So the guild is organized with having chairs usually one or two chairs Who are facilitating the guild's processes? So in the Python guild I'm one of the chairs actually and The guild leaders who are actually making this possible and doing everything else and Facilitating the whole guild really So if you think of the guild, it's essentially a machine That have a few responsibilities and those are first of all having conference engagement So that means from looking into what conferences are happening out there and which we can sponsor and should sponsor Depending with our budget restrictions as well, of course Helping out with speakers with proposals with anything that has to do with conferences really Then we have presentations and meetups. This is A lot you hear meetups a lot. That's because they're great. Honestly, then they're a very good tool in sharing knowledge and With also talking with presenters outside of Bloomberg to come into Bloomberg and present something that's interesting for the whole community and that people should know about We have internal influence and that goes back to best practices Helping out developers Start off with something or with any issues they're facing on the specific aspect of the guild And also collaborative development. So that goes from Developing community projects Also think that the python guild is one of the oldest guilds in Bloomberg and there is The python guild co-exists with the python infrastructure team But there are also other guilds that don't have an infrastructure counterpart and have to do all the development of the tooling themselves So all that sounds like a lot right because When you get charged with all this like where do you start? How do you even start? What do you do first? And this has led us to organize ourselves into focus groups and that means that its focus group Is charged with a specific aspect of the responsibilities And uh, usually our focus groups are led by one or one two three guild leaders and these work great They're amazing in terms of parallelizing our efforts and uh separating the concerns as well So we have six six focus groups in total And starting with the conferences. These ones are This one is the clearest to describe I guess because I already have it's the same as the one for the guilds in general Looking at what conferences are there what to sponsor Helping out people with their talks with Proposals and all that and even with the conference engagement In terms of when people go to the conferences or you know going to their living rooms in the conference In this case and participating in the conference We have external events focus group this one has to do with Springs for example as we have in this weekend for this conference and uh with um also Other external events as external meetups We have the co development co development focus group and this one has to do a lot with fostering a good environment in the community and And making sure that community projects are able to flourish Also in terms of like what the infrastructure offers and what the end developer may want as a helpful Tooling as well the guild can help a lot with that We have the internal events focus group as well. This one is About meetups and workshops our workshops actually have had huge success Um three minutes. They're uh very good And we also have the pragmatic recommendations focus group This one is a very good group because you have best practices But also you have that not all solutions fit all problems So you can have different approaches depending on what the issue actually is And last we have the training focus group. So in bloomberg the training when you join the company is fully in python That as explains the tooling in bloomberg and this focus group has to do with interfacing with the training team And anything that they may need So how we organize we have open meetings with the guild leaders Every two weeks in which we discuss any issues and we talk about proposals And anyone can actually join which is amazing to get feedback from the community straight away as well We have a newsletter sending out a day before the meeting That its focus group give out their updates and ask for any call for actions And we also do retrospectives in order to reform ourselves. This is one of the best agile tools out there And The most important of all the community contributors Without them the guild wouldn't exist and it wouldn't actually even make sense to exist And it is amazing that we have that and also think that the guild leaders are Leading the focus group that but they can't contribute to everything. So for example, if we have five Community projects running not one person cannot do all the coding and the community is what makes this possible And what makes this actually worth it So what we have achieved we went from a main c++ company from like why do you want? I'm sorry. Why do you want to write this in python? Like what is even python? Isn't it too slow to why not in python python sounds great And that is amazing. We have a very active community ever growing And it's one of the friendliest places to be in and I absolutely love it. No bias And we also have a python infrastructure team which shows how much the company is committed to python actually, which is amazing So what's next? We have we're currently reforming our focus groups and thinking of new focus groups We we could offer and should offer we ask the community in one of our open meetings What issues they're facing and would like to see focus groups for and we're currently in further conversations with the community on that And of course we keep changing in order to stay current and to Actually meet the community's needs and that's what we need. All right, that's it then Thank you very much for listening. Are there any questions? Thank you very much for your talk very interesting concepts the skill system Um, I see we have questions in the q&a, but I actually do have a question first about this skill system Is how do you motivate people internal people to join the guild and the meetups? And the second part of the question is um, do people from other guilds if I don't know what you have For example a c++ guild or whatever. Do they join too? Uh, so actually I guess that depends There are many people who are very proactive about it and for those we don't need to do anything obviously, right? Um, but of course I think that it goes back to what mario said in the very beginning that there were a lot of workshops to show people how easy it is to actually write a service in python and have it out to production straight away um, so it's about convincing people that it's worth it And uh, then it depends I guess on the topics and so on but we definitely had people who converted from Just like writing c++ to writing python. How are you being very happy? I don't know if that answered your question fully perfect. Yeah, and um, now we have many questions in q&a Oh, we are running out of time. Okay, let me go with the first from jago How do you raise awareness about good practices software quality sharing tools designs or techniques any suggestion there? I can take that one if you want mar. Yeah So, um, so actually that's that's uh, that's a great question And I always had actually hoping to mention in the slides, but I cut it because I was seeing that that was our running in time um, we we were using we were basically relying on an internal mailing list that we have And also pushing a lot on on meetups and workshops. Uh, lately we'll also start to have more like proper training which helps a lot But this is a really good question. It's actually key because when we started Uh, and when people started to move from c++ to python We saw that many people were not writing any tests at all Which for us was unthinkable in python for large code bases But things like people were relying on the compiler and we had to put a lot of emphasis on making sure that looked like You need to follow what are good practices on python and you need to make you need to make sure that Did you retire your right tests when you write new code? So Like absolutely agree that you need a way to to to raise awareness of practice and everything And yeah, I would we were basically relying on internal mailing list meetups workshops on the internal networks that we have for that Okay, so we have time for the last question How do you manage the time of organizing events leading these initiatives and doing your engineering job? At the same time, how um supportive is bloomberg in this regard? I can take that the one uh as well then Uh, I think you can probably answer as well in front of the same art. So um, so at the beginning we started basically So, you know if because what we were doing in some way was also relevant to our team Uh, at the beginning there was no issue at all, right? It was kind of like a community project But it was seen somewhere related that were with our team because we're we're starting to do more python services When this got more formalized, uh, there were there are some organizations like the guilds as mars mentioned, uh, there's all another thing called like the technical representation take the representatives Which is another organization between bloomberg that in theory give you 20 of your time to do whatever you you want That's uh, that's something I think many other companies do and uh, so basically we were I mean, I would like to say that that was just using that 20 percent of my time to to do python projects Like I think we depraved it, but we all know that's not true. And at the end I was basically we're working Which is something I don't recommend Um, but yeah, like bloomberg in theory is is really supportive of this Uh, the company is really supportive I think I would encourage every company to do that like trying to encourage this kind of Site projects that in some way I think advance the company But uh, but it's really if it's something that you are passionate about it is really easy to gather the funds So that was kind of my situation. I don't mark. How was we signed? Sure. The only thing I was going to add is that I think it goes back to getting the management buy-in I'm convincing them that it's actually something that is useful for the company overall So yes, there are gonna be projects for the team obviously But some of the time can go into guilds and that helps a lot even with the personal development to be honest And that is amazing Okay, thank you again very much. We unfortunately we had we have two more questions here, but times up So please take these questions to discord chat With control k if you enter a community you will get the the channel talk pyson community enterprise And there will be more questions. So thanks again for this talk