Episode 11 - Talking Mobile Open Source with Pascal Hartig
Dmitry Vinnik, a Developer Advocate at Meta Open Source, chats with Meta Software Engineer Pascal Hartig, about mobile open source projects like Litho and Flipper, and the importance of building an open source community.
In this installment of The Diff podcast, your new host Dmitry Vinnik and Software Engineer Pascal Hartig discuss Pascal’s open source journey at Meta. Initially, Pascal worked on Litho, a declarative UI framework for Android, but lately, he's primarily focused on supporting a project called Flipper, an extensible mobile app debugger. Throughout this interview, Pascal and Dmitry talk about the importance of building a welcoming community and give several tips on how to get started in open source.
The Diff: Talking Mobile Open Source with Pascal Hartig
The Diff: Litho and the Power of Open Source
The Diff: Navigating a Work-Life Balance
“Contributing to Open Source for the first time” by Cami Williams
Talking Mobile Open Source with Pascal Hartig
[00:00:00] Dmitry: Hello everyone. Thank you for joining us today. It's another episode of the diff podcast, where we are going behind the scene of open source. And with me today is baskets of basket. Can you introduce yourself? So our listeners know what episodes.
[00:00:31] Pascal: Hi Dmitry. Yeah, I'm excited to be here. So I guess I can just start in the beginning.
[00:00:37] I joined Facebook back in 2016 and I moved over from Twitter where I first joined as a software engineer working on tweet deck. I'm not sure if you've seen that before. It's like a professional ish client for Twitter sort of was basically working on the web front end and back then too. It had a very small presence in London.
[00:00:55] And the first kind of non TweetDeck team that they spun up was about Android. [00:01:00] And I had dabbled with it before. So I was all on board with that and joined that team there shortly after. And then I worked on all sorts of things. For instance, the first video integration in feed, if you can still remember social media platforms, not having video, but that was around.
[00:01:16] And yeah. Then in 2016 I joined Facebook back then what it was called, no matter off cause. And the junk, the little team.
[00:01:24] Dmitry: I see it. Yeah. Oh yeah. We definitely use three three deck before. And they actually still use it to organize my feeds and plus also I can't imagine. Posting it on Twitter anymore without some media touched it.
[00:01:36] So it's definitely a break and I would say breakthrough technology for me. But yeah it's exciting. You mentioned lethal and I believe Lisa is one of the open source projects at again, as you mentioned, Facebook back then released, and now it's a matter, but can you talk more about your involvement with the open source at Metta in the past that when you.
[00:01:55] Pascal: Yeah, absolutely. So litho for those of you who don't know, and I don't expect you to [00:02:00] is a UI framework for Android. So it's very much inspired by react. So you also have the model of components. You have staid, you have props and especially back then when we first open sourced it. I think there was around like 2017, it was at an eight, which then still existed the big kind of Facebook conference.
[00:02:19] The pandemic in particular has squashed time to me into your flat circles. I don't really know it could be a different year, but it was around that time that we open source something. And so I was, that was practically the first thing I did on the team. So what, so that was one of the reasons why I wanted to join the team so urgently because oh my God, this is such a big deal.
[00:02:39] Open source. This framework, which did exactly what I always wanted to have. When I build Android apps for myself, something that feels a little more functional is not that imperative with kind of mutating props all over the place. So I definitely wanted to be involved and yes, it was a lot of fun. What people don't realize often when they're asked like, Hey, why [00:03:00] don't you just open source?
[00:03:01] This is how much work it goes into it. And I'm sure you know about that. But when you work on a framework, of course, you will try to make it all reusable and build nice obstructions. But what will inevitably happen is that you have little hacks here in that across the code base. Here is something that is very newsfeed specific.
[00:03:19] Here is something that the ads people need and that doesn't work. If you want to just put it in. One folder to just put it into one thing that everybody can understand. One folder that you can put on to get up. You can't just reference something that lives in newsfeed. So a lot of it was basically moving stuff around quite literally, but then of course, refactoring code to make it more modular, making sure that everything is properly abstracted and.
[00:03:45] Two or three days before the open sourcing, we got to the place where everybody everything was in the right position, more or less, but we had cut out one kind of major part. And there was the build system. Little [00:04:00] LitHub built really well on GitHub, but with buck and with back only. And if you've worked in the open source space on Android before.
[00:04:09] Why don't you, people may have heard about buck, especially back then, but not many more. The expectation was really, you need to have some sort of grade or bills, especially when you want to have people that actually contribute to it and build a bit of a community around it. So what I did then over the weekend leading up to the conference was I hacked together some greater support.
[00:04:26] For a sprawling project of this size is also not a small task, but I just got it done basically the night before, luckily the night before in MPK time. So California time meant basically an afternoon in my time zone. I wasn't in California for the open sourcing. So it wasn't quite as bad, but yeah, we got to tun, everything worked and we had a pretty smooth rollout, had a lot of adoption in the beginning.
[00:04:51] It was quite cool to just see all sorts of articles, pop up about the new technology Facebook had. Open-sourced. [00:05:00]
[00:05:00] Dmitry: Yeah. That project that we thought, eh, I'm fortunately familiar with it. It's one of those major declarative frameworks in the back then, the clarity was wasn't as common nowadays, creating declarative design systems is all over the places, basically obstructing these how from the user and focusing on what the train to achieve.
[00:05:20] So it's fascinating to see that. So I would honestly say lucky to be involved with something that begin groundbreaking whenever, when you just joined the organization. And to that point, there's so many things to unpack here, but was it one of the major reasons why you joined that particular team?
[00:05:40] And I know with. Back then Facebook, we could pick and choose what teams would join, but for you, what, that's one of the major reasons, the open source environment,
[00:05:48] Pascal: why you choose to show? So I got a bit of a tease before I joined that theirs was being planned to open sources without a concrete timeline.
[00:05:57] And when I heard that, I was like, oh yeah, I definitely want to be [00:06:00] part of this. Open sources. One of the major reasons why I'm here today, it's really got me into the industry and got me involved and taught me so much. So it also felt like a good opportunity to give something back to the community in that sense.
[00:06:12] But also, as you mentioned, what is really cool about litho and looking back is how unremarkable it really is today. It was just the. Declarative UI framework that was out there back then. And today you have so many to choose so many to choose from. You're half swift, your eyes from apple, for instance, which nobody would have imagined back then that they would go completely all in on the declarative model.
[00:06:35] Google has released components. We actually worked a little bit. On this, or at least had chats, not that we contributed any code to the Google repository. I think it'd be wrong in this, but so we had chats about it because they looked at what we had built with litter. And we're curious about the learnings we had on the team and how they can build on top of it.
[00:06:54] So it's really cool to see these kind of cross. Cross-company industry efforts that could not be [00:07:00] possible without open source. Yeah.
[00:07:01] Dmitry: It's not just open source, but open source in particular, we standing on the shoulders of giants. It's it's easy to forget where we started, where we are now. It can go as, as simple as even when I was younger, it would be just catch up and maybe even Mayer or even a master, it wasn't as common.
[00:07:18] Now I can go anywhere in any restaurant for the most part and get get ketchup mastered like anything, really so many different sources we stack IDs. I'm so used to using, let's say intelligibly IDs or Android studio. Some people don't even younger generation, like more newer ones might not know about how important eclipse wasn't how for me personally, such a big deal.
[00:07:43] And before that wasn't even a idea like that. So in built systems, it's a, yeah, it's fascinating. I feel as you said, open source really stands out in that aspect that we are really built on top of others and it's the same relay, the same ideas, which is trying to improve them or using. [00:08:00] So it's fascinating to
[00:08:00] Pascal: see that is such another interesting aspect of just open sourcing and little project.
[00:08:06] You often have so many internal dependencies and it is just not possible to say, Hey, Harris, litho, you can build it with buck the buck, the tool that we have internally. You should know your, how to deal with buck files and what to translate this into. Of course. Buck also open source in the case of litho, it also relied on yoga, which still exists.
[00:08:25] It's a little implementation of Flexbox in CNC plus that was something that was just required. And then in order to open source litho, you first have to tick off this list of other dependencies. FPJ NY and little library for dynamically loading J and a libraries and to Java processes with a bit of kind of special source of rounded, you of course have buck, which we still needed for actually part of the build process.
[00:08:50] Then yoga, as I just mentioned. So there's all needs to be done before. Whenever you think Hey, I'm game company X, before you shut down, why don't you open source [00:09:00] your little game engine before? Just kind of thing through all the different tools that might be involved in open sourcing, something like this.
[00:09:08] Yeah. And,
[00:09:08] Dmitry: I would love to say. The code that I have written before, not the matter in particular, but just in general, doesn't have some hard-coded API that I don't want to expose. When we talk about the mat massive code base like that like the math of you can imagine how many files we have.
[00:09:24] And obviously we have static analysis that makes sure that we don't actually have API keys hard-coded but things can happen. I don't mean, I think it's right. I know plenty of folks who did. Live demo on a call or the conference, not at math in particular, but at a companies. And they would accidentally show their private keys during the demo live demo on the screen, things happen and make sure you go through thorough process to make it ready for open source.
[00:09:50] And actually to that point, I would love to hear more from you on how do you avoid going into the weeds too much of trying to make a perfect framework. [00:10:00] Okay. I am so excited to hear that story. You mentioned that it was like a night before when you made this a greater support for lethal. How do you make sure you don't really postponed indefinitely?
[00:10:10] We need to create a support we need support of in that a system. Let's say you mentioned back from from Metta. Let's say Bazell from Google. How do you make sure you don't go? How to figure out what to focus on when it comes to open sourcing, what to prioritize, for a newer project, let's say smaller projects.
[00:10:27] Pascal: Yeah, for sure. One of the big differences and open sourcing a project to how you approach most work at Facebook is that in this particular case, we had a very firm deadline that was FAA. We wanted to announce it at our fate. We had blog articles written. We had talks prepared. We wanted to have somebody on stage and announces, and we can't just walk up to Zach and say ah, yeah, sorry, birds.
[00:10:48] We need to add this kind of additional build system to this framework. We want to open source. Could you just push back the entire conference by a couple of weeks? Can you hold the
[00:10:56] Dmitry: audience for a minute or so?
[00:10:58] Pascal: Yeah, exactly. So that wasn't [00:11:00] really an option for us. And normally it's really all about delivering incremental value here at meta it's like, how can we break down a large effort?
[00:11:08] Into small parts where it's not just some big bang release at the end of a large project, but something where people benefit from what we build throughout the process. So there was impossible here. So we just decided at the beginning that greater support probably winds make it. So it wasn't that we just realized at the last minute that we don't have it, it wasn't.
[00:11:28] We can either try and ship something or nothing. And as the rest of it's, then suddenly looks like it was actually available and I still had weekend. And I was actually at my parents at that point, had my laptop with me. So it's like, why don't I just hack this together now? And I'm sure a lot of people will actually benefit.
[00:11:46] Dmitry: Yeah, I I definitely agree this core point of having a hard deadline always time boxing for me personally, any work I've done, whether it's for work or for, my personal life, the inbox and things was central. Cause I, the [00:12:00] scapes me, there is a fancy word for it that there's like a law.
[00:12:02] They say that the work fits a time allocated. So you should try to push to that. You ended up having the scope creep as they would call it. An agile will keep growing and growing. And ultimately you try to push this perfect product without ever showing to the audience, to your users. And I love about open source personally is that you get that feedback early, ideally early in the, you then, as you mentioned, get their contributions into the project and to make it better together.
[00:12:29] Pascal: Exactly. But it also felt like with these big announcement, you basically have one shot and you don't want to miss your shots or whatever. And exactly, in this particular case, we wanted to make sure there's something out there that people can actually use, have some sample apps, some code that people can poke around in.
[00:12:46] And of course put people into the position where they can contribute fixes and. Yeah, it's a
[00:12:53] Dmitry: one again, semester. I mentioned personally, it's one of the greatest things in open sources that you get out of [00:13:00] people involved. One thing why I I want to step back from instill connected to source.
[00:13:04] You mentioned, I was, my parents was a laptop conference would be an EMP in the California, but you were. How's it like working in open source and again, as I said, I'm a USU and UK welding engineer, when it comes to engineering and open source, doing it across different continents, different regions, different time zones, how's it.
[00:13:27] Pascal: So one of the great things about working in the open source at Metta is that you don't really need to pay too much attention to it. You can totally get away with just doing your normal work, not paying any attention to get up and still practically working in the open source. This is thanks to the amazing tooling that I believe you have also contributed to at least like the teams adjacent to you so that you can just contribute or make your internal patches.
[00:13:50] And. Land on GitHub after some delay. That's of course not how you should be doing it, but you can totally get away with doing it because this way you will be [00:14:00] completely isolated from the community. And if you don't look out, then you might break something that people rely on, but this is how you can approach it.
[00:14:08] And of course, Internally, if people want to open source something that was a need to commit to maintaining this open source community around it. It's not just a one-way street where code ends up in the repository that people then can use. But hopefully also have a space where people can ask for support can report issues, can add contributions, and we've had a lot of value delivered from people.
[00:14:33] Contributed back in that sense.
[00:14:35] Dmitry: I see. I see. But to that point, how do you make sure you keep your work-life balance intact? It'd be saying do you have any rules, don't ship code on Fridays? The bunch of memes surround it, or, other rules, like I shut down my laptop at 5:00 PM my local time, or finding the.
[00:14:52] Two or three hour periods where you overlap with the other time zones. How do you make the balance game set intact, keep cover, keep it [00:15:00] intact.
[00:15:00] Pascal: Yeah, this is a big topic, especially when it comes to open source and work-life balance. I was definitely in a position once where I burned out pretty strong on the source.
[00:15:11] That was before I even joined Metta and was just doing open source by myself and maintained a bunch of libraries and contributed to a bunch of projects. And whenever I looked at my GitHub notifications, it wasn't absolute rubbish flier in there. So I felt obligated to help out these people at all times.
[00:15:29] So doing a lot of unpaid work in that sense and I don't want to give people the kind of. Get hired somewhere to work on open source and be paid for it. But frankly, after I was in this position, I basically told myself, Hey, it's okay to also shut off at some point archives, some projects, try and get some other people into projects that you might not be just for.
[00:15:53] In for it anymore and transfer the ownership and find some other maintainers. So I think that is really important to just set some boundaries for [00:16:00] yourself and, yeah, I mean shipping on Friday, frankly, it's not that bad for us because we have a weekly release for the main project I'm involved in now, which has flipper.
[00:16:08] And that goes out every Wednesday. So that makes sure that whenever we release something, we have at least two, three days left in the week to look after problems that might arise from that particular release. And obviously we avoid the Friday's there. Yeah. I,
[00:16:24] Dmitry: Obviously people have seen the news lately for the past couple of months.
[00:16:28] I feel like it's more apparent than ever the fact that maintaining the libraries open source libraries, projects in general is not an easy job for sure. And it is a job like whether you want it or not. It's some people just assume doing it on your own time outside of work. Makes it. Easy and time just appears out of nowhere.
[00:16:47] Other than 24 hours, people have 33 of the four hours. They've already been more. So I'm glad you mentioned it's some it's okay. It's okay. Sometimes to ask for help. It's okay. To ask for, or [00:17:00] decide to move on sunset, the project as they call it some sometimes, archive it basically. And yeah, it's it's definitely an important thing to keep your mental health in mind for sure.
[00:17:12] Pascal: It's also quite important just to take stock off your feelings for the lack of a better term, something that used to give you a lot of energy, like working on open source projects might at some point just completely flipped in the opposite direction and just drain the living crap out of you. I was in that position and up until the point where I just said Hey, let's actually look at this.
[00:17:31] Do you gain anything from this? Is this not actually making your entire. State of being was being, so you're involved with this, never taking a break, being involved with this every single day and only thing feeling bad if you're dying at hits inbox zero by the end of the day. So maybe then it's time to actually take a break.
[00:17:51] Dmitry: Yeah, absolutely. Yeah. I never reached inbox area as they call it, basically. No emails in your inbox, at least unread emails. I, sometimes when I come back from [00:18:00] vacation, I just mute everything that I missed them. If it's important, they'll email again. Or if not, I have like filters for stuff like that, because yeah, the notifications and just in general people you have.
[00:18:12] Full-time job. And then often for open sources done by folks after fall, after their jobs and they have families, they have themselves as well. It's yeah, it's definitely, it's so important to keep work-life balance in mind. And I'm excited that you are conscious of that. And you're trying to keep up with that.
[00:18:29] But you mentioned a flipper, w in that project I believe from Metta opensource, can you tell us a bit more about.
[00:18:35] Pascal: Yeah. So this is one of the projects that is owned by my team. Maybe I can give a quick overview of what we do, because then you can understand where it fits in.
[00:18:42] Dmitry: The name of the, yeah.
[00:18:43] The name of the team was focused. I know naming a Metta teams is a very, both I would say, it's these self-explanatory
[00:18:49] Pascal: sometimes. Yes. So the problem is that he quite easily can run it in named clashes at work as well. So you need to have something that not only. Conveys the meaning of the [00:19:00] team, but also provides you with a bit of a buffer against other similarly named teams.
[00:19:04] So the name is mobile developer velocity, or just mobile dev velocity or MTV. And we have effectively two different arms inside of this team. So one has focused on self-sufficiency and that involves everything to help you. Specifically off frameworks to help themselves and help supporting these teams.
[00:19:27] So when we go back to something like, literally this is a framework inside Facebook and yes, it's open source, but we also have an incredibly large internal user base of this particular framework. Like most of the. Most visited surfaces inside the family of apps are powered by toy. And a lot of product development also happens in this area.
[00:19:46] So you can imagine you have like tens to hundreds of product engineers per framework engineer. When you break it down like this, because the LR team is not particularly large incitement. So in order to make sure that the engineers on litho can [00:20:00] actually spend their time working on new features and improving the framework and not just look after bug reports and feature requests and Hey, how can I implement this kind of brand new thing that my designer has created for me, we work on various tools and processes for teams to ensure that the users can help themselves and they have the best tools for doing so.
[00:20:20] To speak a bit more concretely because all of this is rather abstract. We are for instance, and internal hosting service with DocuSign, which I'm sure you will have heard about on this very podcast before, so that it's super easy to set up your own DocuSign instance and connected with all sorts of internal things that we also have and embed different aspects of it and make sure that shows up in all our internal search.
[00:20:42] So all these kinds of things that you just take for granted in the large company like this, but somebody needs to build it. And we are one of those. There's also. Investments around user support. We used workplace as one of the main channels that people can ask questions. And so we have all sorts of support groups for this.
[00:20:57] So we have a bunch of tooling around this [00:21:00] and then metrics or instance we like to measure. Absolutely everything happened at Metta. So we also wanted to give teams the ability to look at where does most of our support come from. The missing documentation is it that people run into crashes all the time.
[00:21:13] Is it like actual bugs? So all of these kinds of breakdowns things, so people know where to make the best investments. So that's the self-sufficiency side. The other side is a bit more self-explanatory it's developer efficiency. You probably have some ideas. What this means. We have a slightly narrower view on this because the multiple teams.
[00:21:33] Going back to the name of the team that focused on this, but this can be stuff like bill time's super important. Being able to iterate on your application and make making quick changes is just absolutely vital. If you want to have a good developer efficiency, but it's also about stuff like debugging.
[00:21:50] And that brings me down to flippers. So flipper is a tool that has outgrown this space where it's easy to give it one particular. But one that covers [00:22:00] about 90% of what people use it for is a extensible mobile debugging platform. And the mobile is a bit tricky, but what people use the, for the most is effectively, when you think of the Chrome dev tools.
[00:22:12] Point at any given website and inspected, this is what flipper raised, but for mobile applications. So that is a small SDK that you can embed in your Android application, your iOS application, or react native app, and then you open flipper and it gives you all sorts of insights into, for instance, what network requests are out there and look at the layout hierarchy that exists.
[00:22:35] And so that basically tells you a bit about debugging. So we don't really mean breakpoint debugging, but just inspecting the state of your application to make sure why an issue might exist or how to fix it, or just helping you while you build something. And then there is the extensible aspect, and this is quite important because we have a huge ecosystem internally and also externally because all of this is of course open source for [00:23:00] plugins.
[00:23:22] The first one is a device plugin. And that basically means you inspect something about the state of the device of the entire thing. So this could be logs. For instance, when you look at Locke cat on Android, it could be something like looking at how busy am I CPU cores, or it could be how much memory is my application needs.
[00:23:39] All those kinds of things fall under the device, plugin umbrella, then we have infrastructure plugins. So this is something broad that still affects a specific application. But then the rather broad sense. So something like looking at the network requests, looking at graphical requests to. Point out something that is a bit more meta specific, or again, the [00:24:00] layout tree there.
[00:24:00] It's really important that you can actually look at the specifics that the framework might introduce. Lisa, for instance, one of the features it offers is that it squashes a bunch of views together. So by flattening the hierarchy it's improves the performance quite a bit, but that means if you just look at a layout hierarchy with a standard tools around Android studio, for instance, you will just see what.
[00:24:24] Box, which is a view that everything is just smushed together in, but with flipper, because we can extend it, you can build your own plugins. You're able to not only look at the different components that a given view that you might otherwise see is composed of, but you can also look at the props. So the react model behind.
[00:24:42] And even better, you can edit them in real time and just play around with the margins, with the colors. So all the kinds of stuff that you would know from their standard Chrome dev tools, when you play around with the CSS properties in there. And then lastly, so those were two out of the three plugin types.
[00:24:58] There's something very product [00:25:00] specific that you can build. This is not like a specific type of plugin that you need to build, but just to put them into different buckets, that could be something that you build for your specific products. So if you imagine. Watch tab on the Facebook app. For instance, if you're the watch team you might want to understand, Hey, why is this video you're showing up here at the top?
[00:25:18] So why was it ranked like this? And if you're the watch team, you might want to invest into a flipper plugin that allows you to break down the different recommendation arguments that. Y a video shows up at the top and you can imagine this for pretty much every single feature. That's why something behind the view behind the pixels that you see on your screen and having a specific plugin to help you analyze this and break it down can be super.
[00:25:43] Dmitry: Yeah. Debugging, I feel like, not just me in general is one of the core parts of your tool kit as a developer often, especially it's it's really just starting out in the industry. We think, oh, it's all about development, but then when you learn about development life cycle, you realize that maintenance cost is [00:26:00] what really drives the budget up.
[00:26:02] Things do break. Not if, but when. And when things break debugging and having a proper toolkit for debugging is going to save you hours and hours. So it's very important that you all working on this project and. To that point, though. You mentioned that the blogging infrastructure is there basically long people to build their own plugins.
[00:26:24] And the fact that it's open source, I want to hear from you, we've talked about. Extensively. Now, what excites you the most about open source? Is it the community or is it just getting the contributors contributions and improving your code base, trying to get to your use cases or actually just adoption what's in it for you really?
[00:26:47] What's the most exciting thing for you?
[00:26:49] Pascal: Yeah. So maybe let me first answer this about flippers specifically. In more general terms. So I think for flipper, it has been so useful to have the eyes of the community [00:27:00] on it. Once we added react native support directly to flipper itself, we had just a wave of additional community pull requests and plugins and.
[00:27:11] A lot of features that are also super valuable internally. So it's something that we also directly benefit from by putting flipper out there and adding it. So just having the additional eyes and the community around it is just super impactful. But yeah, often it's also the small things. Just having more rice on your card, having people find typos.
[00:27:31] For instance, I love importing. Little poll requests that just improve the docs so letter, but it can also be incredibly helpful for something that requires a bit of crowdsourcing after a lot of people asked about it, mostly actually an open source. We didn't have this much internally for a dark mode.
[00:27:47] This is one of those projects where. Yeah, you can just invert the colors and try and ship it. And we did it slightly more sophisticated than this, but it still was something that was maybe like 80% there. And for the remaining [00:28:00] 20%, having the crowdsourcing aspect of open source is invaluable because he just, today I accepted.
[00:28:07] I did internally that came from a pull request, which fixed just a little problem in this settings dialogue, where an additional kind of weird looking black box was rendered under menu items. And for those things it's spectacular to have more people contribute to the projects. And then so about open source in general.
[00:28:25] So I think I mentioned this before, so I feel like I personally lost to open source. I almost certainly wouldn't be. In this interview today, if it wasn't for open source, it's really the thing that connected me with so many people that taught me so much, and the barrier to entry was super loyal. I was just a kid with a computer back then he wanted to somehow get involved, find some other kind of like-minded people in that sense and build some cool shit.
[00:28:52] And of course, I'm coming here from an immensely privileged background, which I really need to acknowledge. It was easy for me. I know even today it is not that [00:29:00] easy for many other groups of people. And I think it is really incumbent on all of us to lower this barrier and making sure that everybody has the right access here, but it was really this this feeling that anybody can go there.
[00:29:13] You can freely share everything. Not to go on a rant here, but this is also one of the reasons why I'm a little disheartened by the current mania around crypto blockchain, web three or whatever, they call it on a given day. Because to me, the original core of computer culture is information wants to be free and.
[00:29:33] What three is all about introducing this digital scarcity and putting a price tag on literally everything. So to me that the beauty of open source is that people say, Hey, I sorta thought of something cool. And I think everybody should be able to use it. And right now it really feels to me like there are some forces who are just completely opposed to this view and are actively pushing us in the other direction.
[00:29:56] So for me, it's really about just wanting to retain these [00:30:00] open principle that have allowed me to be here today.
[00:30:03] Dmitry: Yeah, it's a, I can't agree with it more our mission at metal, open sources, empowering communities, diverse communities through open source technology. And it's, it continues to be our mission has been our mission for four years now.
[00:30:16] And we'll definitely try. Go towards that goal. And as you said, what I love about open source the most is how welcoming and co-working with trying to make it as the community in general. How again, safe. That's why code of conduct is so essential, whether it's conference, whether it's for open source project it's when we open source something new at Matta, it's one of those.
[00:30:38] You can't open source your product without a kind of thing. And the code of conduct is one of those things. Cause again, we try, we not try and we will enforce it. We are keeping it. And that is important for us and for the community at large to add to the things you mentioned. Yeah.
[00:30:54] As you said, flipper is not actually shipped along with react native. Would I be the, one of the releases [00:31:00] back in I think last year when it was introduced and you also mentioned the, basically the diff is the name of the podcast. And the reason why it's named that way is because we are as, pull requests is what people name.
[00:31:13] Changes when they add to the code base through GitHub. The diff difference basically in the code is what we calling those pull requests internally in our internal. Called systems. So just to clarify that and again, if you'd like to learn more about things like lethal flipper or DocuSign or Stokey Saurus is basically opposites project, we used to build often built websites for open source.
[00:31:37] We're going to our website for Matta open source that fb.com it's built with DocuSign. It's a great tool for static generation say excited generation tool that we use extensively here.
[00:31:50] Pascal: And I guess you should also, shout-outs the explain, like I'm five series that you don't, the open source team are creating and I think it feeds all of those projects.
[00:31:59] That's something.
[00:31:59] Dmitry: [00:32:00] Yeah, it didn't for that again, I might be watching version of this podcast on YouTube, on our channel. And again, that's very confined explain, like in five videos where we trying to like, in this. Time possible, give an overview of open source projects at and opposites topics. Like even if, how to contribute to open source, which then brings us back to the points that Pascal mentioned.
[00:32:23] Like it's not just making changes, could have code base. It's also. Changing docs. It's not any less valuable really docs is where everyone starts. It's how they built the project, how they use it, how they contribute back to the project, it all start somewhere and it's all written down. It's different localizations, different languages.
[00:32:43] You might contribute there to, if you know that language other than the original language of the project, not all projects originally in English either. We just sometimes. It's not often the case, so maybe you can contribute there too. So don't just brush off yourself [00:33:00] as someone who may be not code savvy or not like advanced user of the project, anyone as welcome in open source and that skin is special mentioned, it's very important to us.
[00:33:10] Pascal: That actually takes me all the way back. I believe actually one of my very first open source contributions was back on a mailing list for new PG and providing some translation files in there.
[00:33:23] Dmitry: Yeah, it's a, yeah, it might sound small, but it's actually not, you basically open up this amazing project to.
[00:33:32] People who don't really, you don't wanna be in those familiar with the regional language or other languages that project has been localized. So don't brush off your contributions. Small, everything is important. So we will always value your contributions. And it's this week going to the, coming to the end.
[00:33:48] I, I of today's interview. I actually like to mention that. At Pascal, he's the host of a podcast here at Metta. It's so far has been called insight, Facebook, mobile. [00:34:00] But I'll let the basket talk about more about this podcast at the end. It will introduce me personally to some of the technologies at Matta and spin.
[00:34:08] It's always an
[00:34:09] Pascal: exciting listen to me. Oh yes. Thanks for giving me the opportunity to plug this. So yes, he say it. At the time of this recording still called inside Facebook, mobile. I think I can tease that there is a rename coming up. So if you can't find it anymore, there may be just search your podcast player for MetroTech podcast.
[00:34:27] There are still a few things we need to do, all sorts of assets that we need to create and logos around it. And it is a very small operation. So it's basically me doing most of the audio stuff from recording to you to editing, to normalizing all of this. And publishing in the end. And I have two lovely people helping me behind the scenes, trying to make sure that we don't spill the beans on anything that hasn't been released yet.
[00:34:52] And the idea behind the podcast was I believe we were actually the very first podcast out of Metta. [00:35:00] In the tech space, but in general, at least we couldn't find any other precedent for it, which made it quite the interesting experience in the beginning, because we were just running around the company and trying to find somebody who would say, oh yeah, okay, let's do this and give us a yes, back then.
[00:35:17] It was my former teammates, Emil and I, who were trying to find this. And we were just looking for, in addition, Outlet for having giving people an opportunity to share what they are doing inside the company. And I'm sure this is not unlike what's you're doing here right now, but back then, nothing like this existed, the only two outlets where people would hear from what's actually happening on the engineering side, but either conference.
[00:35:42] Which not always aren't always publicly accessible and blog posts and the blog posts. They're great. I really like them. The technical ones they're super detailed. They're super polished, but sometimes the Polish can actually distract from what's happening behind the scenes, the entire culture behind it, or the failures that went into it [00:36:00] that is often left out from it.
[00:36:02] But all these challenges or these, okay. This didn't work, let's try something else. I think they make for such interesting stories. So really wanted to have something that is unscripted, just a bunch of engineers in front of microphones, telling their stories, saying why it's so fascinating to work in a place like this that works on this scale that most people just haven't encountered before working on apps that cater to billions of people every single day.
[00:36:30] Is coming with challenges that most people just don't see, just the latest episode that's in the pipeline right now. We talk about just tiny optimizations. Like we're talking tens of milliseconds in the startup path of a given application. And I would think if you work at a startup where it's really just about let's find product market fit, let's get this.
[00:36:51] Anyone right now, if you say Hey, what have you spent your last month on? Oh yeah. I managed to squeeze out the 70 milliseconds out of the startup [00:37:00] path. It would be like the hell did you just do over here when you like these kinds of challenges? And I'm a big fan of just these things that sounds like interview questions, but have actual value provide actual value to actual people.
[00:37:14] That's always makes for fascinating. Stories and yeah. So normally you don't have to listen to me for that much because I'm just the one asking the questions, which I'm actually way more comfortable with than having to talk this much. But we have now had, I believe something like 36, 37 episodes. So there's quite a big backlog as well.
[00:37:34] And we try to make sure that they also work when you listen to them in a year from now. Of course, that's not always possible because. It's technology and it moves very quickly, but often we actually see that the download numbers for some of our earlier episodes. Like the one about the history of Instagram stories for instance, is one that people still check on every month.
[00:37:53] Dmitry: Yeah. It's, it sounds like a very innovative podcast. I I personally find again, [00:38:00] when people talk about method, they might throw some words like scale impact. But when you actually hear from real people who are involved in those things like scale and make impact. It puts faces to work evenly, even though you have a audit format,
[00:38:16] Pascal: only at the moment, we can't see the faces, but they do exist.
[00:38:19] Yes. You still
[00:38:21] Dmitry: can. I still remember when I was a key thought, even now, if I'm reading a book some nonfiction book, I I can come up with faces to the people that. I'm reading about, it's the same thing with podcasts. You feel like you are having a conversation with them, not just listening, not just like eavesdropping, you actually, but even participation, participating in the conversation.
[00:38:43] That's where the comment section is for. You can always, ask questions about that on the, basketball, social media and the, of social media as well. So it's yeah, it's, that's why a loft, both guests format at least. Two podcasts a lot. Especially without, even if, I don't commute anymore [00:39:00] as much to work still.
[00:39:00] I at least the book is quite a bit.
[00:39:02] Pascal: Yeah, same. I managed to squeeze almost as many podcasts into my day now than I did when there was still a 20 minute commute to, and from the office. Yeah.
[00:39:13] Dmitry: So we are basically at the Andover power episode. I have one question that really for you and to summarize everything we've talked about, what would be your advice to someone who's just starting an open source?
[00:39:27] Pascal: Oh God. There are so many different ways how you can get started. Yeah. These days, what is really cool is that guitar in particular has a feature where you can actually look at issues that are marked as newcomer issues. We use this tag and probably haven't done a great job recently, but we should do this again, but we just have these small things where we might not have the time right now.
[00:39:48] We are also a fairly small team inside meta, but where it's like, Hey, it would be cool to have again, like something like dark Maury to have this kind of section here cleaned up. And often it's really about. Your foot in the [00:40:00] door, just making this first contribution overcoming this very first hurdle is so important and this can be a contribution to documentation and it can be a small typo fixed somewhere or something a bit meatier.
[00:40:11] Maybe you find an actual bug that you can fix. Open-source maintainers love it. If you find a bug and you just come immediately with a poor request for it, obviously no expectations. All of these things are valuable. Just trying something out. I personally, I got started in open source for real through the 24 pull request project.
[00:40:31] I'm not sure if you've seen this. It's been going on now for, I dunno, at least a decade, because cuts almost like when I got started there, but it's a little project that just tries to incentivize people to submit one poll request per day for the first 24 days of December. Just basically as a little, thank you.
[00:40:51] Back to the open source community. And back then I found that the to-do MVC repository was a great space for this. I'm not sure if you [00:41:00] actually dates me a little, but I basically came to open-source and the time where there was like a weekly NVC framework of, again of the week, and that was all before react and view and all the other major ones came out.
[00:41:14] So that was like a little showcase of different applications, all implementing the same kind of style. And I started with. They were lovely people. They're super appreciative of the work. So I had another one at another one and another one at some point I joined the project and from there I moved on to other projects and eventually ended up with a job in this field.
[00:41:34] So yeah, just start somewhere, start small.
[00:41:37] Dmitry: Great. That's great advice. Always start in small. You have to build a foundation before you can build a house. Thank you so much for this. It was exciting for me, exciting interview. It was my first interview as the host. So it's also, and you think for me too,
[00:41:50] Pascal: First time as a guest.
[00:41:51] So yeah, first of all, both of us, I had a great time. Thank you so much. Thank you. And,
[00:41:55] Dmitry: We will link either inside Facebook, mobile, or whatever the new name will be in the [00:42:00] show notes whether it's on the YouTube or on the audio format. And again, thank you for joining me. Have a nice rest of your day.
[00:42:07] Pascal: Thanks Dmitry. Thanks for having me.
[00:42:08] Yeah, bye-bye.