Kent chats with Zackary Jackson, an infrastructure architect at ByteDance, about solving large-scale web infrastructure challenges. Zackary shares insights on building RSPack, a Rust-based bundler, and Module Federation, which enables seamless orchestration of distributed applications. They discuss how these technologies help companies like ByteDance scale efficiently, reducing build times, improving product velocity, and solving organizational friction. Zackary also teases exciting advancements in AI-driven development tools and shares why in-person connections at conferences are invaluable.
Zackary Jackson joins Kent to discuss his upcoming talk at Epic Web Conf, Epic Federation: Scaling Web Infrastructure. As an expert in large-scale web architecture, Zack has helped build critical tools like Module Federation and RSPack, both of which power ByteDance’s global infrastructure.
In this conversation, Kent and Zack cover:
- The challenges of managing thousands of developers and repos across multiple teams.
- Why ByteDance chose to build its own bundler in Rust instead of adopting an existing solution.
- The impact of slow build times on product velocity and how tooling improvements significantly reduce development friction.
- The role of Module Federation in solving organizational scale problems, allowing teams to ship independently.
- How AI-powered tools are shaping the next generation of developer workflows.
Zack also shares his thoughts on why meeting open-source maintainers and industry leaders in person can unlock collaboration opportunities that aren’t as easily accessible online.
Meet Zackary at Epic Web Conf.
Guests
Transcript
00:00 Hey everybody, it's Kent C. Dodds and I'm joined by my friend Zachary Jackson. How are you doing, Zach? I'm doing good, Kent, how are you? I'm super, just super happy to have you as a part of Epic Web for the conference in March. It's gonna be awesome, epic even.
00:17 And I'm really excited about all of the stuff that you work on. I should, eventually I will say this, so I'll just say it now. You work on solving problems that I don't currently have and I hope I never do. But I am very fascinated by these problems and the solutions that you put together.
00:35 And you're honestly like the top guy that I know working on these problems. So before we get too far into any of that, Zach, can you give us an intro to yourself and who you are, what you do? Yeah, so my name is Zach obviously and I am an infrastructure architect at ByteDance.
00:56 And so I would say what I, most of what I do is I'd say like focusing on problems of like the larger scale in web infrastructure. So my team, we've built a couple things, like from, we've built RSPack, so the Rust port of Webpack.
01:16 I also wrote Module Federation, we've written AI tools, various things like that. But generally the focus is on like bundlers and orchestrating applications at like thousands to tens of thousands scale. Yeah, that like hardcore.
01:35 So most people probably listening know this, but just in case, ByteDance is the company that makes TikTok. So that's the kind of scale that we're talking about. So are the tools that you're working on in active use at ByteDance on web properties?
01:54 And are there any like web properties that we'd be familiar with? Yeah, so I believe RSPack or like all the tools that I work on, they're the like primary tools of the business. So prior to us open sourcing them, they were first tested in production here.
02:14 And then when we saw, oh, they really work well, then we thought about open sourcing it. Federation kind of predated a lot of these apps, but Federation, that was actually how I got the job at ByteDance. As it turns out, they're the largest user of module Federation globally. But yeah, so pretty much every property,
02:34 every property we own runs on the tools. So all of our native apps, so we have over a thousand native apps. I don't know if you might not have heard of these, but we've got like Pico, which is our VR headset division. We've got Lemonade, obviously.
02:54 Lark Office Suite, which is kind of like a super app of Microsoft Teams. Trying to think of the other apps around here. Obviously the popular video sharing app. Gosh, honestly, there's so many apps and so many properties that I don't even know half of what it runs on. I just know some of the big ones and I'm kind of so abstracted away
03:18 into the operations of these things. And I think also because of, similar to why Federation is used, everything is composed of many parts. So I often don't actually see the end product result. I'm more focused on, okay, well, if the parts can come together well enough, you can build whatever you want quickly.
03:38 Yeah, and it seems that ByteDance is dealing with scale issues, not just from a technical level, but organizationally as well. And that has always been kind of the, from my understanding, the primary value that you get out of Module Federation
03:57 is to solve some of those organizational issues. Is that like pretty accurate? Yeah, so I guess like, I think with several of the tools that we've built here, it's one of those cases where when economies of scale kicks in, it really reverses the spin. RSPack's another good example.
04:18 Like writing a bundler in Rust from scratch is an expensive, you know, it's not the thing you go do, but at our scale, the cheapest solution to our problem, it was cheaper to write RSPack than it was to try and move to a different bundler, to put it in perspective on like change management.
04:36 For Federation though, what was really interesting, we did a lot of research on it, but, and this is still when it was using Webpack. So now that we have our Rust tool chain, I think it's doubled again. But I know that any app that uses Federation sees a 300% increase on average in product output.
04:56 So not like, so I think, or product velocity is the right term. So output would be spinning the wheels, but product velocity would be like meaningful change is pushed out the door. And so on product velocity, Federation has yielded about a 300% increase any product that it's used on. So when it comes to that,
05:15 you're talking about delivery speed and ByteDance is quite well known for its ability to get apps out the door quickly, being able to beat everybody to the market, being able to iterate, being able to operate very efficiently. And there's a series of tools in the arsenal that allow us to do that. And one of them is the ability to orchestrate these things.
05:34 One, if you know, we have I think over 5,000 front end developers, 20,000 front end repos. And you can just imagine like the, even just the compute costs of building the applications is like, you know, insane. One of the most interesting things that we had found
05:53 was the actual impacts that wait time has on product delivery cycles. So for example, if we have, we did a whole bunch of research into it, but if a build exceeds 30 minutes,
06:10 it will add about 1600 minutes of merge latency. So it'll take about two days, two or three days if we're working on like eight hour days, it'll take about three days to actually get it merged if it's a 40 minute build, just because delays, you know, if you think about the mechanics of it, oh, if your build takes long,
06:30 you go off and do something else. And if that's the development cycle, you can imagine that interruption throughout as you move it through pipelines and so on. And, but if the build is within five minutes, the merge latency on average from all the merges that we've done across the org,
06:50 we have found it is only about a 20 minute delay to get it into production versus when it's a 40 minute build and you can see how it exponentially grows. Yeah. So, you know, there's like a lot of like science or at least measurement into, well, what actually makes the product move quicker? And that came down to a combination of,
07:10 well, how do you orchestrate it across many different parts of the business or different developers who might own different, you know, responsibilities and how fast you actually build it itself. So a mix between like orchestration of the code and compilers, which is kind of why, you know, we wrote RSPack as well
07:30 and why we also leverage Federation. Because even if the build is really quick, there's still that mechanics and all that organizational friction of trying to get a whole bunch of different departments all over the world to coordinate to get one monolithic release out the door. But when you can decompose that down and say, okay, well, if you own the header, you can ship the header whenever you want
07:49 and we can also change the version somebody's using, like consume a different version of that header, similar to what you would have with NPM packages, but you never have to do a reinstall. You can change it live or you can have it be region specific. So when the user's accessing it, maybe they'll get a different version of a federated module than a different region.
08:07 So it just frees up a lot of like organizational churn that happens in the process of once the code's ready to go, getting it out there. Yeah, wow. That is, when you're working at that scale, it just, even small improvements have a massive impact. That is so cool. Yeah, it was crazy.
08:27 There was even one case where it was something like they were chasing a, oh gosh, what was it? It was like chasing, you know, okay, the HMR time. So the time between you hit save to when the browser actually reflects the change, counting the milliseconds of that, and then when you add the milliseconds up to how many edits are happening
08:49 to how many times a day it's happening, and then look at the amount and number of engineers looking at the amount of lost time on there, you know, getting 100 millisecond reduction, or even, you know, like getting a 1% reduction in HMR times added up to a decent amount collectively. Yeah, that's awesome.
09:08 So your talk at Epic Web Conf is titled Epic Federation. So what are you planning on talking about with that without giving too much away? Yeah, so the, so yeah, the idea is gonna be to show a bit of module federation, utilizing it,
09:28 you know, probably just getting into the basics. If you're in a state where you need something like micro front-end solution, or maybe you want different pages that different teams own to be stitched into an app in one go, or maybe just a shared component that could be live updated. The idea is to try and show utilizing federation
09:48 with the Epic Web Stack. That, I'm very excited to see that. One of the things that I really, that matters a lot to me, is that we start with a really simple starting point that you can like, you can run it on your own server and it's all self-contained. And then, but like,
10:13 because I think that's the right way to start is something that is really simple. And then you add that incidental complexity as necessary. But like really, really critical to that is that that simple start doesn't preclude you from adding that incidental complexity. And so, I'm really looking forward to seeing this
10:34 as a way to say, hey, like we can be really simple and small for you solo entrepreneurs doing your own little thing. But the same foundation can also be the start for something really big too. Yeah, and I think like, you know, so something a lot of people don't know
10:51 is that most of ByteDance's web properties and all of our built in-house meta frameworks, they are all Remix slash React Router under the hood, just skinned a little differently. So I think that foundation of React Router is just, it's got so much mileage on it. And I love how it's been kept simple,
11:13 but at the same time, you can definitely scale it. So, and you know, I think this is something, anytime I go to GitHub and it's like, oh, well, as soon as I have to start a Docker file, or, you know, like when the readme's got like 10 different technologies I have to get up and running just to try it out, instantly, it's not, you know, it's not where it's at.
11:32 So I really love that, hey, you can start here and then you can extend it as you need, and it's got enough mileage so that it can appeal to both ends and you're not tacking on complexity you don't need, but it's easy enough to reach for when you do. Yes, yeah, precisely. Adaptability is one of the guiding principles of the project.
11:51 So Zach, what is it that gets you interested in going to conferences? I actually, I don't remember where you live right now, but like, you are gonna have to travel to attend this conference, and you travel when you go to conferences. What is it that gets you to go out into the world in person to see people at conferences? I would say, well, one,
12:13 it's nice to occasionally like meet some users, because, you know, you go to these things, you'll find people who have used your work or stuff like that, and it's really awesome because it breaks down a lot of barriers compared to like when you're just on, I find it's harder for people to sometimes DM somebody. I don't know, like, Kent,
12:32 if I didn't know you from conferences, I'd probably never DM you, because it's just intimidating. But when you meet somebody at a conference, it's totally different. So I find it such an accessible way to try and just meet other software engine, like other authors, other speakers who we,
12:50 and I find open source is such a small world that, you know, if you go to like a couple conferences, you can essentially gain access to your whole supply chains like author base, and that's been indispensable for me, is being able to be able to actually speak to the authors, know where the software is coming from, and if there's ever an issue,
13:08 you've now actually got a connection there to reach out and speak to them, and at least you know each other by first name. Yeah. But, you know, on the other hand of it, I think it's the social aspects. You get to meet really cool people, you hear about interesting kind of problems. There's, you know, all the, beyond like listening to the talks, which are always really cool,
13:27 there's just all that in-between stuff. It's the thing that kind of got lost during remote work, you know, or like you sit in front of the computer all day by yourself and you're on Zoom, or, you know, you're doing something like that, but there's not a whole lot of like in-person dynamics as much as there was prior. So that's what I really like about the conferences.
13:47 You get to go there, you get to socialize, meet people, learn really cool things, and just access a bunch of really interesting minds that typically, you know, in your day-to-day flow, you might not necessarily think that you could reach out and speak to them, or they're not just standing around available to talk to. Yeah, 100%.
14:05 That in-person connection deepens those online relationships in a way that makes those relationships much better, even if it just continues as an online thing. So, yeah, completely agree. What are you excited to talk with people about? I think, like, I could guess a couple of things just from our conversation right now,
14:25 but like when you're at the conference during one of the extended breaks, or the extended lunch, whatever, and somebody comes up and talks with you, what's something they could bring up that would really get you excited? Gosh, there's so many random things, but I would say like anything in like AI tools, because that's kind of, so ByteDance, we recently just released the first version
14:49 of like our competitor to Cursor. So I've been like on a bender of AI stuff, like looking at model design, some other kind of interesting things, just using upper-end tools. But anything in the AI space I'm quite interested in, bundling, anything to do with bundling, Rust,
15:06 obviously distributed apps, functioning at scale. If you're interested or curious about RSPack, of course, I can talk about that for hours as well. And then, probably if you do anything, maybe in the native app space, I know we're, our open source group is working on, some other new things that we haven't announced yet.
15:27 But if there's anything in that area, in person, I always like to share the details or leak some secrets of what we're gonna be releasing, later in the year. So yeah, those are probably the main areas. Anything in bundling or app orchestration is gonna be like my passion point, for sure.
15:47 Yeah, well, there's another good reason for people to come in person, is that you get to hear the details and leaks and things of what's coming and the cool tools that people are working on. Well, Zach, thanks so much for giving us some of your time so we could get to know you ahead of the conference. We're looking forward to meeting you there.
16:06 And yeah, we'll see everybody there in March. Thanks, everyone.