The Changelog: Software Development, Open Source - What's next for José Valim and Elixir? (Interview)
Episode Date: July 10, 2020We're joined again by José Valim talking about the recent acquihire of Plataformatec and what that means for the Elixir language, as well as José. We also talk about Dashbit a new 3 person company h...e helped form from work done while at Plataformatec to help startups and enterprises adopt and run Elixir in production. Lastly we talk about a new idea José has called Bytepack that aims to help developers package and deliver software products to developers and enterprises.
Transcript
Discussion (0)
I haven't seen it, but there's a recent documentary on Netflix.
And I think like one of the discussions points that there was somebody who
played with Jordan that was very important for the whole team to function.
Oh yeah.
Do you know? I don't know anything about that.
Scotty Pippen.
Scotty Pippen. Yeah, of course.
Okay. Yeah. I don't know enough, right?
They're a pair.
Yeah. So, you know.
He's short, he's tall.
Yeah, they're both pretty tall.
Well, I mean, he's shorter than Jordan.
I think he's actually taller. Regardless, they were definitely a one-two punch tall. Well, I mean, he's shorter than Jordan. I think comparatively. He's actually taller.
Regardless, they were definitely a one-two punch,
and Jordan was the superstar, but Scottie Pippen was the glue.
Being With Her Change Log is provided by Fastly.
Learn more at Fastly.com.
We move fast and fix things here at ChangeLog because of Rollbar.
Check them out at rollbar.com.
And we're hosted on Linode cloud servers.
Head to linode.com slash changelog.
This episode is brought to you by DigitalOcean, Droplets, Managed Kubernetes, Managed Databases, Spaces, Object Storage, Volume Block Storage, Advanced Network like virtual private clouds and cloud firewalls.
Developer tooling like the robust API and CLI to make sure you can interact with your infrastructure the way you want to.
DigitalOcean is designed for developers and built for businesses.
Join over 150,000 businesses that develop, manage, and scale their applications with DigitalOcean.
Head to do.co.changelog to get started with a $100 credit.
Again, do.co.changelog.
Alright, welcome back everyone.
This is the Changelog, a podcast featuring the hackers, the leaders, and the innovators in
the world of software. I'm Adam Stachowiak, Editor-in-Chief here at ChangeLog. On today's
show, we're joined again by José Valim. It's been a bit since we talked to him, but we're
talking about the recent acqui-hire slash acquisition of Plataformatech by Nubank, a
fintech company in Brazil, and what that means for the Elixir language and what that
means for Jose. We also talk about Dashbit, a new three-person organization he started as part of
some of the work that came from Platformatech around the Elixir language. And lastly, we talk
about a kind of crazy, kind of big, kind of awesome idea Jose has called BytePack that helps you to
package and deliver software products to developers and enterprises. It's pretty interesting. kind of big, kind of awesome idea Jose has called BytePack that helps you to package
and deliver software products to developers and enterprises. It's pretty interesting,
but as with anything, there's also some complexity that comes with that. So
we talked through all the details. So we're joined by Jose Valim. Jose, we thought it was
just a couple of years ago.
Turns out four years since you've been on the ChangeLog.
Welcome back, my friend.
Thank you. I'm glad to be back.
We're glad to have you.
We want to catch up with you and with Dashbit and with Elixir.
Big news coming out back in January.
Plataforma Tech, the company that you co-founded and the Elixir company for all those years was acquihired by Nubank, a fintech company in Brazil.
Tell us that story.
Oh, sure.
It feels like such a long time ago because this year has been so crazy so far.
So Nubank, they acqu, when the whole thing happened, they were, you know,
in, since it's Aquihire, they were interested in our talent. And it's interesting because I think
for the, let's say to everybody outside Brazil, platform attack was really known because of its
open source work, started back in Rails with device and simple form,
and then later with Elixir.
And that was one of the reasons.
We always had a very good technical team,
and that was one of the reasons for the Acre hire.
But in Brazil, Platform Attack was really known
because of the way we manage projects and our processes.
I'm doing air quotes when I say processes,
but the whole way we would do project management
and work with clients.
And that was also another very important aspect
behind the Acquihire.
It's actually a part that I'm not super involved.
So I don't know how to explain everything we did.
Sure.
In Brazil, when we would work with clients,
it was like one of the big reasons
why they want to work with us
besides the technology aspect.
So yeah, that was basically why it happened.
But I think what is more interesting
for us to talk about
from the change log perspective,
I guess is about how does that affect
all the open source that we have been doing?
Does that make sense?
Absolutely.
Yeah.
So as soon as the upgrade hire was announced, we knew that there would be a lot of questions.
What it meant for, you know, device, simple form, which were still under platform attacks
responsibility and also to Elixir.
And there are many aspects to it, right?
So the thing that we did immediately was that we told everybody that because those efforts,
they were mostly community efforts,
we would be giving all the assets back to the community, right?
So we reach out to the device maintainers and we say,
you know, all the assets, they are now yours, right?
You are now responsible for the project
we want to be here like overseeing or holding control like of the logo and this kind of things
so we did that for all our projects and so we transferred to the maintainers and for elixir
itself we transferred everything to the elixir team and that's me and other 405.
My math is not good right now.
But yeah, to the Elixir core team.
And that was one of the things that we need to do, right?
You know, like who controls the code base, right?
The assets and everything.
But also something that people,
they worried a lot at the beginning
is like what that meant,
also meant in terms of, you you know who is going to be
continue developing elixir and the other open source projects and i said since the beginning
like you know i'll be involved in the project in the same capacity and you know at the beginning
people were still like i'm not sure right like it's not going to be true but now we are five
six months after everything happened.
It's true.
We continue involved.
I continue involved in the same way as before.
Parts to Dashbit, which is my new company, and we can talk about it soon.
But yeah, so the whole process, I think it's normal.
When there was the record higher in terms of open source, a lot of people were worried what that meant.
And if it meant like less people working
on Elixir or not. But I think besides this initial concern, everything went really smooth. And I
think in practical terms, nothing changed, you know? Yeah. So to be super clear, NewBank,
Aqua hired the consulting company you ran, not Elixir. Yes, yes.
And Nubank, what is really interesting
is that they understand, right?
They understand how important is open source, right?
And they understand,
and they really supported us in this decision
because they understand that, you know,
we need to continue leading Elixir with our vision
and it doesn't make sense for them,
you know, to impose a vision of how the language should be.
So when we're having discussions, they're like,
well, we want to give open source back to the people who actually maintain it.
Everybody that was on the table, everybody agreed immediately.
Sure.
How much did Plataforma take bankroll Elixir development?
So when in the acquisition mentioned by NewBank,
they say that we're confident that the language,
its contributors and projects will keep growing
and developing independently from NewBank.
But it kind of depends on how much Elixir
was really depending upon funding or bankrolling,
in air quotes, without air quotes, the language.
That's a very good question.
So they basically, Platform Attack, they funded me working on Elixir.
Initially, it was part-time when I started back in 2012.
But I would say like from 2014 or so, I have been like full-time.
So the cost, right, if you don't factor in the opportunity cost,
but the cost would be a developer full-time for like eight yearstime so the cost right if you don't factor in the opportunity cost but the cost would
be a developer full-time for like eight years or so at the end we can talk about this when we talk
about Dashbit we had more developers working on Elixir but most of it was me full-time and that's
the thing like one of the things that I have always been careful and all of my co-founders we agreed
with this decision since the beginning is that you know it cannot be seen like as a company effort
we always need to have the community involved since the beginning so it's like platform attack
was sure we were like the creator the catalyst but as soon as it didn't depend on us,
on Platform Attack as a company for the language to evolve,
that would be the best, right?
Because what I like to say is like,
it's not the best way to think about it,
but just for as an example,
if you think about programming languages today, right?
Like, and programming language is competing for market share.
I'm doing our quotes again.
We are talking about like Swift from Apple,
Rust from Mozilla,
Go from Google, right?
F-sharp for Microsoft.
So, you know, how can a company
that had like 70, 80 employees
compete at this level, right?
So we knew that it needs to be a community effort.
So I think the first person who was Eric,
he joined the core team in 2014.
And since then, the core team has been growing.
And I was like, so when it comes to Elixir,
I was the only person that was really bankrupt
on the platform attack, right?
It was not like half of the core team.
It was one sixth, one fifth of the core team was bankrupt.
And I think that's great, right?
Because there's always the buzz number factor as well.
I don't want things depending on me.
So like if I die, does it mean the project's over, for example?
So Elixir was not really dependent on platform attack and not on me as a person.
And sure, some of the people in the core team, they work on there full-time.
Other developers like Eric, he's sponsored by Brex,
the credit card company, to work on Elixir full-time.
So it has become like, is it correct to say stakeholders?
There are many stakeholders now,
people involved in investing in the language in the ecosystem
and not a single entity anymore.
It's kind of how it was planned to be early on
because I don't think we would
be able to grow otherwise or to get to the place where we are right now.
So if we were to put me into a time machine and give me a billion dollars,
send me back to the mid-90s, I might buy the Chicago Bulls. But I wouldn't buy the Chicago
Bulls and not get Michael Jordan. So let's talk about NewBank.
They acquihire Plataforma Tech, but they don't get Jose Valim.
That's a blunder, isn't it?
So I think there are two aspects to this,
in the part of the acquihire.
So remember, one of the reasons, there were two factors.
So one was our technical team,
and the other one was everything that we do
in terms of methodologies in terms of projects which i don't contribute at all and that wasn't
i believe it's very important for them because they are really growing like very fast they
start in brazil they're expanding to latin america and everything so you know like i think there is a
recent like i haven't seen it but there's a recent
documentary on netflix and i think like one of the discussions points that there was somebody
who played with jordan that was very important for the whole team to function oh yeah do you
know i i don't know anything about scotty pippen scotty pippen yeah of course i mean okay yeah i
don't know enough right they're a pair yeah so. He's short, he's tall. Yeah, they're both pretty tall.
I mean, he's shorter than Jordan.
I think he's actually taller.
Regardless, they were definitely a one-two punch,
and Jordan was the superstar, but Scottie Pippen was the glue.
Yeah, so you can say there were,
maybe Jordan did not go according to a metaphor,
but there were three Scotties going there and helping them. And the other point is that they are mostly using Clojure, I believe.
And they are public about it.
They're one of the biggest cases of companies, large companies,
using Clojure at a really large scale.
So it's actually interesting to hear about everything they are doing with Clojure
and the interesting cases and how they are using the Clojure stack.
And they write about it.
They give talks.
So it's very interesting to check that out.
So in that sense, you know, if they brought me, maybe they would be bringing Michael Jordan to play soccer, right?
And that's not going to be a good fit, right?
Well said.
So, you know, but in any way way it could be micro jar to play soccer but
one of the things we're talking about as well is because i like to say elixir has like three major
influences which are erlang ruby and closure right so you know a lot of the ways of thinking about
problems are shared between elixir enclosure Clojure. And that's definitely something that hopefully was important as part of the acquisition as well.
But yeah, for me, it was very important, like personally speaking,
to continue involved with Elixir.
It's what I wanted to be doing.
And as I said, like, you know, when we said about the importance of Elixir
and of the open source projects, everybody agreed with that and understood that. Were you ready to move on? Was it good timing for you? Were you done with, so to speak,
platform attack and focus more Elixir and what your next big idea might be since you were so
focused on Elixir? That's a very good question. I feel like personally speaking, it's a yes or no okay I'll explain why it's a yes or no I mean
let's say when you build something and you have an experience in our case platform attack was
I think 12 years or maybe 13 years and you work with a bunch of amazing people and you work with
your founders for that period of time you know know, there is always that feeling like,
oh, it's changing, right?
Like the relationship is changing.
Those are not going to be the people I talk to every day
and this kind of stuff.
But there is also like the relationship of like,
you know what, like we've did this
and we've built this and it went well
and we feel accomplished by that terminating,
which is not a feeling that you
may get if that's ongoing right so sometimes you feel a lot of accomplishment by saying that
something has stopped and has reached a dot has reached a stop right so that's why it's yes and
no so i think like being able to say oh this was our journey that we shared together this is what
we built we are proud i think that's great. But of
course, I miss the people that I work with. I mean, I still talk a lot with my co-founders and we still
exchange ideas, but it's definitely a different dynamic. But the other aspect as well is that,
so let's start to head a little bit into Dashbit. So Dashbit is my, let me give an introduction
for those who are not familiar. Dashbit is my, let me give an introduction for those who are not familiar.
Dashbit is my new company, is the company that I founded after Platform Attack. And what we do is that we offer a service called Elixir Development Subscription. And the idea is that
we help companies like startups and big corporations to adopt Elixir. And we do that together with open source, right?
So we try to build this virtual cycle where, you know,
we have companies working with us, we get positive feedback,
and we put that back into our open source work.
And that hopefully leads to more companies adopting Elixir,
which, you know, and then we have the cycle going.
That's the vision with Dashbit.
And the thing is that this vision, it has been running inside Platform Attack since 2018.
So in 2018, basically, I had a conversation with my co-founders like, you know,
like we have been investing in Elixir, mostly me, for six years.
So since 2012, 2018, six years. And I would love to have more people working
on Elixir together.
That would be fantastic.
That's something we always tried,
but it's always hard to make that dynamic work
in a consultancy, right?
Because what you do,
maybe somebody is outside of a project for two months
and then they can do open source,
but then they go back to a project.
So what about the work that they worked on two months, right?
So it requires more like long-term investment.
So when we launched the Elixir development subscription was, can we think a way that
we can help companies adopt Elixir?
And that can be a kind of recurrent way, a recurrent revenue for us to continue investing on open source
and for us to grow our team.
So this experiment has started inside Platform Attack and it worked out well.
So it started only with me and then Wojtek joined our team.
So Wojtek, he worked on Acto, a way to communicate with the database in Elixir.
He works on the Hacks Package Manager.
And then later, Marlos joined my team and Marlos is involved in things like the Elixir Sense, which is like,
if you're using Elixir and you're using an editor and you have auto-completion,
Elixir Sense helps with that. So we were able to grow the team and we were able to
multiply a lot what we have been producing in terms of open source since this effort started.
And what is really interesting as well is that I believe this idea, the Elixir Development
subscription, it has really resonated with our clients as well.
Because what we would do before as a consultant is that somebody would say, hey, José, can
you come here, stay with our team for like three days?
We are kind of going to go over everything.
And then it disappears, right?
So it's like a basic consultant gig.
So I would do that, right?
And then I would give the feedback.
I would write a report.
And then it would be like a month or two months later that they would then actually start working on that report.
And then they're like, hey, we need help again, right?
But now we are no longer under a contract.
Maybe I wasn't another client.
So the idea with the subscription is that you are in contact with our team all the time
and we are helping you review code, discuss changes and so on.
And this constant feedback, this constant communication is very important.
And that's what resonated.
So we started this inside Platform Attack.
So when Platform Attack, the walk with hire process started,
I knew, and that's why I said,
I just could not announce at the time.
That's when I, what I said in the blog post
that I will continue involved in the same way
because I knew that me and my team,
Marlos and Voitek, we would just, you know,
we already have the infrastructure running,
we already have everything running. We're just going to put up a new front, but everything
inside that shop, everything is how it was working before, and we will continue working
with our clients, and we will continue being involved on open source. This episode is brought to you by our partners at Algolia.
Make every search lightning fast and deliver the results your customers want every single time.
Algolia's search as a service and full suite of APIs allow teams like ours and teams like yours
to easily develop super fast search and discovery experiences.
And best of all, and this will be love, Algolia obsesses over developer experience.
Their mission is to give development teams the building blocks necessary to create a
fast, relevant search experience.
And this includes extensive documentation and guides and active community and 24-7 support.
Algolia is secure, it's reliable, and best of all, it's scalable.
Get started at algolia.com and tell them Chineso sent you.
That's A-L-G-O-L-I-A.com. so the elixir development subscription which was created inside platformer tech really becomes the
major first feature of your new company dashbit with your two collaborators,
Wojtek and Marluz.
Is it pretty much the exact same thing?
And did you also get to take over existing clients as part of the shift over to Dashbit?
Get a leg up because you had some people
already doing this
or did you have to start from scratch?
No, we definitely got a leg up
and it's pretty much the same thing.
So really what we did was just we made the website and we went public about it because that's the other thing.
Like, because at the beginning, when we started inside Platform Attack 2018 with this idea, we didn't know if the idea was going to work.
We did not know if it was going to work, like in terms of finances.
We did not know if it was going to work in terms of dynamics.
Like, can we actually help those companies adopt Elixir while it's still involved in
being involved in open source?
And the being involved in open source, it's really important for us.
It's why, you know, we are trying this.
So if I would have to spend like 80% of my time, not on open source, that would not be
a good deal for me.
Right.
So we have been kind of like stealth doing this inside Platform Attack.
And I would mention this on Elixir events, but I did not have a website like you could know where it
could go to platform attack website and know about these
the hidden feature people had to find pretty much.
Yeah, so but people came to platform attack like to us for
projects and this kind of stuff. And then depending on what they
needed, we were like, Oh oh you want to hear more about the subscription and that's mostly how we grew for the first like say
a year or a year and a half just from from the incoming like let's say sales pipeline and it
was good because we were able to grow like you know very slowly right we were able to take our
time and make sure that everything is in place.
So when Dashbit came, it was literally like,
hey, this is our website.
Everything else was pretty much how it was before.
So we definitely got a leg up.
That means revenue was in place potentially.
So you really were able to, I guess,
navigate this acquisition, this AquaHire, knowing that, you know, I'm sure you got some sort of payout yourself as part of it, but then also the next thing in to continue to be able to invest in Elixir.
It's sort of, I can imagine how that would make you feel pretty secure about your next steps.
Yeah.
Is that pretty accurate what I said?
Yeah, I think so.
It goes back to the thing I was saying.
You know, everybody understood what was the importance of this, right?
That's why everybody was on page.
Like, you know, all my followers,
like we have followers that, you know,
they are not technical ones,
but they are really proud of us building Elixir, you know,
and being able to create the software
that there are a bunch of people using. So, you know, and being able to create the software that there are a bunch of people using.
So, you know, all of us had all the time
Elixir best interest at heart.
And that's why it was, let's say,
very easy for me to do this transition
because I was really supported by everybody along the way.
Everybody supported it.
I love the goal that's listed here on Y-Dash,
but the goal is to advance the Elixir ecosystem through continuous adoption and sustainable open source development.
That, to me, the Jose I know, that's more your heart than the heart where you're doing consulting, where I guess you're still doing that through the subscription.
But that goal being an overarching goal of this shift for you is super cool.
Are there any other setups like this?
I mean, we talked about some of the other popular languages.
Most are bankrolled by major tech firms.
Others are somewhat,
they're just smaller or more niche.
Some are started inside a company.
This development subscription
and the fact that it could just transition
right out of Plataforma Tech,
right into a brand new thing
and still be, I would say from my
perspective as a member of the
Elixir community
was like, this didn't bother me.
This didn't worry me. This didn't bother me.
A lot of times when there's an announcement like this, it's a shakeup
and people wonder, do I need to
start looking for, what's going to happen?
I mean, even with just NPM
acquired by GitHub, what's going to happen? But even just npm acquired by github like well it's going to
happen right but from my perspective i always kind of like looked at this and i was like oh cool i
hope that was a you never know with an aqua hire is this a congratulations or and i'm sorry you
know i think it was a congratulations here in the story so congrats to the whole team and i'm not
worried about elixir's future that was just my own personal response to the announcement is that
when you say everybody has been behind you,
has that been kind of the community reaction?
Has there been any pushback or worries or fears
stated to you about Elixir's future?
Yeah, definitely worries.
And I think they're natural, like to be very fair.
Like there are always some people like,
the only thing that bothered me in this whole experience
was that I could not prove the guarantees.
Like I said, like I'll continue involved in the same way.
Like that's my word.
And some people, they wanted proof of my word that rubbed me in the wrong way.
Right.
Like, because the implication is that I was lying.
Right.
Right.
Right.
And you can't prove it without time.
Like you need time to prove that.
Yeah. I needed time to launch Dashbit. And even if I could announce there, I think it was not a
long period. I think it was a two weeks or three weeks period between we announced the Acquihire
and we announced Dashbit. But I also think it was a very good exercise, right? Like, you know,
how the community is going to react to such a change. And it can help, like, let's say, find flaws or gaps in the community, right?
Like, you know, as I said, Platform Attack was never really the big company behind Elixir.
We created it, but today it's a community project, belongs to everybody, right?
So, you know, why were people still having this impression?
Why we need to improve our communication right so it was still a useful exercise to see where people would feel uncomfortable
and skeptical and see how we can improve the communication around those areas to make sure
that again like you know if i die right it's not going to necessarily translate oh elixir is dead
right and this kinds of things.
So there was definitely a little bit of pushback,
a little bit of things that,
some things that were made the wrong way,
but I feel like with the announcement that we did
that we'll continue to invest in open source,
most people, they were already reasonably comfortable
or comforted, anyway, by it.
And when Dashbit came along and, you know,
people saw that I was involved in the same way.
My team was there with me.
I feel like 99% of the remaining reservations
people had probably dissipated.
So since transitioning over to Dashbit,
you got it launched out there a couple weeks later.
Some things transferred over.
For example, you mentioned Marlu's works on Broadway,
which was a platformer
tech project. Now it's on Dashbit Co. on GitHub. Of course, there's things inside the official
Elixir, is it Elixir-Lang or the Elixir org. And then there's Ecto has its own org. So things are
kind of spread out. First of all, tell us what Broadway is for those who haven't heard of it,
because it's pretty cool. And we haven't talked about it before. What's this Broadway project?
Yeah, so Broadway, it's a library for doing data ingestions
and data pipelines in Elixir.
So if you want to consume data from SQS or RabbitMQ
or Google Cloud PubSub or Kafka in a very efficient way,
utilizing all the cores in your machine
and doing batching, automatic acknowledgments, all those kind of things that you expect from
a robust data processing pipeline or data ingestion.
Broadway is exactly for that.
And you know what's the coolest thing about Broadway is how and why we created it.
And that goes directly to what Adam was saying
about the heart of the company.
So when we started the subscription,
this is still back at Platform Attack,
we were working with different clients
and they were using a library called GenStage.
So Broadway is built on top of GenStage
and it's called Broadway exactly
because it coordinates these stages for you.
That's kind of the pun in the name.
So we had a lot of companies building Gen Stage
and they wanted,
we're using Gen Stage,
our clients,
and they were building those complex pipelines.
And we were seeing our clients
making the same mistakes over and over again.
So we would work with them, improve.
And then it came upon us like, wait, if everybody's
building these and everybody is making the same mistakes, there's probably something that we can
do about it. Or maybe there's a higher level abstraction, right? So we started working on
BroadA. That's how BroadA came to be. And, you know, and it was really nice later work with
those clients where they were getting their old code and they would ping us in the PRs like, we have removed like 600 lines of code and we are adding like 50 lines of code
thanks to Broadway, right?
So it was really the cycle, you know, like work with the client, see exactly where is
wrong, where is lacking, getting that energy, putting back into open source and then going
through this whole cycle of getting this feedback.
But yeah, that's Broadway in a nutshell.
Super cool.
So how many of these subscriptions have you done or are doing?
Is it the kind of thing where there's just like one development subscription at a time?
Or since there's three of you, can you get three of them going?
And what kind of projects do you work on?
Yeah, so I can probably not go a lot into that
just because, you know, know clients no confidentiality with clients
sure we have worked with more than 20 companies and we have multiple companies going with us
at the same time so we are at a point where we are kind of like being very slow with taking
new clients right now exactly because you, we are in a comfortable place
and it always goes back, right?
Like if we start having a lot of clients,
we cannot reply to them
or work with them in a positive way.
Everything starts to go slow.
So the quality is worse.
And it also goes back to open source, right?
Like if we have a lot of clients
and we're working all the time,
we can't do open source.
And we are really in this because of the open source but yeah we have worked with more than 20 different companies
a lot of different companies work with us at the same time so we work with big companies that have
like more than 100 engineers so it wouldn't make sense for us to review the code like produced by
100 engineers it would never work out so usually the way it works is that you have a subset of your team or when it's such a big
corporation like that you have the technical leaders or people that are focusing on more
or somebody that is tackling a new important product then a new important project inside
the company then they are working with us So we work with different clients and with relatively small teams, let's say from like
two to five.
And I guess before I asked you too many questions in a row, because you skipped one of mine,
which was, is there anybody else doing this?
Oh, is anybody else doing this?
Like you can't get a Perl development subscription or can you get a Ruby development subscription?
Well, I know they are support subscriptions for many things,
like databases, for example.
When we started, I've seen examples of other companies doing this,
but if you go to most database providers, they do have a support thing.
Like MariaDB, for example.
Yes, another example. And I know there are
open source projects where their model for sustainability is based on top of support as well.
So it's definitely there. There are definitely other people doing this. I don't know if there
are other people doing the mixture that we do today, which is, it's not really about support, but working with your team, being together in code reviews and participating on decisions.
I don't know if there is that mix.
I assume that, you know, if I hire like MarioDB and I'm going to design something, I can probably jump on a meeting with them in the support and talk about this stuff.
But for us, something that is very important,
and that's how we actually work with our clients most of the time,
it's actually through code reviews.
It comes down to the goal, really.
The goal is to, one, advance the Elixir ecosystem,
and then two, sustain the open source development of it.
If that's your goal, then the reason why you're doing this
is so that it can achieve those goals.
So the question is, is this a model that other teams can adopt?
One question you said, Jer, was are there others doing it?
But I think the bigger question is, could they?
And is this working to do those two goals?
Yeah, is that a question for me?
Yeah, is it working?
Is it working?
Oh, yeah.
And is it reproducible by somebody else?
I'll be very honest.
I have no idea if it's reproducible.
Not that because what we are doing is hard.
It's just that I don't want to give anybody the impression that it's reproducible and
be responsible for it, right?
It's like, it may be reproducible.
I don't know.
I did it just once and I don't know
of anybody. Step one, make a programming
language. Step two, make
it extremely popular.
Step three, profit.
Step three is question marks
and then step four is profit.
Or profit, just the amount necessary
so I can continue investing on it.
Just enough to stay alive.
Yeah, exactly.
Do you feel like this is working for you, like personally in your life?
Totally.
Yeah.
I don't know usually how big are our cycles.
Like, you know, when you start a new journey, how big working journey, how long it is supposed
to last.
But we have been doing this for two years with the team as well.
We are close.
We talk a lot about this.
Like, you know, we are close we talk a lot about this like you know we
are taking decisions together so when we say okay let's go easy a little bit and not take new clients
so we can continue comfortable is a decision we take together and we are always asking ourselves
like are we enjoying this like is this working so to answer a question directly when we ask
ourselves this question the answer is generally yes. Like this is working.
We are happy.
We are happy to work with our clients.
We can work with them through interesting and challenging problems that it's always
rewarding on its own.
And we can continue investing on open source and doing the things that we love and see
our work affect the community directly.
So answering more directly, it's definitely working for us, but how much can
we reproduce it? That's a very good question. And people, I guess we'll have to try and we'll see.
I think you'd find that out at scale. So I think if it's working and we've already identified the
goals, it's personally working for you. However, there is a bottleneck in the fact that it's the
three of you. So you have to sort of take on clients or subscriptions using your terminology very
you know you have to you know scrutinize them more because does it take you away from the open
source you said so i guess the question is is this something that you could scale desire to scale
or plan to scale meaning bring in more Elixir developers
to sort of take your seat in the seats metaphor
and enable you to add more and grow even further.
Like, is that part of the plan?
So right now the answer is no.
I don't want to grow our team beyond us three.
And I feel like if we could grow our team,
it could have a really good positive outcome,
which is now we are three people working on the Elixir community and projects.
What if we are five?
What if we are 10 and everybody's contributing?
I feel like that would be great if we could have 10,
but I am worried what is going to happen with me if i am the person who
is making it grow maybe if we are 10 and then i can come back on the show and then you ask like
hey is it working for you personally maybe my answer would be no because i'm like no man i like
i'm not doing open source anymore and that's why I was doing this thing in the first place.
So maybe it can scale if somebody else, you know, comes and wants to make it scale and worry with that part of the business.
So I don't have to.
But at the same time, like right now, you know, it's like when you find the perfect temperature in the AC and you're like, don't change it.
Don't touch it.
Right?
Right.
But what if you did change it and it was amazing?
It's even better.
Right.
You never know, right?
That's risk.
Yeah.
At its best.
Not curious to find out at the moment.
Maybe in the future my mind will change.
But at the moment I am enjoying like, you know, staying small.
You know, I was at a company where we were 70 to 80 employees.
I kind of seen how that works.
I want to celebrate staying small for now and enjoying that.
And it may change in the future.
Hey there.
Are you curious?
Because if you are, I have a podcast recommendation for you.
One of the best ways to find new podcasts is to be recommended one, and that's what I'm here to do.
So you may have heard this before, but we have a show called Brain Science. It is literally for the curious. We're exploring the human brain to understand things like behavior change, habit formation, mental health, and really what it means to be human.
So here's a preview of a recent episode, 23, on Brain Science.
It's called Your Brain Can Change.
It's an exploration of genes, epigenetics, and neuroplasticity.
This is a skeptic of me out there, too.
It's like, I don't want to give my blood to people I don't know.
You know what I mean?
Like, that's why I can't do the whole, what's it, three in me or something like that?
What is it?
Yeah.
Maybe I'm advocating for something I can't even get on board with.
I don't even know.
I'm not trying to advocate for it.
I'm just saying, be curious.
So if you're cool with that, do it.
But, I mean, I have a hard time giving my blood to people I just don't know.
Because, like, your blood is a representation of you.
I mean, if you were into cloning, you can rebuild an atom probably from my blood.
I don't know.
But that's the weirdo in me that thinks about that.
But there you go.
Let's end that part.
I was going to say, we're going to turn.
We're going to go.
Unless we don't know.
Let's turn.
So what we're talking about, though though is conceptually neuroplasticity.
What it is is literally the brain's ability to reorganize itself by forming new neural connections
throughout your life. So neuroplasticity allows neurons, which are nerve cells in the brain,
to compensate for injury and diseases and adjust their activities in response to new situations or changes.
One way in which I could say that it'd be helpful to sort of know your genes is relative
to like autoimmune issues.
Yeah.
Because we've talked about stress as it relates to our immune system and going, hey, if I
know that I've got a long line or even multiple people.
All right. To keep listening, head to changelog.com slash brain science slash 23 or search for brain science in Apple Podcasts, Spotify or wherever you listen to podcasts.
Look up episode 23 titled Your Brain Can Change where we talk about epigenetics, genes, neuroplasticity and a story of hope and an opportunity for change. Again, changelog.com slash brain science slash 23 or subscribe in your favorite podcast app.
We'd love to have you as a listener.
So you weren't busy enough and you had another big idea, which is BytePack,
which I'm reading on the website was actually a yak shave from another idea.
So you got things working at Dashbit in addition to the development subscription.
Tell us about BytePack and what you've been working on on the side.
Yeah, so BytePack, yeah, it was a yak shave.
And it's a very funny story because we were working on our own software product.
So something that it's not fully decided yet, but you can think like probably something
based on the open core model where we would release a new project and then there would
be advanced features on top of it that would be paid.
So we were working on this idea on this product.
And the reason why we're working on the product is that we didn't want to build a SaaS, right?
Because building a SaaS now means that, you know, maybe somebody needs to be in PagerDuty,
things need to be working all the time.
We were working on the software product idea that people would install somehow, right?
It would be an Elixir project, but maybe you would install it as an Elixir package
or as a Docker image.
So we were working on this,
and then we figured out, okay, like, sure.
But when we have this ready, what is the next step?
People need to be able to buy it, right?
People need to be able to buy a license.
So we need to manage licenses for them.
Then they need to be able to download the latest version. So we need to manage licenses for them. Then they need to be able
to download the latest version. So we need to integrate with whatever tooling they are using.
And then we'll have to create a landing page for this product. And then there are other things that
I learned along the way, like things regarding taxes. I learned that if you're selling a digital
good, you may be liable for taxes in any country in the world if some person buys from that country.
So when they started looking to it,
they were like,
oh my God,
like to put our software product like that,
we need to run a service
for supporting this distribution
of the software product.
And then we started talking to people
and people were like,
yeah, you know,
people that were running
their own software product, they already have something that they are selling to other developers.
They're like, yeah, that's what I had to do.
And I basically like, I MacGyver the whole solution here.
Like I connect the service with the service that brings the service that gives a token.
And, you know, somehow things work together.
Or, you know, sometimes it still needs.
So if somebody can sell the subscription, I need to remove the token manually.
And they're like, you know, it took me a lot of time, a lot of effort.
And then we would actually talk to some people where they were like, I want to launch my software product, but I know I have to solve those things.
And I don't know how or I don't want to.
So the X-Shape came when we said like, well, what if instead of solving this problem just for us, can we solve this problem in a general way that is going to be useful to other people as well?
So our goal is to still have something that works for us.
But if we can help other people along the way, that's going to
be fantastic. So the idea of BytePack is that we help you sell, package, and deliver software
products to other developers and to companies, to enterprises, right? So the idea is that if you
are a developer and you want to sell a pro version of a NPM package, for example,
you will be able to do that for BytePack.
You're going to push the package to BytePack.
Your clients, they are going to receive the versions.
They can audit the versions.
They can control.
They can download it.
So that's what we started working on.
And I think maybe two or three weeks ago,
we launched a landing page to collect feedback on our idea. And we have a beta
that we're already using internally. But you know, what are the features that people think we should
focus first and value first, what are people are most interested on, and so on.
So it's kind of like an app store, like iOS app store, where Apple handles all of the nitty-gritty, the distribution, the payments, the spammers and scammers,
all that kind of stuff, taxes, etc.
And you just upload your binary to Apple
and let them distribute it with BytePack.
You just kind of send your package to BytePack
and set some pricing or whatever,
and then folks just install it from there?
Is that in a nutshell?
Yeah, that's one way to phrase it.
But the thing about the app store, it doesn't necessarily give a lot of visibility to the
team and the person who maintain or create that product.
It's software first, and then the team is, there's a byline.
There's like a author.
Yeah, it's a footnote in there, right?
And for us, especially if you're thinking about our perspective, right?
Like we feel like if we launch a software product on any platform, one of the appeals
of the software product is that it's going to be the Dashbit team behind it, right?
Okay.
So with the App Store model, it's like it wouldn't work in that sense because we want to give
visibility to the team because we think the team that is behind it, it's really going to be
the kind of the soul of the product that you're selling and we would not want to take it away.
A lot of times, you know, it's like when you're working with Dashbit, right? When you're working with Dashbeat, sure, you like our team, but part of the reason is
probably because you're also vested in the future of the Elixir community. And when you buy something
that is like open core or dual license or something like that project, you have that
interest as well, right? You want to see that project succeeding and it's one of the reasons why you're moving forward.
I think it's very good with the App Store,
but there is a line we need to draw there.
And recently I learned that this line
even have like legal complications, for example.
So one of the things that we have been exploring
with BytePack is being responsible
for handling taxes and so on.
But that's only possible if we indeed hide who is selling the thing, if it's not a big deal.
But if you want to put the people who are, you know, like, if you want to make it very clear,
like, oh, you are buying this because you're supporting this team and this product,
and this is not something from BitePack, we actually cannot say that the liability for taxes
may change depending on the legislation.
So it has been really interesting to...
Maybe not interesting, but it has really been...
Complicated. Yeah.
Yeah, it's a mixture of, you know,
like, oh, this is annoying, but at the same time,
it's interesting. It's weird.
Of, like, you weird of navigating those waters
and try to find a way where we can position BytePack
so it's most helpful for everybody.
Yeah, I kind of went on a tangent there with the taxes.
That note there makes me think about your goals personally
with Dashbit and what we talked about there
and thinking about like global tax compliance i can't imagine
personally that's something that interests you what do you think about that right so so that's
a good point and i am torn on on something like that because in one side if we can help people
be successful with the platform and that's one of the features that people are valuing it,
and they think they are getting a lot of value out of it,
then that can be great, right?
So that's why we put the landing page out
to see what things people are actually interested in
and see what they need, right?
Because part of the goal with BytePack,
it's exactly to help people.
I like to say it's to allow people to play with the numbers,
especially when you're talking about sustaining open source, right?
Because a lot of the times when you're talking to people about sustainable open source,
it's a numbers game.
Like if you are a really big project, then, you know,
and if you want to be sustainable, if you're like really popular,
you know, if you have a good onboarding experience for contributors and so on, you're going to have a lot of people contributing and joining the team.
And that's going to happen like naturally.
And you can achieve sustainability for that.
Right.
But when you consider the long tail, right.
Or, you know, if our big project and you're going for donations, sure, we're going to get a lot of donations, potentially get a lot of donations.
But when you look at the long tail, right?
I want to allow people to play with the possibilities.
Well, you know, which one is easier?
Is it easier to find a thousand people
who are going to donate $5 per month?
Or is it easier to find a hundred companies
that would pay, you know, $50 per month
to use a pro version of my product.
So if doing everybody's taxes, which sounds horrible, if doing everybody's taxes can help
with that, then I think that can be really, really cool. But, you know, maybe that's not
where most of our value is going to be. And that's something we will have to figure out.
Well, the other side of that too is license compliance.
You know, based on the one, two, three,
on the, at least currently on bytepack.io,
you know, step two is developers and enterprises
buy this license, you know, directly through BytePack
and then they download the product
using the same standard tooling, NPM, you know, whatever, then I'm wondering if you've got to like somehow verifying and
do license compliance too.
Right.
So I think license compliance is going to be basically, what is the, I think they call
it like honor system, basically.
A lot of the people like who sell software products today, where they are serving for
NPM and RubyGems,
so if they have something that is per user,
they trust you to be following the license legally,
and they trust you,
because there is actually no way for us to enforce it.
Because if we do things, we could phone home,
but if we phone home, I'm pretty sure it would be a no deal for a
lot of big big enterprises right yeah totally it's going to break some sort of like the whole purpose
yeah right especially because when you're installing like a hacks package a ruby gems
and pen package they are usually running within your software so if you are phoning home i can
like send your database credentials i can can send your client information, right?
And again, if it's an NPM package
or a hex package or Ruby gems,
nobody's going to run like compiled code
or obfuscated code, right?
Because again, like the person
could be doing anything with that.
So I feel like the nature of this module,
it needs to be based on,
I think it's Honor Sister or something like that, where, you know, you are putting it like there.
And if you say, hey, you need to buy per user, but not everything's per user. Some people just
say, hey, it's a team license, right? But let's say, oh, if you're using one person as a single
license, otherwise it's a team license. And then there's basically a kind of trust situation that you are doing those things and you're going to follow those rules.
And the other thing is like most companies, they will do that, right?
Because nobody wants to have a legal trouble because they are not following certain license.
And the people that they are not going to follow the license, they are probably the people that would not be interested in paying for our software in the first place.
So there are those things to balance
so with license we are going to do a lot
we are going to do a lot to make sure
if it's through license we are going to have the UI to manage that
and for the organization it's also great
because if you are a big organization
and somebody is removed from the organization
you need to make sure they do not have access for those packages and this kind of stuff because it can be a
liability, right?
So if somebody gets some paid software out of a company, it's actually the responsibility
of that company to make sure that doesn't happen.
So the corporations are also interested in making sure that all of this works together.
But a lot of it will be, yeah, you know, that's what we have. And again,
it goes back to the idea of supporting the team, supporting the open source project,
and everybody understanding those goals and making the correct decisions and the legal decisions as
well. So would an ideal customer for BytePack be Mike Parham with Sidekick and Sidekick Pro,
where you have an open source free version, and then you
have a freemium or an upgradable, I guess it's an open core, basically, where the additional
features are then distributed via BytePack. So maybe I use Sidekick, and it's hosted on
rubygems.org. And then I use Sidekick Pro, and it's hosted on BytePack's infrastructure.
Yeah, Mike Parham would be a great example. And, you know, similar ideas,
like I like to give examples about like, admin dashboards, for example, sometimes,
you know, depending on web framework, you want to have a admin dashboard. And I've seen in my life,
like a lot of people starting those kinds of dashboards. And then with time, the project goes on maintain because it's
like, it's a huge afford, like make an admin thing that works for everybody. And most of it start
with somebody doing something that works for them. And then it starts like the scope, like it starts
the feature creep, right. And then it becomes very complex. Right. So, you know, maybe something like
white pack and actually be a way for those tools to actually
exist because the worst scenario is when the tool is no longer there right because it's unmaintained
and then you know there is nobody maintaining that they do not have fun there is no tool for
people to use so yeah i think there are a bunch of potential ideas of things that would work for BytePack and some
ideas that maybe they can find a more sustainable model when it comes to complexity and growing with
time. So essentially, if somebody has the hurdle in front of them, they're not selling something,
you know, like a digital product, like a software product like this that fits this model,
because they don't want to deal with the essential
headaches that come with tax implications that we're talking about they would be a great candidate
for the platform you're trying to build yeah all the things you need to do like setting up payments
you know managing the licenses and then maybe running your own version of ruby gems and you
know making sure that that is up to date all the time,
our own version of NPM.
If you don't want to have to do any of that,
that's the model.
But one of my hopes is just that,
I think there are people
that they don't even consider this option
just because the barrier to entry is too high.
And I think just reducing that
is going to make more people consider it.
So it's not necessarily only about the people
who have thought about this, right?
And they were like kind of demotivated,
but maybe we can make more people think about it
and try different ideas.
Like I said, like try with the numbers, right?
You know, and again,
like maybe BytePack doesn't work
for a lot of projects as well.
But if you want to find a way to make things work, having one extra option out there for you to consider and try out and explore is going to be great.
I think even Mike Parham that, you know, you mentioned, he talked like he actually had to try a couple of things out before he figured out what worked for him.
Right. You know, maybe BytePack is what's going to work for some people, maybe it isn't.
But it will be interesting to see what people are going to try
and if it can have a positive outcome in general or not.
So BytePack's cut is on a transaction basis then.
You guys are basically just taking a fee per payment
as a way that you're making money.
We are not sure yet, to be very honest.
Okay.
It can be a fee, it can be a flat fee.
I think a lot of it is going to...
So since we launched the page, and the page is out there,
so if people want to try it out and still submit feedback,
there is a form where you can say if you're interested.
We are talking to a lot of people and see what works for them.
Like I don't want... So you mentioned like the app store, right?
The other thing is like the app store has, what is it?
Like 30%, which is just absurd.
Yeah.
I can never charge stuff like that because I also don't control the means, right?
So like the benefits of a monopoly, let's say, right?
So we are still considering that.
And I really want to find something that feels like
you know for both parties they feel comfortable so people would say like oh my god like they are
you know really going after me i want to find something that's going to work for everybody so
that's going to depend a lot like i personally like i don't think i'm not starting bite pack
because i want to make it a big company
because i want to maybe you know get vc and then sell it later that's not the reason like i'm doing
this to sell my own products that's like the most important goal so i'm not worried about creating
by the pack to try to make as much money as possible for people that are using the platform
i just want it to be fair i want want it to be something where I feel like,
hey, this is working for me.
I'm not losing money over this, for example, right?
And we can maintain the team,
continue improving the platform
without being something that we are like
bleeding out the people that are selling
or buying for the platform.
And that's going to depend
if what works best fits a flat fee or percentage.
Yeah, it's still TBD to be defined.
That's clear too.
That's the real reason
why the App Store comparison falls short.
You're like, hey,
don't associate us with that 30%.
Come on now.
Yeah, right.
Yeah, yeah.
Well, Apple's also
or any App Store out there,
that's the Apple App Store
out there you're mentioning.
But anything like that is totally a gatekeeper.
But based on your current documentations and the FAQs, you're proving what you're saying by saying you're going to build directly on their payment provider account, not your own.
So the subscriptions and sales will be managed by BytePack, but not the actual transactions.
So currently supporting Stripe
and you're giving complete access to their data
and their customers,
you're not sort of gatekeeping these things.
This is just simply by solving the problem,
not so much gatekeeping the data from them.
Yeah, exactly.
I really don't want to be like those kinds of companies,
especially because I am an open source developer.
I am a person who builds software, who writes software.
I don't want to put people exactly like me in this awkward position.
Like, oh, I want to leave BytePack, but they have all my customers.
Right. And all they give me is a CSV file that I'll have to import and manage somewhere else, you know?
So yeah.
And because we are building for ourselves, I really think, you know, me as a customer,
what I would be happy to use and what I would be happy to do and making sure that me as
one of the customers that I will be happy and proud and be something that I will support
and want to
work with. What's the state? Is the only customer you at this point since you mentioned your
motivation was selling your own products? Is this vaporware at this current state? Where are we at?
We have like a prototype that we are running let's say staging somewhere so it's not in prod yet
and we have two other let's, companies or developers trying things out,
uploading their packages, getting things done, but it's still in a, it's not ready to be out yet.
So we are focusing a lot on, let's say, the seller workflow, people that are going to sell
things on the platform, because if we don't have sellers, there's nothing for people to buy. So
that needs to be the first thing. then we next will start worrying about the
onboarding process but we are starting with hex pm support because that's what we know best it's the
one for the elixir community and because that's what we're going to use and the what's going to
come after that is basically depending on who wants to get like jump on the train with us next so it's definitely not vaporware it's
definitely more in like we are getting to beta soon and it's already beta for some of our let's
say our user base from our user personas but we still need to work a little bit more to be
something that we can say like hey you know you can start onboarding your buyers now and they can download things for BytePack.
So you have the form out there for people to fill out if they have some interest.
And you also have the option to sign up for your launch email on BytePack.io.
So if anybody's listening to this and they're thinking like, I'm on, you had me at hello,
Jose, let me beta this thing with you.
Is that the best route, submitting this form or getting that email subscription?
Or is there a more faster route to get in touch?
The form is the best.
We are following the form every day.
And right now we are basically using it to see what people are interested next and those
kind of features.
So you know, like apparently not a lot of people, they are interested in the landing
page feature.
And I think that makes sense.
Like people, they can set up their own landing pages.
So you know, we are using that to prioritize internally and also to prioritize like which
package manager we're going to support next.
And then depending on, so people that have reached out to us and they're like which package manager we're going to support next. And then depending on,
so people that have reached out to us
and they're like, hey, I want to use Hacks
because that's kind of what we have working.
We are reaching out to them immediately.
And then the next is going to be
as we onboard the next stages and figure out.
But I'm also like reaching out to people
who have filled in and having conversations with them.
And it has been like really,
really nice.
Like just talking to people and learn,
uh,
MacGyver in their solution or what they struggle with and their opinion on
all those different topics and how to best shape the product.
It's something that I've had never done in my life.
And,
and it's really cool.
It's really nice.
Here's a nice note from the faq it
says here that byte pack is 100 written in rust just kidding i assume you're still loving elixir
just like you were the first day you conceived of it i should say yeah yeah so uh by the fact we are
it's yeah it's of course in elix. And we are even implementing the other registries.
We did some proof of concepts internally.
So we are implementing like NPM in Elixir.
And it has been fun, like RubyGems in Elixir.
Because, you know, we need to have like some kind of access controls that,
let's say the official ones or the open source ones,
because they're almost all open source that they don't have.
So we are building our own and it has been very fun.
That sounds a lot more fun than global taxes.
Right?
Yes.
Yeah.
We're doing everything with Elixir.
If we do a cargo, we may actually build it in Elixir.
And the nice thing is that we are building everything with LiveView.
So for those who are not familiar,
LiveView is this new way of,
it's Phoenix LiveView that came from the Phoenix App Framework
for building interactive and real-time applications.
And it has been also super nice
to be building something very concrete with LiveView.
And we have been using it to drive some of the features that in LiveView,
in the recent versions,
it was driven by our needs,
things that we feel are necessary
to build the product.
So it has been a really good experience so far.
Ask me again in two years
and we'll see if it's still the same.
But right now at the very beginning,
it's going great. And we very excited with all the those different things that we are not doing
two years ago yeah that's a good thing let's not wait four years let's wait two years maybe i'd say
one hopefully this is out of beta and and out there kicking butt before two years from now
yeah if you want yeah i can't be back when it's out of beta.
Let's do it. Let's earmark it.
Let's hear what the next step is.
And audience, if you're listening,
is thinking like, gosh, I want to try this.
BytePack.io is how you check it out.
Reach out to Jose. He'll help you out.
And Jose, thanks for being so dedicated to open source.
There's a lot of people out there that are very dedicated,
and you're definitely one of them.
To create a language, to be so inspired by Ruby,
to create a language, which we use here at Change. If you haven't checked that out
yet, our entire code base
is Elixir,
Phoenix Framework, etc. Jerry, you can riff on that.
That's right. We're appreciative
of all your hard work, Jose.
And it's great to talk to you again. Thank you.
I appreciate it. Thanks for having me.
Anytime.
So awesome to catch up with Jose again.
If you want to catch up with him as well, the easy way,
one of the easy buttons at least, is to comment on this episode.
This is episode 402, but no payment is required for comment.
You can drop your comment at changelog.com slash 402
or head to the show notes
and click discuss on changelog news we'd love to hear from you of course huge thanks to our partners
who get it linode fastly and roll bar and also huge thanks that beat freak break master cylinder
for making all of our beats we love them hope you love them too and last but not least subscribe to
our master feed hit a changelog.com slash master or search for ChangeLog Master in your favorite podcast app and subscribe.
You'll find us.
It is one feed of all of our podcasts.
Get everything we ship in one single feed.
Again, changelog.com slash master.
Thanks again for tuning in this week.
We'll see you next week. Thank you.