In this episode, Sean C. Davis interviews Benjy Weinberger, creator of the open source Pants build system for Python, Java, Scala, Go, and Shell and founder of Toolchain Labs.
Benjy Weinberger is a software engineer with over 25 years’ experience in building scalable systems. Born in the UK and raised in Israel, he has lived in San Francisco for the past 20 years. He is one of the creators of the Pants open-source build system. He indulges his longstanding interest in cutting-edge build systems as a co-founder of Toolchain Labs. When not obsessing over system optimization or command-line UX, he enjoys running, SCUBA diving, and seeking out the best middle eastern food.
Sean is a tinkerer and a teacher. He is driven to learn by doing (often failing) and loves passing those learnings onto others who may find them beneficial.
Sean C. Davis: [00:00:00] Welcome to code sandwich hour, a certified fresh event where we talk code and sandwiches and takes about an hour. This week’s special guest is Benji Weinberger. Welcome to the show Benji.
Benjy Weinberger: Hi, thanks. Great to be here.
Sean C. Davis: Okay. You’ve been in the industry for about 25 years. You’ve lived in UK, Israel, San Francisco.
You’ve built some very cool open source technology and of course have a few hobbies and hopefully some strong opinions on food and I’m gonna make sure we get to all of that and hopefully a little bit more, but let’s dive right in and start with the most important question first. What is the best sandwich?
Benjy Weinberger: This is the most important question. And I have two answers depending on how much of a purist you are on the definition of sandwich. [00:01:00] So if sandwich to you is vaguely anything involving bread and fillings, and without getting into the hole is a hot dog, a sandwich debate, then the best sandwich.
And I say this as someone who who grew up in the middle east is a falafel sandwich in a like big fluffy Peter full of the little chopped salad and some really high quality hummus and some the spicy pepper sauce and the spicy mango sauce. And obviously really fresh recently fried spicy falafel, boars.
That is just the best sandwich. If you are pur and a sandwich, and only a thing that has sandwich in its regularly used name is a sandwich. Then Ruben is probably the best sandwich.
Sean C. Davis: Okay. So with the, let’s go back to the, like the edgy FAF answer for a minute. Yeah. And do you have do you have a favorite is there a best FAL sandwich that you’ve ever had?
Benjy Weinberger: Yeah. Yeah. My favorite, [00:02:00] your taste very much gets set in your formative years. And so there’s a place. There are places in Jerusalem where I grew up that for me, just a place in the center of town there that just has It’s probably not objectively the best anymore. It certainly isn’t cuz it’s very old fashioned at this point.
But to me, that is what falafel tastes like. And every time I try to find a falafel sandwich, that’s the taste I’m chasing. Ah,
Sean C. Davis: that’s fair. But you get, you’re just not gonna get back there.
Benjy Weinberger: Taste called MAs in Jerusalem. It may even still exist, but even if it does that’s not the best one anymore objectively, but to me that’s the one, that’s the flavor I keep chasing.
Sean C. Davis: Yeah. It’s got that. It’s got that. Yeah, that indefinable quality. I don’t know the history or the moment in time that you had that I.
Benjy Weinberger: Weird thing happened with falafel in Israel, at least in the late eighties is I think because of the influence of fast food McDonald’s starting to come into Israel is that they started putting French fries in falafel sandwiches, which is a big no-no [00:03:00] as a huge purist, but it just doesn’t work.
But for some reason, I think the logic was all these fast food places are offering French fries. We already have deep fries because we’re making FAF in them. So why don’t we just stick some potatoes in there, but it never quite works out. And that’s, to me now today, the sign of a more authentic FAF places when they don’t bother trying to stuff, French fries in it.
Sean C. Davis: Cause it’s just wrong. Okay. Okay. Just wrong. Yeah. That’s that it doesn’t feel right.
Benjy Weinberger: Something about it that doesn’t work. And I am I love French fries as much as the next person, but you don’t stick them in everything.
Sean C. Davis: Now I’ve been to, I’ve been to middle Eastern restaurants where they’re and in the states, but where you can get the.
The, like the falafel sandwich with the more traditional ingredients, but then also get French fries on the side. And that feels oh yeah, that less
Benjy Weinberger: of a violation, right? Yeah. By all means just don’t stick ’em in the Peter. It does. There’s something about the text.
Sean C. Davis: Okay. Now what about the Ruben cuz the Ruben is definitely one of my favorite sandwiches.
Is there one that sticks in your memory [00:04:00] there?
Benjy Weinberger: So Ruben’s style. So the thing about sandwiches is, and I’ve had arguments about this with coworkers a lot. Some people really like very dry sandwiches with very high quality ingredients. I’m more on the side of very wet, sloppy sandwiches that by the time you finish eating and you’ve got a mess on your hands and obviously having high quality ingredients is very nice, but it’s not a must have.
And so the thing I like about Rubens is that they get sloppy pretty quickly, but really any sandwich where there’s some great. Just like a big pile of sliced meat and some really sloppy sauce and maybe some cheese and some melting, and they all melt together. And I was raised to eat kosher let’s pretend I didn’t say about the cheese and yeah, so those are great.
And there’s a place in San Francisco called deli board on Folsom street. They have absolutely fantastic sandwiches in that style.
Sean C. Davis: Okay. And with the I find the Ruben to be a really interesting sandwich. I feel like there’s, this is [00:05:00] probably a thing throughout food, but where even if you have this like really crappy ingredients, just like generally.
The Ruben’s gonna be okay, it’s gonna be messy. It’s gonna taste good. But you can, there’s this point where you can definitely tell if the restaurant made their own corn beef for, or made their own sauerkraut, that it’s like, it takes it up to this next level. And it’s two different classes of sandwich, I think.
Benjy Weinberger: Yeah. It’s not that the ingredients don’t matter, but if a sandwich is very dry, then the high quality ingredients won’t save it. Like to me, personal bias sandwiches need to be wet and sloppy.
Sean C. Davis: Okay. Okay. I like that. I like that. I like that opinion. Alright. For let’s go actually going back to the full fle for a second, cuz we have a question from Steven, the audience and he, I might not say this.
But he said, okay, so the base for the falafel standard chickpeas, or is it fava beans in a more Egyptian style? Do you have a comparison or favorite there?
Benjy Weinberger: [00:06:00] I like the chick P ones. I love father beans are probably my favorite single edible thing on this planet. But I like them cooked like standalone stewed in some way.
I’d make I like to cook and I make father bean dish where the father beans are more the star. I’ve had the Egyptian style of FA beans falafel. I do like it, but for me, it’s chickpeas is what its okay. There is. Yeah, there’s a certain style of FAF obviously Farel is a middle Eastern staple that is predated the state of Israel PAEK by a long time.
But in Israel it has become very popular there as the country assimilated the foods of its neighbors.
Sean C. Davis: That makes sense. Okay. That was that got me as always, I don’t know why I start the show out. This gets me really hungry, but we’ll I’ll stay distracted and what we’ll keep moving.
What we’ll do in the rest of the show is we’ll move through a series of three segments each with its own purpose and a pun name catered to our guest Benji this week. So this week’s theme [00:07:00] is pants and we’ll well, you all learn eventually why that is I’ll keep it a mystery for now. For those of you listening into the recording, these shows are recorded, live on the first and third Thursdays of each month at 1:00 PM Eastern time in the United States, which is 5:00 PM.
GMT. The live shows are then later syndicated on cfe.dev and YouTube as videos, and also in audio format, wherever you get your podcast. So with that, let’s move into our first segment. And today I’m gonna call it sweatpants or maybe joggers is the more modern term I’m I’m not really hip my pants lingo, but the reason for this name is that in the early days of anyone’s career, it takes a lot of hard work to advance.
A lot of practice, a lot of exercise, and these are the moments where we really have to sweat it out. So what better pants to wear than sweatpants for this time in our career? Okay. So Benji let’s let’s get started by going way back to the beginning. The early years in tech for you so way before [00:08:00] tool chain, take us back to maybe even to day one.
Do you recall the, say the first line of code that you ever wrote?
Benjy Weinberger: The yes, the first line of code I ever wrote was probably, I was. 13 or thereabouts. And I had received at a home computer. This is, we’re talking about the early mid eighties. I’d received a home computer as a bar Mitzva gift from my aunt and uncle.
And if I remember correctly and it was the Sinclair ZX spectrum, which was extremely popular in the UK at that time. And I believe mostly unheard of in the us. And it was it competed with the Commodor 64 and computers of that era. And it had a basic interpreter and my interest in computers had been peaked.
Somewhat prior to that I had encountered loads very early home computers for the first time and was fascinated and blown away by them. And now I had my own, it had 48 K of [00:09:00] Ram, which is an unheard of richness of memory at the time. It had a four megahertz eight bit CPU, which was very exciting.
And so when it had a basic interpreter, and so the first thing you do is you write some silly basic programs. And so my first ever code that I wrote as a sort of 13 year old face to face for the first time with an object, a fascination that would become, the thing I would care about for the entire rest of my life was probably I’m guessing it was 10 print Benji, 20 go to 10.
That’s pretty much, that’s like the hell of that’s like the standard program, right? Yeah. Yes. And then you just watch your name, scroll off the screen forever and. You’re very excited. As dumb as that example is the, I will never forget the feeling of power if you like of there’s this machine that will do anything I tell it to.
And the challenge is just figuring out how to tell it to do that [00:10:00] thing. And it is a dumb machine that will follow your instructions. Exactly. And the entire trick now becomes formulating those instructions. And I don’t think I realized it at the time, but that would become my career is like increasingly sophisticated ways of exercising that power.
Sean C. Davis: I think what’s really interesting about that as I a hundred percent relate to that. And even I think early code for me was probably just some HTML more web based. But I like, I, I can absolutely relate to that feeling. I think a lot of developers can, but one thing that’s really interesting is it’s.
It, at least for me, it doesn’t feel like it’s been chasing that feeling forever. It’s that’s the beauty of development is you get to constantly feel that because it’s like always learning something new, always just trying to make something happen and it can be increasingly more difficult to do that.
But I, yeah, I think that’s so interesting
Benjy Weinberger: and little did I know at the time, so after learning basic to really get anything out of that [00:11:00] machine, you have to learn its machine language. And so I did teach myself at 1314 to program the Z 80 which was the CPU on this machine. The Z a like assembly instruction set.
And I tinkered with writing digital machine language programs. And at the time, and again, with such a limited by today standards, limited machine, that seems perfectly reasonable. And the vision at the time was like, oh, increasing. Sophistication in programming comes from getting closer and closer to the metal.
Of course, today we’re in basically the opposite environment where it’s like layers on layers of frameworks on top of languages on top of containers on top of abstractions. And so you get further and further away from the metal and the stack beneath what you are doing becomes increasingly complex.
Sean C. Davis: definitely. So did you it sounds like you, you like you, it really took hold. Did you stick with it? Did you study it in school or did it fizzle out until you, you started your career? What happened over the next [00:12:00] few years?
Benjy Weinberger: It was always in the background and also a apart from my tinkering and programming with this machine, I used to play games on it a lot, which I think we all, anyone who owned a home computer, spent a lot of their time playing games and I wouldn’t say fizzled out, but it may be moved into the background for a bit.
When I was in high school and had to do high school things. I we’re talking about again the eighties. And so I, my high school didn’t offer computer science as a thing you could study. And then, but I, again always had this interest in it. And then because I was living in Israel between high school and university, you have your military service.
And so things get put even more on the back burner while you’re doing that. But when I went to university, it was now the early mid nineties. And at that point it was clearer that computer science was something you could make a living out of. It, wasn’t the sort of bonkers Lee lucrative industry that it is [00:13:00] today, where it’s very clear that this is a pathway to a successful and rewarding career.
At least financially rewarding, but there was starting to be that sense of this isn’t some obscure thing anymore. And I think it may be hard for people who are so embedded in today’s tech industry to realize that in the eighties through to early to mid nineties, computer science was pretty obscure and working with computers was pretty obscure and it was a thing that hobbyists cared about.
But it wasn’t that the tech industry had nothing. It barely existed as a standalone industry. It was certainly had none of the economic or cultural power that it does today for better or worth. And so joining, it was not a foregone conclusion. But when I had to choose what to study at university I went with physics and computer science, cuz physics was a thing I was passionate about and loved and wanted to study.
And computer science seemed like also a thing I really liked and would probably be a better career than [00:14:00] physicist. And that turned out to be true. So I really picked it up again at university and have stuck with it ever since.
Sean C. Davis: Okay. So then where so you’ve made a career out of it. That’s why we’re talking today.
So what was where was the first point where somebody paid you to write some code?
Benjy Weinberger: So after I finished undergrad, I went onto grad school. This was at the Hebrew university in Jerusalem. And I, at that point I had shifted my interest slightly to math. So I became, I, my grad school work was actually the math department at first anyway.
And. I needed a part-time job. And so I went to work for checkpoint, which was a, the, at the time, the most prominent company in the Israeli tech industry they were the center of gravity for basically the entire industry. They serve a similar functions to maybe that maybe Google does today in the industry.
They were a big public, very early public company [00:15:00] that hired loads of people. And everybody knew someone who worked there. And so I got a part-time job there and it was great. And that was the first time people paid me to code.
Sean C. Davis: Okay. And then shortly thereafter, was it was this around the time that cuz you, you moved to San Francisco to, also to to do some work
Benjy Weinberger: as well, right?
That’s correct. So what happened was I after working for. Checkpoint. I went to work at first part-time and then full-time for another startup. And this was 1999 and I worked at that company for three years and then the.com collapse happened. And that company, like most companies started reigning in their expenses and they decided to stop their operations in Israel.
And some of the engineers relocated to California, myself included, and the idea was we came for a year or two to for technological continuity for that company. But [00:16:00] then even the sort of us side of that company got engulfed in the.com. Collapse. And so I found myself in the us, it had been about two months since I moved and suddenly I was, oh no, without a job.
And that is when I got one of the luckiest breaks of my life. And so much of life is luck. And there was, this is 2002 and there was only one company really prominently hiring in the industry. And that was Google. One of the, Google is a marvelous sort of era defining company in many ways, but one of the ways in which they were able to be successful.
And this is an interesting note for companies now in, in our. Bay market and challenging environment is that Google was hiring when no one else was. And so they were able to sweep up a huge number of really great engineers in a period where everyone else was letting them go.
They also got me, so they can’t all be winners, [00:17:00] but , they also got some really great people. I think I think it’s Warren buffet. This is attributed to Warren buffet. Something about being, be that the secret to success is to be bold when everyone else is being timid and be timid when everyone else is being bold.
I, a little piece at least of Google’s rise was that they had the opportunity to be bold when everyone else was being timid in hiring and in other things.
Sean C. Davis: Interesting. Interesting. I haven’t thought about that that cuz that, that was a period of a lot of growth for
Benjy Weinberger: them. And literally no one else was hiring.
It was very hard to find a job. Other companies were collapsing, companies were letting people go. So I think there’s a bit of a lesson there for right now. And
Sean C. Davis: Okay. So I do want to fast forward to today and to move on to our second segment, but I feel like we should let’s yeah.
Can you maybe just so we can do that more naturally. Can you condense the the next I don’t know what it would be 10 to 15 years or so and okay. In a few minutes, cuz it looks like you’ve got some other pretty, pretty big names in your work history during that time
Benjy Weinberger: period as well.
Sure thing. So [00:18:00] I was at Google for eight fantastic years. Got a little sick of the commute down to mountain view. And also, cause I live in San Francisco and that just got steadily worse. And also just felt like I wanted a bit of a difference. I went to work for Twitter for a while.
And that’s where I encountered many met up with many of my current coworkers and at tool chain. And after Twitter, I went to work for Foursquare and also a wonderful company, wonderful experiences. I generally have to acknowledge that I’ve been exceptionally fortunate in my career to work with really great people are really great companies.
And after Foursquare I took a little bit of a sort of fact finding break and tried to figure out what I wanted to do next. And that’s when it was my time at Google where I had first encountered really a really interesting, great build systems and a strong focus on not just on developer productivity, but on providing the tooling to enforce really good developer practices.
[00:19:00] I when I moved to Twitter, I realized that outside of giant companies like Google that area was still lacking and there were people at Twitter working on that problem. And I started working on that problem myself. I brought some of that insight with me when I went to four square and Helped Foursquare get into a better situation with its builds and with its sort of software development processes and realized we’re talking about for five years ago now that this was a problem that I really am interested in and want to spend the considerable chunk of the rest of my career working on.
And that is the problem of software builds and how you go from raw source code to a verified, tested, secure, validated artifact that you can deploy. And that is what generally people refer to as build. And so that’s where I am today. Like very deeply embedded in that space and just very [00:20:00] interested in what are the processes and what are the tools to make our own profession more effective.
So we, there are so many companies out there making software to make to improve the productivity and happiness of every other business function, right? This software for HR and the software for sales and software, for marketing and the software for product management and the software for support and the software for sort of everything you can think of.
But software development is also a business function and it deserves, cutting edge software to make it better and more efficient and more pleasant. And that’s the problem that I am very interested in partly for purely selfish reasons, which is I want better tools for myself to use
Yeah. And so that’s where that’s where my career took me and that’s what I’m interested in right now. And to bring you right up to more or less the present day I. Co-founded a company called tool chain that does work in this space. And [00:21:00] we are the lead sponsors of an open source build system called pants, which is where the theme comes from and happy to talk over your shirt, maybe.
Yes. And the shirt. Yes. That is the logo of pants. It’s it gets more clever. The more you stare at it yes.
Sean C. Davis: Okay. Yeah let’s dig into all of that. Right before we, we start this second segment one one question just cause I’m genuinely curious that. You were at four square during like the explosion of that product.
Can you, I’m just curious since you were there for about five years, what D do you recall the growth that, that you that you saw at that company completely? Was it small when you started and large, or what did it stay somewhat consistent?
Benjy Weinberger: Foursquare was there, there was there was this initial sort of blip of growth, and it became very trendy for a while, and that did taper off and Foursquare is still around and is still and it’s [00:22:00] pivoted what it is, at least from a business perspective.
What I loved about Foursquare and still very much respect about that company is no one ever let it get to their heads. So I don’t think there was a sense of. Oh, we’ve got this, the beginnings of this hockey stick growth. So we should immediately go out and hire hundreds of people raise a ton of money and hire hundreds of people Foursquare really tried to live within its means.
And when I was there, the company in terms of headcount grew from, I wanna say maybe 60 people to maybe a couple, a hundred or something like that. That’s very slow by tech industry standards, particularly at the time when every company that had any little bit of anything, any little bit of any kind of traction was raising tons of money and immediately spending it.
But that’s also a recipe for collapse, right? That’s a recipe for setting expectations so high that you can’t live up to them. And Foursquare was good. I, I wasn’t an [00:23:00] executive, so I wasn’t privy to internal conversations, but. As a sort of in insider who was outside that circle, it seemed to me that the company was good about living within its means not spending money either on headcount or on perks in a silly way, the culture, there was very down to earth and sensible.
There was no talk about we’re changing the world, we’re doing the, the rhetoric matched the reality. And I always greatly respected that. And I wish that company I’ve always wished that company, every success it is one, I’m very proud to have been there and be associated with that team, just really excellent people.
And I hope they continue to thrive as they figure out where they and location in general fits into the wider industry picture.
Sean C. Davis: That’s amazing. I did not know that they were still around and the reason it caught my attention was I was working for a really, a small agency locally in, in Cincinnati, Ohio at the time or at that overlapped your tenure [00:24:00] there.
And I just recall that being the more social use of it. And they, we had a handful of employees there who were, they were constantly fighting over. Who could, I don’t know if you could get King status or something like that. Who’s never checked into work the most. Yeah.
Benjy Weinberger: Yeah. Yeah. So being the mayor of a thing was still mayor.
That’s what it was. Yeah. I won’t, I still check in places I still have the app and I still fight for my mayorships. , it’s that, that is not really what Foursquare is now as a company. It’s about I believe it’s about location intelligence and providing that to businesses. And I think, they are an independent provider of that data.
If you don’t use them, then you are bound to like a Facebook or a Google or someone who has okay. Other interests. Yeah. Foursquare did not be, obviously in terms of, consumer impact. It did not become what Twitter did or certainly not what like Instagram did. But That was a very, in terms of the quality of the people, quality of management, the generally having your head on your shoulders [00:25:00] and your feet on the ground and not getting swept up in your own rhetoric.
They were a great company.
Sean C. Davis: Okay, great. Yes. Okay. So yes, let’s fast forward to today. Start segment number two, which we’re going to call cargo pants because eventually we hit that point in our careers where we’ve, we have enough tools where we’re carrying around all the time and we need pockets.
And as far as I know, cargo pants are the ones with all the, so many pockets and put a lot of tools in our pockets. Okay. I, so the how, yeah. Can I hear the collective sigh
Benjy Weinberger: through the, yeah, you’re definitely not forcing
Sean C. Davis: okay. Alright. Let’s I wanna talk tool chain, but before that, what led right up to it?
You said you took a couple years and. Did some R and D and took a sabbatical and that’s something that we don’t hear a lot about. So can you tell us a little bit about those couple years in, in your career?
Benjy Weinberger: Sure. So I should mention that pan the open source system came, got open sourced out of Twitter and we were using it at Foursquare and a bunch of other companies [00:26:00] were using it.
So it existed in the world before tool chain. Okay. But we the, many of the people who were involved with developing pants and open sourcing it helped me start tool chain and currently work for the company. And definitely the center of gravity around pants is now a tool chain, but before tool chain existed, pants still existed.
And I was contributed to it and hacking on it. And and I knew that I wanted to do something in that area, but I didn’t know quite what and that involved. So there was a period of figuring it out literally in a WeWork with a friend who was also between job opportunities at that time.
And we was looking for what is the interesting thing and definitely took a couple of wrong terms and put coding energy into some stuff that Didn’t pan out, but that time was really valuable because it helped really solidify what we thought isn’t really necessary in the [00:27:00] industry.
And, it helped come up with some, it helped verify some hypotheses that we got also by talking to other people, talking to companies, et cetera. And yeah, and so having that time where I wasn’t tied to an employer or to an idea or, to a strong path was valuable. Now I want to state very clearly that having the financial means to take a sabbatical is an incredible privilege.
And. Not something that most people can do. And so it is not something to throw about lightly it say, oh, you should just take a sabbatical. I’m like, great. I still have to pay my rent like the Al right, I wanna be very clear that I am not advocating that people take sabbaticals is I am very conscious that is not an option for most people.
And I happen to be in a situation where I could allow it for at least a period of time. You okay. I’m gainfully employed.
Sean C. Davis: Yeah. I’m like, yes. Maybe someday. Yeah, actually I have a question related to that. That’ll come up in our third segment, so definitely come back to [00:28:00] the sabbatical, but yeah.
So what is the differentiation between or may maybe what you could do is give us the, what’s the elevator pitch for pants and for tool chain, cuz I’m curious what the role of each of them is.
Benjy Weinberger: Absolutely. So pan is this open source build system. It is in the spirit of systems that go all the way back to make in the seventies and then ant and Maven and Gradle, and now things like basil.
It is a essentially you can think about it as a system that knows how to operate on your code as input. So anything, any process, any business processes, anything you need to do where the input is code this pans, a system that knows how to operate on code. Now the obvious example of that is building your code.
So everything and building the wide sense. So obviously if you’re using a compiled language, then compilation is one of your first build [00:29:00] steps, but this includes things like running tests, running Lins, resolving third party dependencies packaging publishing Co-generation if you work with any kind of co-generation frameworks thrift or protocol buffers, tying all of these steps together and walking you through them and doing it in a way that is repeatable, secure and fast.
So the system like leverages every, excuse me, everything it knows or can learn about your code through a static analysis to make these processes robust and repeatable and fast, because it can utilize things like concurrency Cing. And so imagine a situation where you have hundreds of unit tests to run and every time you make a change, you have to run hundreds of unit tests and it takes 45 minutes.
But now imagine you have a system that is through static analysis, capable of looking at your code and saying actually Based on these changes. I already have cash results for these tests, for everything all, but like these 10 cause these 10 are the only ones that are [00:30:00] actually affected by your changes.
So I can retrieve, all the test results, but 10 from cash. And that takes no time at all. And then I just have to run 10 tests instead of hundreds. So you get a huge amount of performance boost that way. These systems because of how they work, pants also knows a lot about your dependencies.
And so it is also a tool for reasoning about the structure and dependencies of your code. So you can say, ah, it looks like looks like this binary depends on this library for some reason. Why is that? What is the torturous dependency path through which this thing got through? It’s the type of system that understands your dependencies.
And so can answer questions like that. It can help you. Maintain and enforce dependency, hygiene and structural hygiene of your code base and crucially unlike other systems that require a huge amount of manually written metadata in order to do this, it infers pan infers, [00:31:00] all of this information from static analysis, that is, it actually analyzes your code.
And so is very dramatically easier to set up than systems like this have been in the past because you don’t need to spend potentially weeks or months writing. What are called build files that contain a lot of this structural information. Pants also handles a lot of real world situations like dependency cycles and hairball messes in your code base that often tools get defeated by pencils designed to work in the real world.
And pencils also, I should mention, unlike I think, any other system out there, it was designed with Python in mind as a first class use case. And the reason this is important is that in the last 10 years or so, Python has gone from being what I like to call fancy bash. That is like the little scripting language you use around the edges to a predominant language that massive businesses are being built around.
And part of that is because it is the [00:32:00] language of choice for data science and machine learning. And every company is a data science company now and is also very popular for DevOps use cases. It’s very popular. It’s increasingly popular for Building web apps. There are frameworks like flask and Jango that make it like a really good choice for building web applications.
Python also has matured dramatically as a language in the last 10 years, and there are incredible language features in recent versions of Python. And so we really wanted to focus on that. So that’s what pan is. Pants has a very active, open source community pants. Unlike many other systems was not designed for a single use case or a single company.
It has a very welcoming community and we strongly invite people to just come hang out on slack [00:33:00] channels which you can find through pants, build.org. And that’s what pants is. Tool chain. To finish my long winded answer to your short. This is great.
Sean C. Davis: It’s great. Keep going. Yeah.
Benjy Weinberger: Tool chain is essentially the lead sponsor of pan said pants was spun out of Twitter and Foursquare and a bunch of other companies were using it.
But what we realized that needed was a corporate backer whose primary interest was not the build problems of one company, but the build problems of the entire industry. And so that’s what tool chain is. Tool chain is essentially if you are a company that doesn’t have its own build team, we are your build team.
If you want us to be. Okay. That’s essentially what we are. We are the build team for everyone. We have the technology both pants and a lot of proprietary technology that enhances pants, things like remote caching and tracing and dashboarding and all the sort of enterprise type features that you might expect to speed up your builds and make them more [00:34:00] comprehensible.
And we have a ton of in-house expertise and skills and know how in that area that are really hard to hire for. So if you’re a company that doesn’t have a build team or has a small build team, and you need that expertise that’s who we are as opposed to, a system and a technology that is open sourced out of a company and exists primarily to serve the build needs of that company.
But particularly for Python and JVM if you we are like tool chain is essentially, pants is a piece of the technology and tool chain is essentially the [00:35:00] build team for, for the internet
Sean C. Davis: for everyone. I like the way that you you described that the relationship between tool chain and pants, cuz I feel like that’s a lot of there’s a lot of nuance in there, but it’s like this really important nuance in development that’s been happening within the industry in that you get these especially.
My world is site frameworks, or whether they’re static site generators, or whole site frameworks that we’ve been seeing more and more of these open source tools out there, but they’re like, yeah, they’re open source, but they’re completely controlled and completely backed by this single company.
And so there, there is a community, but there also the community is still, they’re still at the mercy of what the funded company wants to do. Versus the, there, there are other projects out there that are following. This this approach that you have, which I personally really like, which is the like we’re gonna sponsor it, but we’re gonna let the community lead this [00:36:00] one product.
And then it sounds like tool chain is more of a service offering that has some internal tooling and just very deeply understands pants. And then can use that to your advantage for your customers without necessarily having this one to one relationship to dictating every feature that gets built into the pants.
Is that an
Benjy Weinberger: accurate statement? That’s a very accurate statement. You put it better than I could have the pants community. So tool chain is the lead sponsor of it. And we do a lot of the work on it, but there are many contributors and even maintainers, which is our tier of consistent contributors who.
Participate more heavily in decision making, et cetera, who are not tool chain employees, they are using pants at their companies and they needed it to do changes or they they, they needed to make changes to it or they needed it to they needed features they, or they were just fascinated.
And there are very active parts of the community that are not tool [00:37:00] chain. And we encourage that. And how does,
Sean C. Davis: how does that work? If you’re planning new features for pants, how do you make sure that the, what the community needs is getting considered
Benjy Weinberger: as well? That’s a great question.
We have we used to do these and we have now started them up again. We do these periodic sort of summits where maintainers and really anyone who wants to we get in a room or, currently a virtual room and just talk it out. And we decide on what we think the priorities should be.
But of course, if someone came along and said, this is important enough to me that I will do this work, no one will stand in their way. No, there, there is no power to say, no this is the project priority and it must be followed. I think many [00:38:00] contributors and maintainers want to.
And we would be happy to help with advice and getting them up to speed. So it’s a bit of a mix of people’s personal passion project or things that their company needs. And also we do try to create a sense of here are the community priorities for the next six months, and let’s try and move together towards that direction.
But there’s, as with all software projects, there’s always way more stuff to do than people to do them. So it’s. Yeah. Rarely a pro we rarely have a problem of, people doing just busy work right there. There’s so much real work, right? Yes.
But then a lot of times the practicality of adding this whole other ecosystem that you’re agreeing to support in something that is that, that is an open source project with limited resources like that, that can become a maintenance nightmare. So how do you think about or maybe what I should ask or what are you weighing when it comes to do we, or do we not support X, whatever that might be.
And so we try [00:40:00] to, weigh, like how popular would this be? Now I should mention pass is a very powerful plugin API. And so the medium and long term vision is if there’s something that maybe doesn’t quite carry enough weight to be in the pants core as like a sort of internal plugin or a plugin that pan ships with, then it can be an external one that people, someone else can maintain outside of the main project.
The reason we don’t really encourage that yet is that plugin API is not entirely stable yet. And so having all those plugins in the repo, even though it adds a bit of a maintenance burden, also relieves a maintenance burden because when we change the plugin API all the things that affect are still for the most part in the same repo obviously we want to stabilize the plugin API, but the reason we haven’t yet actually touches on something you mentioned, which is as we add new language support, we sometimes discover areas where we need to enhance that API in some way, or add [00:41:00] capabilities inside the core execution engine, which is what the API.
Wraps. And so for example, we had Python support and we, I think one of the reasons other systems don’t support Python very well is that Python support gets tacked on as this external plugin. But the core system was not really designed with Python and Python like languages in mind. So there’s this impedance mismatch type thing.
[00:42:00] The languages we do support are all pretty different in their idioms Python, the obvious case and then this go and the JVM languages, they’re all similar among themselves. But what you want to avoid as much as possible is that kind of impedance mismatch, where you have to squint to make one language, look like another language for the purpose of working with your system.
You don’t want that if you can avoid it. Yes. Definitely. Yeah.
How [00:43:00] would that differ from some of these other tools that are out there
So imagine having a bunch of different web apps or a bunch of different like front ends or a bunch of different microservices and wanting to work efficiently with them in a single what they call a monorepo. I know like the NX folks are very bullish or mono repos. We are as well.
Pants does not require you to have a monorepo, but it [00:44:00] definitely and it’s useful in a wide variety of code based architectures, but it definitely supports monorepo use cases. And so imagine being able to do things as I described earlier Hey, only run the tests that are affected by my changes, or only run the tests that affect this one microservices out of my many node services package this thing, but keep, In a way where I’m not packaging my entire repo, but only the slice of my code that actually require needs to be in this package.
Pan supports remote cashing, which is a SaaS product. The tool chain, the company provides the pan has the capability for remote caching tool chain provides the actual remote cash that you can use just [00:46:00] as a SaaS product where you come in the morning, pull all your coworkers changes.
Now you typically would have to rerun all the tests because everything’s changed, many changes have happened, but you don’t actually because your coworkers have already run all the tests at those versions. And those the results of all that work have been cashed remotely. And so you come in the morning and run all the tests and they all return from cash within, a few seconds.
And so your sort of 40 minute morning I’m going to get coffee because things are built, I’m trying to establish a baseline for the day that goes away. You can still get coffee. I won’t be mad at usually but yeah. Yeah, but you won’t need to be waiting for code to test and build while you do that.
So that’s the big win here is a system like pants that deeply understands the dependencies and structure of your code has many opportunities to speed things up. Caching obviously is one remote caching means that you’re not just not having to redo work that you’ve done, but you’re not having to redo work that anyone has done, [00:47:00] including CI for example, CI’s already run all the tests.
So if tests that aren’t affected by your local changes, you should be able to fetch the results that CI cashed.
So it’s pretty common to see at least three.
Sean C. Davis: Okay. Okay. Yeah that, that makes sense. Alright. Last question. Before we move on to our final segment, I’ve been wondering this for a while. I don’t know if folks who are listening in also wondering, but why is it called pants?
Benjy Weinberger: This is a very good question.
I was really hoping you would ask it. I should mention to all our listeners from the UK that. And oh, actually for those who aren’t to be aware that pants in the UK means underpants. And so this name has extra resonance [00:49:00] for us. And I did not pick the name for that reason. But the true reason is that pants started out in the very, very early days at Twitter as essentially a Python program that generated ant build files like ants.
It was a very early JVM build system and it had these ant dot XML files and it’s would generate. And so it was a Python program that would generate multiple anti dot XML files. So it was Python ants, plural, and that got shortened to pants. Okay. Iron the name stuck. Yeah. That’s
Sean C. Davis: quite literal.
Benjy Weinberger: yes. And it’s a bit of a problem, as I said, in some Union Jack flying countries. It means under fans also to say that something is pants means that it’s no good or it’s rubbish. Oh, okay. It is what it is. GI does not seem to have been hampered by a name that is means something unpleasant in [00:50:00] British English.
So it’s gonna be, it’ll be
Sean C. Davis: okay. That’s right. Okay, great. Yeah, thanks for that. That was really fascinating. Definitely different than my, my focus every day and I think it was it was a great sneak peek into your world. So thanks for that. And let’s move on to our third and final segment, which I’m going to call shorts or short pants or what whatever we call those wherever
Benjy Weinberger: from, we’ve done all the puns.
Sean C. Davis: We’ve yeah. Let’s come up with an explanation for this one about we
Benjy Weinberger: would call DACA support pants. Just wrap your brain around the puns that go on there. DACA being a brand of
Sean C. Davis: oh okay. This is the they’re endless. Yes.
Benjy Weinberger: We’ve done all the puns. Yeah. So short.
Sean C. Davis: shorts. Yeah. Cuz it’s we’re gonna have, quite literally short questions this will be a series of eight questions that you’re, but definitely can skip any of these and let’s dig into it. So question number one [00:51:00] behind pants. What is, what would you consider your favorite open source project?
So what’s your second favorite source favorite open source project,
Benjy Weinberger: which is a Python library for making command line interfaces. Okay. Yeah.
Sean C. Davis: Oh, great. Okay. I question number two came across that you. One of your hobbies is scuba diving. So I’m curious what was the most interesting scuba diving experience?
So whether, because of the location experience or whatever, what’s been the most memorable
Benjy Weinberger: for the most memorable was a dive, a certification dive. I did 30 odd years ago. I’ve been scuba certified. For over 30 years now. And it was on one of the certification dives at the safety stop where the dive master just to see what I would do.
So very quietly SW up behind me while I was busy looking at fish and turned my air tank off. So as you can imagine, that’s pretty memorable. Cause I was having like an actual dive emergency and I had no idea he was behind it. So I literally thought my [00:52:00] equipment had malfunctioned. And that was quite memorable.
Fortunately, I did the right thing. I didn’t panic and pop to the surface, but I signaled to my buddy that I was out of there. And it was a good lesson in that you never know how you are reacting a, in a situation like that. And I was more calm in the moment than I would have expected if I would’ve expected to panic.
And it turns out I. Able to keep it together. That’s memorable.
Sean C. Davis: That would be memorable. So I take it that your equipment hasn’t actually failed since then.
Benjy Weinberger: Okay. This is equipment rarely failed. This was a this was a test to see how I would react and yeah. Is my most memorable, not for any sort of beautiful fisheries, but for the oh reason. Yeah. Something,
Sean C. Davis: something bad is happening. At least, that you are like you’re gonna be fine. And if that happens again, so that’s good. yeah, hopefully. Yes. Okay. Question number three. Looking back what would you say is something that you mentioned that you’ve gotten lucky a lot throughout your career.
What’s something that you maybe would’ve done differently
Benjy Weinberger: if. [00:53:00] Ooh, that’s a really good question. What would I have done differently in my career? I honestly can’t answer that well because it makes me start thinking about counterfactuals and where would I be? Everything that I’ve done in my career, including all of the things that might be mistakes have led me to the extremely happy place I’m at today.
So I think I’m gonna have to be boring and say that I wouldn’t change anything.
Sean C. Davis: Amazing. I love that. That’s the great, that’s
Benjy Weinberger: good. That’s best answer. I’ve worked at such iconic companies for such with such great people that any tweak I might have made along the way might have perturbed that and had like more negative than positive consequences.
So I’m just gonna say, wouldn’t have changed the. Okay.
Sean C. Davis: I love that. So number four I had originally written this as, what is the best Mediterranean food we already talked about FAF. If we, what if we just took, say the loose sandwich definition out of there? Do you have another favorite Mediterranean
Benjy Weinberger: food?
Oh yeah. Hummus. Okay. Just hummus, [00:54:00] served as a meal in the us. It’s treated as a dip, but in Israel and surrounding countries, you eat it out. You get a big plateful of it and you mop it up with the Peter bread and you shovel it into your mouth. And usually it might be served like a HotBot egg and all sorts of spicy sources and some salad and father beans.
And that is an absolute delight. And normally you eat it early in the day, sort of breakfast lunch and is That’s yeah. Dream food.
Sean C. Davis: Oh, it sounds amazing. I have had I’ve had like really good, fresh, authentic gum and it’s it’s so much better than what I’m. Yeah. What I’m used to is just, oh yes.
A dip out of a can for a party or something like that.
Benjy Weinberger: Yes. Real, almost like that. Fresh has a shelf life of something like four hours. Like it starts to taste funny. Doesn’t go bad kill you, but it starts taste funny. It’s just a few hours after you make it. So the supermarket stuff must be loaded with incredible amounts of preservatives.
Sean C. Davis: So yeah, have a, I have a follow up coming up in a couple questions, but let’s [00:55:00] divert for a second and number five. Okay. So this is one where this is back to the sabbatical. And the way I originally was thinking about this was thinking of asking you what would you tell someone who says they can’t break away and you already mentioned that.
Not everybody it’s very privileged to be in that particular situation. So I’m thinking wanna rephrase this and say instead, or ask instead, what advice would you give someone who V very much values time off and would love to take a sabbatical? What how are they what should they do to get.
Benjy Weinberger: There are obviously the practical aspects of making sure you couldn’t afford it and planning and budgeting for it. And it’s possible that your sabbatical involves other work, maybe that’s how you afford it, but it’s not computer science, it’s not work in the field or it’s not work for a company.
Maybe it’s some other thing you’re passionate about. Yeah. I think other than that, I’d say you, you have to learn to like, get over your own [00:56:00] importance and realize that everybody is replaceable and, the company, the industry the, whatever it is you’re working on will be fine without you for a while.
And none of us are as indispensable as we like to think. And so it is absolutely fine to step. From stuff clearing your mind is the hardest part, right? Not constantly going back to it, but I will say my experience. This is not quite similar to a sabbatical, but leaving jobs has always been very hard for me.
And I have tended to stay companies for a long time and by industry standards anyway. And part of it is thinking, oh, I’ll miss this. I will think about it all the time. Because it’s such a big part of your life for so long. But my experience has been is that like the day you step away, you stop thinking about it.
I loved my time at Google. I was there for eight years and I loved the people and leading up to my leaving. I kept thinking like, I will miss this so much. I will miss the people. I’ll miss coming to this place. I will, how is it all gonna work without having this thing? That’s been a part of my life for [00:57:00] so long and 48 hours after I handed in my badge.
I was no longer thinking about Google except in a sort of. Vagueness, positive vibe kind of way. So it is very hard to imagine stepping away from a thing, but once, once you do it, the impact of it on you is far less significant than you think it’s going to be. The act of stepping away is hard being after stepping away, it turns out it is much easier than you think it’s going to be
Sean C. Davis: a hundred percent have had that same experience.
And also I love all of that advice. The one that stuck out to me that I don’t think about very much is that it can involve other work, but that isn’t maybe your expertise or whatever it is the often I think about, okay if I’m gonna. Break away for however, even if it’s just a few months that oh yeah I can pick up some freelance work on the side, but it’s, maybe if the freelance work is too tightly, coupled to whatever I’ve [00:58:00] been doing already, I’m not gonna get the mind space that I need from that.
Benjy Weinberger: Yeah. One thing that’s really good for resetting your brain is grunt work that is not particularly challenging in the way you are used to be challenging, but typically is challenging in other ways. So I took a bit of time off I, when I was still at Google in 2008 to go volunteer for a few weeks in Nevada for the Obama campaign.
And I was an intern essentially, like I was like doing stuff with spreadsheets and making phone calls and, getting food and I loved it. It was wonderful. And I remember when I showed up there and I was significantly older than the sort of regional field director and the people running that campaign out there were all incredibly young.
And I think they looked at me thinking, is this old guy going to be trying to manage the show and tell us what to do. And even the, but no, you step into that situation and you recognize that in that world, they are the experts. You are the intern age doesn’t matter. And I was extremely happy to do grunt work on that [00:59:00] campaign.
And it was actually fulfilling cuz it was, scratching a different itch and I wasn’t using my like computer science experience and I would just so you know, that can be a way of disconnecting and getting some sort of brain sabbatical. I love. Yeah,
Sean C. Davis: love that. And then come back with renewed energy, right?
Yeah. Okay. Number six is a four parter. One that I thought was gonna go away after the first time I asked it, but that the answers are so good or keep it around. So four, four parts here. Okay. So you can take anyone to lunch living or not. Four questions are one. Who is it? Two. Where are you taking them?
Three. What are you? What are you eating? What are you gonna order? Four? What are you asking or what topic are you talking about first?
Benjy Weinberger: Oh my wait. Are they living or dead? Doesn’t matter. You get to choose. All right. [01:00:00] So I would answer this differently. Depending on the day you asked me the question.
Cause there’s so many, but right now I was just in the UK a couple of weeks ago, and I had the joy of making a pilgrimage to B Blatchley park where I’d never visited before, which was where Alan tour and all the other cryptographers cracked the enigma code and and another German cipher as well, the Lawrence cipher and helped, win world war II for the allies.
And so I’d have to say, I would like to take our cheering to lunch. Okay. I am currently on a bit of an AUR fascination bender. If you’d asked me this last week or next week, I might have given a different answer, but today it’s .
Sean C. Davis: Okay. So where
Benjy Weinberger: are you gonna go then? I think I’ve taken to deli board because I want to see a meeting a, I wanna see this very proper English person eating a a sloppy sandwich and getting filthy.
I’m just getting oh, yes. Okay. All over their hands. Yeah, sorry. I felt like I needed a sandwich call back here.
Sean C. Davis: But yes. I [01:01:00] love it. Bring it full circle. Okay. So are
Benjy Weinberger: probably also because deli ward at least pre pandemic, I dunno what it’s like now was a big, a lot of tech companies around there.
And so it’s lunchtime crowd was predominantly tech people and I would just love to point out to Alan fury that like you burst this industry that in a weird way gave, birthed these sandwiches.
Sean C. Davis: that’s okay. That’s great. I feel like you just packed the whole show into one, answer that’s amazing.
okay. Stephen number seven, second to last one, and then we’ll get you outta here. So yeah. Tomorrow I’m flying to Tel Aviv for the first time and I have a free day at the end of the trip. It’s a work trip otherwise. So what’s the one thing I should do during that free
Benjy Weinberger: day. You should go to the beach.
Okay, you should go to the beach. You should wear a ton of sunscreen, cuz it is ridiculous. not right now over there, you should go to the beach. You should go be, go in the morning before 11 or go in the afternoon after two or three, like the sort of 11 to two or three [01:02:00] time is just way too hot. But go to the beach because, and you go to the beach and you find one of the beaches where the waiters will come out on the sand and just bring you there or bring you whatever you order, like straight up to your deck chair.
And there are many great beaches in the world and there are many great cities in the world and there are, but there are very few places that combine both where you have an incredible sort of cultural dining night, life music, art world, and also amazing beaches, right? Normally you have to pick one or the other.
And there are a handful of cities in the world where you get the best of both and Tel Aviv is one of them. So I would say. You can’t go to Televiv in the summer and not go to the beach. The beaches are just too fabulous. Okay.
Sean C. Davis: All right. I’m excited now. Definitely gonna make that
Benjy Weinberger: happen.
And they’re right there. Like you’re never more than like 10 minutes from the beach in Tel Aviv. Oh yeah. Perfect. They tell you, and I think we’re city stretched along the beach, so you’re basically, I think we’re [01:03:00] staying like
Sean C. Davis: right in the middle.
Benjy Weinberger: Yeah. You should be pretty close to a beach. And then yeah.
And just eat eat watermelon on the beach and drink beer on the beach and when it gets too hot go find a hummus place and eat hummus. Yeah. Like a, okay. That is like a great day. That is living the target life.
Sean C. Davis: I love that. Yeah. Okay. Definitely marking that down now. All right. Number eight, last one final question of the day.
What is this is my second favorite question behind the, this best sandwich question, right? What is the worst mistake you’ve made as a developer?
Benjy Weinberger: Getting my ego tied up in my work is usually where trouble happens. It’s a combination of that and some cost fallacy where you become attached to an implementation or a piece of code because your ego is tied up in it and objectively the right thing is to get rid of it or rewrite it, or do things in a different way.
And you have this combination of I’m invested in this emotionally and there’s also some sun [01:04:00] cost fallacy going on. I’ve already put time into this and learning how to let go of all of that and be objective about your own work is a hard thing to do in any profession. Usually these types of conversations come up in the context of code reviews and.
Sometimes code reviewers can be a bit B and sometimes, code reviews happen in text, on, GitHub comments and so nuance and smiles don’t come across necessarily. And you have to be very careful about how you phrase criticism to others. And so the worst mistakes I’ve ever made, I think are typically have been around getting to wrapped up in my preexisting emotional and time investment in things that need to go away and learning the joy of deleting code.
At some point you learn that is the greatest joy in all the software engineering is deleting code. Oh yes. A
Sean C. Davis: hundred percent. And it’s you first, you get that feeling of making something work. And then that’s like very, very close behind that [01:05:00] is okay. Cool. Now I get to, now I get to delete a bunch of stuff too.
Amazing. Yes . Okay. That’s it for today. Thank you so much, Benji. This was a
Benjy Weinberger: ton of fun. Thank you. Was super fun.
Sean C. Davis: Before we go, do you, now I know you, we talked a lot about pants. Maybe I was gonna say, this is a time I use for you. Can, you can plug one last thing, if you want, maybe remind folks of the URL for pants or repo, or also how to get in touch with you.
Benjy Weinberger: Absolutely. So please come find us the Penns community and me personally on pants, bill.org. And there’ll be a link there to join our slack. And we are super happy to hear from you, if you have questions, if you have any interest, any sort of ideas around things you’d want parents to do any help adopting it or evaluating it.
You can ask questions in our welcome channel. You can DM me personally on there. It’s a very active, very friendly channel. I, I. Wanna speak ill of other open source communities, but we place a very high priority in our [01:06:00] community on being friendly and welcoming. And our general mantra is that there are no bad questions, only incomplete documentation.
And yeah, so come by and if you’re interested more in tool chain as a company with tool chain.com and there’s a ton of services that we could potentially be providing to your team, your company, if that’s of any interest and so swing by and say hi on the pan slack we would love to hear from you.
Sean C. Davis: Great. Thanks, Benji. All right, so that’s it for the show. Thank you all for your support. We’ll be back live on July 21st with gift from CloudFlare. So from all of us.