Future of Coding - Amjad Masad: Replit

Episode Date: August 27, 2021

The name Replit will be familiar to regular listeners of our show. The backstory and ambitions behind the project, however, I bet will be news to you. Amjad Masad, the founder and first programmer of ...Replit, is interviewed by Steve Krouse in this episode from the vault — recorded back in 2019, released for the first time today. Amjad shares the stories of how he taught himself to use a computer by secretly observing his father, his early experiments with Emscripten building VMs for the web, the founding of Replit, and how their community has exploded in popularity in recent years. Some of the conceptual discussions touch on Scheme, potential futures of visual programming, Sketchpad, and GRAIL. The transcript for this episode was sponsored, as ever, by Replit. The show notes and transcript are available right here: https://futureofcoding.org/episodes/052Support us on Patreon: https://www.patreon.com/futureofcodingSee omnystudio.com/listener for privacy information.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to the future of coding. This episode is one from the vault. It was recorded, I think about two years ago. It's an interview between our former host Steve Krause, and Amjad Massad, who is the founder of replit, the online repl that lets you spin up an environment in one of many, many, many different programming languages and build a piece of software that you can run in the cloud that does one of any number of things. They're very, very popular among grade school aged children who use it as an environment to learn how to program and make games. But it's also very popular for people doing all sorts of other projects as well. And in this episode, Steve and Amjad go into the backstory behind Replit and some of the guiding principles Amjad holds dear. And it's a really wide ranging and interesting interview. And I think you'll enjoy it. As is my normal way of being, since I'm kind of an audio nerd. This episode was recorded in person.
Starting point is 00:01:14 So the sound quality on this one is just a bit different from the other episodes because it's not two people talking into microphones that are, you know, on stands in front of a computer. It's two people kind of in a room talking to each other so it has a a much more friendly vibe and energy but there's also a little bit of echo to the sound so um that's something i've done my best to clean up and i think it's a totally listenable interview all the same it just would be remiss of me to not mention that little tidbit i know that some people get a little bit nervous when encountering a circumstance like this where the frequent sponsor of a podcast or whatever media outlet you're looking at is involved in the content. And I just want to say that this interview was not something to the best of my, that Replit paid for directly.
Starting point is 00:02:05 And I don't think that their role as a sponsor of the show precludes us from interviewing them. But I think it's worth me just reaffirming that they don't pay for positive editorial coverage or anything like that. This was just something that Steve put together because replet are an interesting company which is also why i am happy to have them continue sponsoring the show i think that the thing that they are building is a good fit for a vision of the future of programming in that it is a delta over what we are doing now in a positive direction and the fact that they have actually built it into a business that is up and running and out there in the world and frequently doing new interesting projects to try and further the goals that we share i think is commendable and so the fact that they're a sponsor i'm i'm happy to
Starting point is 00:02:58 continue with that i would not want sponsors on this show to be you know mattress companies or toothbrush companies or that kind of thing you will not hear sponsors on this show to be, you know, mattress companies or toothbrush companies or that kind of thing. You will not hear sponsors on this show unless they are doing work that I think is relevant to this audience. And so that's why Replit continue to be a sponsor and their sponsorship and the content of this episode should not be seen as influencing one another. So that said, I'm going to just turn it over to the interview now, and I will catch back up with you later in the show. Welcome, Amjad.
Starting point is 00:03:32 Hey, thanks for coming. I'm excited to be finally on the podcast. Yeah, me too. It's great to be able to do this in person. Yeah, it's awesome to have you here in our office. It's great. Yeah, cool. So I thought it would be our office. It's great. Yeah. Cool. I thought it would be a good idea to start
Starting point is 00:03:48 with your own personal story before talking about Repl. Mm-hmm. In reading through your writing, I know Paul Graham was an early influence. I'd be curious to hear more about what got you into programming and particularly into making programming better.
Starting point is 00:04:03 Yeah, absolutely. I guess the first interaction I had with computers is in some sense also the same interaction I had with programming. I remember vividly, it's actually one of my earliest memories. I was five, maybe six years old. And I remember it was late at night and i remember that we had this i i grew up uh in jordan in amman jordan and so we had this small home it was me and my older brother in a room and there was another room next to our room that is like sort of like a general purpose room we had a lot of toys in it and we'd play in it and my father had a lot of different things there and one day he brings brings a computer there and his friend was with him uh as they're kind of putting the computer
Starting point is 00:04:55 together and installing it and i remember looking over the shoulder and being like very very intrigued by what was happening like what is this foreign machine doing there? It's the first time that I'm seeing a computer. Of course, to put this in context, there's no internet. I don't think there's anything about computers in the TV. The only TV that we had was a few channels, so we weren't really exposed to the rest of the world and what was happening in the US. It was very exciting.
Starting point is 00:05:24 Then I would spy on my father as he's using the computer and I would look behind his back and see him type these DOS commands I remember it was something, I think it was an IBM and I think it was Microsoft DOS it was 1993 andOS. It was 1993.
Starting point is 00:05:46 He was typing these commands in. I remember that after he'd go to bed, I'd turn on the computer and retype the commands. Without him knowing? Without him knowing. I didn't know if it was kosher or not. I'm messing with a really expensive machine. I just did it on my own.
Starting point is 00:06:07 And just typing these CD and making directories and DIR or whatever. And it almost spoke to me, right? I instinctively understand it. It's almost a mystical feeling now that I'm thinking about it, but I just sort of got what was going on. And pretty quickly I was able to boot up games and do different things like that. And then I got really interested in the hardware
Starting point is 00:06:40 and what's in the box. And I took the box apart and and i was able to like take the entire pc apart and put it back together and so one day my father caught me taking it apart and it was it became this hobby where like i take all the components apart and then i try to put them back together and he was so mad but i was, wait, wait, I can put it back. And so I put it back, and then he was impressed by that. And I think that sort of external validation that you get as a first-time programmer,
Starting point is 00:07:17 first time sort of doing anything with computers, it becomes this really good feeling that you keep chasing, right? And I just became the computer person in my family and then my extended family and my neighborhood. And I just became the guy that would fix computers, would do different things with computers. But it actually took a long time for me to start coding from that experience until my first program was about at least two to three years before we had
Starting point is 00:07:57 logo in school and so we um i actually like remember sort of peeking on Logo pretty quickly. It was really interesting and impressive at first, but I just could do anything I wanted with Turtle and wanted more things. And there was another two years period before, and this was really accidental, really happenstance. We used to go to this computer show that happened yearly with my father and we'd go there and we'd look around see what people are up to what what you know what what um you know the latest advancement in computers
Starting point is 00:08:34 and at the time i think maybe it was 1995 or 1996 maybe a little bit later CDs, 1998 maybe CDs were becoming a thing and we went to the computer show and we bought a CD drive so we can install it on the way home and there was this like
Starting point is 00:08:57 a box with like random CDs in it, like random utility CDs, like I bought it because I don't know, you know when you have a new thing, you just want to try anything on it. So I bought this box of CDs, and in it there was a fax program. It's such a different world back then.
Starting point is 00:09:20 We were just like, because you're locked into your machine, there's no internet. Everything is fascinating. You try a fax machine software, and you just like, because you're locked into your machine, there's no internet. Everything is fascinating. You try a fax machine software and you just play around with it. And then one of the CDs, a lot of the other things were not that interesting,
Starting point is 00:09:34 but one of the CDs was a visual, semi-visual programming environment. And I've actually tried to look for it ever since. I don't know what its name, but it was really great. It was kind of like blocks, like the stuff you did with Woof. Similar to that, and I was able to string together a program to teach my younger brother, who you just met earlier. Upstairs.
Starting point is 00:10:03 Upstairs, to teach him math. So the way I taught him was we would have an equation, blank plus five equals 15, and he has to put in 10. And if he puts in 10, then I had a clap sound that would clap for him and that he got it right. He got really addicted to this game. He really
Starting point is 00:10:27 loved it and he learned multiplication and addition and everything really early before he even got to school because he was just like playing the games that I was building. It took another maybe a year or two before I actually, for the first time, actually sat down into a real programming environment. And it's almost like a tragedy that I didn't have a real programming environment early on because I was dying to.
Starting point is 00:10:57 And then finally what I did is I pirated VB4. And that was my first real programming environment. And maybe I was at the time 13 or 14. Cool. That's a great story.
Starting point is 00:11:17 And I think there's a lot of similarities that I felt in my own story and I imagine other programmers being the tech person, and having that virtuous feedback loop of getting praise and approval, and more people come to you with their problems. And I almost feel like it's a vicious cycle for everyone else in your family.
Starting point is 00:11:36 None of them had to figure out how to be proficient with computers, because all that information, you became the repository for all that. That's a good point. I never thought about it this way, but they become dependent on you. Interesting.
Starting point is 00:11:48 And also, it's really hard for you to escape it. And you don't want to. That's part of it. At some point, it became cumbersome. At some point, I am, let's say, 16 or 17. I have other things going on.
Starting point is 00:12:04 And some lady that's my mother's friend somewhere somewhere like uh you know a few miles away or something like that and she wants she wants my help with my computer and i kind of felt obliged to help everyone and uh and at some point i had to sort of i had to stop saying no I guess it was a good lesson in life where you had to say no. I see it as my way to contribute to my extended family. We have a doctor, we have a lawyer, and whenever you have problems,
Starting point is 00:12:37 everyone just calls them, and I'm the tech one. Right. I definitely still do that sometimes, but you got to draw the lines sometimes. Actually, it happened to me the other day. Maybe I'm still
Starting point is 00:12:54 like, I still look too much like a nerd, but in an airplane, a woman could not connect to the Wi-Fi and she picked me out of like, she was walking and she picked me out of like, she was walking and she picked me out of all the different people. Were you wearing this shirt?
Starting point is 00:13:10 Yes, I wear it a lot, so maybe that's why. And she was like, oh, can you help me with the Wi-Fi? She could tell from the monospace font. Right, yeah, it's like, he knows his stuff. Or maybe it was the hoodie. Yeah, I'm kind of a prototypical San Francisco hacker. Yeah, nice. So you were a programmer quite early.
Starting point is 00:13:35 Logo, same as I. You started in Logo and then Visual Basic. At what point did you fall into Paul Graham and other... All the people, like Doug Engelbart and Alan Kay and Brett Victor, where did you find all these people? I think it's still pretty late because we didn't have internet. That would do it. So the first application that I started building was an internet cafe slash land
Starting point is 00:14:06 gaming center sort of management system. So I built this client server application where you go into the store, you give them like two Jordanian dinars and you say, I'm going to play Counter-Strike for an hour. They create a username
Starting point is 00:14:23 for you and a password, and they put an hour into your account. You go to the computer, you log in, and you can only play Counter-Strike. Counter-Strike had a very good security system so that you can't do anything else. And then when your hour is out, I boot you from the game, and I reboot the computer.
Starting point is 00:14:44 And I start selling the software. But in the process of making it, I made it without having an internet connection. And I would basically, when I get stuck, I would have to get up and walk to the internet cafe and sit down and do some Yahoo searches. And sometimes I'd download a bunch of Visual Basic code, sample code,
Starting point is 00:15:14 that might be doing the same thing that I'd want to do, put it on a CD, burn it on a CD, and then go back home and try again. It took me two years to build that system. And that kind of like teaches you, I think patience and teaches you, you know, the virtue of hard work. So I don't look at that experience as merely negative
Starting point is 00:15:40 or like, you know, anything like that. I think it was a great experience, but it also was a lonely experience because you, because I was so much into my work and I wasn't online. I wasn't able to talk to other programmers. I wasn't able to ask a lot of questions. I would have limited amount of money and time when I log into the internet. It costs money every time you, yeah, it costs a lot of money. And I, I'd limited amount of money and time when I log into the internet. It costs money every time you log in. Yeah, it costs a lot of money. And I'd work for that money or I'd save that money
Starting point is 00:16:09 in order to do the searching. So yeah, I made the first software when I was 15 years old. And then in terms of when I started getting plugged into the larger community of programmers, that wasn't until maybe college, when I was maybe 20, when I started reading different, when I started getting exposed to, you know,
Starting point is 00:16:41 Alan Kay, Paul Graham, his writing on lisp and um um yeah i think engelbart still a little bit later um there was a talk i'm blanking on the name but there was a talk uh about constructing a language do you remember that guy steel guy seal oh my god that was yeah yeah what was the talk called? Growing Language. Growing Language. Yeah, that was mind-blowing to me. That was like one of the times that I,
Starting point is 00:17:12 they kind of pushed me to be more interested in programming as a craft and as a science rather than being the very product-oriented person that I was. Because, you know, as 15, 16, I was interested in computers, but I was also like, I just want to make applications. But then around that time, when I started reading all these influences, I started understanding that there's like deep art in in in what we're doing and um and uh you know when when i discovered
Starting point is 00:17:50 um via paul grounds writing uh on lisp and the kind of origins of lisp and what mccarthy discovered and um you know how most of the ideas of programming most of the ideas in dynamic programming came from this um that that really got me into um into kind of like really studying the the the theory behind things and i picked up uh sickpi afterwards and started playing around with that. Outside of school, you just... Yeah, school was mostly Java and C++ and kind of boring things. I didn't really learn that much in terms of programming. The only thing that school was good for me was forcing me to learn the low-level stuff.
Starting point is 00:18:47 Because on your own, you can learn a lot of things, but you're not incentivized to learn assembly. You're not incentivized to learn computer architecture. And so I think that's the only thing that school was good for. It was like forcing function to learn these things. But otherwise, on the programming side, I had to do a lot on my own. Luckily, I had a good peer group of people that we were all sharing the stuff between each other and learning together. Also, I should say what SICP is.
Starting point is 00:19:23 SICP is Structure and Interpretation of Computer Programs. so sort of also i should say what sick be as sick be as structure and interpretation of computer programs it's um it's it's served as the introductory to computer science at mit for something like 30 years or something like that it teaches scheme as an intro to programming and i thought that was fascinating because like you I learned a very imperative language, which is Visual Basic. I always thought, what would it be like had I learned Scheme as a first language?
Starting point is 00:19:56 But maybe that's a topic for another day. Yeah, well, I can just say from my experience, I learned Logo and then my second one was Scheme. So I can say that I really enjoyed that progression. Do you feel like your programming worldview, as it were, is fundamentally different because of that? I think so. I think so.
Starting point is 00:20:20 And then I went to Java afterwards and I remember thinking that Java was just so ad hoc, like the opposite of elegant. It was just like seven or 11 things that I need to learn, but in Java it was like static, void, main. What do all these words mean? Why are they all, you know? And you think about sort of thinking recursively versus
Starting point is 00:20:45 oh of course that really pushed my brain as a kid I remember feeling very smart after being able to understand the scheme way of thinking
Starting point is 00:21:00 when you when you start solving a problem in sort of a functional, lispy way, a lot of things start falling out of it. Like the merely by
Starting point is 00:21:18 starting to construct the program, the program starts writing itself. I don't get that feeling when I'm using something like Python or JavaScript. If I'm writing JavaScript in a lispy, like, scheme-y way, I might get that feeling. But I've actually had a recent kind of tweet storm about this that trended a little bit which which was i feel sad that a lot of sort of product engineers are under tremendous pressure from product managers and work at feature factories that they never experience the joy of having certain features fall out as a result or snap
Starting point is 00:22:03 into place as a result of a good design. And that's the kind of feeling you get when you're programming in Scheme, is that as you make the first, second, third attempt at the problem, the solution starts writing itself. It kind of starts feeling more natural as you go. Whereas in something like Java, a lot of times it feels more natural as you go. Whereas in something like Java, a lot of times it feels less natural as you go. You start with a very abstract, top-down solution
Starting point is 00:22:33 of how the system class inheritance would look like, and then reality will keep destroying your ambitions as you go, and it'll keep destroying, and your product manager will keep bringing in more problems that don't fit the system that you built. And that's kind of tragic, right? It's like you design a great system, and it gets broken almost immediately. I think the person who really encapsulated that idea is Richard Gabriel and Patterns of Software. Have you read it? So Patterns of Software, Richard Gabriel got really into, so he's a big Lisp guy, right?
Starting point is 00:23:25 Of course. He's also the guy behind Horses Better, which I'm sure will come up later as it influenced my thinking a lot. He basically had been looking at architecture and interior design. And he read this known architect, Christopher Alexander. And he wrote the set of books that inspired a lot of software people, actually. I think it's called Patterns of Design. Something along those lines. And Richard Gabriel took that and he applied it to programming and Lisp
Starting point is 00:24:10 and things like that. And one of the fundamental conclusions that he came up with is programming is better thought about as patterns as opposed to abstractions. And programming is better thought about as patterns as opposed to abstractions and programming is better thought about as a as a habitable system as a habitat like your your source code is your habitat and
Starting point is 00:24:41 you're trying to make your source code as habitable as possible and you sort of like try to design that in a certain way and he called it he borrowed it from christopher alexander is the property that that which cannot be named it's a certain property that it sounds a little bit mystical but it's a property about the system that makes you feel at home. You know, a lot of times you walk into a place and you feel relaxed and you feel at home and you feel creative. You can't really put your hands on it.
Starting point is 00:25:17 Experienced designers can. They understand why. But it's also still hard to articulate why. So he called that property that cannot be named and he applied that to software. So I think that is a pretty good articulation of this idea of how you can create a system that sort of becomes better with time
Starting point is 00:25:43 as opposed to the usual code rot and things like that. Do you remember what would be the principles by which you make this happen? He talked about abstractions as encoding. You're encoding a lot of information in this symbol and you're basically creating new names um as you create more names and vocabulary it gets like it gets the system gets more complex and it gets more opaque however if you shift your thinking and
Starting point is 00:26:23 start thinking about software in terms of patterns, like when I look at a piece of code, I see a pattern and I can replicate that pattern in different places. I don't have to abstract it. I can rewrite it or even copy-paste it, but I know what that pattern looks like.
Starting point is 00:26:40 Or I can build a framework or I can build a generator or I can build a macro, or I can build a generator, or I can build a macro, or whatever it is that can create that pattern. This is a much more portable, much more habitable way of doing software than abstractions and heavy use of abstractions. Interesting. So that's one of them. There's a lot that the book talks about
Starting point is 00:27:05 it's a bit poetic for a book it's not he's a poet yeah you know the you know there's two schools
Starting point is 00:27:12 of thinking I think in programming one is like very analytic very mathematical I fall onto the sort of
Starting point is 00:27:20 very I'm like a very intuition driven um uh i'm comfortable with uh i'm comfortable with sort of thing. I like that thing because I think words are constraining. The moment you try to articulate a thing, you're sort of trying to boil down a whole array of thought and uh and um and and and so so i i think i you know some people might scoff at that and say you know this this might seem like too mystical too too weird but but uh i like that type of stuff. I can see why Richard Gabriel would appeal to you.
Starting point is 00:28:25 Yeah. I've seen him at conferences. The last talk I saw him give was on his poetry generating system. So he's all about that. I'm going to a conference he's a big part of in a week, I guess, two weeks. Oh, really?
Starting point is 00:28:41 Programming, angle brackets. I think he's one of the organizers of this conference. Here in the South? In Italy, actually. Oh, wow. I think he's one of the organizers of this company. Here in the South? In Italy, actually. Oh, wow. I think they alternate between the States and Europe every year. That's cool. Yeah, I wish I had more time to do things like that.
Starting point is 00:29:02 And I'm trying to structure my life in order to do that, but I'm hoping to do that soon. Cool. Cool. Okay, so maybe let's go through your career a bit. You started working on this in 2011, Replit stuff? Actually, the first time I got the idea for an in-browser REPL was 2009. Oh, okay. A long time ago.
Starting point is 00:29:29 And you started it then or i attempted it then i think i was able to like write a quick like rebel that has like a text area and like an eval and like you could like write some javascript and eval said and i actually ran it on my symbian phone and i was coding on the bus to school. And that was one. And then the first time I actually probably got something working that other people could use, probably around 2010, I got a scheme interpreter running in the browser and I wrote some terminal emulator that later became the library that we call JQ console. And yeah, that was around 2010. But the real breakthrough that we made,
Starting point is 00:30:12 because I always wanted to be cross-language and support more than one language, the breakthrough that we made was around 2011. And we basically, and I can get into that if you want, but we basically used Emscripten. We were the first production application to use Emscripten to compile CPython, CRuby, and a bunch of other
Starting point is 00:30:33 interpreters through JavaScript. And then we open sourced it, and we were in Hacker News and different places, and that sort of started what became not just Repl.it, but what became a lot of different other projects that I worked on. Is that how you started working at Codecademy after you did DSA and recruited you?
Starting point is 00:30:52 Yeah, so I open sourced the engine. I should say, Haya, who's my current co-founder, also helped me at the time. She's also my wife. And my friend Max from college helped me with the project but then we saw a bunch of companies started using it in the u.s and udacity code academy a bunch of others and it was really surreal because like you know we were just like a few kids from jordan and like now you you have
Starting point is 00:31:25 this like global impact and that was that was strange right i i still can trap my head around sort of like my journey so far it's becoming more um you know more more people are starting to go through that where they release a piece of software and they and they get a lot of opportunities out of that and i think that's that's fantastic right so um so i joined code academy because they were they were using our software and i liked the founders they came to jordan actually to recruit me no way yeah yeah so they they flew to jordan they finished yc and they wanted me to join and they flew to jordan and then um took them around, showed them around a little bit. And at first we disagreed on the equity.
Starting point is 00:32:12 I wanted more equity in the company. And I said no. And I was driving him to the airport, Zach. And then he revised the offer on the way to airport and and um and uh and asked me to sign right then and there and I I did wow yeah yeah um and so I came to the U.S. in 2012. Awesome and you stayed you've been here since? Yeah, New York for probably three years. That's where Codecademy is. Yeah, and then 2015 came to San Francisco.
Starting point is 00:32:50 For Facebook? I always wanted to end up in Silicon Valley. So going back to the influences, I think one of the biggest influences for Better or Worse, I'm sure people will laugh, it's Pirates of Silicon Valley. Pirates? Yeah, so it's Pirates of Silicon Valley. Pirates? Yeah, so it's a movie.
Starting point is 00:33:07 I don't remember this movie. It's a movie about Microsoft. It's about Bill Gates and Steve Jobs. It's a sort of dramatization of their battle. Dude, it's awesome. I watched it actually last year or something like that again. I thought I was going to think it was stupid at this point, but it was awesome. I loved it.
Starting point is 00:33:30 I love that shit. It's great. I always wanted to end up in Silicon Valley. I started Facebook actually in New York and I wanted to come here, and they actually didn't pay for the relocation or anything. So I really pushed it to come here. And the weather is also nice.
Starting point is 00:33:55 Yeah, totally. So part of why you wanted to work at Facebook was React, or is that not quite how it worked? Yeah, so actually a few things. So internet.org, they were starting to do it at the time. I always thought that the, you know, my story with the internet, I couldn't have released the open source version of Repl.it
Starting point is 00:34:21 and getting all these different people using it without the internet and opening all these opportunities for me. I've been rejected for jobs in Silicon Valley so many times before that happened. I've been applying, tried to get into Google multiple times. I couldn't. And it's like a fast track. It's truly, uh, it's, it's truly, it's, it's truly based on merit. Like, you know, I think there's a lot of skepticism right now on a lot of, um, pessimism that there's anything called, uh, merit or meritocracy. Uh, and I wrote about this at some point, and they got a lot of hate for it. Yeah, I saw that.
Starting point is 00:35:06 But the idea is that really software and the internet creates a system that allows for people to get ahead using their merit. It actually makes prejudice a lot less prevalent. If you're a racist on the internet and you're going to have to find my identity in order to discriminate against me, you're the loser. But if you're the guys from Codecademy
Starting point is 00:35:44 and you want a really talented engineer you you just you don't care i proved myself right so um so i i i think i think you know i'm i'm i'm really optimistic about the internet and all these different things and so when uh facebook and zuckerberg started talking about internet.org, I thought that was a really good idea. And at the time, there was the rise of Android. And I think Android is another one of those things that's a great equalizer.
Starting point is 00:36:17 Apple is building computers for rich people. I think Android enabled computers for everyone. And both those things kind of really attracted me to Facebook because Facebook was putting a lot of energy into Android. They had their home product. They were doing internet.org. I'm like, you know, I can go there and contribute to a platform that's bringing a lot of people internet.
Starting point is 00:36:43 And went into Facebook, tried to get into the internet. I went into Facebook, tried to get into the internet.org team. They didn't accept me. Facebook's kind of funny at the time where you had basically to do two interviews. You had to get into the company and then you had to pick a team. That was a really hard thing to do.
Starting point is 00:37:01 I did a lot of Android. The first thing that I noticed is that the development experience just sucks you change one line of code and you would wait 20 minutes for the build it's insane coming from web development it's just preposterous
Starting point is 00:37:21 even coming from Visual Basic or C++ or whatever I know there's large code bases, but still, that's insane. So I started looking within the company at who's trying to solve this problem.
Starting point is 00:37:36 I saw this interim project. At the time, it was called Catalyst. And it kind of made sense. Catalyst, And it kind of made sense, Catalyst, like making mobile development easier. And I started talking to the team, started talking to, I think, Jordan Walk,
Starting point is 00:37:57 the inventor of React and React Native. And I really wanted to get involved. I thought that, you know, it's kind of preposterous that if you want to build apps for Android, sorry, for Apple, let's say, you have to buy the Apple phone, which is, I don't know, $500 to $1,000. And then you have to buy a MacBook Pro, which is a couple grand as well. And then on top of that, you have to give Apple $100 to become a developer. And then maybe you can write some software for your phone.
Starting point is 00:38:27 And I saw React Native as a way to sort of undercut that entire process and start kind of shipping software. And the idea that I can ship software over the air and just download JavaScript and have it run on the device was something that's really interesting to me. And so that's how I got into React and React Native. Cool, yeah, it makes sense with the whole Repl.it mission of a quicker start.
Starting point is 00:39:02 You don't have to buy a specific computer. It works anywhere. And then also the feedback loop as well. So as far as feedback loop goes, I feel like we should talk about REPLs. That's the right time. I imagine you first were exposed to REPLs with your exposure to Lisp.
Starting point is 00:39:22 I know. Before that, Visual Basic. Visual Basic has this thing. It's amazing. It's called the immediate. So you hit a breakpoint in Visual Basic, and once you hit a breakpoint, I think you hit escape or something like that,
Starting point is 00:39:35 which I think what Chrome kind of emulated, right? You get the immediate. And the immediate is basically a REPL. And you can change variables in scope. You can step in, step out of things. And I lived in the immediate is basically a REPL. And you can change variables in scope. You can step in, step out of things. And I lived in the immediate. Like, I loved the immediate. I just, you know, I am a very tactical programmer.
Starting point is 00:39:59 I like to be in the thing, right? You know, in a Richard Gabriel sense, i like to live in the software right and what better way to live in the software by being in the runtime and kind of like exploring the environment interactively so the immediate was my first uh interaction with uh with repels and then the uh second one was i think fire? I think it's probably Firebug. The second time I got into and then Scheme.
Starting point is 00:40:32 Do you remember Firebug? Yeah. I don't know if I ever used it. Firefox. Development thing? Yeah, it's basically the first DevTools. Oh, was it? Yeah, it's pre-DevTools, pre-Firefox DevTools. It was just called Firebug.
Starting point is 00:40:50 Someone wrote it. I think a guy that ended up working at Facebook wrote it. I forgot his name. That's cool. But yeah, it had a console and it had a pretty good REPL. That was another time I started using REPL. And yeah, to me, it was insane to just do it any other way. Yeah.
Starting point is 00:41:18 It was funny going from a language like Scheme when I went later on in Java, and I was like, where's the REPL? I have to use a file all the time. Yeah. I guess they're debuggers and whatnot. Although, you know, the other day we added
Starting point is 00:41:34 TypeScript and we added LSP to JavaScript, the language server protocol. And the language server protocol, the language server that we were using was particularly good. And I do a lot of exploration of libraries in Replit, as a lot of our users,
Starting point is 00:41:51 and I found that I can just import a library and start exploring it statically. And the static analysis tools are getting to the point where actually they're really, really, really cool. I'm still... The completions almost. Yeah, so as you type, let's say you import Lodash
Starting point is 00:42:12 and then you hit underscore dot and you see all the function signatures and then you hit that little I and you'll see the doc string as well. So you can start exploring the library. Of course, eventually you'd want to run it and then you hit that little I and you'll see the doc string as well. So you could start exploring the library. Of course, eventually you'd want to run it just to make sure it's doing the right thing. But I just wanted to say it as an aside,
Starting point is 00:42:35 I also am very bullish on static tools, static analysis tools. What I'd love to see, and here's a free idea for anyone who has time on their hand and they want to build something that has a lot of impact, analysis tools. What I'd love to see, and here's a free idea for anyone who has time on their hand and they want to build something that has a lot of impact, figure out how
Starting point is 00:42:51 to add some kind of runtime capability to LSP. LSP is all about static analysis. Figure out how to embed a REPL in LSP. So LSP is all about static analysis. Figure out how to embed a REPL in LSP. So imagine as I finish a statement, it just evaluates and shows me in the editor.
Starting point is 00:43:17 There's a ton of people that did experiments like that. I've done experiments like that. But LSP is finally becoming the standard tool that all editors use. If you just do that, then you immediately have an audience of a couple hundred thousand programmers at least, if not millions.
Starting point is 00:43:37 That's a great point. Building things on top of LSP, such a meta impact. I don't know if Microsoft is expanding LSP all that much. I didn't see a lot of activity in it, but you could probably hack it in. I did an interview with Quinn Slack of Sourcegraph. He's also a big fan.
Starting point is 00:43:59 Yeah. I imagine people in this community, developer tools people, are the people who really love LSP. Yeah, I mean, we use it on Replit. Without it, we would have to build a different protocol for every language and we just use LSP.
Starting point is 00:44:18 Yeah, yeah. And you guys use Monaco too? Yes, we use Monaco, yeah. Nice. So I think it would be interesting to go through how you grew Replit because I know that it started off really small and you just keep adding things.
Starting point is 00:44:36 So it started off as this Inscript and Compile thing. Originally it was just JavaScript, it sounds like? Inscript and Compile, there was Python, Ruby, originally it was just JavaScript, it sounds like? I'm scripting compiled. It was Python, Ruby, Lua, and a bunch of small languages. So you started with a bunch of languages kind of all at the get-go?
Starting point is 00:44:55 Yeah, it was part of the plan the whole time. It's an interesting way to go, to start with 10.10 from the get-go. I love languages. I just wrote this yesterday in our graphics announcements, GFX.
Starting point is 00:45:11 I wrote that we spend a lot of time worrying about how to do things in a cross-language way because I believe in the plurality of the programming communities. There's like every decade someone is going to predict that some language is going to take over the world right now that's javascript i think that's bs we'll always have a lot of language and you know that you do a lot of research on
Starting point is 00:45:39 program languages i love the just like getting into a new language and learning a new mental model. It's just amazing. It's like learning a new superpower. Yeah, I enjoy it. It's what I do all the time. And has that played out in... I could see a world where you have
Starting point is 00:45:59 a replica that allows for 30 languages but people only use two. Is that how it plays out? Yeah, there's a power law distribution. So anything on the internet you do, there's going to be a power law distribution. It's like the internet law, right?
Starting point is 00:46:15 So we have a power law. It's Python, JavaScript, Java, and then the drop-off starts becoming really steep and then goes to C, C++, and then you have a few dynamic languages, Ruby, whatever. And then you go from tens of thousands of users a day, single-digit thousands, and as you go to Crystal, probably a couple hundred users or something like that. But the architecture is such that it doesn't cost much
Starting point is 00:46:52 to maintain the languages that nobody uses? Yeah, so that's where we're trying to get to, and this is where a lot of the work is going into. But you can think about it as, actually Amazon is a good example. When Amazon started out, they wanted to have every book in the system. And that created a network effect. Even if you're always going to buy the New York Times bestsellers. Yeah, there's a huge parallel with books as well right that
Starting point is 00:47:25 one time every however many years that you buy this esoteric book you're going to go to Amazon because you know it's there that's a great analogy and so it's the same thing with us and we want to get as many of the tools as many of the languages
Starting point is 00:47:42 because I think that network effect exists with us as well. In terms of the architecture, yeah, it's one of the biggest projects that we have to sort of unify all the architecture. At first, I wrote this simple simple repl protocol but replit now like it was like basically like eval result
Starting point is 00:48:11 or basically like client says eval server might say input so that's a state machine for it if the server
Starting point is 00:48:19 says input then you have to send some kind of some kind of input result and then and then the server will say result. So that was the entire description of the state machine. Oh, the server might say print as well.
Starting point is 00:48:35 And print is a unilateral event that can happen at any time in the state. But then now Replit can do web servers can do games can do graphics can do uh lsb can do um you know shell can do all the different things and um and uh that protocol has been stretched to the extreme to support all these different things. And so we started a big rewrite we call the CroSys. And CroSys is sort of a new protocol
Starting point is 00:49:16 that allows for featureful REPLs that allow you to start web servers and all these different things. I don't want to get too much into the weeds there, but that's one part of it. Another part of it is we're
Starting point is 00:49:34 we have an open source project called Prybar. Prybar is what we call a universal interpreter front frontend. And so every REPL behaves differently. For the different languages? Yeah, so they have different interfaces.
Starting point is 00:49:54 Some REPLs allow you to pass in an entry file. Some REPLs doesn't allow you to pass in an entry file. REPLs start differently you know things like that so pry bar um papers over all the different languages to create a single interface that work for any language so right now it um we have support for python ruby node um we just added a camell, I think Lua, and a few other languages. And so that's another part of the architecture that we're building.
Starting point is 00:50:31 So we're building a set of abstractions and tools that allows us to build this general purpose REPL-driven development environment. And it's a multi-year project. So it's been going for a year or so. And I think this summer we'll be able to start talking about it and blogging about it and hopefully open sourcing large parts of it. Already a big part of it is open source,
Starting point is 00:51:00 but we're going to open source the rest of it. I saw you have a universal package manager project. Yeah, so that's another project that we're excited about. And so basically every package manager behaves in a very similar way. So you have a resolver. A resolver will take an input, which is the source files, and figure out where your packages exist and resolves those. You have the actual package fetching.
Starting point is 00:51:35 It needs to know the registry and it needs to grab the packages from the registry. It needs to have them in the right place, accessible for, it needs to have the right environment variables, the right paths for the program when it runs to be able to, if it's a dynamic program, to be able to load them. If it's a compiled program, it needs to be able to link against them.
Starting point is 00:51:56 And so having it in the right location. So once you identify these different principles, you'll be able to create an abstraction on top of the package manager. We built what we call a universal package manager that now works with Python, Node, Ruby, about to add Go, and a few other things. If we're successful
Starting point is 00:52:21 and we open source a lot of these different things, you'll be able to actually install a single command line and really run any language from that same interface, same binary. So that's the ultimate goal. Wow. So you're saying even outside of
Starting point is 00:52:47 Replit, someone could install? Yeah, I mean, we haven't seen a lot of pickup on our tools
Starting point is 00:52:53 outside of Replit, but I guess they're not very polished for the use outside of Replit. And we haven't
Starting point is 00:53:01 been advertising them that much, partly because the story is not finished yet. I don't have the full story yet. But if you want to check it out, go to our GitHub organization, particularly
Starting point is 00:53:12 check out Prybar. Prybar, I think, is already useful. Cool. So, continuing the scaling up story, I think it was last year you launched hosting as an extra feature. So that's the ability to publish websites or did you have that
Starting point is 00:53:28 before? That was it so you could like listen on a port and then that port is exposed to the internet and you don't have to like it could be any port and you just detect it
Starting point is 00:53:43 we do a lot of magic. Good magic. Not the kind of obscure magic that obscures from the development experience. Where's the line? How do you make sure you don't cross the line? Good magic and bad magic. The universal package manager, for example,
Starting point is 00:54:01 when you click on the package icon and you try to install a package, actually you can look under manual installation. You can expand that. I'll tell you what to do to install it manually. And so as much as we can, what we do is we abstract over the tools. We do the manual steps for you. We automate the manual steps for you.
Starting point is 00:54:26 We automate the manual steps. I think where magic gets magical is when you monkey patch or when you do something behind the scenes or when you hack something in. That's how I think about it. So the fact that you can download any Repl.project and run it locally, I think makes it less magic. If we're doing anything Repl.specific,
Starting point is 00:54:51 I think that's magical. In terms of the good magic that I'm talking about, we listen to the Linux audit log, and that's how we figure out when a program opens a port. And then we just hit that port with an HTTP call, and if it's an HTTP server, then we publish that, and we say that's an HTTP server. For graphics, we do this thing called LD preload.
Starting point is 00:55:21 And LD preload basically allows you to link against a library that isn't the real library. So if a program tries to open a window, we masquerade as X11. And then when we see that program is trying to open a window, we actually do it ourselves. We open it in the and then and then we show we show the screen on the on the ide um so we follow this thing uh called we call adaptable ide and so one of the things that when when when like these web ids came onto onto the scene we didn't think they were doing anything special like we always thought that you'd want to have some kind of like web native id it needs to be lightweight it needs to be it needs to boot really
Starting point is 00:56:20 fast um and it needs to be very simple. It needs to be very accessible. And if you keep adding features and keep adding buttons to features, you can never achieve those goals. And the way we try to do it is that the environment detects what you're trying to do. You listen in a port, we know that. Then we open a web view for you to code a web server.
Starting point is 00:56:46 Yeah, yeah. Your interface is quite simple for how powerful it is, yeah. That's definitely something noticeable. As opposed to, I guess, a lot of other web IDEs take a desktop IDE environment and just webify it. Yeah, basically
Starting point is 00:57:01 like you know this, I don't know if it's Marshall McLuhan or someone like that, I think talked about how every medium, and it's like a very Brit Factor-esque point
Starting point is 00:57:20 is like every medium needs to be explored on its own merits. And the first attempt usually is you take the paradigm from the old medium. The first TV program was someone reading a story in front of a camera. They were doing what they did for radios and the TV.
Starting point is 00:57:43 And so I think the first web IDEs took IDEs and put it in the browser. And I think what Rufflet is is trying to explore what does it mean to actually be a web IDE. I'm trying to think of how they're going to make fun of our VR, our first forays into VR. They're just computer games in three dimensions. Maybe that's a good way to generate startup ideas. You mean not doing that?
Starting point is 00:58:07 Basically thinking from the future back and saying how would they laugh at us? At our use of this new... Because you brought up a good point. Maybe we're just putting these video games in VR and maybe there's something else that we should be doing. I've seen some people trying to move coding
Starting point is 00:58:28 into VR and it's just the text editor in VR. Right. That doesn't seem to be native to the experience. It reminds me of exactly a joke of
Starting point is 00:58:42 someone reading on television, just reading a story. They're VR codings of someone, you're on a computer in VR coding on your computer. We have no address.
Starting point is 00:58:58 Yeah, obviously that's wrong. Maybe you should... The screen is just this big. Right, yeah. My first VR experience was living room and you would watch Netflix oh my god you put on it was a Facebook when they bought
Starting point is 00:59:16 Oculus and you watched Netflix I watched Netflix on a tiny screen it was pretty big actually a big screen because it's VR you might as well have screen? No, it was pretty big, actually. Oh, a big screen. Because it's VR, you might as well have a 20-inch screen. Right, yeah, it was really big. It was a nice living room as well. It had a pinball, whatever.
Starting point is 00:59:34 But maybe if you're in a program in VR, maybe you should interact with your hands with the code and quotation code. Maybe you're moving around syntax trees or something like that. Well, I feel like a lot of people do the nodes and wires programming. Visual programming feels like it could be quite powerful
Starting point is 01:00:02 in three dimensions. Right, yeah. I continue to be long-term bullish on visual programming. I think we'll get there. I haven't seen anything that's... That's exciting, yeah. That's exciting in that space.
Starting point is 01:00:18 Since, what was the one that Alan Kay talked about? It wasn't really visual programming, but it was this maybe equation solver or something like that. He has this famous video on YouTube
Starting point is 01:00:38 where he's playing around with it. I forgot what it was called. Oh, it's Sketchpad. Sketchpad. Ivan Sutherland, yeah. Yeah, Sketchpad. That's Alanland. Yeah, yeah. Yeah, Sketchpad. That's Alan Kay's talk, right? I think Alan Kay talks about it, but it was an Ivan Sutherland creation.
Starting point is 01:00:51 Yeah, yeah, yeah. Okay. And there was Grail as well? Grail. I don't remember Grail. Yeah. But anyways, those are really interesting
Starting point is 01:01:01 and I don't think we've made that much progress beyond that. Yeah. That's funny. This episode is brought to you by a sponsor. And I'm going to give you one guess who that sponsor is it's replit i hope you've been enjoying this interview so far i'm listening back to it again after having i did the edit for this episode months ago and i've been sitting on it waiting to bring it out and now is the time i'm listening through it again, and I'm really enjoying it. It's nice for me to be able to appreciate this interview as a member of the audience
Starting point is 01:01:50 rather than as the person actually doing the interviewing and stressing about having asked the right questions and wondering whether it's really relevant and all that. I just get to kind of sit in the passenger seat for this one and enjoy it. And the one other privilege that I have as the person in the editor's chair is that I know what's coming up in the second half. And let me tell you, it gets pretty interesting. There's a lot of neat sort of bigger picture kind of thinking that comes up
Starting point is 01:02:16 for the remainder of this interview. So stay tuned for that. But of course, Replit, they are the sponsor of the transcript for this podcast which you can find at futureofcoding.org slash episodes slash 52 and along with that transcript at that url you will also find some links to some of the things that were mentioned in the discussion so that you can dig into some of those things if you are interested in learning more about them. Do I need to tell you what Replit is? This is a ad break.
Starting point is 01:02:48 This is a sponsor break. This is normally where I would talk about what Replit is and what they do. I think Amjad does a pretty good job of that, considering his position as the person who created the dang thing. And it's really neat to hear what it's like from his side of the table and i i just think it's it's cool once again to look at what replet is doing as a possible not like a template but as a as an example of what it would be like for us to take our own future of coding visions and to turn them into thriving independent businesses and a lot of the struggles that he's talking about in this episode are the very same struggles that we will run into
Starting point is 01:03:31 as we try to do this ourselves and so i've i've enjoyed hearing that but yeah you you know what replit is it's an online repl it's somewhere you can go and write code a lot of people are going there to write code in many different languages. A lot of people who are in school are going there to learn how to program for the first time. Like I've said in past sponsor breaks for Replit, they are constantly working on new interesting projects. Libraries for making games, libraries for doing server stuff, libraries for doing communication, new features like the multiplayer feature so that multiple people can jump into the same REPL and work collaboratively.
Starting point is 01:04:10 They're using their position as a company that is sort of at the forefront of pushing for better and better developer tools to do really interesting little projects. And I like that. I like that sort of that multi-faceted approach to building out little constellations of ideas around their core vision.
Starting point is 01:04:34 I think that that's really cool. I think that that's a great way of taking advantage of the core product that they've built, but also taking advantage of the enthusiasm of the community that has sprung up around Repl.it. I enjoy hearing and seeing all the ways that that manifests. All that said, I just want to once again thank Replit for sponsoring the transcript and being a long-running participant in our community and in helping to bring all of us the future of coding. Education has become a huge market for you guys.
Starting point is 01:05:16 There are a lot of different ways to play a developer. You're a developer tools company, but you've gone to the education side. It's interesting because as far as developer tools go, neither market, like selling to developers isn't something that excites venture capitalists, nor is education. You've chosen... You've chosen the worst of both worlds, which made it really hard to raise money at first.
Starting point is 01:05:36 I bet. That's why we had to make money really early on. I put a lot of my own money into the company. I think eventually what happened was that they really got the vision and they understood that we need to exist in both worlds. So Apple, for example, was technically an education company. That's true. The first Apple customer segment they sold to was education.
Starting point is 01:06:04 And still. And sold to was education. And still. And still big in education. Although, like, Chromebooks are just eating the world. Preservedly. And then, even Microsoft did a lot of instead of education,
Starting point is 01:06:20 they gave a lot of their tools, you know, Visual Studio and these things where they focused a lot on education together. So I think there's a lot of their tools, you know, Visual Studio and these things where, like, they focused a lot on education together. So I think there's a history of platforms being very, you know, developer platforms being very, like,
Starting point is 01:06:34 education heavy and, or focusing on the younger generation. I think, you know, Adobe, I think probably will never admit that, but a big part of what made Adobe
Starting point is 01:06:45 the giant behemoth that it is today is that all the kids in the 90s and 2000s that pirated Photoshop. And then those kids grew up and worked at companies that would pay for Photoshop. Yes. Nice. Yeah.
Starting point is 01:07:03 Well, so I feel like you've told me about how this is your Replit sinister plan. Yeah. But you have this long plan of you give Replit to the kids for free today, and then either they're going to go work at companies or they'll start companies themselves and then pay for it somewhere down the line. Yeah, and we want to align ourselves with them as much as possible. It's not like we want to use them as sort of a Trojan horse only, although that's on the table.
Starting point is 01:07:37 But what really excites me and something that I've made progress on in my own thinking since I think we talked about this was that I feel like there's going to be a sort of a resurgence and independent software vendors. I think you know there's a movement with you know indie hackers with a lot of what Stripe is doing around you know what they're talking about with you know growing the GDP of the internet and getting more internet entrepreneurs. I think that stuff is really happening.
Starting point is 01:08:08 And I think with the tools that we're doing and that we're building and other companies are building, you had Vlad with Webflow on your show and a lot of non-coders now are making websites as well and selling them. And I think we're going to see a big uptick in software entrepreneurship on the small side, on the one- to two-person startups.
Starting point is 01:08:33 And that's incredibly exciting for us because I think we'll be able to build tools that they could use to monetize their software. And this is where I'm spending most of my energy experimenting and thinking about. Yeah, that's very exciting. It's so cool. The better the tools get,
Starting point is 01:08:54 the more superpowers one or two people have. They can do really impressive, powerful things, build businesses or tools that other people could use. Just one or two people. And it's better for the world.
Starting point is 01:09:09 It creates more wealth outside of the already wealthy companies. It allows communities to take ownership over their own software. I think the global software phenomena in Google and Facebook and these Silicon Valley companies is probably not going to be the norm. Those are like, we call them, the Silicon Valley startups are unicorns. I think most of the software that we're going to see going forward are going to be local, community, homegrown software. Uber is an interesting case study.
Starting point is 01:09:51 Silicon Valley VCs and analysts thought that Uber is going to take the Facebook playbook and grow country by country and take over the world. There's going to be some kind of network effect. You can argue about the network effects of drivers or whatever. I don't care about that. I think what really mattered
Starting point is 01:10:08 for Uber is the culture. They really couldn't figure out different cultures because it was like a very Silicon Valley, US-centric view of the world. In Jordan, they get destroyed
Starting point is 01:10:21 by a company called Kareem. And now Dubai and now it's sticking over the Middle East they basically won they won over the Middle East and you know Didi in China and there's I'm sure one in India and different places so like basically Uber
Starting point is 01:10:38 is relegated to the West Uber and Lyft and they couldn't capture the rest of the world and the reason if you look at it is because they couldn't capture the rest of the world. And the reason, if you look at it, is because they couldn't pick up cultural norms in these places. In Jordan, for example, people don't sit in the backseat.
Starting point is 01:10:58 It's kind of disrespectful. Even when they're taking a taxi? Even if you're taking a taxi. If you and someone else are taking a taxi, there are two of you. One sit in front and one sit in the back. No way. Unless you're a woman,
Starting point is 01:11:15 then you can sit in the back comfortably. I see. That's just one tiny example. Another is a lot of people want to pay cash and Uber just didn't have a way to pay cash. Oh, wow. People don't have credit cards.
Starting point is 01:11:30 Yeah, if I were working in Uber expanding other markets, it wouldn't occur to me that someone would want to pay cash. It's part of my favorite part about Uber.
Starting point is 01:11:37 People don't have banks in most places in the world. Most people are unbanked. Wow, that's cool. Yeah. And so, I think it was like a blip in history that we had these mega software corps. I think going forward, we're going to see more decentralizing effect of software. I hope for that too.
Starting point is 01:12:02 I agree. Part of why I and I think a lot of other people are excited about democratizing programming is to decentralize programming. Like bring the power back to the people. And there's something I feel like Brett Victor and all of these people talk about how
Starting point is 01:12:19 there's like a totalitarian-ness to if you need thousands of people in order to build So there's like a totalitarian-ness to... If you need thousands of people in order to build software that's worth using, there's like a top-down structure. But if one or two people could build software worth using, then we have like a much more decentralized, beautiful... Does BedVector say how this affects the quality of the software
Starting point is 01:12:48 or the quality of the programming environments? It's more of a programming language that require... The programming languages of today, like the fact that Microsoft Word has millions and millions of lines of code means that regular people can't build a competitor to it. The phrase that's coming to mind is a Jeffersonian quality of being able to mend your own clothes,
Starting point is 01:13:17 being more in charge of your own destiny. Right, right, right, right. As opposed to a big company somewhere else. It requires a lot of engineers to make it happen. I wonder, though, what downstream effects it will have on the experience, the programming experience. Or like, okay, what we were talking about earlier with the Richard Gabriel and patterns of software
Starting point is 01:13:46 and things like that, maybe we're too abstraction heavy, too Java class heavy, because we need to coordinate across thousands of programmers. Because those languages were made for the Microsofts and the, I don't know, the banks of the world, right? And maybe like a more lean, decentralized,
Starting point is 01:14:13 like software creators would need, would not need that sort of firepower. They need different languages. Oh yeah, they would need, they would have more personable, more fun languages. Yeah, they would have more personable, more fun languages, less stop-down, more... Yeah, I feel like Lisp is a good example of a language that's hard to use.
Starting point is 01:14:36 For example, macros, I think, are something that's notoriously a bad idea to use in a team setting because it just takes so long to learn someone else's weird macro setup. But if it's just like Paul Graham by himself, macros could allow him to be so much more productive and have so much more fun. I actually had this discussion with Paul Graham
Starting point is 01:14:57 the other day on Twitter about units of abstraction. I had this tweet storm about how you design a system and features start falling out because the system is well designed. And I think he had a tweet storm following that talking about how if you keep your code small, you could put it together in more interesting ways. It was kind of like an inspired baby by what I said.
Starting point is 01:15:31 And then my reply to him was that the most, he was talking about how if you keep your code small, it will kind of feel like Lego. And you can put it together in different ways to create different variations of your software. I do agree with that, but my point to him was the most composable
Starting point is 01:15:54 type of software is not code. It's protocols. I think code is not very composable. I think what's more composable is RPCs, HTTP, any type of air-gapped protocol, even if it's not air-gapped, agent-based model, even channels,
Starting point is 01:16:20 things that look like the original vision of object-oriented programming from Alan Kay, where he says that his vision is, his inspiration for object-oriented programming was biological systems or computers on the network. And, of course, object-oriented program today is nothing like that. It's basically like statically linked code. It's not like really talking messages. Most object-oriented program doesn't even have dynamic dispatch. And there's nothing about it that feels like what Alan K was talking about. And my point to PG is that
Starting point is 01:17:07 maybe the Lego structure we should start thinking about is more process-oriented and less code-oriented. I think part of what Replit is doing, so if you think about GitHub as sort of a text storage and linking system, and not to say I love GitHub, but ultimately it's text, right? Replit is live code system.
Starting point is 01:17:39 If we figure out how to create live interdependencies between programs, then we would have achieved that original vision of object-object programming, kind of programs talking through the network with each other. And so how this sort of comes all together is that I imagine a world where you have these independent software vendors and programmers. And if they want to build something as complex as a Google or as complex as SAP, the way it gets composed is via these different components being different processes that talk a certain protocol, a certain contract, and then can be composed together
Starting point is 01:18:30 to form a larger software. Now, you need some kind of incentives to play in place, right? So different groups of people would make different ones? Well, different groups of people will make different software components. Then let's say one group of people will
Starting point is 01:18:49 make SAP, one group of people will make SERM, but you could use the different components that the community already created. It's starting to sound like open source, but it's not actually. It might be open source, but that's not the point. The point is that it is live running software
Starting point is 01:19:07 that's interacting with each other. Now, this is probably where a lot of your listeners will probably drop out when I mention the dreaded word crypto. But I do think that there's, and by the way, I'm one of the biggest crypto skeptics. But I think there's some place for crypto to figure out the incentives for software collaboration, for decentralized software collaboration.
Starting point is 01:19:36 I think that, if anything, that would be its biggest use case for programmable money. If we can figure out how to, like you could spin up a load balancer and then I could use your load balancer and somehow any money I can make, I can kick back to your load balancer
Starting point is 01:19:54 as it's serving me traffic, right? Huh. Yeah, that's interesting. I hadn't heard of this application of crypto since Juan Bennett was talking about it at some point. Okay, he was talking about a similar thing? He was talking about a similar thing, and the way he put it, which was very different,
Starting point is 01:20:13 was almost like the distinction between static and dynamic. I think he was thinking about it like analyzing your code and figuring out that you use a certain package and charging, as opposed to, this is like a runtime thing. You use my load balancer, you use it 10 times in the last minute, I'm going to charge you. Yeah, everyone talks about this code. I was talking to the founder of Coinbase.
Starting point is 01:20:38 I was mentioning, we looked into this code thing. This is not what I'm talking about. No, what I'm talking about is live, decentralized, small talk almost like system on a global scale. Can we figure out global software collaboration? Yeah, and run it with running code. With running code, yeah. It's like almost SaaS.
Starting point is 01:21:05 You're paying per request. I'm interested in figuring out how pricing would work. There's a lot of details to work out there. I'd be willing to obviously do the work and sit down and work it out, but it is a very high level of the idea at this point. And then I'm thinking, you want almost like an exchange. If I'm going to pay someone for a load balancer,
Starting point is 01:21:37 I don't want to pay someone. I want to get the cheapest load balancer. I almost want a load balancer balancer to send me to whoever is not busy at the moment and give me the cheapest price. Then you'd have markets prop up to work that out. Imagine the end state
Starting point is 01:22:00 and imagine how beautiful that is. A global autonomous software collaboration system um and uh and how how much we can create with it at that point i would i would say visual programming is a breeze because we already know how programs talk we already know how you know how data moves then we have to string them together. There's a lot of things you have to think about. To think about privacy, to think about user data.
Starting point is 01:22:33 If my user data is going through 100 vendors, which, by the way, they already are. If you sign up to any startup, your data's in Intercom, your data's in Google Analytics, your data's in,com, your data's in Google Analytics, your data's in, it's everywhere, right? Okay, whatever.
Starting point is 01:22:47 Salesforce. So it's not like we're introducing new problems. Some of them are existing problems. But there are ideas out there about how to figure out, how do you spin up sort of a software system that allows,
Starting point is 01:23:02 that also, that has privacy built in, even kind of opaque to the programmer themselves. But yeah, there's a lot to figure out. Yeah, it makes me think it's basically like AWS, but decentralized. So instead of having to learn all the AWS products to do all the things,
Starting point is 01:23:23 like everyday people are making new developer-y services. Yes, exactly. So AWS steals from the community. AWS just forked Elastic. They just screwed them over, right? They saw a business that was working and they're like, all right, time to bring it in-house. And they brought it in-house and they screwed over.
Starting point is 01:23:45 They're going to do it to every database service that's out there. Why? Because the incentives are not there. If the incentives are there and Elastic doesn't even have to open source their code, they can just exist on the network and then you have a contract with them
Starting point is 01:24:01 and you could use the Elastic provider as part of your app and there's some kind of money flow where there's some kind of revenue share between AWS and Elastic, then the incentives are there and there wouldn't be any encroaching like that. But right now, we're just in a world
Starting point is 01:24:17 that is just going to keep creating gods like Amazon. That's not fun. it's not the kind of world i want to live in and by the way i don't want i don't want like i want us to be really big and impactful but i don't want us to be like this big bloated company like i want to figure out a way if we can like create a new type of company when there's there's alignments between ourselves and our developers where we work for our developers and our developers work for us.
Starting point is 01:24:47 So we have a big impact without having to bloat too much. This reminds me of the paradox of startups. People who work at startups don't want to work at big companies, but the goal of every startup is to become a big company. Yeah, yeah, yeah.
Starting point is 01:25:02 Or there's a new trend in startups where they're achieving really big financial outcomes without growing too large. Yeah.
Starting point is 01:25:12 Which is kind of what we were talking about. We have such wonderful tools now that small teams are able to be really
Starting point is 01:25:19 effective. Like WhatsApp wouldn't have existed without Erlang, right? Yeah. Or Instagram. They had 50 engineers when they got bought
Starting point is 01:25:26 for I don't know how many billions of dollars. I was looking at, I use Robinhood for investment. And they are about 300 employees and they have valuation of $6 billion. So we're getting to a place where you can have sort of an outsized impact and an outsized
Starting point is 01:25:48 return for yourself and your investors without having to become an old half-whole all-seeing god. I remember hearing early startup people from the 90s saying that
Starting point is 01:26:03 the second you raise money and start a company, you'd have to buy all these servers and hire people just like manager servers. And now you don't even have to hire one person to do that job. And why would that trend stop? So what's the next step for that trend, right?
Starting point is 01:26:20 Oh, you mean how do we decrease the amount of people we need even more? Yeah, I mean that trend will continue. With better and better tools. And I think the end outcome is the vision of this independent software programmers on the internet dealing with crypto and making money. And a kid from India can become a millionaire at 15 years old.
Starting point is 01:26:55 And I think that's a great world. That'd be the kind of world that I'd be really excited about creating. Equality of opportunity really is, this would be the ultimate equality of opportunity because there's no gatekeepers, there's no prejudice, just you and your merit. And a lot of people don't want that, by the way.
Starting point is 01:27:17 The reason why in the US there's a lot of hate for merit because a lot of people don't want merit and tough luck if that's not what you want
Starting point is 01:27:35 the alternative is this totalitarian systems that you were mentioning whether it's real totalitarian systems that you were mentioning whether it's real totalitarian systems or these very top down heavy companies
Starting point is 01:27:52 but I think I'd love to live in a world where there's more freedom, there's more meritocracy yeah, that's a beautiful vision and it makes sense why it speaks so much to you because it was like your experience.
Starting point is 01:28:07 Yeah. And the experience of a lot of our users now. Like next month, Samarth, one of our top Replit creators, he's interning with us. He's coming from India and he's 16 years old. So impressive. Yeah, I got a big laugh on your Twitter feed
Starting point is 01:28:32 at some point recently. You posted something you wanted someone to do and you were like, whoever gives me the lowest bid, I'll take that. And it was like unbelievably, it was so low that people were hating on you on Twitter for like exploiting children. Right, so, but here's
Starting point is 01:28:50 the thing, like that kid has no opportunity cost. They just wanted to do it. Like playing Xbox is the opportunity cost. Yes, yes. And he loved doing it and his software was running and now I use it every day.
Starting point is 01:29:05 And it's like a resume thing for him, a pride thing for him. Exactly. And he got paid $45, which is like for a 13-year-old kid, it's not bad at all. Sure, yeah. Have you thought about,
Starting point is 01:29:19 or maybe this legally wouldn't make any sense, turning this into a service? Because I feel like there are people who would pay children to code for them. Yeah, I think definitely you need to look at the legality of it, but ultimately our platform is going to be about that. It's going to be about how do you learn how to code
Starting point is 01:29:40 and then how do you make money with programming. So the initial part of our life and my career has been how to make programming tools um easier and and more accessible and i think that the latter half now is going to be taking that vision and merging it with how do you translate that into economic activity how do you translate that into money i have this tweet pinned on my twitter profile excerpt from a book and the title is ideas become wealth and this is really what we're going to be about we're going to be about shortening the distance between ideas and wealth we're going to be about shortening the
Starting point is 01:30:24 distance between labor and capital. And this is the thing that we're most interested in. I like that. As a title, that's kind of cool. Shortening the distance between ideas and wealth and labor and capital. Cool. One of the phrases I saw on the internet that I really liked was, you talked about leapfrogging the rappel. Cool. As more people are using Replit as, if not a primary, maybe a secondary development environment,
Starting point is 01:31:06 a lot of them are actually using it as a primary development environment. What does it mean for IDEs? We have a lot of IDE features, but ultimately we're still a REPL. We load really fast. It's perfect for smaller projects. And one mental model to think about this is how there's this leaf-frogging effect where you have certain countries in the world
Starting point is 01:31:37 and certain generations move on to a new instantiation of a technology without having to go through the existing infrastructure. So in large parts of Africa, never got the landline. They jumped straight to the cell phone. Most of Europe and the Western world had to go through landlines before they got to cell phones, right?
Starting point is 01:32:02 But then if you have a green field, you can leaf frog. And for us, young programmers are that green field. We can leaf frog that old, clunky, IntelliJ IDE type system. Jump straight to a more fluent, collaborative, always-on development environment. You're
Starting point is 01:32:29 spoiling these kids. By the way, I don't think it's only us. Jupyter Notebook is a big one. Next Journal, all these notebook systems are really awesome.
Starting point is 01:32:46 A lot of other online IDs. So it's a movement. It's not just us. And so we talked a bit about how you added features to the REPL and it got more and more full-featured. And we talked about the multi-language and abstracting everything. I'd be curious to hear your thoughts about more of the future of Replit,
Starting point is 01:33:10 the other exciting directions to go. I know you have so many interesting ones. Yeah, so the grand vision is basically what I laid out. I'd like to contribute to that world where we create that world of independent software vendors. I don't know how the mechanics exactly would work, but this is where we want to go. In terms of,
Starting point is 01:33:33 if you want me to get more concrete about that, or just features. I feel like that's interesting and also if you have ideas on the technical ways, the programming language ways, you'll make that a reality? Yeah, I'm not thinking too much on the programming language level,
Starting point is 01:33:53 although I'd want to. Part of the reason I'm not thinking on the programming language level is because we need to be neutral on Replay. A lot of language creators actually, yesterday we angered some people from the Elm community because we had promised them to add Elm but then it took us a lot longer than they expected.
Starting point is 01:34:14 And so people are seeing us as this neutral ground right now. I think we just took a stance on that and I think we need to keep being as language agnostic as we can. And so I explained earlier that I believe in the plurality of software community. I believe in experimentation, and so I want Reflit to be a part of that.
Starting point is 01:34:40 In terms of where... But that doesn't mean that we're not enhancing the development environment, but we're more thinking on a systems level right now. We have some projects where we're doing things in certain programming languages or certain environments. For example, a previous guest of yours, Glenn, who if I tried to pronounce his last name, it's going to be Bloodshed.
Starting point is 01:35:10 I think it's Chiakiere. Okay, Chiakiere. And he is, for example, doing a little bit of research for us and now building a programming library that allows kids to write visual programs and games really easily in Python. And so we have projects here and there where we zoom in on the language or the experience and we try to do it. But more so I'm thinking on a systems level. And so now I'm trying to think about how can we create a general purpose modern ipc ipc meaning inter process communication and i don't mean on a single machine i mean even over the network
Starting point is 01:35:55 something like you know there's protobufs and these things but they're not very expressive i want something more fluid more more easy to integrate. Can we create a system where it's easy to call other functions or other methods on different programs and different programming languages over the network? And if we were able to do that, then you're able to link against other repls on the Repl.NET ecosystem. And I think link is the wrong word, but you'll be able to call them. And you'll have this interaction
Starting point is 01:36:30 where someone spins up a service or an API and everyone's calling each other. The easy thing is just to say everything is HTTP and everyone's calling each other. But then you are introducing a lot of overhead to the programmer. Every programmer needs to create the HTTP service and the JSON API for it.
Starting point is 01:36:52 But we're trying to think about how to make that more fluid. We have a lot of different ideas here and there, but I don't think we have anything concrete to share right now. There's some skunk work projects, but I'd be willing to talk about concrete to share right now. There's some Skunk Work projects but I'd be willing to talk about it more in the future. Makes sense.
Starting point is 01:37:10 In the near term, I'd be curious to hear about some of the exciting projects. We just released graphics and now we're working on... It's native graphics. Yes. Which is pretty cool in the browser. Yeah, so this was a big one.
Starting point is 01:37:31 We have this tradition of starting a lot of skunk work projects, sometimes competing projects. Although we're a small company, we're six people. We're about to become seven. But we'd have two different programmers working on the same thing because we're not sure which direction to take.
Starting point is 01:37:52 We wanted to add general purpose graphics to Replit. That means that if you're if you want to use Pygame, if you want to use Java Swing, if you want to use Qt, you'd be able to use it. If you want to use TCL, TK, you'll be able to use it on the system. And one way we could have done it is we said,
Starting point is 01:38:15 actually, there's no graphics. Everything writes to the terminal. But we found that there's this old terminal feature called Sixel. And Sixel allows you to draw images into the terminal. And so we decided to build a general purpose graphics system based on Sixel. It's still standard compliant. It's something we care a lot about
Starting point is 01:38:37 to be always standard compliant. And we started prototyping that. And we got to the point where we ran Doom in Sixel. And we got really, really kind of mad science-y on this one. And we also, you know, we were able to make it work as like a IPython notebook as well, where you have, or like in Mathematica, where you can can program using images
Starting point is 01:39:06 or using squares or using different things in the REPL. So it added a lot of features and capacities to our REPL. We haven't released any of that yet because our end goal is to release a graphics system. So that was one approach. Another approach we... But that wasn't the one you went with no they didn't go with that no it's interesting the last approach that that actually worked is sort of underwhelming
Starting point is 01:39:33 giving giving the meandering that we did but it works but the second approach was all right we want to actually like be able to trap the frame buffer as a program is writing to the frame buffer and streaming down this video. And we started looking, if you want to do that, you'd want to be the kernel, basically. So we started looking at the different user space kernel implementations. And one of the things that really attracted our eyes
Starting point is 01:40:02 was Google's GVisor. As we started contributing to Google GVisor and working on it to get it to a point where we can do that sort of thing. That turned out to be a really long-term project. GVisor is really early, and there's a lot of system calls, a lot of things that they don't implement.
Starting point is 01:40:22 One day, Rob was messing around, one of our engineers was messing around, and he started Chrome, and he started VNC server with Chrome in it. And we just had Chrome running on our infrastructure, and we were watching YouTube together. And I'm like, all right, that's it. We found our graphics system.
Starting point is 01:40:42 It's going to be VNC. And everyone's like, that's that's too janky like we can't just like open a vnc uh server for every for every client i'm like no no it works let's just do it and so you you sometimes as as a manager you sometimes you have to just like you spend all this time on all these different things, you just have to say, all right, that's it, we're done. We're all hands on deck. Commit. And in two weeks, we built a general purpose
Starting point is 01:41:14 sort of like VNC launcher and system that works with any graphics, any language, any framework. Yeah. It's crazy. I've been seeing all the images on Twitter of the recursiveness of how it goes because you can pop open a web browser and load Replit and then inside Replit
Starting point is 01:41:36 you can load Replit again. Anytime we release a feature we try to take it to the absurdist conclusion. When I was writing the blog post, I was like, what would be cool if as you're reading the blog post, you would hit run and you would get Chrome to the same blog post.
Starting point is 01:41:58 We left a hint for people to say, hey, you can do it recursively. People ran the REPL in the blog post. It opened Chrome. They went into the Chrome. They ran the REPL again. They ran REPL again. I've seen people do it six times. And it gets really tiny. Six times.
Starting point is 01:42:14 And people on Hacker News were commenting with their images and how far they got. And then people on Twitter were also doing that. Was the limit just the pixels? It wasn't compute, because all the compute stuff was happening on the server. All the limit just the pixels? Yeah. It wasn't compute
Starting point is 01:42:26 because all the compute stuff was happening on the server. All the compute on the server, yeah. But it was a lot of fun. That's hilarious. So another, one of the things that I find most interesting
Starting point is 01:42:39 about Replit is the community. It seems like you have a very active community of youngsters. Yep. And these game jams are a new thing. is the community. It seems like you have a very active community of youngsters. These game jams are a new thing. There are these competitions you run? Yeah.
Starting point is 01:42:53 Is the one that you're running now the first one where there's a reward? Yeah, we used to give them karma. Sometimes like Amazon gift card or something like that. Actually, the story of how we found our community is not that obvious. Hayan and I, my co-founder and I, were mostly me.
Starting point is 01:43:18 I didn't really know how active of a teen developer community we have and i just you know in retrospect now i understand why they love our tools and you know if i if i was growing up now i would probably be all over of course yeah um and you're based on my experience talking about like how it was lonely how is like i would love have loved something like that. But at the time, it wasn't really obvious to me how big our community could be. We started seeing semblance of a community on our feedback form.
Starting point is 01:43:57 So some kids will leave us feedback, and then some other kids will reply and start making friends with them, and start sharing ripples with them, talking. Desperate for friends. Yeah. And it was like, this is strange. So we took the software, the external software that we used for that,
Starting point is 01:44:15 and we generated another feedback form, but we called it, what do we call it? We called it something like forum or something like that. Oh, no, no, no. So it was like, oh, we wanted to populate the forum, so it was like, let's do a challenge. So we did a challenge, like share your REPL, and the best REPL wins.
Starting point is 01:44:42 And then the first hour we had 100 chairs. And then the second hour, another 100. And then they wouldn't stop. And there was all this energy and floodgates that we just opened. Crazy. And we should have done it years ago maybe. But there was all this pent-up
Starting point is 01:45:00 energy. And then one kid built a chat room. And he built a chat room, by the way, in the paradigm that I was talking about. He had a backend REPL that was doing the data storage and everything. And he had the clients being REPLs themselves.
Starting point is 01:45:20 So he would boot up into this prompt chat thing. And this is connecting to this backend that's connecting all the different clients together. So he would boot up into this prompt chat thing, and this is connecting to this backend that's connecting all the different clients together. So if I want to join the chat, it's not a website, I have to open up a REPL. You open up a REPL, you run it, and the prompt changes from the REPL prompt to a chat prompt.
Starting point is 01:45:41 I have to hit run, yeah, yeah. Yeah, I have to hit run, and then that connects to a backend, which is another REPL, actually. In a different language. I think it was both Python. But it could have easily been a different language. And he did it in two separate ones
Starting point is 01:45:59 so people wouldn't hack it, I guess? Yes, because you also need to connect the users. So if you had every process on its own, how would you connect it? You need some kind of federated system. I see, I see. So it was like a centralized system. He had some backend that they were connecting to.
Starting point is 01:46:17 And the database, it would be persistent somehow? Yeah, I don't think it was persistent at first. Later on, I think he made it persistent. But at first, it was just like a broadcast system. I see. And this kid was nine, probably, right? Twelve. I went in the chat and started chatting with them.
Starting point is 01:46:34 And it was just amazing how much they started sharing their stuff. And the community started. The community built itself. And then we started a discord server for them because we wanted something more interesting and the discord sort of started growing and we have like these hyperactive amazing amazing group of kids um on these servers building amazing software and collaborating and helping each other and helping other people in the community. And I'm just,
Starting point is 01:47:07 I'm just like, it's, it's, it's, yeah, even as I'm saying the story, it's kind of unbelievable to my own ears, like how, how this whole thing progressed.
Starting point is 01:47:15 But now we have, we have this amazing community that's sort of like growing. Um, and, uh, yeah, we love it. I,
Starting point is 01:47:24 I spent, I spent an insane amount of time in the community just hanging out and working with them. We started a multiplayer session and we all hopped into it. The other day I taught them how to do trampolines in JavaScript. Someone was running into a recursion problem
Starting point is 01:47:40 where they were running out of stack space. I was like, you should trampoline that. I was like, what is a trampoline? Then I started a live session and showed them what a trampoline is. That's awesome. Yeah. Yeah, I can see how powerful a community, a so engaged community like that could be.
Starting point is 01:48:01 Yeah. While you were uh cooking upstairs uh hiya was telling me about how um she was she was she's working on a design for like a help system like you guys have a help channel in the discord maybe but she wants like bake it into the actual interface i i can imagine just be supercharged because you have all these kids wanting to talk to each other so they're desperate to help each other when anyone comes up with issues. It's really underutilized right now.
Starting point is 01:48:33 We have a lot of energy in the community that could be better utilized. It reminds me of watching my brother and his friends playing Minecraft and teaching each other how they do it. There's no reason why we can't apply that same mentoring energy to programming.
Starting point is 01:48:50 In fact, if you merge the two, you're golden. I think Roblox had done a really good job and we're starting to see a lot of kids from Replit using Replit to script Roblox and things like that. So there's a lot of interconnectedness. And by the way, we spot trends really early on. Before Fortnite started becoming mainstream, we started seeing all these websites and bots prop up
Starting point is 01:49:20 that do something relating to Fortnite. And then two months later, Fortnite becomes this worldwide sensation. Same thing with Discord. We started seeing Discord all over the place in 2015 or 2016. And then, of course, Discord kind of exploded in 2017, 2018.
Starting point is 01:49:42 But it's interesting how we see the trends early on. And it's interesting, by the the way how teens are early adopters in a lot of ways not just like the latest social app but a lot of different applications I guess this explains the Repl.Adventure arm that you're about to start I think that's a good idea I actually want to do it. Yeah, well, you better.
Starting point is 01:50:07 Or you've got to sell this data to venture capital firms. What's your current prediction? What are you hearing about now? Actually, we're kind of like all around low hype cycle on a lot of things. Low hype. You're hearing things. Well, there are a few things.
Starting point is 01:50:25 I think Roblox is really starting to take up, but I haven't really noticed something that's screaming at me. Sometimes you do not realize it was a big deal until afterwards. Yeah, maybe, but I think with Fortnite, I really knew it. Like, what is going on?
Starting point is 01:50:43 Yeah, it's like, this is insane. It's everywhere. Every comment, every meme, everything. Yeah, it's Fortnite. And so it really is in your face. I think PewDiePie is now, with his Battle of T-Series, is really everywhere. Have you heard about those?
Starting point is 01:51:04 Well, I heard about PewDiePie with the shootings. Oh man, yeah. It's not that. By the way, they got with a troll. PewDiePie just makes memes. It's not.
Starting point is 01:51:22 But the there's this big battle for the number one spot for YouTube. And it's between this Indian channel called T-Series and PewDiePie. And so a lot of kids are into this and they're trying to figure out a way to help PewDiePie. A lot of them are writing applications or bots and things like that to spread the message to say subscribe to PewDiePie. That's a big trend right now, but I don't see any big overarching trends except for maybe that and Roblox is another one.
Starting point is 01:51:55 Especially the developer community about Roblox. I remember when I first found out they existed. Developers, kids make money from Roblox. Yeah, yeah. That's cool. first found out they existed. Developers, kids make money from Roblox. I really like the vision you were mentioning earlier of kids in Replit making money. I definitely see you grabbing headlines in a couple years, like
Starting point is 01:52:17 14-year-old made 100K a year. Did you see that 19-year-old kid that just became a millionaire on HackerOne? HackerOne? Yeah. HackerOne is like this, yeah, well, actually you can, it's like this prize bounty, bounty system for hacking. And there was a kid, I don't know from where exactly,
Starting point is 01:52:40 but he's a 19-year-old kid who's just been awarded over a million dollars and Hacker won prizes and this is the new rich this is the new this is the 21st century set of millionaires that we're going to start seeing
Starting point is 01:52:59 those like internet natives programmers, creators, designers entrepreneurs, social media influencers that are making all this money online. And it's really interesting. And I think it'll get bigger. It'll be accessible to anyone who wants to do it. And I just think it's an exciting world to be in right now.
Starting point is 01:53:28 From the perspective of you guys making money, I'd be curious if you could talk to, does it come mostly from education at this point? Yeah, right now we're selling to schools and we have some developers paying us for privacy, kind of the old GitHub model. Of course, GitHub made it public. So this is a lot of where we're sort of running lean and make sure we're not burning a lot of money so that we can keep going and keep exploring the next frontiers of programming.
Starting point is 01:54:03 In terms of where we see our long-term business, we see ourselves as definitely something like some kind of cloud provider or some kind of... There's also a potential for a business model that looks something like Unity or some of those game developer platforms where it's a toolkit and you use it to build applications that could make money.
Starting point is 01:54:33 And then if you make money, we get a kickback somehow. The marketplace you talked about is an interesting idea. So any way we can think about how our users can make money and by virtue of them making money, us making money off of them, I think that's the most aligned vision. It's kind of like the Apple App Store model. You're really fully aligned with your creator. And the more you want to support them,
Starting point is 01:55:00 you want to give them as much help as possible for them to succeed. The sort of Heroku model is actually quite user hostile, developer hostile because if you're successful in a Heroku model, you're going to pay the penalty for being successful.
Starting point is 01:55:21 You have to leave. You have to leave to cut costs and things like that. For us, we're trying to figure out a model where... It scales with them. It scales with them, and we actually make money with you. So you can take your time figuring out how you're going to make money, and then as you start making money, then we start making money with you.
Starting point is 01:55:41 I know it sounds vague, but that's the direction we're taking we're not rushing it because we want to build something new we don't want to like repeat all the same things like haruka's been tried right the um and all these are good businesses and they've done a great job and uh if we're as successful as them, I'd be happy. But also a big part of me is about trying new things. Like the graphics thing, we could have done something with JavaScript or Web or WebGL or something like that.
Starting point is 01:56:18 But we really wanted to extend this to underserved communities, meaning the Python community doesn't have a place online where you can make Pygame. A lot of what our ethos at Replit is less about competition, more about making something new in the world.
Starting point is 01:56:36 We want to try new things. We have the luxury of having a lean team, having the support of our investors to kind of spend some time on this and try to figure it out. That's great.
Starting point is 01:56:51 Yeah, really exciting. It's getting late. I like to finish by having you kind of list all the ways that you want to be contacted on the internet or ways to get involved or whatnot, collaborate, if you're hiring, things like that. Yeah, so I think you have that hiring message
Starting point is 01:57:12 on top of that. Yeah, it's funny. I normally deliver your hiring message. Yeah, so I'd love to do it this time. So yeah, we're hiring mostly generalist hackers, mostly the kind of people that would be listening to this show. Even if you're not looking for a full-time job, if you want to explore potentially a collaboration like we do with Glenn,
Starting point is 01:57:43 we're also open to that. We did a few of those and we're happy with them. But we're also looking for full-time engineer. We're looking for infrastructure and we're looking for front-end engineers. We just look for good hackers. We don't really have any specific, like we have a job space that you can look at,
Starting point is 01:58:01 but on the top of the job, every job we say, this is only an approximation. Just reach out if you're a good engineer. That's basically what I say. And if you're a bad engineer, stay away. Don't waste it. I'm just kidding. I guess what I mean by that is if you're driven, you love the kind of stuff that we're talking about and you really want to work on them
Starting point is 01:58:31 and dedicate a big portion of your career on this, then please do reach out. And then in terms of where I could be found, A.M. Asad, A-M-A-S-A-D, and all over the internet, GitHub, Replit, Twitter, all these different places. And then finally, I'm really excited about what you're doing, the community that you're building.
Starting point is 01:58:58 This is something, the reason we support this show is because just these ideas, there isn't a lot of places where we can talk about these ideas or we can discuss these ideas or we can explore these ideas and so I'm actually surprised that there isn't
Starting point is 01:59:18 a lot of these different places so I'm glad you're doing this and I'm super happy to be a supporter of the show and of course a guest yeah I'm glad you're doing this, and I'm super happy to be a supporter of the show and, of course, a guest. Yeah, I'm so thrilled to finally have you on here and have you as a supporter. It's been great working together.
Starting point is 01:59:32 Yeah, awesome. Cool. All right, well, thanks for taking the time. Yeah, no worries. My pleasure. And that's the end of the interview. As I'm sure you heard Steve and Amjad thanking each other, so I'm not going to do all that again other than saying thanks, Steve,
Starting point is 01:59:52 for starting the Future of Coding podcast and community and doing all these great interviews. And I think there might be one more interview that is in the archive, as it were, from the Steve era of the show. I'm not sure if that one's ever going to see the light of day or not. Otherwise, this might be the last time we hear from Steve as host, at least from the first round of the existence of this show. Anyways, thanks for listening. Thanks for subscribing if you are a subscriber and have stuck with me through the year of silence. And I will see you again in the future.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.