Brian: PodRocket is sponsored by LogRocket, a frontend monitoring and product analytics solution. Don't know what that is? Go to logrocket.com. Thanks. Kate: Hello, and welcome to PodRocket. My name is Kate and I'm the producer of PodRocket and also your host for today. With me is Dmitry Vinnik, Developer Advocate at Facebook Open Source. Hi, Dmitry. Dmitry Vinnik: Yes. Hello, thank you for having me. Kate: Yeah, thanks for coming on. So Dmitry, tell me a little bit about yourself, your role and what you're working on at Facebook Open Source. Dmitry Vinnik: Yeah. Thank you for asking. I'm currently an open source Developer Advocate at Facebook, which basically is a big statement that needs a big title as well because we cover such a large portfolio of open source projects. We have over 600 publicly available projects that you can see on GitHub. But for me, myself, I'm focusing on mobile. I used to focus on development tools, but right now my main priorities are Android, iOS, and some hybrid mobile projects like React Native. Kate: 600 projects, tell me about that. What does that, talking about scale, I guess, how does that work? What's the structure working on those? Dmitry Vinnik: Yeah, that's a great question as well. Our team, I mean, the open source has been in the very DNA of Facebook. It started with open source and that's why we've been contributing to it as organization as well. But as developer advocates, we're fairly new to the company. In the past, some folks had the informal title of developer advocates, but now we have the focus from the company perspective. And so, as a result, many of us joined and we've been faced with this large scale. Facebook people have expectations, but also have a large number already public project that you can see on GitHub. And so really we had to basically build the ship as we were flying it. Had to figure out how do you manage quality versus quantity situation? But at the same time, you don't want to create blockers for folks. Dmitry Vinnik: You want to still be very open. So if an engineer wants to open source something they've been working on, something they're passionate about, we never want to stop them. But our role right now is to make sure we guide them in the right direction so they have goals in mind when they open source. Especially if Facebook is behind that open source project. If it's something that they do on their own, they can publish it under their own name. But if it goes to our GitHub repositories, we want to make sure we have code of conduct. We have proper contributors guide. So we are welcoming diverse community to help build this project, to drive the adoption potentially. Have a proper readme with why we build the project. So those sorts of things how we manage it going forward, and even existing project that we already have. We try to work with the teams. Dmitry Vinnik: And as a result, as I mentioned, the team is fairly new. The developer advocacy team is fairly new. And so what we've done is we divided and conquer. So each of us, each of the DAs on the team, we have focus areas. For myself, I mentioned I'm focusing on mobile. Some of my colleagues are focusing on AI and machine learning. Some would focus on React and just the front end as a whole. And that's how we've been trying to tackle it. But obviously it's still a big question we've been trying to solve. How do you manage the scale of over 600 open source projects? And it's very much work in progress right now. Kate: Totally. Yeah. Yeah. So taking a step back, I guess, how is Facebook Open Source different from maybe what a lot of people think of as open source? We've had a lot of open source folks on our podcasts, but now adding the Facebook to it, what does that mean? Dmitry Vinnik: It obviously comes with the expectation, as I mentioned. It's the large organization and there are quite a few massively known projects like GraphQL, React, PyTorch. Projects of that size, of that magnitude, that the community knows of. You probably can search on LinkedIn or any resume searching tool. You'll find that so many jobs are looking for these sorts of open source projects that come from our brand, from the Facebook and the community helps building. So that obviously sets the high bar for us to meet and to work with those projects. But in terms of overall what the open source means here, it's very tricky to even measure successful projects because, if you look at other companies, ultimately when they do open source, yes, they might be contributing. But also they're looking for ways to have a commercial model behind that open source work. In our case, we're not really making any money out of open source directly. Dmitry Vinnik: Instead we're trying to build the community. It's the whole mission of Facebook is to drive the community behind people using Facebook. And, in our case, using open source coming from open source at Facebook. We're trying to be leaders and work with the community overall. And of course I can say that recruiting doesn't play a role. As I mentioned, the fact that React or PyTorch projects... Those projects that come out of Facebook are on people's resumes. People created massive companies, startups, courses on top of those projects. The fact that it exists out there is obviously helping us to position ourselves as the leader in that space. So that really makes it complicated to measure success of our projects, but at the same time, it's what makes it exciting. I honestly love the fact that when I'm talking about the project that we've opened source, I never have the idea of, all right, now let's sell you some service behind it or some consulting behind this project, because we don't have anything like that. And, as I mentioned, it's what makes it exciting. Kate: Yeah, that's great. So we actually are trying a new segment for this podcast and we have outsourced some questions from a listener, but also a future guest. His name's Anthony Campolo. He does so much. He's all over the place, but how I was introduced to him is he's actually a host on the FSJam podcast. So he has some questions for you. And one conversation that came up in episode 26 of FSJam with Claire Froelich, she was kind of curious about the structure at Facebook. Because we have projects like Jest and Docusaurus, which are both separate projects, but then they work together in cross cutting ways, because Jest documentation is built with Docusaurus. I guess, walk me through that ecosystem. Dmitry Vinnik: Yeah. I'm glad you brought up Docusaurus. It's one of the, I would say, even favorite projects that's we, as developer advocates on the team, enjoy working with, even contributing back to. The reason why I could even say is one of the creators of that project is currently a developer advocate on our team. Is probably one of the most senior, in a sense that he's been here the longest as well, Joel Marcey. So Docusaurus obviously is something we're trying to keep as our primary project that goes throughout all other projects. So if the team comes to us and says, "We are about to open source something." We obviously will start the conversation of, what are your goals? And if they say it's not just releasing the code that accompanies that research paper, that often happens. Dmitry Vinnik: But it's, instead, something that they are trying to drive adoption behind, get contributions from folks. And we want to make sure that the project potentially has a logo because it's one of the ways company shows that there is a commitment to a project. It's simple things like logos. Then the next step would be having, obviously, proper readmes, contributor guides, but also the website. And because Docusaurus came out of Facebook initially, as a result, we have a very good integration with the project. But also we've been working with Major League Hacking to have people and fellows just working on the open source projects, like Docusaurus, making it better. And by us using it in-house, like dogfooding something like Docusaurus, we get to work and help other open source projects that Facebook uses. They also find some gaps in the project and contribute back. Dmitry Vinnik: So as it is, you're often looking for ways to do some coding and it's one of the ways we developer advocates get to do some. But in the sense how the ecosystem of open source at Facebook is structured, people have so much freedom when they do some open source work. We, as I mentioned, we have a very strict guidance in the sense that you must have code of conduct. You must strive for diverse community. Those things are... We're not questioning them ever. But in terms of what tools you'll use, what documentation site. You might use Gatsby if you want to, but we might guide you through using Docusaurus because it's something we have expertise with. And we'll show you some integrations, but it's still up to your team to choose. We're not going to do it for you, decide for you. So you have that freedom. We don't dictate that that's what you have to do. Kate: Got it. Okay. Yeah. That makes sense. And then for, so once the project's up, I guess, does Facebook accept open contributions or not accept contributions? Or is there a mix of different levels of engagement with the community depending on the project? How does that work? Dmitry Vinnik: Yeah, that's, as I mentioned, because of the scale and the portfolio size, it obviously differs from project to project. And we're trying to be very clear upfront with the community, what the goal of the project is. I worked with some research teams that their goal behind open sourcing the project is to make it public, to share it with the community. But at the time they're not looking for contributions. And we don't want to just have a project that has plenty of issues or PRs opened, and nobody ever attends to those. That's obviously an issue with any open source project that exists out there. It becomes more popular. You might have some idle PRs and issues, but we'd like to avoid that, especially going forward. And this result, if indeed the project upfront is not looking for contributions, we'll make sure the team makes it public. Dmitry Vinnik: They will mention it in the readme, they will say it in the issues in the pinned discussion saying, this is what it is. It's currently an exhibition almost, of a code. So showing it it's experimental and contributions will be accepted later on. But honestly speaking for the majority of the projects, obviously one of the reasons to make it public is to make it better, and it only can be done through the community's contribution. Hence we try to always enforce the fact that there should be contributors guide with any project that goes out. And that is basically how we position ourselves in terms of getting the contributions. But at the same time, we have to be realistic in regards to how much effort it is. Open source, if the team indeed open sources the project, we expect them to put effort into maintaining that, especially from the public point of view. But obviously things like that might change, priorities change, but we're always working on that. We're doing the postmortems of things, let's say PRs have been idling for years, we want to make sure it doesn't happen again. We're always looking through that. Kate: Yeah, no, that makes sense. So along those lines, I guess, what happens when a project takes off? When it gets to a bunch of adoption, lot of stars, what happens then? Dmitry Vinnik: Yeah, if that happens, and obviously we try to get ahead of the game in a sense, don't just pick up the project that are massively popular, or we expect to be massively popular. If, upfront, we see the team, the development team that makes a project open, shows the commitment. They have a proper plan, ideally long-term plan. And that's what we're striving for. There is a good chance it will indeed grow to high popularity and stars. But not every project has that goal in mind, but the projects that do, and indeed grow to that level, we want to make sure the community is safe. So if they have a Slack or they have Discord or whatever they might have, we want to make sure that it's properly moderated, the code of conduct is recently published that our priority or focus on DNI. Dmitry Vinnik: So things of that sort is what we'll try to adhere to and improve. But in regards to anything else, teams have quite a bit of autonomy. The developer advocacy team at Open Source, we produce some additional content. We work with the teams, especially with the popular projects, to identify what the gaps might be. We might help them by hiring someone to do full-time work just on open source that sits outside of the engineering team itself. We might help them find the documentation writer because documentation is so important for any open source project. We might find a way to do tutorials for them. You might have seen some Explain Like I'm Five videos that we've done on Facebook Open Source YouTube channel. So those are the things we're working with individual teams on, but in reality, they all have so much autonomy. They can do so many different things. We're just there to support them and to highlight their amazing work rather than doing the work for them. So that's a position of our team as a whole. Kate: Totally. Yeah. That makes a lot of sense. Do you think of your job as more community-focused, tooling-focused or content-focused? Or is it a general mix of all three? Dmitry Vinnik: Gladly, in my team, in the open source team as a whole, we have people focusing full-time on tooling. So we have a great integration for people who work on the open source internally and even externally. So that part is handled for me. So I don't have to ever even think twice about it. I can give you the feedback to the tooling team, but they've been doing such a great job that I rarely have to do that at all. So my really focus would be on the community. Community has been the primary vision for our team as a whole, but one of the ways you would engage with the community is through content. And we've been trying to get that up to speed. As I mentioned, it's fairly new team, still with not that many people. Dmitry Vinnik: And so, obviously, you have to manage the balance between strategy work for the community, like that Major League Hacking fellowship that we've launched along with the other companies. It's the work that we've been doing. But at the same time, you have to prioritize how you support individual teams. We've recently launched React Labs to share with the community some in depth knowledge around React, which means we focus on community, but also integrate the content as our priority. So really [inaudible 00:15:06] is our role. It's actually keeping the balance between the two, but community still is the very highest priority for us. Kate: Yeah. Awesome. Yeah. I've seen the, explain it to me like I'm five videos. They're great. I watched a bunch of them before this interview. Okay. So maybe explain to me how GraphQL is different from maybe other projects that you're working on. Dmitry Vinnik: Yes. With any open source project, what matters the most is who's involved. When it's just backed by one single company, it might get tricky. So with GraphQL as an example, we've seen that there is a need for the community to grow their partners to be involved, that outside of Facebook. And as a result, GraphQL is one example, Presto Database is another where you can see that it's grown to involve other organizations like Alibaba, Uber, and many others. And so in the situations like that, let's say if the company were not to be involved anymore, other companies will be able to pick up the slack. It's rarely that projects of that magnitude are maintained by individuals. And when they have the backing by some large organizations, there's definitely major help from that sense. Dmitry Vinnik: And so, in regards to the particularly GraphQL, I've seen the Linux foundations has done an amazing job in launching free learning tutorials around it on EDX, that you can find on the GraphQL Foundation. I'd seen that the community still has been growing and we obviously still contribute to the project and use it internally quite extensively, and still very much rely on that. It's just one of the ways individual projects can evolve, but obviously it's not right for all of them. It always depends with the projects and the teams. It's almost like I'm being a consultant here and saying it depends, but it really depends. Kate: Yeah. I was actually going to ask, when you're working with all these different projects, are you taking consulting on? Here's what I think would be successful, that sort of stuff. Dmitry Vinnik: It's kind of like that. You're there to help them to just highlight the work they've done, the engineering teams, and just maybe pinpoint the gaps more. More often than not, they are responsible to find the gaps in their open source and you can help them with that. But in reality, I'm not going to do the work for them. They still have to be committed to working on open source. If they're not able to, that's where we have to think of bringing up actually external people who would work on open source, or ramping up our efforts on growing the community and getting more people from the community helping with the projects. But really, my role is bringing expertise in open source and developer advocacy. Dmitry Vinnik: And they're always like the engineering role and also seeing that they have that passion for open source. Because honestly open source is complex. It is not cheap. It's expensive from all sorts of points of view. From the money theory, from the time, from the efforts and how it's even evaluated at works, things of that sort. It's not just the voluntary work for the most part. It's really something that people have to be committed to. They have to see the value in it. And so it's always exciting to work with those teams that are excited about open source. And again, my role is just to empower them. Kate: Yeah, totally. For people who are maybe listening to this podcast who want to launch something open source, I guess, what advice would you have for them? Dmitry Vinnik: Yeah, I would say read a couple of open source guides. I really enjoyed the GitHub open source, that guide, I believe. TODO Group, that's a collaboration of companies on open source to make it even more welcoming and diverse. Facebook Open Source is part of the organization. That's also a great place to go to. But also in our YouTube channel we have plenty of videos on how to start with open source. So just learn about it first. I know it might be overwhelming, especially when it comes to contributing. I've been in your shoes before you thinking, all right, today, I'll start contributing. I've read so much about open source. I've used it so much. I would really want to give back to the community. But then you go to GitHub, you see major... I think I started with one of the Apache projects. Dmitry Vinnik: You clone it from the GitHub and then you don't know where to start. And you're thinking, how do I make a major change like that? Do I need to follow the email list? There's so many moving pieces. That's why I always say step back, look at one of the guides that I've mentioned, the resources online. You can find plenty of them. And so hopefully they will guide you towards maybe just make a documentation contribution. It seems like it's minor, but it's important. If you've been reading the docs and you see some even small typo, you might help significantly to the next person who read it might not have known that it was a typo. And after that you will feel confidence. You will know the workflow. Creating the PR, merging it, that workflow alone will help you to make an even bigger contribution. So just get started. People usually are very welcoming and just find the project that is indeed welcoming to contribution and you'll be well set. Kate: Yeah. Great. And then the other side, from user's perspective, what should you be looking for if you're wanting to use an open source project? If you're, I need this tool, but I want it to be open source. I guess, what are some key things that you should be looking for? Dmitry Vinnik: Yeah. Open source is definitely... I mean, from the user perspective, it also, I would say, overwhelming a bit, because so many projects are there. Which is exciting at the same time. Kate: Just overwhelming in general. Dmitry Vinnik: Yeah, absolutely. I mean, so many things to go through, especially if you're in the frontend area. There's so many different frameworks and libraries, and more and more coming out every year or every month, even. So it is tricky. I would say, I always look for documentation first. So you always start with that. You find a number of tutorials, especially if you're new to it. But I would say, I always like to start with, let's say, frontend. I always start with some foundational work and just knowing what the JavaScript vanilla before going to using your React or Svelte or whatever you might be interested in. Dmitry Vinnik: But after you have some knowledge of the topic and area, then you figure out... You find a project that might have, doesn't have to be extremely popular. But the reason why popularity matters is there's a high chance there is a good community around it. You might go to this, it's Slack or wherever people might be talking about the project. You might ask questions. And if you see that people are asking beginner's question, it's a good sign. It's a place for you to be. Projects that are welcoming to the beginners is usually a good sign of a healthy community, of a healthy open source project. And that's what you should be looking for, I think. Kate: Okay. So Dmitry, tell me a bit about the content strategies of Facebook Open Source in the times of Covid. Dmitry Vinnik: Yeah. Covid definitely has been a big change to everyone, especially from whether working from home or, of course, as the developer advocates, we've been used to traveling a lot, going to conferences, in-person events, workshops, hackathons, meetups, things of that sort. It's something that just disappeared altogether. I mean, some meetups and workshops still happening online, and I've attended a couple of conferences, and I see that that space is still changing quite drastically, regardless of whether people will go back to in-person events or not. And people try to make... I've seen some conference that will take place in a form of avatars. So we'll have avatar people walk around the hallway, there's tables. They walk near the table and they join a small Zoom room of some sort. I've been attending those conferences as well. Dmitry Vinnik: It's exciting, it's fun. But honestly, when I were going to conferences before, for me, I almost never went to individual lectures. I would just spend my whole time in the hallway, talking to people. Talking to people, whether just attending or speaking, that's been the excitement of the going to events. And I obviously don't see that as much anymore. And, again, this Covid just had to restructure what we're focusing on and our focus has been, and will definitely continue being, video content. So, as I mentioned, our YouTube channel has been growing rapidly. Facebook Open Source, we've launched that Explain Like I'm Five series. React Labs is another series that React team has launched as well, in terms of just talking about in depth and backend behind React and things of that sort. But at the same time, we also have been trying to write more, so publish articles on our Facebook Open Source blog as well. Dmitry Vinnik: So things are really trying to go online. And if I'm honest, it's still hard to measure metrics. You can just count a unique view or even positive or negative sentiment of something you publish. It's still complicated and even doing a podcast. This complex. And I would love to do podcasts from our end. We have a podcast actually, Diff, but it definitely requires time. And if with any content based matters, you have to make in the cadence, you have to make sure you're constantly sharing, publishing the content. You might have seen that with us every Wednesday we publish a new video. Every other Monday, it's the blog post. So we're really been ramping up that effort and just making sure we have that cadence of content established online, regardless of how things go. Dmitry Vinnik: We've been building at home studios for video production, because we don't know when we might be able to go and do the proper production studio to record full fledged video. Instead we're trying to make the best quality content we can at home. But that's the reality of Covid. In-person events will take a little... We'll see how that goes. But so far I think that I kind of stepped back from the events altogether and really focused on online content. Kate: Yeah. For our listeners, I'm looking at Dmitry right now, and he has a huge green screen behind us. Looks like you have a perfect studio right there. Dmitry Vinnik: Oh no. I have so many lights here and the cameras and monitors, mics, and again, I'm extremely privileged to be able to have that. And in reality, you might start recording any tutorial with any webcam for that matter. It's almost it's the matter of controlling the lights, but, again, it's the expectation. You have a high bar that if you're part of Facebook Open Source, you still have to meet. And the quality of the content, we care about quality of the talks you give when we go to conferences. So we also would care about the quality of the videos we produce or articles that we write. So we're always conscious of that as well. Kate: Yeah, definitely. Yeah. I mean, we've experienced that at LogRocket as well. Just having to shift so quickly and maintain that quality. Yeah. It can definitely be a challenge. Does your avatar get virtual swag in the virtual conferences? Dmitry Vinnik: Yeah, I wish they were giving some... unfortunately, I don't play many games anymore, but I know, I think it's Fortnite. You can have those special design costumes and items. There could have been it. But the thing is, it can only be possible if different conferences were using the same platform. I think what I liked about some React events in the past, I've seen they've done for speakers, for example, they hired an artist who painted avatars for folks for Twitter or initial actually for a conference. I've been at events where they would hire a person to take head shots, and really that's one of the great swag, but really you can't do that anymore. Unless you hire artists to draw from the picture you send to them. But other than that really, none of the swag. Dmitry Vinnik: There is an argument that it's for the best. I've been at some events like NDC, Nordic Developer Conferences. For the past couple of years they haven't been giving away too much swag because instead they've been donating towards a few charities. So it also removes waste and you can also argue about lack of travel, saving in that sense as well. So there's definitely been some benefit out of lack of travel or even lack of swag, but obviously I'm missing somewhere stickers for sure. Kate: Yeah... stickers. Yeah, exactly. Yeah. Okay, great. And we like to end every podcast with this question, but what are you excited about in the world of development in 2021? Dmitry Vinnik: Yeah, it's obviously time of Covid, especially the last year has changed quite a few things in that sense. But again, going back to the fact that I'm a developer advocate, and before even I was one, I went to so many events, in-person events. I think I've done way over 50 in just year and a half. At one month I remember I'd done 13 in 13 different countries. So traveled quite a bit and, as I said before, I really preferred that hallway track as it's called. Talking to people in a hallway in those in-person events. And I know, especially on the frontend area and mobile as well, conference were such a massive part of the community. And now, because they're all online and some were canceled, some were postponed until in-person events are still happening. And I see some people, some events, are scheduled for in-person gathering at the end of this year, but I'm definitely interested in seeing how that changes. Dmitry Vinnik: So my answer to your question, most I'm looking forward to see how the world transforms in terms of learning. I've seen more and more great online courses from lots of great content creators for frontend, for mobile, for backend, anything for that matter, really. So I don't think that will go away. I think the world has transformed forever in that sense, remote work and the remote learning as well. But I wonder whether we'll find a way to be better connected while staying online, whether we will go to in-person events for that, or whether we'll have a hybrid of some sorts. So again, I'm looking forward to seeing that and as that evolves in the future. Kate: Yeah, totally. I completely agree. I think it will be an exciting... Feels like a lot of people are shifting from the in-person to now, either a video or recording or it'll be interesting to see what the next step of that is. Dmitry Vinnik: It's definitely... I've done a couple of docs remotely, lately, and I've been looking for that for years before Covid hit and now I've done it. And honestly, from the speaker's point of view, it's the hardest thing ever to do the remote presentation rather than in-person, because now sometimes I have to pre-record it, edit. It's so much more time than I used to spend when I was just rehearsing and doing it on stage. Because the feeling of engagement from the audience and having a conversation rather than staring in this light on my camera and hoping that... Some people actually have the... They draw googly eyes on the sticky note and they put it on the camera and making eye contact. Kate: Making an audience. Dmitry Vinnik: Yeah. That's definitely not it. I've done actually, recently, I've done a speaking panel with my infant son on my arms. That actually was fun, but you find a balance. But definitely want to see how that changes in the future. Kate: Yeah, definitely. Yeah. Well, we'll have to have you back on for whatever virtual talk, the next trending thing is. Dmitry Vinnik: Yeah. Thank you. Thank you. Kate: Cool. Thank you so much, Dmitry. I really appreciate it and we'll see you around. Dmitry Vinnik: Yeah. I'll see you. Brian: Hi. Thanks for listening. Please remember to like, subscribe, email me if you want, even though none of you do. Go to logrocket.com and try it out. It's free to try, then it costs money, but yeah, we'll see you next time. Thanks.