The Changelog: Software Development, Open Source - GunDB, Venture Backed and Decentralized (Interview)
Episode Date: January 27, 2017Mark Nadal joined the show to talk about his hacker story and his venture backed open source datastore project called GunDB — a realtime, decentralized, offline-first, graph database engine. We talk...ed about the details behind this database, how Mark secured funding, why yet another datastore, who's using the database, how Mark plans to sustain this project through products and services, his thoughts on the RethinkDB postmortem and more.
Transcript
Discussion (0)
Bandwidth for Changelog is provided by Fastly. Learn more at Fastly.com.
I'm Mark Nadau, and you're listening to The Changelog. welcome back everyone this is the change log liner host adam stachowiak this is episode 236
and today jared and i are talking to mark nadal about his hacker story and his venture-backed
open source data store project called GunDB.
We talked about all the details behind this database, how Mark secured funding, why yet
another data store, who's using this database, how Mark plans to sustain this project, your
products and services.
We've got three sponsors today, GoCD, Linode, and our friends at Flatiron School.
Our first sponsor of the show today is our friends at GoCD. Head to gocd.io slash changelog to learn
more about this awesome open source continuous delivery server. GoCD lets you model complex
workflows, promote trusted artifacts, see how your workflow really works, deploy any version
anytime, run and grok your
tests, compare builds, take advantage of plugins, and more. Once again, head to gocd.io slash
changelog to learn more. And now on to the show. All right, we're here today, Jared talking to
Mark Nadal, talking about GunDB and a bunch of other fun stuff to kind of tee this up.
But this began, I think it began in the ping repo, is that right?
Yeah, two shows in a row, Intermezzo's last week and now GunDB.
This one is from a longtime friend of the show, Kevin McGee.
Yes, Kevin, thank you.
Kevin's the one who likes to give us a guest idea as well as set up and even script portions of the show for us, which is always appreciated.
Yes, very much.
So Kevin thought Mark would be a great guest specifically to talk about Mark, your project, GunDB.
So thanks so much for joining us.
Shout out to you, Kevin. Thanks so much.
I really appreciate you guys having me on the show.
I'm honored to be here.
Very good. Well, let's get to know you a little bit, Mark. We know that you are the creator of
GunDB. That is a graph database. Think of it like Firebase open source. Also, a lot to say around
that. But first, we have to get to know our guests a little bit. So can you give us a little bit of
your origin story, how you got into software and open source?
Yeah, you nailed it. So to go way back, I was born in San Diego.
I'm kidding.
I'll skip forward a couple of years.
Thank you.
So I like to focus on mathematics, philosophy.
That's kind of my groove.
However, I realized if I didn't want to stay in academics and become a PhD and all that jazz. I probably wouldn't have an aspiring career as a rogue mathematician without any credentials
behind me.
So I was like, hey, what's the closest industry to doing things that are like formal systems,
logic that I could, you know, actually make a living off of?
And well, code looked like the closest cousin.
So I jumped on that bandwagon, dropped out of university.
And well, I didn't even go to university.
I dropped out of community college and started programming.
And over time, I realized that, well, code, when it comes to implementation, is a completely
different world than mathematics and philosophy. But I got over
that curve, jumped on the Node.js bandwagon back in like 2009, except for I'm just a basement
dwelling programmer. So I didn't pay attention to the forums or the chat rooms. So even though
I've been using Node from like 0.2.2, I didn't really actually get involved with the
community till much later. And I kind of feel like I missed out on that opportunity. So I was
building a collaborative web design tool because I'd done lots of freelance stuff for making
websites for clients. And I was like, this is ridiculous. I'm just moving some boxes around on the screen. Why is CSS so dumb? Right?
Like, like I sit down with the client, I figure out exactly what they want. And then I go and
build it a week later, I come back and I'm like, Hey, here's exactly what you wanted. They're like,
Oh, this is so cool. But could you move that sidebar to the other side of the screen?
And I'm thinking in my head, no.
Yeah. The worst nightmare of all CSS developers is that right there.
Yeah. Yep. So it's like, shoot, I got to go back and redo all of my CSS just to switch the sides on things. And I figured, you know what? There needs to be a tool that allows me
to build websites on the fly as I'm talking to
clients.
This should be easy.
Come on.
It's like 2010, right?
We should be able to build websites.
It's the greatest platform to express yourself to people, to have a medium and an open conversation
with others.
The technology needs to exist.
So I decided to jump on that, built it out.
I met a couple people that wanted to join me and we got some attention. We got into startup UCLA,
which is an accelerator. So even though it's been my entire life running away from university,
I wound up getting suckered back into it. But at this time, the nice thing was
I got to sit down and have lunch with the department heads of psychology at UCLA, the department heads of communication, and they gave me a grant to work on what I wanted to work on.
So rather than me being this struggling college student, you know, trying to pay off tuition and loan and debt and only getting to talk to the teacher assistants and stuff like
that. I've basically bypassed college and I'm now kind of in the circle where I actually get
to chat with the department head. So that was really exciting. And I realized, wow,
the tech industry is just something completely different. So at that point, I started struggling
with the backend of the system I was trying to build. I, being a
mathematician and a logician and a front end web developer, how am I supposed to figure out DevOps
and system administration and command line and all that stuff? So I'm very much an outsider.
And when I struggled with that, we got a burst of traffic, 300 users came onto our website,
signed up. And in the middle of the night, my entire backend exploded.
And I'm like, okay, come on.
Why is it that now that I've built a web design tool that lets people quickly create really cool websites, nobody wants to hire me to build websites.
They want to hire me to build like backend systems, even though I
don't know anything about backend systems. So I figured, okay, I need to start fixing this problem.
I need to build a database that can handle the needs that I have. So quick lead into gun here.
You'd think that a website creation tool should use a document-based database because pages are documents.
That's what I did.
But the problem winds up happening is that you got the sidebar, you got the header, the footer, you reuse those across all the pages.
So you wind up having a mix between document structured stuff as well as relational structured
stuff.
And that's at the point where I was like, well, I can't just switch over to a SQL database because I need the ad hoc creation of websites
and documents. And I can't use a document database. So what do I do? And I discovered
graph databases and then Firebase was taken off that time. So I thought, okay, the real time stuff
has a benefit. So that's kind of a quick history. So where you are today is with a product called GunDB, which as Kevin McGee
describes it, a floss graph database written in JavaScript that was developed by a front end guy.
And then he says, what? Somewhat intriguing. Of course, we just heard a little bit of your path
to getting where you are.
And in that thread, you mentioned a lot of buzzwords,
CRDTs, cap theorem, so on and so forth.
Did you just go out and study everything
to do with graph databases?
Or how did you get from front end guy
with logic and math background to,
I'm now building what is a venture backed company
around an open source graph database?
Yes, so I am the last person that should be building a database. what is a venture-backed company around an open source graph database? Yes.
So I am the last person that should be building a database.
I'll come out and admit that right now.
Is that what you tell your investors?
It's not the first time you heard this, Jared.
I know.
The first time was a SQL, yeah.
Yeah, SQLite.
SQLite.
I've told my investors that it is a high-risk open-source startup.
But if we hit this trend that's taking off with graph databases and Node.js that has grown by 120,000% in just a couple of years, then there could be something huge here.
This could be redefining databases in the same way we had the shift know, the shift from proprietary databases of Oracle into
open source with MySQL. And then we had from MySQL into the shift of the NoSQL craze, which now a lot
of people look back and judge. And then going from the NoSQL craze into the big data craze,
right? And Alan Kay, who's a pretty big computer scientist out there, he's inspired a lot of Brett
Victor's work. We'll get to that later. Com comments that big data isn't very useful. What we need is meaningful
data. If we have all the data in the world, can't decipher what its intent is. There's not much use
to this. So that's going to come quickly back around to a couple exciting things. And I actually
want to get back to answering your question, which is the future of machine learning, artificial intelligence, and graphs. Like
you just cannot build data structures based off of a rigid format reality, but trying to model
data in reality, sorry, trying to model reality in data reality is not clean. It's not clean cut. It doesn't fit in a
table. It doesn't fit in a single document. You need a data structure that will match how the
universe works. And I'm going to pull a little bit back into the mathematics here. I comment
about this a lot is that graphs are amazing because they do just that. In mathematics, a table is called a
matrix. And in mathematics, a document is called a tree. Both a tree and a matrix can be represented
as a graph, but not all graphs can be represented as a tree or a matrix. Some of them can, but not
all. So graphs are actually the superstructure of, of a data format or just
an algorithm format. So you can represent a lot more. Um, a lot of the machine learning stuff
that you see, which I still think is kind of hyped up a little bit too much, but a lot of
the machine learning stuff has to learn off of very flexible data to find the relationships and
the hierarchies and graphs are a better fit
for that. So, so going back to, there was a part I wanted to focus on, on your question.
Would you mind repeating your question? Well, it was kind of along the lines of where did you
acquire the qualifications to build such a thing? Yes. And I was saying I'm the last person
qualified. Okay. Right. So this, this is something I want to strongly emphasize to all newcomers coming into the tech industry, as well as programmers that have been around for a long time. I am a front end developer, and it was 2010 2011. I expected people out there to have solved the back end to make it easy for me to build a solution. I set myself up on
Amazon Web Services because I heard that it was scalable, right? That things will auto scale.
They just didn't tell me that I had to go in there and figure out how to program everything
to auto scale. I don't have those skill sets. I don't know how to do those things, right?
So when my server crashed in the middle of the night, I was like, what on
earth? I thought this was a solved problem. So I've been frustrated for long enough, whether it
just be my desktop operating system or tools that I use while trying to program. And hey,
I'm using JavaScript. JavaScript should be one of the most laughed at programming languages out there.
Why do these things just seem not to work? And if they don't work, why on earth am I sitting around trusting these databases that have been around for 30 years, 20 years, 10 years, five years?
I'm not saying those databases aren't good. They're fantastic. But when I have a problem and they don't deliver, I would argue, regardless of it. Or there's bugs that are getting thrown at me.
Don't put yourself down and assume that, you know, you're just a stupid programmer.
You're not, you're brilliant, okay?
And you can take that frustration that you have
and build a solution around it.
You can tackle it and handle it yourself.
And maybe like me, a few years later,
you'll be doing podcasts and talking to investors
because that's what
matters is taking the initiative to see problems and tackle them.
So I just want to be really encouraging to everybody out there.
You are a hacker and that's at your heart.
So don't sell your heart out to the latest trends or the latest tools or even legacy
software that everybody swears by.
You have the insight to see a problem and to tackle it yourself, regardless of whether you have credentials. I love that attitude. I think it probably explains a lot of how you got where
you are now. I wonder with regards to graph databases and the way that this format is kind
of like you said, a superstructure and you can do documents and you can do relations with it.
And I agree with all of that.
There are other graph databases.
Like Neo4j is the one that comes to my mind.
It's probably the most popular open source graph database.
And I wonder, did you try those and they also didn't fit the specific need?
Was it, I'm just going to build this thing.
I'm just going to start.
I'm going to go.
Or was there a survey of existing?
Because you can go to Wikipedia and there's a list of graph databases that's probably three scroll pages long.
Maybe some of these are the legacy systems that you're referring to.
But I'm curious, once you've realized the graph was a way to build a great data store for the modern age, was there a survey of other ones?
Yes. So great question. Really quickly, i'm going to nitpick on wikipedia god's been listed on wikipedia i think since 2014
and then recently og a group of like deletionists i think that's what they're called i i don't know
wikipedia well enough came along and started like deleting a bunch of they even deleted like a rango db and a bunch of these other databases that are totally legit and worth right there on the
site so now we're not on wikipedia anymore but hopefully somebody out there will put us back on
and fight the annoying moderators um okay yeah there's there's an entire society and like social
microcosm that you could do a documentary on like so wikipedia
editors and and all of that is just it's like a power struggle and there's there's all sorts of
things going on there behind the scenes yeah if you want a lesson in trying to overcome haters
just get on twitter or get on wikipedia right um you'll get tackled enough. And anyways, going back to your question. Yes. So I had had these
problems with my database crashing back in like 2012 ish. It wasn't actually till late 2013,
early 2014 that I started struggling with like, oh, I need the header and the footer in my
collaborative web design tool to be reused across pages. And that's when my friend mentioned Neo4j.
I'd never heard of craft databases before.
I'm like, oh, well, I've been wanting to get off of the current database I have long enough
anyways, so I should try out Neo4j.
Neo4j is fantastic.
It was great.
The setup was fantastic.
They have this really cool interactive tutorial in their admin dashboard to learn how to do
a cipher query, which is their query language.
They got D3 plugins built right into their admin panel so you can visualize the graph.
Really, really neat.
But there's two fundamental problems still.
First, and this is where we get to talk about some really exciting things like WebTorrent
and IPFS and the whole peer-to-peer decentralized movement.
Neo4j is still what's called a master-slave database. That means ultimately all rights
have to go through a master and or if you want to scale up at some point, you're going to have to run
a fancy algorithm known as Paxos or Raft to make sure that there is consensus of the consistency
of the data. And I personally have discovered that while those are very useful for certain
industries that you cannot go away from, like banking, you really want to make sure that the
account balance in somebody's bank account is correctly reflecting the amount of money they have before they
overspend it or underspend it.
Most web applications out there, especially with this movement that Firebase has been
pushing of the real-time web, having everything interconnected, IoT, doesn't need that.
So you can have a much more resilient system that will scale a lot better if you switch over to a decentralized architecture.
So that was my first problem with Neo4j.
I was still going to have the problem that in the middle of the night, if I got too much traffic, things were going to explode, break down.
I'd have to do DevOps.
I'd have to make sure that Neo4j is running properly and could scale. The second problem is that I am a JavaScript junkie, probably to the disappointment of
a lot of people out there.
I wanted to use Neo4j directly in Node, and there, I think, was one or two drivers at
that time.
And even if there was a driver, I tried it out and it was very verbose. It turns
out the Neo4j's wire protocol and how I didn't do enough research. So I could be wrong here,
was that they would take the graph data, transform it into a table such that there would be
the properties in each node in the graph would correspond to a
column. And then they would repeat the same node for as many times that it shows up for each column.
And that's how they would send the data to you. And to me, I'd already written a MongoDB driver
back in like 2010 or 2011.
So I like to get close to the database and know what's going on.
Neo4j's spec for talking to a client was just way too verbose.
And I decided, okay, either I use one of the existing drivers out there
and I have to learn all the Cypher stuff.
And I felt uncomfortable with that.
Or, well, two strikes against Neo4j,
even though it's a great database,
I could just take the effort I'm doing now
and whip out a prototype
of what a pure JavaScript Node.js graph-based database is,
especially with all the Firebase quirks,
not quirks, all the Firebase perks to it it slapped on top as well as it then being
the peer-to-peer um side of the equation so i made a prototype proof of concept only spent a
couple weeks on it posted to hacker news and whoa got to the home page of hacker news and i could
tell that even though i hadn't even really written this thing yet, I just had a proof of concept.
People wanted this.
It wasn't just me.
I was struggling with the academic snobbery of databases.
And a quick shout out to a guy named Afer.
Well, his name is Kyle Kingsbury, Afer.
He did a series called Call Me Maybe Jepson Tests, where he analyzed a ton of databases out there and found out that a lot of the marketing claims of these databases just weren't
true.
They didn't stand up to the sort of things that they were claiming.
So between those three or four things, I decided, well, seems like a great timing,
great opportunity.
Might as well go for it.
That's a good spot to pause. Actually, we got to take our first break in a second,
but you brought up decentralization as point number one, point two,
JS Junkie. I don't think anybody listening to this podcast is hating on you for being a
JS Junkie. So no worries there. And then you mentioned IPFS and stuff like that. So let's take this quick break.
When we come back, we'll dive a little deeper into some of those things and why decentralized makes this even better.
We'll be right back.
Linode is our cloud server of choice.
Everything we do runs on Linode servers, the most efficient SSD cloud servers on the market.
And you can get your own Linode cloud server up and running in seconds with your choice of Linux distro, resources, and node location. They've got eight data centers
all across the world, North America, Europe, Asia Pacific, and plans for just 10 bucks a month.
You get full root access for more control, run VMs, run containers, a private Git server,
enjoy native SSD cloud storage, a 40 gigabit network intel e5 processors
super fast use the code changelog 2017 for a 20 credit unlimited uses tell your friends
once again changelog 2017 head to leno.com slash changelog and now back to the show
all right we're back with Mark talking about GunDB.
Now, Mark, you mentioned decentralized.
You mentioned JS Junkie.
You mentioned IPFS.
But what we may not have done perfectly yet is give the elevator pitch to Gun.
So give us the elevator pitch.
What is Gun?
How do people use it?
What'd you make it for?
No, I think you were right that the best way to explain
gun is that it's an open source firebase the cool thing that then people can discover afterwards is
it it's got graph features it's offline first it's peer-to-peer and that just makes it all the more
awesome but i like to introduce it as being open source firebase in terms of what offline first
and peer-to-peer and being a graph database mean, that's something that just winds up being a deep dive of discussion.
So going back to decentralization, I think that's a great place to start because there's this new movement.
And it's not new because the internet was based on decentralized protocol, but there's a resurgence of us in the community,
whether that be Tim Berners-Lee, IPFS, me, the people that are trying to push this once again.
And here's the reason why, okay?
They expect by 2020, up to 5 billion new people to come online. So when Twitter is bragging about how they have
these 300 million users active monthly and how they've learned to scale and all that stuff,
with the advent of things like Pokemon Go and these apps that just get tons of people really
quickly, scaling is not going to be the exception. Having millions and millions of users is not going to be the exception for these monoliths.
It's going to be the default that most apps have.
So out of the box, there's an expectation now that we're going to have to have systems
for any average developer to spin up and be able to handle that type of load with the
5 billion new users coming out.
That's more than what's currently online.
How do we do that?
Well, this actually is not a computer science problem.
It's not a programming problem.
You can throw those things at it.
It winds up being a physics problem.
So it goes actually back to the roots of the web itself
and looking at it as a decentralized protocol,
a decentralized algorithm.
So I think that's where a lot of the excitement
people might've heard about the resurgence
of peer-to-peer is coming from.
It's looking at our roots
and now is the time to capitalize on that.
So you cast it in light of Firebase
and I think that's probably useful
for most of our listeners.
But for those of them saying,
well, I don't really know what Firebase is,
so now I feel dumb.
Can you give us the lay of the land with Firebase
and so we can understand what it means
when you say an open source Firebase?
Great point.
It's so important to me that in a conversation,
I have a tendency to throw out jargon words
and I really dislike it
because the more jargon there is,
I feel like it's just covering your butt.
That in reality, there's nothing behind it's just covering your butt that in reality,
there's nothing behind it. So I really appreciate that. Yeah. So Firebase was a popular database as
a service, which basically let you plop in the Firebase library on a couple of HTML pages,
and then immediately have data between those different devices that have loaded the page sync in real
time. So they're kind of the ones that pioneered making, well, just as a quick example, if you look
at like the Facebook newsfeed, you get updates as it happens. If you look at Twitter, you get
updates as it happens. Previously, only big companies had access to that type of technology. But with the advent of WebSockets,
Firebase came along and quickly made it easy for a developer at a hackathon to spin up that type
of service that has things updating in real time. And then what happened with it? Why open source
Firebase? Why not just Firebase? Just use it. Yeah. So Firebase is completely proprietary and
recently just got purchased by
google um they had a couple competitors i don't know if they were real time or not like parse
they were bought by facebook and just shut down so open source to me is really important not only
as i'm talking about the origins and the roots of the web but also open source in a more specific setting. So for instance, a lot of databases out there are licensed under something called the GPL or the AGPL license.
Guns licensed under an MIT or Apache 2 or Zlib license, which basically says you can do whatever you want and you don't have to pay us a dime. Having technology available to the masses that they can use it without any concern
or care, whether it's for personal use cases or commercial use cases, is really important.
Because if you look, especially at the housing crisis in 2008, the entire world economy collapsed.
But the one exception was the tech industry. The tech industry just kept on
growing and growing and growing. My argument for why is because it's based on an open foundation.
The web itself in its protocol, whether it's HTTP or the other things out there, is open.
And it might seem like nothing when you just have a couple university collegates coming together and saying, oh, here's a proposal for how computers can talk to each other.
It's so ethereal, right?
It's not like you're moving gold around.
There's no tangible physical resources to it. But because they came together and said, hey, here's something, here's an idea that has amazing potential, and we're going to give it away for free to anybody and everybody.
Suddenly, you get the rise of the Googles, the Microsofts, the Apples, which you have to admit, well, you know, Microsoft and Apple or software or hardware companies, a lot of the money they've made is off of the services, it being internet
enabled and stuff like that. So you get the sudden rise of technology and growth and prosperity
that keeps on growing even during some of the world's greatest recessions. Okay. And that is why open source matters so much. The foundation of technology, if it's based on,
Hey, I know you, you know me, or I don't know you, but I'm going to give you this for free
because I believe in this cause of decentralization and open source only helps things grow. And it
makes the world and our lives better collectively. So that's why I'm like passionate
about open source. And well, we absolutely share your passion. I think totally when I look at it,
though, as an investor and I put on my capitalist hat, you know, capitalists like proprietary things
because they can sell them for lots of money. And so you have an open source, liberally licensed,
you know, use it however you want, product that's venture-backed.
And I just think like, where, you know,
what am I missing where this is a great idea
for venture capital?
And you've convinced people that it is
when it's decentralized.
So, you know, is services even a thing?
How do you, how are you gonna make money on this?
Yeah, so I first off wanna shout out
and compliment my investors.
It's very likely that it's my investors are forward thinking compared to other investors. So I'm going to pick up from
the story that I posted to Hacker News. We were on the homepage. We got a lot of attention. I knew
this was something that people wanted. Well, within two months of that, I got invited to an
accelerator out in San Francisco called Boost VC that primarily focused on Bitcoin, blockchain technology, virtual reality, sci-fi stuff.
And I was like, wow, this is a really incredible opportunity.
So I jumped in.
And so within three months of me posting to Hacker News and getting the traction and the attention that people want this type of technology. I'm already at an incubator and they're helping mentoring me on how to focus on the business side,
helping me actually write gun from scratch because the prototype I had, the proof of concept
wasn't going to go very far. And when I came out of that program on demo day, I got connected with
the guy who had originally invested in Skype, which we're using right now,
which its big selling point was that you could make audio calls and video calls around the world
because they're using decentralized protocols. Okay. Hint, hint. There's a theme here about
peer-to-peer. Skype is closed source. Well, sorry. Skype is closed source,
but it's using decentralized technology and And now it's sold to Microsoft.
And sure, it seems like technology is getting worse, not better.
So I pitched the VC and I totally blew it.
Right.
Like I came in, I'm a I'm a basement dwelling programmer.
So I'm trying to explain like the speed of light and physics and eventual consistency.
And he's like, what?
I have 15 minutes with this billionaire and I blew it.
At the very, very end, he was like, hey, would this be good for gaming? And I'm like, no,
no, you don't use a database as a gaming engine. That's just ridiculous. I left the meeting and
I'm like, shoot, I blew it. 45 minutes later, though, I realized, huh, what if he wasn't asking me a question?
What if he was giving me an insight from all of the experience he has, you know, being
a billionaire and investing in all these companies?
And I'm like, OK, so hopefully I can get another meeting with him.
I'm going to build the game that he suggested I build in that meeting.
So I come back to him in the next meeting.
I only have like 10 minutes with
him. And the first thing I do when I walk in the room as they say, Hey, Tim, I built the game that
you wanted. It's a gunslinger game. So whoever can tap on the screen faster than the other person
wins. Um, he was actually the one who said that I should build a gunslinger game. And I totally
missed the pun since my database is called gun. So I walk into the meeting and say, Hey, Tim, we're going to play this game. You told me to
build. I built it. If I win, you have to invest some amount of money in my company. And he was
like, okay, game on. He whipped out his phone, hit the website. Cause being a JavaScript database,
you don't need to install anything. You don't need to load anything. You just go to a website
and it works. And I've been practicing for like two weeks straight with
how fast I could tap the screen. So I had like unhuman skills that they go to have like
some hundred milliseconds speeds. I tap the screen and of course I win and I'm like, Oh
you and he's like, are you cheating? So I'm like, no, no, no.
That's what I was going gonna say is of course you cheated
that's how you win because you're it's your code right right you had the chance to cheat if you
wanted to i guess it shows your integrity yeah i knew the timeout on the system so i could like
roughly approximate by counting down myself but no i had to respond if i if i responded too fast
i'd immediately get killed right then i'd lose the game so uh i hand him my phone and
he starts playing against himself and laughing and enjoying the game and like five minutes later
he's like still playing with the game and i'm like uh are you about this conversation
yeah tim what's my money like talk about the investment and and then my time was up and he
said i'll email you if uh we're interested
and that was really nerve-wracking but but point being is did you get the money yes okay there's
there's another of course he got the money that'd be a terrible story if he didn't get the money
there's another story to that which is he had actually sent the email on like friday evening
and i hadn't heard anything the entire week. So I emailed my
mentor from the accelerator, like, have you heard from Tim? I haven't heard from him. You know,
even if it's just a no, I want to like see that email. And the mentor was like, oh no,
we haven't heard anything. And the entire weekend passed and the email had been sitting in his
inbox. He didn't even notice it. And it was an offer for a quarter million dollar investment
in the company. So he's just like, doesn't even notice this email sitting in his inbox. He didn't even notice it. It was an offer for a quarter million dollar investment in the company. So he just like doesn't even notice this email sitting at his.
Wow.
Yeah. So then on Monday, he emails me like, oh, whoops, here's an email with an offer. And I'm
like, oh, my goodness. So it was it was a crazy time.
Very crazy time.
I'm fortunate enough, right, that I got into the program. That was a huge blessing. I was fortunate enough that the program connected me with Tim Draper.
And then I wound up, once I got Tim Draper, being able to raise from other VCs.
The important thing that I want to highlight is that it's easy for me to chat about this after the fact, now that I'm here two years later.
But I want to remind people, like, I was a basement-dwelling nerd two years... I mean, still a basement-dwelling nerd. What am I kidding? two years later, but I want to remind people like I was a basement dwelling nerd two years. I'm still a basement dwelling nerd. What am I kidding? Um, two years ago, but I did the
scary thing of putting myself out there and having haters attack me and ridicule me for writing a
database in JavaScript for having no experience in databases and all this stuff. But because I
identified that problem that a lot of people
just say, oh, well, I'm too stupid. I'm the one, I'm the problem here. I decided to reframe it and
say, no, if I'm having a problem with this and I'm just a stupid front end guy, we need to make
this a better experience for everybody else. So I want to encourage people out there like, hey,
if you're struggling with something, don't put yourself down. You are brilliant because you're hacking on these systems. Or even if you're
learning these systems, like you have the genius insight that's already above the rest of the world,
which collapsed in the economic fallout of the housing crisis. Like you are already on the game
and figuring out and being ahead of the curve. So don't put yourself down.
Take that hacker insight that you have that says,
hey, I'm having to hack around this
or I'm having to hack to do this.
There's a problem there.
Stab at it and leverage the connections
that you have currently to just keep on building up
slowly, slowly, year after year, year after year.
Keep on persevering.
Keep on fighting for it.
And a piece of advice in here, which is year, keep on persevering, keep on fighting for it. And a
piece of advice in here, which is first, never take people's advice, because if you take people's
advice, it's probably two years late. Um, the second, now here's some advice. Yeah. Nice.
A second piece of advice is shoot. I already forget it.
I think that's perfect. Must not have been that important. Um, that's perfect must not have been that important um that's hilarious well i have a
takeaway is from this story is whenever you're in a room with a billionaire and you're describing
your software or your thing and he or she says can it be used to do X? The correct answer is yes.
Yes, it can.
That's what I've learned.
Yeah.
Well, that's actually the quintessential rule for selling anything, whether it's your idea, yourself or a product, is if a prospective customer and or investor asks you if it can do something.
Now, obviously, you want to be true to yourself and true to the product.
You don't want to lie.
Right.
But if there's even an inkling that it could be,
the answer is always yes. Cause you got at least 24 hours to make it true.
Yep.
Yeah.
It is so hard as an engineer to say that,
but yeah,
I hate,
like,
I hate the fact that like,
now that I am running a company, I'm realizing that the hard thing is sales and marketing.
And I, this is terrible because I have that person that just a few years ago was like, oh, that marketing guy wants to find, you know, us cool programmers.
And they're, you know, they want us to build their cool idea of, you know, where
they can't do anything without us actually building the system. Right. But I'm going to say
this to other engineers, right? So like, sure. If you're a marketing guy, you don't have an
engineer, then yeah, you don't have much of a chance. But if you're an engineer guy,
you can build the best system out there and nobody will buy it, which is unfortunate.
But that's not to say that you shouldn't build the best system out there.
You should, okay?
Because we're still going to fight for what we believe in.
We're still going to fight for re-decentralizing the web,
bringing things back to the peer-to-peer roots and blah, blah, blah, blah.
But if we want to make the impact on the world,
maybe that's a separate philosophy that I have.
There might be a lot of programmers out there that are happy with the stability of the job that they have.
And if you're the person who's listening, if you're happy with that, keep on doing that.
Don't let the hypes or the trends or people like me come along and be fancy or don't let us exaggerate what we're doing, right? We're just people passionate about
stuff, doing stuff. But if you're also a person that wants to actually get your technology in
the hands of people and let them benefit from it, well, first off, open source it. Don't you dare
keep it proprietary. And then second, pay attention to the people that come along and say, yeah,
can it do X or Y or Z? Because that's a leverage point. And this has taken me two years to figure
out that business is all about finding those little leverage points, capitalizing on it,
and then using that leverage point as another leverage point to go to another customer or
another investor or another engineer or another customer or another investor or
another engineer or another hire, another talent or whatever it is and say, oh, we just did X with
Y and then get them in. Right. So you want to leverage all these things back to back moving
forward. And it's scary. It really is scary. That actually makes me think about something I just read this morning.
I don't know if you've seen it, but our friend of the show, Slava, how do you say his last name, Adam?
Akmachet?
Akmachet, yep.
Yeah, Akmachet. He's been on the show a couple times.
Of RethinkDB, now working at Stripe, just recently posted a post-mortem on RethinkDB with his thoughts on why they ultimately failed,
which they were in a very similar situation
that you are in with regards to an open source
data store product focused on developers.
And he has some insights that I think
would be interesting to pose to you
in light of GunDB
and maybe have a conversation around that.
We've hit our second break,
so we'll take up those things
on the other side of this short break. We're working closely with our friends at Flatiron School to promote their
online bootcamp prep course. If you've been listening to the show with a desire to take
the next step to being a full-time programmer, this prep course will take you from code newbie
to technically proficient bootcamp applicant. Here's the best part. You can do it online
at your own pace.
Instructors are available to guide you along the way too. I talked with Joe Burgess, VP of education about what you can expect from this free online course. Take a listen. Everyone comes in
with a different skillset. And so it's at your own pace, which means, you know, if you just can't
figure out functions, that's no problem. Take your time. Go through the same
curriculum two, three times. Maybe Google something else and see if what else you Googled kind of
matches what we told you. Check your understanding. It's at your own pace. You know, my biggest hint
for students is that consistency is way more important than total number of hours. I would
much rather you spend two hours a day than one day a week for eight hours. We've
learned over and over in our immersive and online that if you do it once a week for eight hours,
you spend the first two just getting back up to speed. It's much easier to spend two hours a day
working on it than, you know, one Saturday for eight hours. That being said, if you only do
one Saturday for eight hours, do it for one Saturday for eight hours. That's better than
nothing. All right.
This online bootcamp prep course from Flatiron is free to enroll for the first 500 students
only.
So if you're considering this, do it today.
Don't delay or do it as soon as possible.
Head to Flatiron500.com to learn more and enroll.
Don't Google it.
This URL is special.
It gives you a coupon worth $500 off your first month tuition when you decide to move on to one of their career or certificate courses.
Once again, head to Flatiron500.com. Learn more. Enroll. Get started today.
All right, we're back and we're discussing, I guess you'd call it the business side of an open source product like GunDB and a venture backed product.
On the other side of the break, I mentioned RethinkDB's recent postmortem about why that open source data store didn't make it as a venture backed company.
And Slava Akhmachet has a nice piece.
The interesting thing is, it's a draft.
It's like he hasn't published it, but it's public on his GitHub in his drafts folder.
And so I don't know if he's done with it and hasn't hit the publish button.
But either way, it got circulated today.
And I just read it this morning and he has a couple of thoughts around why RethinkDB failed.
And I believe that a lot of what he has going on, Mark, probably applies pretty closely to what you're trying to do with Gunn.
So let me just read one piece of it.
So he has kind of two ideas.
One is it was a bad market, and two is that they were measuring for the wrong qualities of what makes good in terms of a product.
And the first one is what really struck me, and I thought, hmm, I wonder what Mark thinks about this in light of Gunn.
And he says the open source developer tools market is one of the worst markets one could possibly end up in
thousands of people used rethink db often in business contexts but most were willing to pay
less for the lifetime of usage than the price of a single starbucks, which is to say they weren't willing to pay anything at all.
Dang.
Yeah.
Which is just, it's like one of those sad but trues, right?
Right.
So what do you think about that, Mark?
In light of Gunn?
It's brutal.
It's true.
I know Slava and Mike have had the honor
of chatting with them several times.
They even mentored me in a couple of places
when I met with them for an hour or two. Really great guys, incredible product,
incredible focus and drive. I can only say good things about them.
But now you're asking me to critique what went wrong. What are my thoughts on the piece? So
I'll try and dance around this delicately because I really respect the team.
Yeah, it's true.
Open source is hard.
I think that's a good censure right there.
But let's move into some other aspects.
Okay.
So let me zoom back and talk about macroeconomics, right?
Open source is the inevitable future that is going to happen, partly because of what he mentions in his piece.
There's so much competition.
Any programmer can spin out a new idea and start broadcasting about it and offer it for free and compete.
OK, so the competition in terms of developer tools is ruthless.
And yeah, you basically have to provide it all for free.
And if you provide it for free, most people are going to take advantage of that fact. However, you can't just go out and
have a proprietary database or a proprietary developer tool and try selling that because
ultimately you're going to lose out in the long game and maybe you're successful temporarily,
but you're going to lose out in the long game. So to me, I have to disagree with Rethink to be a little bit where the developer tools market
is actually an incredible opportunity, especially with the advent of machine learning,
graph databases, artificial intelligence, self-driving cars. these aren't going to be technology that only google
and uber and facebook use these are going to be technologies that have to be handed into the
everyman democratized around the world to the five billion new users that are coming online okay so
there is incredible rich opportunity here. And the slight divide,
and we'll get into more technical details on peer-to-peer and decentralized
versus distributed and centralized,
is that I do feel like it was tough for them
because their database was still ultimately master-slave.
They had one of the best master-slave databases
and you should still use them
if you need like real-time updates
with a centralized server
that is making sure bank
accounts are managed, you should still use RethinkDB, not Gunn.
But that niche has been around for a really, really long time.
And I argue there's not much of a future there because scaling that only goes so far with
the amount of people that are becoming online versus
decentralized algorithms. There's a whole new opportunity there because there's very few
databases that do that or very few developer tools that do that. So that's my first comment.
The second comment is about focusing on a metric that is good. And I don't want to be the villain here, but it's true. I want to have
a developer-focused project that gets developers excited, is done correctly. I'm doing that as
best as I possibly can. And I feel like we've been pretty successful at that regard. We've
surpassed Cassandra and ArangoDB, OrientDB, these other databases
in developer popularity on GitHub. We're about to hit 4,000 GitHub stars.
And we've focused on performance in this upcoming release that we have that we're now faster than
Redis, although you have to take benchmarking with a grain of salt. So we're doing our best
to be really good at quality software that works. And we have several demos you can
see in our GitHub readme on where we like crash all the servers and we're still able to recover
all the data. We've even invested a lot of energy into building a distributed testing tool to make
sure that we can set up real world scenarios and simulate failure cases and check that gun works properly.
So, OK, getting away from the technical side, it's true, though, that's not the metric that matters when it comes to making money.
Right. Right. I mean, if you look back at RethinkDB a few years back, I mean, they were number one on Hacker News.
They got lots of GitHub stars. Quality product. I mean, anybody who looked at it and, you know, the technology inside everything to be in the demand years or person years, I should call it.
That's an old school term.
The developer hours into it are massive.
And it was like over my head.
I said, wow, this is really impressive.
The consistency and the guarantees they were able to make about data quality.
And yet one of the things, OK, this is just his postmortem.
So maybe there's in any failure, there's thousands of inputs for that output.
But the fact is, is that developers are a tough market to sell to, especially when,
you know, why buy the cow when you can get the milk for free?
How is gun going to be different?
Because when I look at it as a potential user, you're trying to get users of course because people need to be using gun for it to be useful is this going
to be around right you know and so like why is gun different why will gun be around 10 years from now
so this is the villain in me as an engineer coming and saying that yeah yeah, I think RethinkDB did not spend basically all of their
money on getting sales, a sales team, a business development team to go and take over the market.
And that's then again, where the villain in me is kind of like, okay, well, I'm not going to
sacrifice code quality, but moving forward with Gunn, I'm not going to sacrifice code quality, but moving forward with Gunn,
I'm probably going to be one of those annoying database companies
you hear about that's got a big sales team behind them
that's doing the Oracle move that's trying to push through.
So right now, there's a couple different strategies,
just talking separately from Gunn, that I think people can take.
Vue.js has been very successful as a single developer with his Patreon campaign.
He's making like $9,000 a month on Vue.js.
So I definitely recommend developers out there that don't want to run out and start a startup.
They have their stable job they really like,
but they want to take initiative and solve problems and have open source projects on the side, maybe try out the Patreon method, which is
you have to evangelize yourself. You have to go out and do tech talks. You have to post yourself
to Hacker News a bunch. And that's a lot of just game theory where you just post a bunch until one
thing takes off and you start getting the popularity that you need. Vue.js is doing
very successful at that point. He can basically now be full-time working on Vue.js and delivering a great product and just slowly growing that and
getting more traction, more attention, more companies on board.
Back on the gun side, we already have customers that are using us. We're going to be, I don't
know how much I can disclose quite yet, but I think I can disclose that we're going to be
getting deployed out to a social network with 1.5 million users. And we're going to be in a product that just had a really successful,
something like a Kickstarter fundraise. We're going to be shipping a physical in-home product
to 1500 homes. So that's kind of our first little like grab in the market. And as a database
technology, you're fundamental. So once you are able to deliver to people, you're able to slowly grow on top of that.
And then there's some other really exciting news because for the last year, and I can't
really share this, I've been focusing on trying to get connected with and take down some really
big fish in the market.
And we have a really sweet strategy play that you guys will
get to watch in the coming year to see whether we succeed or fail at this, where we're going to hit
some pretty big names. And if we're successful, if we land those contracts, then that's an opening
to these large deals. So I think what I'm going to argue here is that if you
are a startup in the same vein, trying to figure out how do you be open source? How do you chase
your passion and convictions, but still make money? I would emphasize make really strategic
plays where you leverage connections that you have. It takes, it can take years. It's taking me a long time too, where you're getting in front of
the powers that be currently, and you have a technology that they simply have to use or else.
This is going back to my comments about Twitter. There's a regime change happening with the fall
of Twitter. Monolithic centralized services just can't scale and they're not working. So if you have a technology that breaks that barrier,
then maybe there's some really incredible business plays that you can make.
And it sounds so ethereal and so fuzzy and it still is for me,
except in the last several weeks, some crazy stuff has been happening.
So I don't know if that's the answer, but yeah,
maybe it can come back pretty soon because hopefully all those things will close.
And then I can talk about in more detail how that actually happened.
But for now, I'm concerned I'm speaking too early.
Well, you know, the question was more towards 10 years and you're sort of forecasting how you might.
So you're sort of saying here's how I hope for 10 years. Yeah. And I'm thinking more like if, if we have people listen to the show, they're open source developers, aspiring open
source developers. They one day take some of the advice, maybe two years late, like you've given
in this show to get over the hurdle they've hit themselves. You know, what is it that you're
actually selling? So whenever you're getting these deals, your product is open source. It's
an open source database. What are they buying from you? What is your product? If you're saying
you have a better go-to-market strategy, you have a better product, or you're able to execute better
than maybe others may have, what exactly are you selling? Yeah. So three things. First off,
if you don't want to do your own startup, but you want to advance your career and still do
open source at the company that you're at, I encourage want to advance your career and still do open source at the
company that you're at, I encourage you to just take a lot of initiative, find those problems,
create solutions, and then work with your company. So you don't think that you have to be
a Silicon Valley startup company to have a lot of success on your own or to be very happy with
what you're doing. So a lot of encouragement to people out there that you can, with your day job
being a programmer, still make a lot of headway into this.
The second thing, right, was what I already mentioned with Vue.js.
If you're big enough that you can go public and be popular, then you can take the Patreon route.
The third thing here is the approach I've taken is to build a open source community around your product. Everybody's going to use you for free,
but then pay very specific attention
to developers in that community
that are building products on top of you.
So right now we have people doing everything
from data visualization of IoT stuff
to virtual reality, web VR games
to your traditional Trello, social network apps,
et cetera, et cetera.
And look for the people that are in your community that are developing a solution,
a product that has big name buyers that would bite and that they have the connections to those
big name buyers. Partner with those people, potentially do a lot of free work. I've been
doing a ton of free work for like last 10 months and make strategic bets because
that is going to be your partnership as a solution, right?
As a product, you got to convince them basically say, hey, we're built on your technology.
So we have to use you.
So why don't we come together as a consortium or as a partnership, or why don't we gun just
hire you and you bring the technology, the product, the solution that you've developed
as one of our own, and you act as the ambassador out to these customers that you already have.
So that's kind of the strategy I'm taking, which is I paid a lot of attention to the open source
community. And I'm trying to partner with the people
that have the solution that these big companies need.
And that solution can only be built on top of gun.
And then you capitalize that and crack the market open.
So ultimately, are you selling services to these enterprises?
Are you selling licenses?
What hosting?
Like what's the ultimate sale?
It'd be selling the solution that the people in the
open source community have built on their own and convincing them to partner with us
does that make sense no no i'm missing it say it again or say it a different way
what's your price like what do you have like a pricing page like maybe you can even just tell us
yeah yeah um in terms of our traditional pricing page? Like maybe you can even just tell us.
Yeah, yeah.
In terms of our traditional pricing page,
you can just hit gundb.io and click on the pricing page
and it's the boring old
like pay for support $2,000 a month,
you know, per hour, blah, blah, blah, blah.
That's not scaling.
And that's your current offering.
You're talking about this new go-to-market strategy
that you're trying to get going.
Yes.
And you're trying to talk about it
without revealing specifics.
So you're being generic
and we're just not tracking the generic. Yeah. So, um, I'll, I'll take a made up example. Imagine that, uh, because you have
enough traction on your developer project, you, you can become friends with the other hyped, um,
developer projects like, you know, react or web pack or whatever it is. Make sure you become friends with those guys
and don't just use them as friends. They have needs and they have clients and customers and
friends of their own that's going to have needs. So circle through your network and find somebody
who's now, let's say, built. Let's do IoT. Somebody has built like this really cool IoT app on top of your
developer tool, right? And they happen to mention that like, oh, like, we're actually going to start
implementing this at the company I work for. That's perfect. That's a brilliant start. Rather
than, you know, that this developer that you've been hanging out with, because it's just open source, your buddies, hopefully developed that tool or solution, not under their company hours, but on their weekend hours.
Partner with them and say, hey, join up with us.
You already have an existing weekends to your company, we will brand it for you.
You will partner with us and we'll collectively sell it to the company.
Now, you have not only a solution, but you also have an in at a company that wants this product.
And that's going to be your first sale. Once you have that first sale, you leverage that first sale to get this magical marketing
business development team that you hopefully have hired, or if you haven't hired, the other
connections that you know, that you go back to those people and be like, hey, you know,
you're not keeping up with the Joneses because Fred over here just purchased our services
and, you know, we're, we're taking off and we're really cool.
Do you want to buddy up with us?
It's so weird and so ethereal, but just a couple of weeks ago, it clicked in my head.
As soon as I land one deal, I use that as leverage to manipulate another deal.
And see, there's my word manipulation, being a villain here.
It's the cool kid factor, right?
You're selling more yourself than you are
necessarily the technology or product. You tell them, I'll do whatever it takes to make sure you
guys are happy. And then you deliver. And then once you got those people to signed up, you then
go to an investor or a friend that you know, that has a connection to, you know, senior product at X and X company.
That's really big.
And you pitch yourself, you leverage your network, you leverage your connections,
you leverage your sales, you leverage your technology
until you start physically seeing deals happening.
Here's another way to do it is you get that meeting that you're talking about.
And then you go in and you say, listen, if I can beat you at this gunslinger game you're gonna buy my product yes and then you always win let's do this mark because
it's very it is hard to track in in the vague yeah when you get this thing rolling because it
sounds like a an interesting strategy it's difficult to track exactly what you're doing
because right speaking hypotheticals and whatnot so i don't fault you for that because that's just the situation but when you do get it going and
we can actually like see one in concrete you know give us a give us an email maybe we'll bring it
back on real quick have a conversation i'm sure that people want to see it in action because
i don't know if a vc funded open source life is necessarily the dream but like the sustainable
open source life is a dream of many of ours and our listeners.
And so we want to know these different ways
that we can make that viable.
And it sounds like, I don't know if you have a way,
but you at least have a good idea,
a good idea in the making.
We'll see if it pays dividends.
I can be the guinea pig for-
Yeah, be our guinea pig, would you?
And if not, just gunslinger it.
Yep. Feel free to cut out a lot of this section because it is
uh pretty ethereal nah we're keeping it yeah the gunslinger it sounds like a good way to reference
it um and no you have to like work your butt off you have to hustle not only in coding and
programming but also like going and speaking at tech conferences and stuff like that so
like but it's a tough road. I know everybody
that's listening to the show is already doing that. Um, don't undermine the value of your
ingenuity. You're a hacker and your heart can say, Hey, I can do that. I can solve that problem and
gunsling it. Gunsling it. Love it. Let's say we're actually running a low on time. Let's do this.
You've given the elevator pitch.
You've even given some stuff people are building on it.
Give us a quick getting started and a call to arms for the open source hackers out there.
If they want to get involved with Gunn
or they want to try it,
they want to see what you have to offer.
Where do they go?
What do they do?
What would you love them to do?
Yeah, so it should be pretty easy to get set up with Gunn,
just npm install gun,
and then go into its directory and run NPM start. If you don't have no JS, there are some guides on
or read me. And if it's not easy to get started, jump on the Gitter channel, the URL for that's on
the website and the repo, complain about any problems that you guys have had and get to know
the community because realistically exciting ideas like gun and decentralized architecture is about the community and the people behind it.
So first and foremost, get to know us and other people in the community and we'll help you out as much as we can.
Excellent.
Awesome.
That is a good getting started.
So gun.js.org. you got a little fun try it now
there which is pretty awesome obviously the docs and stuff like that as you mentioned so we'll put
all those in the show notes the mentions and stuff like that that you've talked about the getter
we'll get uh get all that will be in the show notes listeners you know that don't even i don't
have to tell you just go to the show notes. It's all there for you. Enjoy. Any closing thoughts before we let you go, before we close the thing out?
Yeah.
So to me, it's really important that no matter where you are in your career as a programmer,
whether you're a VC backed startup, whether you're at a day job with nice programming
security, or if you're just starting to learn, you are able to advance your
career by looking for those problems that you've had yourself, taking initiative to fix them,
and presenting them to people, to the open source community, posting them to Hacker News and other
forums, going to your colleagues at work and showing, hey, I made this 10 times easier for us, or maybe even trying
to get connected and pitch VCs. If you want to grow in the opportunities that you have,
there's opportunity all around you. Nobody's in a different league compared to anybody else.
It's just that every person, no matter where they're at, takes the initiative to tackle hard
and interesting problems that they are convicted
and curious about and follow through with perseverance and diligence. So go get them,
go strike, make fire and make the world a better place for all. Yes. Yes. Please do that listeners.
Mark, thank you so much for joining us, man. This was fun. Thank you so much for having me on.
I really appreciate it.
Shout out to Kevin again for recommending me.
It's been fantastic and a huge honor.
We love you, Kevin.
Thank you.
Thanks again to our guests this week, Mark Nadal.
Also, thanks to our sponsors, GoCD, Linode, and Flatiron School, as well as Fastly, our bandwidth partner.
Head to fastly.com to learn more
if you've been doing our new beat
from Breakmaster Cylinder give us a shout out
on Twitter we're at changelog
also Breakmaster Cylinder is looking
for a video game project to score so
if you know someone or you are
that someone email us
editors at changelog.com
the best way to keep up with all things
open source and software development is to subscribe to changelog.com. The best way to keep up with all things open source and software development is to subscribe
to ChangeLog Weekly.
Head to changelog.com slash weekly, click subscribe, don't miss an issue, and thanks
for listening. Thank you. Bye.