The Changelog: Software Development, Open Source - Libscore, Velocity.js, Hacking (Interview)
Episode Date: August 6, 2016Julian Shapiro, startup founder and developer, joined the show to talk about his story of entrepreneurship, open source, growth hacking, and more. Julian's story is a story you don't want to miss — ...plus he shares actionable advice on growing and marketing an open source project.
Transcript
Discussion (0)
I'm Julian Shapiro, and you're listening to The Change Log.
Welcome back, everyone. This is The Change Log, and I'm your host, Adam Stachowiak. This
is episode 214, and today we got a great show. Julian Shapiro, man, what a show. This guy was
14 years old. He bought his first domain for $1,000, turned around a week later and sold it for $23,000.
And he's been doing something like that in some shape or form ever since.
His story of open source, his story of entrepreneurship is something to be admired.
It was an absolute blast to have on the show today. And of course, we dug deep into his backstory, so you're going to love that. We have three sponsors today, Rollbar, Linode, and ElixirConf.
First sponsor of the show is our friends at Rollbar.
Rollbar puts errors in their place.
Head to rollbar.com slash changelog, get the bootstrap plan for free for 90 days.
And today I'm sharing a conversation with you that I had with Paul Bigger, the founder of CircleCI, and he talked deeply about how they use Rollbar and how important that tool is to their developers. Take a listen.
One of the key parts about doing continuous delivery, you don't just have to test your
software, but you have to constantly keep track of it. You're going to be doing deploys 10 times
a day or 20 times a day, and you have to know that each deploy works. And the way to do that is to have really good monitoring. And Rollbar is literally the thing that you need
to do that monitoring. You need to make sure that every time you deploy, you're going to get an
alert if something goes wrong. And that's exactly what Rollbar does for CircleCI.
So obviously CircleCI is important to your customers. You shouldn't have errors,
you shouldn't have bugs, and the purpose of a CI is continuous delivery obviously,
but getting your customers code to production in a fast manner that's tested and all the necessary
things a CI provides. Tell me how important Rollbar is to your team and your organization.
We operate at serious scale and literally the
first thing we do when we create a new service is we install Robar in it. We need to have that
visibility and without that visibility it would be impossible to run at the scale we do and
certainly with the number of people that we have. We're a relatively small team operating a major
service and without the visibility that Robar gives us into our exceptions it just wouldn't with the number of people that we have. We're a relatively small team operating a major service.
And without the visibility that Rollbar gives us into our exceptions,
it just wouldn't be possible.
Oh, that's awesome.
Thanks, Paul.
I appreciate your time.
So listeners, we have a special offer for you.
Go to rollbar.com slash changelog, sign up,
get the bootstrap plan for free for 90 days.
That's 300,000 errors tracked totally for free.
Get Rollbar trying today.
Head over to rollbar.com slash changelog.
And now on to the show.
All right, we're back.
We got a fun show lined up today.
Jared, this show is obviously a cool show because any show that comes from a listener's suggestion on ping,
we love that, right?
Kevin McGee, Never Shy, big fan.
That's right.
Ping number 178.
What's going on here?
Yeah, so Kevin kind of takes the shotgun approach
to getting people on the show
that he would like to have, which is that
he will put them all up there
and not only that, he'll also go out and reach out to them
and tell us why they should come on
so we appreciate that
and quite impressive with
Julian Shapiro
I'll just read Kevin's blurb and then we'll
intro Julian
Kevin says Julian is a startup
founder and developer. His first startup name layer was acquired by Techstars. His current
focus is advancing motion design on the web. And to that end, he created the JavaScript library
velocity.js, which is rapidly becoming one of the most popular animation libraries on the web.
He goes on and I think that's probably even a little bit dated. Of course, that was back in
March of 2015. One thing about
Ping is there's lots of Pings
out there, so we don't always get around to them
super fast. But that
being said, very impressed.
And Julian, we're
grateful that you'd come on, and welcome to the Change Log.
Thanks for having me, guys.
So, as is our habit, we like to find out about our
guests before we find out about what it is that they do that makes them so Thanks for having me, guys. Some other cool stuff we'll talk about, LibScore and other such things. But how did you originally get into the programming game and start coding?
In preparation for this, I was trying to go back in time this morning and pinpoint what the first contact I had with programming was.
And I think it must have been getting my hands on a Visual Basic 6 book.
So it must have been 11 or 12.
And for me, it was a way to advance on this turtle game. You'd play as a kid where you'd learn how to type,
like, you know, inputting commands to a turtle
who would then move along as a giraffe on a computer in computer class.
And Visual Basic 6 seemed like the next evolution
to creating things that were more than just walking turtles and i had this i had this compulsion to build games so it seemed like a
very natural fit so i would build rpgs i would also build chat clients i would build trojans
screw with my friends i remember i would use visual basics 6 i would put these little
dot jpeg dot exe files and send them to friends on MSN Messenger and just get them to
open them and then open their CD tray. Silly things like that. And so for years, VB6 was a way to goof
around. And then eventually come 17, 18, the transition to PHP happened, which was of course,
web development as opposed to app development, or was of course, web development, as opposed to
app development, or I guess then desktop software development. And that transition came about the
realization, I could use these skills to actually build a career. I could make websites for local
businesses. I could build a company. PHP, the way I saw it, almost single-handedly afforded me the ability to actually make a company from my computer chair at home.
And so that's where the transition led me to.
It was initially having fun coding and then let's make a business with these skills.
I'm always curious about the transition from like, I like programming to I'm an open source, you know, advocate or user or creator.
And so you mentioned PHP. Do you, do you know how you first came across PHP as a thing that existed
or the web and the openness of it? PHP for me actually came about from having an interview
where the interviewer said, do you know PHP? And I said, yes. So I went
home that night, hit up the local bookstore, bought a PHP book and was like, oh, this is really cool.
That was the start of it for me. And it was interesting was I didn't have the relationship
to PHP or coding in general that I recognized the other people at that job did. They seemed like coders, period.
I seemed like someone who enjoyed coding, knew enough to get by,
but didn't study it from any sort of academic or even career perspective.
I was trying to code whatever I had to to get the job done.
And that really stuck with me for a long time.
It did me a disservice for a long time.
Even when I built a business myself using technology myself, I didn't do a deep dive
into what I should have. I wasn't using the right frameworks. My code wasn't necessarily clean. I
wasn't using the right idioms, but it worked. And it's continued to scratch that itch I had as a
kid of let's make cool stuff.
Did you ever go back and backfill that academic pursuit or the history or the computer science side of it? Or do you just continue to push forward? I push forward and slightly reluctantly
so. But to me, programming is very much a means to an end. It wasn't programming unto itself
that I necessarily enjoyed or even identified as. I did not identify as a coder, identified as an entrepreneur.
And oftentimes I didn't know who else could do things for me.
So I would just code it up.
But what did happen was when I was eventually afforded basically a year off where I could explore whatever it is I wanted to.
And I decided to build this animation library. I realized if I was going to build something with the purpose of it being widely used,
I would have to double down on my skill. And it wasn't that I was a poor thinker as a programmer,
wasn't that my code was structurally weak. It was that I wasn't bothering to brush up on
best practices. And so I forced myself to when I started developing
Velocity. So before you got to Velocity, let's talk about the startup side of things, your
business NameLayer. Was this your first startup or did you have previous businesses before that?
So NameLayer was my first startup. It came about right as I realized how powerful web development was, right as I realized what I could do with PHP.
And throughout my teens, I had actually been flipping domain names as if they were real estate.
Meaning, I remember when I was 14, a friend of mine owned the domain deleted.com.
And I was like, that seems like it could have pretty good value.
Maybe companies that sell software recovery tools. And so I bought that domain name from him for $1,000. And I sold it to his friend, his wealthy business friend, a week later for $22,000.
Oh, man, there's digital real estate I can play into. And I was only 14 at the time.
So I thought to myself over the years, now that I can code a bit better, now that I have
better access to tech, can I automate the discovery and acquisition of domain names?
And that's what led to NameLayer, which was my first startup.
Real quick, Julian, at at age 14 when you made that
sale what did your parents think at that time i think my parents were already those stereotypical
parents who couldn't love their kid anymore that you know it didn't shoot me over the moon like
of course that's something julian would do but personally and amongst my friends it was
this sort of thing where i was like, okay, I can be smart about my
finances and flip a bunch more domain names and save up for college, or I could buy a bunch of
cool shit. So I flipped another domain name. I also bought this domain called oxi.com for $9,000
from the proceeds of deleted.com and then sold that for 23,000. And these two sales happen in a very
short window. So, and prior to this, I had like maybe $800 maybe. Um, and so I bought a sports
car, like obviously like a cheaper sports car, Chrysler Crossfire at the time, which I thought
was super cool. Could you even drive at the time? I could. Yeah. In British Columbia, Canada at 14,
you get something called a trainer and license so i was able to fool around
and um that was definitely the spark of okay let's switch off of building trojans to fool
around with friends computers and let's see if i can systematically make money through a business
here hey check this out so while we're on this subject so deleted.com is actually for sale again
things come full circle.
If I could buy it for a thousand bucks, that'd be fantastic.
There you go.
You could buy it for a thousand, sell it for another 20, 100, 100,000 maybe this time.
Who knows?
That's crazy, man.
I mean, uh.
You had to be the coolest kid in school.
14 years old, you bankrolled your own car.
I want to be your friend even now.
It was cool until girls ask, how did you make the money?
And you start going to this long description of domain names and domain name forums.
It's much less cool when you actually get into the nitty gritty.
That's true.
Good point.
They're like, yeah, that's boring.
To us, it's cool.
To girls at age 14, it probably wasn't that cool.
But how cool though too, Jared, is that his first startup is such a success.
That doesn't happen often.
That's like a unicorn right there.
It is rare.
So tell us about that success.
You gave us a little bit about NameLayer.
Continue down that path before I cut you off.
Sure.
So NameLayer was built on two sets of tools.
One tool would figure out which of the domains
that are expiring today, and about 50,000 domain names expire every day between a two- of tools. One tool would figure out which of the domains that are expiring today,
and about 50,000 domain names expire every day between a two-hour window, are of actual value.
And it's hard to figure that out. And prior to NameLayer, people weren't systematically
ascribing value to domain names. Because the really valuable ones, the self-evident value ones,
such as single dictionary word.coms like trillion dot com, of course it has value.
But things that were two words back to back, it was much more dubious.
So name layer, which is an example of that, or the actual company name, it's like how much value would name layer have?
And name layer isn't a great name, but there are a lot of other two English words, back to back names that are
really good. Like Salesforce, pretty good name. So I had to figure out of the 50,000 domain names
expiring every day, which of those had resale value in an entrepreneurial context. So I actually
went through the entire English language dictionary over the course of, I think it was a weekend with
my roommate and we, we scratched out, we had that digital copy.
And so we deleted all the entries of words
that I couldn't foresee anyone putting in a company name.
So if like, I don't know, a silly example might be Adobe.
Although Adobe makes sense if it's a loan,
if that's the name of your company, Adobe.
But a blue Adobe or Adobe Red,
it doesn't have a very nice ring to it.
So it was a very subjective process
fraught with a lot of false positives.
But we pruned down the dictionary.
It was a grueling three-day process.
And we were left with something that,
when piped into a few very, very basic algorithms in PHP,
would be able to determine, based on Google search queries and Google search results, which of these were likely to be of value.
So that was the first set of tools.
That was the first time I actually really mobilized my engineering skill in pursuit of a business objective.
And it was really fun to do that.
I felt like it was this powerful command station, I'd wake up, turn on my laptop, and I would just see this huge dump get
parsed, this huge 50,000 dump get parsed into just really valuable domain names. It's like looking at
money. And so of course, the next set of tools that had to be built were those that would actually
acquire the domain names. So this is pretty interesting. And this required a lot of
research into stuff that is not published online. And it turns out that domains expire in a
two-hour window, at least dot-coms do, from the very sign registry. They're in charge of
overseeing dot-com, dot-net, dot-jobs, and a few others. And so it turns out if you are a registrar,
like godaddy.com or namesheep.com, you can get access to the list that's expiring that day.
And there's some other back-channel ways to get access to those lists, so I did those.
But the lists weren't in the order that those domains would actually expire,
meaning here's 50,000 domain names.
They're going to expire in some randomized sequence over this two-hour period
every single day that's going to happen.
And so the goal is to send API requests to VeriSign
to register the domain you want right after it drops.
And if you miss it, if you do it way after, someone else's API request will get it.
If you do it way before, it won't yet be available for registration again.
It'll still be in the expiring stage.
So we had to figure out, we meaning myself and a friend, we had to figure out how do we systematically parse through the list in real time to guess the
likelihood of a domain dropping in the next 10 milliseconds. And so this second set of tools
was honed to be very good at pinpointing the millisecond range a domain would expire.
And there were only so many API requests you can send to VeriSign. And that was limited by how many
registrars you owned. And we didn't even own a registrar. So we were piggybacking off the API requests of a bunch of public registrars that we
had developer access to. And we're competing with the likes of GoDaddy. And they own like 100
registrar licenses. And they're just blasting VeriSign with these API requests, trying to get
this domain name before we do, every single day. And so we built a set of tools that were so much
better at pinpointing that time window, that despite only piggybacking off one other registrar, just a couple others, we were able
to get almost all the valuable domain names we wanted that weren't in extreme demand.
We couldn't get the single dictionary word.coms, but we could get everything else.
And so we had this system running for about six months, and we accrued a few million dollars
worth of retail value domain names.
And I hadn't yet, at this point, I hadn't yet thought about
kind of bringing all these domain names under the roof of the business. I just thought I would acquire them and maybe sell them on third-party aftermarket sites. But when it was working so
well, I thought, well, why don't I build a domain name inventory? And that's when I built name layer.com to house and sell all of these domains.
That is so crazy, man. I mean, all the thought into the, you know, just the discovery of that,
like it's, it's so cool when you discover gold where no one expects gold, so to speak, you know,
you, you, you looked under this rock and you're like, holy crap, there's a bunch of money under here. How did nobody know? Let me keep digging. Let me build some technology around
this and beat everybody else with a punch and then do what you did. That's so crazy, man.
Thanks. I would say one interesting thing I should add in is these domains are being registered
as if they were being manually registered through a registrar, meaning I
was still paying rock bottom costs for these domains.
I was paying seven, eight dollars.
And then I was selling them on Amar.com for three to nine thousand dollars.
So the margins were really high.
But of course, unless you saw a domain name that was really appropriate for your business,
you weren't going to buy it.
So overall turnover was slow.
So how many you said a million dollars roughly in retail value for domains and how much,
roughly how many domains,
like a thousand,
couple thousand,
10,000.
I think at some point we were at 1800.
Give us a time span and help us understand the start of name layer until
acquisition.
It was bought by tech stars.
Can you give us a timeline of when you started
it and then when it was bought? If I remember correctly, there's a NextWeb
launch article for the company. I think it's dated in August 2011. And it was within two years
that we sold the company to Techstars, the startup accelerator.
Well, if listeners out there are thinking, why do Jared and Adam ask the backstory
before getting to the meat and potatoes, basically?
Because we've gotten asked that before, right, Jared?
And this is why, because you uncover these very unique,
interesting stories that just need to be told
that ultimately end up in Velocity.js
and some other things you've done,
which we're going to talk about, of course.
But we're coming up to Velocity.js and some other things you've done, which we're going to talk about of course, but we're coming up
to our first break.
Let's pause here. When we come back in,
we might catch up to some of this tail end
of the story, but ultimately we're shooting
towards Velocity.js and some of the things you're doing
now in open source and
all that fun stuff. We'll be right back.
Linode is our cloud
server of choice. Get up and running in seconds with your choice of Linux
distro resources and node location, SSD storage, 40 gigabit network, Intel E5 processors. Use the
promo code changelog20 for a $20 credit, two months free. One of the fastest, most efficient
SSD cloud servers is what we're building our new CMS on.
We love Linode.
We think you'll love them too.
Again, use the code changelog20 for $20 credit.
Head to linode.com slash changelog to get started.
We're back with Julian Shapiro.
We're talking about this very, very interesting way to kick off life.
At the age of 14, you're basically rich.
I'm not going to, that's a TLDR version of your story.
Hard work, of course, in there.
Maybe a unique rock you overturned and found some gold.
But ultimately, this road leads to open source.
This show is shining the spotlight on some interesting open source out there and the people behind that open source
and some things that caught interest of Kevin McGee, a listener of ours, and the ping mentioned
to get you onto the show and some research here, of course, but VelocityJS animation.
I'm curious why that became of an interest to you.
But then ultimately, another cool thing happening now is LibScore.
So what's the best part of your story to start at?
Velocity or LibScore. So what's the best part of your story to start at? Velocity or LibScore?
So I'd say the best place to start is probably Velocity because that was built in my year off
from NameLayer. So up until NameLayer, I was using my engineering skills in pursuit of a business,
but I wanted to get back to that 12, 13-year-old phase where I was coding in the pursuit of just
like childlike fun, building cool stuff. And I was really coding in the pursuit of just like childlike fun building cool
stuff and I was really interested in the motion design you'd see in movies for like the visor and
Tony Stark's like display in his helmet and the Iron Man movies really got me interested in all
in visualization how much would be possible to do on web not just in film and so I looked into
browser performance that's really where
Velocity started. I was trying to figure out how much would be possible performance-wise,
given where Chrome and Firefox and Neuron Explorer were and Safari. And so I went down this deep dive
into the minutiae of browser performance quirks and CSS transforms and hardware acceleration and look to things like WebGL and Canvas decided to stick with JavaScript because I decided to very consciously constrain this childlike pursuit within the realm of something that other people could also use.
I didn't want to go very experimental.
I wanted this to be something that could actually have real-world application on the average website.
I think that structure was instilled in me from NameLayer, where I was like, okay, if I'm going to spend all of this time, let's do it on something that's going to affect a bunch of people.
And that also actually informed the seriousness in which I took marketing velocity, getting the word out about velocity.
So we'll talk more about how I built it. But after building it, I thought to myself,
that was a five-month, six-month stretch where I was full-time every waking hour,
Monday to Sunday, just going crazy, trying to figure out how I can build a really cool
animation library that would make web animation better for everyone. And to justify
that time input, I felt like I had to put in three, four months of concerted marketing effort,
just like I would have for a name layer. And I took that very seriously because I didn't want
this to be like this lost year of my life. And I felt it was reasonable to assume a lot of people could use and benefit from Velocity.
So this began a three, four-month stretch where I was using every growth hacking trick I have learned throughout the course of NameLayer on an open source project.
And what's so intriguing about that is in the startup world, there's a lot of friction between you having an idea and a message and getting it out there.
For example, if you want to get on TechCrunch, you're one of 4,000 cold emails being sent to
TechCrunch journalists for that day, and it's hard to get a response. If you want to be on
the front page of Product Hunt, it can similarly be pretty hard because it's a highly saturated
place. But with open source, I realized blogs, podcasts, aggregators, they were starving for content.
They were starving for interviews.
They were starving for technical tutorials on how to do things.
You know, there's csstricks.com, there's davidwalsh.name, two great sites, really good resources on CSS and JavaScript.
And so I hit them up, hit up every single thing I could find and aggressively
pursued proactive outreach where I would write content up front and say, Hey, Chris, uh, Chris
is the guy behind CSS tricks. Of course. I said, Chris, I wrote this blog post. You can just post
it. It's already pre-written. It's written really well. It's a technical deep dive, deep dive into
cool animation stuff, things your readers are going to like. And he's like, oh, awesome.
Well, sure, I'll throw this up.
And he's like, do you have anything more?
And so I began these relationships
with Smashing Magazine, CSS Tricks,
and a bunch of other blogs,
The Next Web, and Create a Block,
and just wrote tons of content.
And then, so that was the sort of content production
to get the word out.
But I wasn't really happy with that.
I wanted to accelerate its adoption. it's kind of an addictive process like how big can i get this
uh open source project given how little friction there is to getting the word out like okay if
there's if i could basically get the word out anywhere that's willing to listen because they
don't have other people pestering them um how big could this get? And that became a really fun challenge. And I wasn't looking for a target
of GitHub stars. I was looking for actual real world production usage where people were loving
the project. And that feeds into why I built Libscore, which I'll touch on in a moment.
But so I would do all sorts of crazy things with marketing velocity. I would actually
type in Google search queries for best jQuery plugins.
And then I'd find these little known sites run by these SEO geniuses who were basically putting together these pages with randomized lists really just for the purpose of collecting ad revenue.
And so I found the admin's contact emails and I would, okay, I'll send you 50 bucks via PayPal if you throw me you throw me at the top of this list and I would do that over and over and over
again, I would take every single thing I could do, uh, short of like a total thousand dollars
worth of budget I did.
And it was really fun because remember, I'm not astroturfing here.
I'm not misrepresenting the quality of velocity.
I'm just getting the word out.
And the true test is whether people use it
and throw it into production.
And they did.
And it steamrolled.
And it naturally went over to, I don't know,
10,000 GitHub stars really quickly.
So let's talk about ROI on those efforts
in terms of bang for your buck or for your time.
Because we have a lot of listeners
who have open source projects
and many of them have real value
and their quality and all these things that you had, right.
But what they don't have is the three to four months of dedicated time to, you know, to
push towards marketing.
And so, uh, that's awesome by the way that you did that.
And I think, you know, just seeing how dedicated you were to it, you know, spend 50 bucks to
get, you know, a link here, a post there.
What, uh, what would you say?
Like if you said, okay, these are the three best things I did. And I know that it's a, it's a snowball and not,
you probably didn't have any single home runs that if you did, please do share them.
What would you say was the best bang for your buck for those efforts that our listeners can
actually use those as takeaways and say, I'm going to go try that. What would you say? Go try.
There are three things in no particular order. First is blog posts on Smashing Magazine and David Walsh.
CS Headstrix is great, but the sheer traffic I would get from Smashing Magazine in particular was incredible.
Sometimes 10,000 to 20,000 hits in the course of a week.
That's the first. is I paid really talented developer designers
who were showcasing their work on CodePen.io
to build demos with Velocity,
showcasing what you could do now that Velocity
brought very performant animation to the web,
to everyday web design.
And I found these amazing people who for,
I think it was also, again, something around $50,
were willing to spend hours, days, their weekends building these incredible demos.
And for them, they honestly would have done it anyway.
And so we built these demos.
And I'd get the word out on Twitter or elsewhere.
And they would just take off like wildfire.
And they'd be stuck on the ClickBand homepage for a long time.
They'd get 20, 30, 40, 50,000 views. And at the end of each demo, I made sure that there was a really prominent plug for Velocity saying this is the project that, you know, in part responsible for bringing this to you.
That was really big because that was not only distribution, but also credibility.
Really talented people were using it.
They loved it.
And the results were impressive.
The third thing was Hacker News.
Hacker News, I think for a lot of startups, a lot of projects, is usually singularly like
the it's the outliers, the 10x traffic source over everything else.
And it was very much the same for me.
And I think I got on there a couple of times and collectively that jump started a lot of
awareness.
There you have it.
Three things to try.
Now, one thing about Velocity,
just now I'm giving you excuses,
but one thing about it is
since it's an animation library,
it does demo very well.
And so that's another thing
that you have going for you
in terms of this thing is
the product putting out by these people
on CodePen and so forth are visual and so
it sells itself in that way
and nothing wrong with that. Also
I think your point about
the social proof, not just the exposure
but the credibility of
these people who are considered to be
high quality front end developers or designers
using it
goes a long way as well.
For those though that are going out there right now
and checking out Velocity.js,
which is actually VelocityJS.org,
I'm curious if that was one of your namelier names or not,
but just kind of curious for those people checking it out,
what's the state of the project?
Is it still in development?
What do you consider it at?
Velocity's been at a point for
a little over a year now where it's very stable and the bugs that do surface are not in any way
critical. Having said that, I intended to be better at pushing updates, but I'm really happy
to announce one of my best friends and a fantastic coder. He actually runs Canada's
largest developer bootcamp company, uh, is taking over maintenance of the project in the next few
weeks. And he's going to address the open PRS and address the open issues. And he is really excited
to use this as an opportunity to get back into open source the first time in a while.
And he's going to spearhead a really interesting direction for the project.
And anything that people have been requesting, I think they'll be very impressed with what
will get delivered soon.
That's great news.
I think one of the stigmas that we have, and I'm guilty of this for sure, finding a project.
And if it hasn't been updated recently, even if there hasn't been a commit, I'll go look
through the commit logs and I'll see, you know, is this a, is that just a read me update or is this, you know, is this a real change or a bug fix?
And we tend to think that, you know, anything that's not actively being developed is stale or dead or faded or whatever words that we have for obsolete now.
Um, but the fact is that some things are just finished, you know?
Yeah.
And there's a difference between this project died
because I got bored of it or I couldn't maintain it
or I burnt out, heaven forbid.
But there's also a thing like this project achieved its goal
and now it's just stable and now it's just finished.
And I think that's sometimes a hard distinction to make
and one that many people probably misjudge.
That being said, in the JavaScript world,
I don't think things are ever finished.
So it's great to hear that you found someone to step up
and spearhead it into the next, into the future, so to speak.
There are a couple aspects to it, actually.
One is, if you look at the jQuery animate function, that hasn't changed much over the years,
because to your point, I wouldn't necessarily say it's complete, but it's certainly reached a spec
where what you would do more than what's available isn't really evident, and you don't want to get
to the point where you're bloating it. What's nice is Velocity has this add-on called the UI Pack
where I do add the quote-unquote bloat,
meaning if you want these extra features, you can throw them in
and you get some really interesting UI manipulation features.
That's the first thing.
The second thing is the biggest update I wanted to push
wound up being done independently by Twitter.
Twitter was using Velocity
and they built the React plugin for Velocity and they built the
React plugin for Velocity. They did an incredible job. So I actually just linked to their work
from the Velocity readme. And I think that's what's allowed it to keep up with the times.
So question on motivation for you, since you mentioned the growth hacks,
one thing that hasn't been mentioned so far yet is that there's a book that you've written,
a Velocity book. And I'm just kind of curious with all these growth hacks and all these sites and
all these page views, what was the motivation behind the book? Was it additional fame? Was it
to just, hey, mom, I wanted to write a book one day. Look, I wrote a book. What was it for you?
Funny enough, the Velocity book was not written as part of my efforts to get the word out.
It was written because I'm Canadian and I wanted to get a green card.
And there's a quick path to getting a green card called the EB-1.
And to get it, you have to prove to the government somehow that you're in the top 2% of your narrowly defined profession.
So mine was web software engineering. And part of
how they qualify you for that distinction is whether you've published anything significant.
So I went to Pearson, who's a known publisher, and I pitched in this book. I showed them how
much traffic the Velocity homepage was getting monthly. They said, okay, this might be interesting.
Can you plug it in your documentation? I said, absolutely. And so I wrote this book over the course of a few months worth of weekends as a means to get a green card.
But it also happens to double as another form of credibility for the project.
The author or the maintainer is clearly dedicated to this project enough so to write a book.
And fortunately, the book's been well received, so that hasn't hurt the credibility of the project.
Jared, I don't know about you, man, but I'm over here smiling ear to ear
at this guy's ability to growth hack things
or just to hack things in general, right?
Like to build a company, he bought a domain name,
resold it a week later, did it again, did it again,
whatever, that whole story.
And then now he's writing a book to get a green card.
I'm over here thinking that,
I'm over here thinking, Adam,
did you know that that was why he wrote the book
and that's why you asked that question.
No, I was like the best answer to what's your motivation for this book?
It's like, well, I want to get a green card.
I know that was that was so unexpected because he didn't mention it earlier.
Right. So it wasn't like in his story.
And I was just thinking, like, there's got to be some motivation.
He's clearly motivated by something.
And there was no mention to the book.
And it's basically one of the first things you see in the documentation.
And I'm like, it's got to be important.
But why hasn't he mentioned it yet?
Yeah.
That's crazy.
Good reason, Julian.
Good reason.
Very good reason.
Well, we learned your motivation about why you wrote the book on velocity.
I think I'm seeing your motivation about why you did your next project lib score because you were so interested in velocities
impact not just github stars but actual impact to the world of the web and usage
and so we're going to talk about lib score next let's take a quick break
and we'll ask julian about lib score on the other side
if you're going to attend a conference this year you might as well make it one take a quick break and we'll ask Julian about LibScore on the other side.
If you're going to attend a conference this year, you might as well make it one where you come away with something useful and to be able to have some fun while you do it. ElixirConf is the largest
worldwide gathering of Elixir developers. It happens September 1st and 2nd in Orlando, Florida,
home of Disney World and Universal Studios.
Find out why companies are leaving behind older traditional languages and frameworks
and adopting Elixir and Phoenix for their core technologies.
Find out how to exploit the Erlang platform with Elixir to build fast, scalable websites.
Learn from over 30 speakers with talks like giving up the object-oriented ghost,
refactoring techniques for Elixir ecto and phoenix building partition tolerant systems with phoenix tracker and we
should also mention there will be talks on integrating elixir with elm and swift and graph
ql the conference also includes hands-on training classes on august 31st where you'll learn from the best teachers
about elixir and phoenix the conference is just around the corner and late pricing starts very
soon august 15th so get your ticket today head to elixirconf.com slash changelog
all right we are back with julian shap, and we learned all about how he built an awesome animation library for the web, VelocityJS, and then basically workhorsed it, growth hacked it, even bought attention for it and got it to be one of the most popular repositories on GitHub.
11,000 stars to this day, over a thousand forks.
But as we all know, stars doesn't actually mean all that much. It's kind of a proxy for influencer use, but it doesn't actually give us exact use. Reminding
me of the recent release of GitHub's public data on BigQuery, so we can see at least open source
use. But the nice thing about JavaScript and the web is every time you load a page,
they have to send you all their JavaScript
so you can see exactly what it is that they're using.
And so in comes Libscore, another project from Julian,
which every month scans the top million sites on the web
to determine which third-party JavaScript libraries
are installed on each site.
Julian, we can kind of put it together and find out why you'd want to build such a tool.
But it turns out you weren't the only one who wanted to build such a tool
because you had some funding for this.
Stripe was involved.
I think DigitalOcean was involved.
Let's start with the backstory on LibScore.
Give us how it came to be, and then we'll talk about what it is.
LibScore came about from two things.
One was after marketing name layer,
I realized how important it was to actually assess
how effective your marketing is.
It seems self-evident, but when it comes to open source,
there was actually no way to do that.
Even if you are not marketing your open source project,
let's say you just get it out there,
you throw it on GitHub, you have no idea who's using it.
You'd have to use maybe, if you scroll through the list of everyone who started, maybe you can find like
in their bios, they're the employee of Yahoo. But that's not a representative metric. That's
not enough. A lot of people don't start. A lot of people use FBM. So in open source in general,
I just had no way of figuring out how effective was my marketing. All I could track were page views on VelocityJS.org.
So I knew I needed to close that loop, that feedback loop that any growth-minded entrepreneur
would want to close. That was the first thing. That was the seed of the idea.
At some point, I heard that Stripe was having this open source grant program,
which hadn't been done before. It was a for-profit company saying,
we want to sponsor interesting open source developers, working on projects that we think
will have an impact and maybe tangentially related to the work Stripe does. And I got the grant
and they took me out to San Francisco. And on that grant, I realized I'm actually mostly done
building Velocity. It was at the point where it worked well. It wasn't encountering a bunch of
bugs. And so I thought, well, maybe I could actually use this as an opportunity to pitch
Stripe on a brand new project, something else. And I told them about this story about how I
marketed Velocity and how I wanted to track its usage across the web, but doing so seemed very intimidating.
It didn't seem like something I could do in my room.
I felt like I needed to be with a bunch of very technical people.
I needed the processing power.
I needed some expertise in scraping. So I took advantage of all these
people around me at Stripe to put together a small team and a little bit of sponsorship to
build Libscore with the intent of scraping the top million most traffic sites on the web
to determine which JavaScript libraries those sites were using. Turned out that part was actually very easy. You know,
at that point in time, module loaders weren't very, very heavily used to the point where they were
obscuring the footprint in the browser of which libraries were in use. So I could just sniff all
the top level variables and run a bunch of heuristics to figure out, is this variable like random leaked stuff, like from a code that was kind of messily written, or
is this the exposed endpoint of an intentionally installed third-party JavaScript library?
And so I would try to figure out how to do that.
And then I would, I would extract that list from the webpage and then index that across
a bunch of things, put that into this big database, and then make that searchable.
That was the intent.
But all I knew how to do myself was that scraping portion to figure out which libraries were in use on the page.
So I got together with this incredible designer named Jesse Chase.
He was the creative director of DigitalOcean at the time who built the whole UI and the graphing system. And then Jason Chen, founder of another open source project called Quill,
which is a rich text editor.
He built the actual backend architecture and the system that scraped the web.
And collectively, we built this thing that finally gave a footprint to the impact of open source projects, whereas it prior did not exist whatsoever. are using my project, but also, oh, wow, uber.com, WhatsApp, Twitter, these companies that I use,
that these sites that I go to every day are using my thing. That's really cool. And so what I saw
was Lipscore motivating developers who may not have had that insight into who's using their stuff,
be like, oh, wow, I really want to make sure I continue maintaining this. I want to merge these
PRs. There's a lot of people depending on this.
And now I know who that is.
And it provided that tangible footprint, which was pretty exciting.
So, Dylan, you got all these people working with you.
You got this fun idea.
You're a guy who can hack things together well.
You went on this retreat with Stripe and pitched your idea.
And they said yes, basically. So what came of this
for you? What did this do for you? Libscore was something I wouldn't have done had I not been
paid to because the Stripe grant was an excuse to do something where failure was a very real chance.
So technically, the scaling, the scraping, processing a million web pages wasn't like we were scraping HTML.
We were spitting up phantom instances for every single page in the top million and processing these pages in real time.
So I didn't know, honestly, if that was feasible.
I didn't know anyone who had done it before.
So what the Stripe project or Stripe grant ultimately did for me was give me a lot of
leeway to take risks.
Fortunately, Libscore wound up working, but it was close to not.
And I don't think I would have done it.
I don't think I could have been able to justify three months worth of full-time development
with those risks had Stripe not put together this program.
And on Libscore itself, though, we have a show coming out soon called Request for Commits.
And you can go to changelog.com slash RFC.
You'll see the awesome new artwork, the details for the show, and ultimately a newsletter signup that you can find out about.
But we've recorded some shows, long story short.
And I forget which show it was, actually, but whenever it comes time, I'll link to it in the show notes.
But we had a conversation on there, and I think this is what LibScore does.
You have this long post on Medium that kind of describes the backstory of LibScore and
basically talking about how much value there actually is in a GitHub star, right?
And the example you use in your blog post
is a library writer out there,
someone who's writing infrastructure,
somebody who's using something that they're not really sure
how they can track the usage of it.
The only metric they're really given
for their open source on GitHub
essentially is watchers and stars.
And so you think to yourself like,
okay, people watch it
because they're probably actively involved in it,
so that's not a good metric to use.
Then you think, well, the next best thing is obviously stars.
And in that show, we had a discussion about
basically the value of GitHub stars.
And it seems like from your post,
you can have a library out there with 25 stars,
which to the library writer and the rest of the world,
it's like, oh, that's not very that interesting, right?
Because we have this
nightly email, too, that
talks about things
on GitHub, basically, based
on Google BigQuery and GitHub
Archive, and it's an email
basically of the trends on GitHub,
and it's based on stars.
So you might have a repo that's got 25 stars,
seemingly not that important,
or not very important.
But to Libscore's usage, you can search out there and find out which domains are actually using it.
And your 25-star repo, it might be being used by CNN.com or the likes of big name websites.
And meanwhile, you're just like, oh, my, my repos only got 25 stars.
Doesn't mean that much. So LibScore solves this problem for, for library creators. It helps them
see deeper into not so much just who's using it, but where it's being used and how it's being used.
Just to give some examples of what's popular these days. If you go to LibScore.com,
you can click through these as well. jQuery is still number one at over 692,000 websites of the top million.
Correct.
That's how it works.
Followed by jQuery UI, then the Facebook library.
It looks like a jQuery modal library, Modernizer, so on and so forth.
You can go down those.
You can also see the top scripts that pages include.
Google Analytics, not a surprise, number one. Facebook Connect, number two. you can go down those you can also see the top scripts that pages include google analytics
not a surprise number one facebook connect number two uh google's ajax apis number three
and so on so forth so lots of cool information that you can get if you're just curious
about who's using what out there but the way that most people want to use it especially
library authors i'm sure julian the way you use it is you go there and probably type in the word velocity.
And it looks like the dollar sign dot velocity, is that you?
Yep.
Check and see.
And as of May of 2016, you're at 4,994 sites, including Tumblr.
You can see New York Times, Rambler, Scribd, so on and
so forth.
So, a really cool interface as well.
It's a very well-made tool, and everybody should go out there, and especially if you're
a library author, type in your library name and see who's using you.
We'll actually put a link to the search results in the show notes, because when you
hit that result page, you actually get a graph.
How much can you speak to about the design?
I know that you mentioned that Jesse was doing the design on this.
Did you have any influence into what the information was?
What was your role in the actual outcome of the site?
So I built the initial prototype of the site.
It was ugly, but it gave the gist of what I wanted.
And Jesse came in and he had a lot of experience
with information design, which I did not.
So he figured out how to lay out
all these different entries into the data
because you can search by domain name,
by open source project,
by third-party script, by variable.
So he figured out how to tie that all together.
But it was the website as you see it today
is fully the brainchild of Jesse Chase.
I mean, the graph there, I mean, it's pretty digestible.
If you're a library author out there, if you go through whatever it is that represents you in the case of Velocity, it's $.capitalVelocity.
And you can kind of see over a course of months what the trend is.
And right now it's roughly 5,000 people using it or 5,000 sites using it.
Then they're ordered by essentially the ranks.
Are you able to do anything differently than that?
Like actually dig a little further and search things and stuff like that?
Does this still have legs or is it going somewhere?
So right now the project is maintained by Jason Chen and he's
working on some interesting updates. I will, I will have to let him speak more to that, but yes,
there will be more coming soon. Cool. Okay. Well, let's get back to you, Julian, what you're up to
these days. One thing you mentioned in our email as we were preparing for the show is that you're
not really doing too much software engineering these days, but you're doing startup work.
Can you share with us and the audience what you're up to and what you find interesting nowadays?
Sure. My experimental year of coding, as I've spoken about, took me down an interesting path that led to Velocity and Stripe and Libscore.
I didn't expect any of those things to happen.
So I've chosen for the second time only to take another
year off and dedicate this to writing instead of coding. So I'm curious to see where writing
takes me. And one thing that I've honed in on is teaching people how to easily do things that they
mistakenly consider to be hard. So whether it's learning Chinese in a very short amount of time
or even gaining a lot of
muscle, just a couple months, I want to dive into what the research actually says is the quickest,
most efficient way to do something. And then self experiment until I can put together a guide that
will actually compel others to learn alongside me. So that's what Julian.com is about to be.
It's going to be a place to learn really hard things easily.
Give me an example of something hard.
So if you look at bodybuilding, which is an interesting topic because everyone to some
extent has tried weightlifting, going to the gym, getting fit. And when you look at the actual
research, meaning when you read through the sports nutrition publications, the academia of muscle hypertrophy,
you see that most of the common advice for weightlifting is misleading or wrong.
And if you distill all the research, if you read through a thousand pages of this stuff,
there's actually a rubric you can follow to build muscle, build a year's worth of muscle or a year, two years worth of muscle in about three months. And so I followed my own rubric, proved that to be true,
experimented with a couple of friends, proved it again to be reproducible.
And now I'm formalizing that into something anyone can follow. And so that's one example.
That's something that is fortunately very much rooted in scientific publications. Something like learning Chinese is a little more abstract.
But I feel like I can uncover the same set of building blocks to do that,
which many people consider hard quickly as well.
Jared, I don't know about you, but I feel like this show in particular
is a definite mix of Founders Talk and The Change Law
because here's Julian, right?
14 years old, decides to buy a domain name.
Stumbles into this unique hack
that basically has been the trajectory of his life.
Builds open source, gets open source grants,
builds awesome stuff.
Hacker, entrepreneur to the core.
And now he's, uh, he's solving
hard problems. Like, like I would never expect you Julian to say that that's what you're doing
now. Not, not that it doesn't fit, but just that you're such a diverse and dynamic person that
you've done the things you've written the book. You've gotten, you know, the green card,
so to speak from writing the book. Did you get the green card? Did you get the green card, so to speak, from writing the book. Did you get the green card? Did you get the green card?
I did.
I mean, you wrote the book.
We got to get you the card, right?
I mean, that's just awesome.
And now this.
I mean, anybody listening to the show typically is like coming to this show because of the interesting things
happening in open source.
And it's not saying that that's not what this show is about.
It's just such a rounded show that has so many different facets that is not
just rooted in software.
Amen.
Amen.
So, Julian, we have a couple closing questions we ask our guests.
And we figure we throw a couple at you.
Do you recall the questions we ask in our opening email to invite you into
the show?
I don't.
You don't?
Well, let me spring one on you just in case.
And if it's from left field, you just tell us.
And we got a couple more questions for you.
But everybody has a hero.
Everybody has an influencer,
somebody that was the pivotal person
to give them cheer when they needed cheer
or to be their, you know, just to be their rock. And I'm just curious who that
person might be for you. Typically we rephrase it as like your programming hero, but because
you're so dynamic and you're so diverse, I'm curious to just know who's your influencer,
who's your hero. So this is probably a common answer, but definitely my parents in particular,
my dad, as it pertains to career choices because as a kid I thought my dad was
basically superman he knew the answers to all the questions I had um he was doing things that
looked really cool and he was a serial entrepreneur he is a serial entrepreneur and I can only imagine
that's how that got instilled into me because I don't see what other organic force would have
introduced entrepreneurship into my life especially I I had, had the bugs so young.
So I see it was because I looked up to my dad.
So that,
that'd be my answer.
In all honesty,
that's not a very common question or common answer.
Nope.
And I'm always surprised by it because it's a shame.
I am,
in my opinion that in this age that parents aren't the ultimate influencers in someone's life.
And that's awesome.
That's your story.
For our next closing question, we'd like to find out what else people like doing.
So if you weren't doing what you're doing, this is tough, Julian, because you are taking a year off to do kind of what you want to do, which is right at this point.
But if you had a completely different path, different trajectory, different career or different life and you weren't doing what you're doing now, what would it be and why?
I'd be a filmmaker.
And I think the most realistic approach into it would be a documentary filmmaker.
I saw a movie called Searching for Sugar Man, which blew me away.
And Man on Wire, two documentaries where they kind of transcended the national geographic format and
became narratives uh plus exposes really fascinating and i want to produce things like that
so i imagine i'll get to that in the next couple years although nowhere near that well we've never
met anybody who comes on the show and closes with saying they want to be a filmmaker that is a first for us but um you know given that fact i mean we all have such diverse talents we're not ever put
into a box you know sometimes software developers start out as gamers sometimes gamers start out as
software developers and uh that's the that's the beauty i think of the world we live in now is that
there's just so much opportunity out there that that when you get bored with what you're doing, change.
Don't ever feel like you're stuck.
And I feel like you've, at the young age of 14, you learned a lesson that some never learned their whole lives.
I could be wrong on that, but that's at least my takeaway from hearing your story. But Julian, it's definitely been a pleasure to learn about where you came from
and obviously share so much interesting things
with the ChangeLog community who listen to the show.
And Jared, that question earlier
about actionable things to hack
and get your open source out there,
I love that question.
So I'm really glad that Julian,
you were able to share some interesting takeaways
and some actionable things there for that.
But is there anything else you want to share with the audience before we tell the show? I got nothing. Thanks for
listening and thanks for the chance to be on. Awesome. Well, listeners, thank you so much for
tuning in. Obviously, we love that you listen to this show. We thank you so much for that. We do
have a couple things we also would love for you to subscribe to if you don't subscribe we have an email once a week called changelog weekly go to changelog.com slash weekly it's jared and i's
editorialized take on what's fresh and new and open source we love covering that email every
single week we also have a nightly one too called changelog nightly go to changelog.com
slash nightly subscribe to those smile real big
and fellas
that's it for this show
so let's say goodbye
goodbye
thanks for coming on Julian
thanks for having me guys Outro Music