Future of Coding - Amjad Masad: Replit
Episode Date: August 27, 2021The 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)
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.
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.
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
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.
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
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.
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
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.
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.
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.
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
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,
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
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
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
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.
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,
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.
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
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.
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.
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.
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.
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.
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,
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
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?
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.
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
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
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.
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,
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
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
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,
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,
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
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.
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.
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?
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.
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
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
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 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
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
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?
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
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
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.
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
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
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.
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
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
of thinking
I think in programming
one is like
very analytic
very
mathematical
I fall onto
the sort of
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.
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?
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.
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.
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,
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
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?
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
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.
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.
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.
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.
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.
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
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.
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
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.
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.
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.
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
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.
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,
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.
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.
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.
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,
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.
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.
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.
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.
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
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,
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
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,
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
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.
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.
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.
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.
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.
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?
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.
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
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
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?
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
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
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
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
or basically
like client says
eval
server might say
input
so that's a state
machine for it
if the server
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.
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
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
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.
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.
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,
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.
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.
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
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
Replit,
someone could
install?
Yeah, I
mean, we
haven't seen a
lot of pickup
on our tools
outside of
Replit, but
I guess they're
not very
polished for
the use outside
of Replit.
And we haven't
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
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
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
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,
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.
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,
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.
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
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.
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
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
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.
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?
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
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
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.
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
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.
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
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.
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
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.
Yeah, yeah, yeah.
Okay.
And there was Grail as well?
Grail.
I don't remember Grail.
Yeah.
But anyways,
those are really interesting
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
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
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.
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
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.
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.
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.
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.
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.
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,
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,
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
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.
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.
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.
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.
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,
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.
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.
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
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
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
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.
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,
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.
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.
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.
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
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
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,
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
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,
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.
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
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.
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
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,
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
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.
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
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
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
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.
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
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,
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.
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.
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,
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
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.
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.
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,
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,
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.
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
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
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.
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.
Or there's a new trend in startups
where they're
achieving really
big financial
outcomes without
growing too
large.
Yeah.
Which is kind
of what we were
talking about.
We have such
wonderful tools
now that small
teams are able
to be really
effective.
Like WhatsApp
wouldn't have
existed without
Erlang, right?
Yeah.
Or Instagram.
They had 50 engineers when they got bought
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
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
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?
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.
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.
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
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
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.
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
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
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.
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,
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
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
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,
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
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?
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
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.
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,
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,
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,
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.
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.
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.
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
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
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.
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.
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.
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.
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,
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
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
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
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
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.
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.
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
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
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.
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.
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
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
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.
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.
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.
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,
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.
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
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.
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.
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
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.
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.
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,
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.
But now we have,
we have this amazing community that's sort of like growing.
Um,
and,
uh,
yeah,
we love it.
I,
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
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.
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.
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.
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
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.
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.
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.
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?
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?
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.
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.
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
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,
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
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.
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.
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.
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,
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.
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.
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.
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.
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.
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
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,
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,
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
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.
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
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.
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,
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.