Interview w/ Julian Shapiro (part 1)


Summary

In this interview, Julian Shapiro shares the story behind creating Velocity.js, a high-performance JavaScript animation engine that eventually became integrated into jQuery. He explains how he approached this project without a formal computer science background, driven by obsession and a desire to solve a real problem he encountered: the lack of performant web animations. Julian details the process of deep, narrow focus that allowed him to master browser performance and create a widely adopted library.

Julian discusses the concept of obsession as a combination of flow state and the joy of incremental hacking. He describes how he gamifies his pursuits, whether it’s squeezing out performance gains in code or meticulously researching and compiling guides on topics like writing. This approach to mastery involves identifying personal interests that can be hacked and have a clear reward cycle, creating inertia that drives projects to completion.

The conversation explores the broader impacts of Julian’s work on Velocity.js, including unexpected byproducts like receiving an open-source grant from Stripe, gaining social proof in the tech community, and opening doors to new career opportunities in growth marketing. Julian emphasizes that building something valuable is only half the battle; actively marketing and sharing your work is crucial for it to have real impact and for you to reap the full benefits of your efforts.

Jonathan and Julian delve into the psychology behind sharing open-source work, addressing common fears and imposter syndrome. They argue that if you’ve solved a genuine problem for yourself, you should share it with the world—not doing so is a selfish act that deprives others of potential value. The episode concludes with Julian explaining how his experience growing Velocity.js led him to his current focus on growth marketing, applying systematic, metric-driven approaches to help startups scale.


Recommendations

People

  • Paul Irish — Mentioned by Julian as one of the few people who, at the time, knew as much about browser performance on the user-facing side as he did.
  • Jeff Bezos — Referenced for his ‘regret minimization framework’—a mental model for making career choices by considering what you would regret not doing when looking back at age 80.

Tools

  • Velocity.js — Julian’s JavaScript animation engine, built for high performance to replace jQuery’s slow animate function. It powers animations on sites for companies like Uber, Samsung, and The New York Times.
  • Libscore — A project Julian built in partnership with Stripe’s open-source grant. It crawled the top million websites to sniff global variables and determine which JavaScript libraries they were using, revealing Velocity.js’s adoption.

Websites

  • julian.com — Julian’s website where he writes and publishes free, in-depth guides on topics he’s passionate about, such as marketing, writing, and critical thinking.

Topic Timeline

  • 00:00:00Introduction to Julian Shapiro and Velocity.js — Jonathan Cattrall introduces the episode and guest Julian Shapiro, creator of Velocity.js. Julian shares his long-term aspiration to be known for writing comprehensive summaries on his passions like marketing, building muscle, and critical thinking. He discusses his writing process and the benefit of spacing out revisions over time.
  • 00:02:52The Origin and Impact of Velocity.js — Julian explains how he built Velocity.js, an animation engine designed to solve the performance problems of jQuery’s animate function. He took a year off to focus on front-end performance, studying browser engines and CSS specs. He later created Libscore with Stripe’s grant to track library adoption and was amazed to discover major companies like Uber and Microsoft using his code.
  • 00:06:41Overcoming Imposter Syndrome Without a CS Degree — Julian reveals he has no computer science background, having studied film and economics. He describes himself as a ‘narrow AI’ who becomes obsessively deep on specific topics rather than a broadly competent coder. He shares his anxiety about single-handedly coding a library used on billions of impressions with inadequate testing, highlighting a common developer fear.
  • 00:12:19The Role of Obsession and Flow in Mastery — Julian deconstructs his use of the word ‘obsession,’ framing it as the inertia created by being in a flow state while incrementally hacking something rewarding. He gives examples: finding performance tweaks for Velocity.js and seeing frame rates improve, or collecting writing wisdom from many books. The key is identifying pursuits that combine personal interest with a gamifiable reward cycle.
  • 00:20:07Finding Interest and Purpose in Projects — Julian traces his interest in animation back to being inspired by the HUD effects in Iron Man and wanting to replicate that cool factor on the web using accessible JavaScript. He and Jonathan discuss how purpose doesn’t always need to be deeply altruistic; short-term pursuits driven by genuine interest and fun are valid and can be stepping stones to longer-term goals.
  • 00:25:22Unexpected Byproducts of Building Velocity.js — Julian lists the unplanned benefits that came from building and marketing Velocity.js: job offers that helped him move to the US, social proof and connections in San Francisco, and receiving an open-source grant from Stripe which changed his career trajectory. He stresses the importance of not just building an open-source project but actively growing and marketing it to maximize its impact and your own learning.
  • 00:33:42The Importance of Marketing Open-Source Work — Julian argues that failing to market your open-source project is a selfish act, as it prevents others from benefiting from your solution. He encourages developers to let the market decide a project’s value rather than pre-judging it. His experience growing Velocity.js ignited a passion for systematic growth, which he later applied professionally in growth marketing, focusing on measurable, ROI-positive strategies.

Episode Info

  • Podcast: Developer Tea
  • Author: Jonathan Cutrell
  • Category: Technology Business Careers Society & Culture
  • Published: 2018-11-14T10:00:00Z
  • Duration: 00:37:18

References


Podcast Info


Transcript

[00:00:00] You’ve probably used something that today’s guest built without even realizing it.

[00:00:09] Today we’re talking to Julian Shapiro.

[00:00:11] Julian is the author of velocity.js.

[00:00:14] He also writes a bunch of very useful guides at julian.com.

[00:00:19] My name is Jonathan Cattrall and you’re listening to Developer T and my goal on

[00:00:23] this show is to help driven developers just like you connect to your career

[00:00:26] purpose so you can do better work and have a positive influence on the people

[00:00:30] around you and we do these interviews to try to figure out how other people are

[00:00:35] doing exactly that, how they’re connecting to their purpose, the struggles they

[00:00:38] face, and we try to learn from their experiences here on Developer T.

[00:00:44] Let’s get into the interview with Julian Shapiro.

[00:00:48] Julian, welcome to the show.

[00:00:50] Pleasure to be here.

[00:00:52] I’m excited to have you on and I’d love for you to answer this, this question to

[00:00:57] kind of kick us off.

[00:00:58] What do you want people to know you for, Julian?

[00:01:03] Interesting.

[00:01:03] So I’d say looking back 20 years from now, I love for them to think of me as

[00:01:11] someone who earnestly tried to write the best summary of everything I’m passionate

[00:01:19] about and I hope that got them similarly inspired to be passionate about what I

[00:01:25] am.

[00:01:25] So marketing, the science of building muscle, critical thinking, how to write.

[00:01:31] That’s what I would love to be known for.

[00:01:34] Yeah.

[00:01:34] And you’re writing about these things now, right?

[00:01:37] So it’s, this isn’t just something that is, you know, a future dream of yours.

[00:01:41] You’re actually acting on those, on those desires, yes?

[00:01:46] Yeah, it’s something I sprinkle in through all my free time, but what’s also

[00:01:50] interesting is even though I don’t have as much free time as I’d like, what I

[00:01:55] realize is how much better subsequent drafts are of everything I write when I

[00:01:59] simply allow time to pass.

[00:02:02] And it’s, it’s self-evident.

[00:02:05] It’s almost a cliche actually.

[00:02:07] People, many people are familiar with this, but when you’re literally forced to

[00:02:12] space out revisions over the span of half a year, cause most people probably

[00:02:16] would have gotten done, but I get done in a much shorter period of time when

[00:02:20] you’re forced to, cause you really don’t have the time, but you do have the

[00:02:24] consistency, it gets so much better.

[00:02:27] I’m embarrassed by the previous draft of everything I write, including everything

[00:02:32] currently on my website.

[00:02:33] So I really, really benefit from that.

[00:02:37] Yeah.

[00:02:38] Okay.

[00:02:38] So, so that’s a really, that’s a very interesting kind of effect.

[00:02:42] And I want to get back to it.

[00:02:44] Um, what do you think people might already know, uh, that you’ve worked on

[00:02:49] and maybe they don’t know that it was you that worked on it?

[00:02:52] Yeah, sure.

[00:02:52] So I guess I built something that a lot of people use under the hood, which is

[00:02:59] Velocity JS, an animation engine.

[00:03:02] And it was the output of me having taken a year off from working and trying to

[00:03:07] figure out what is the sort of highest leverage fix that I could work on for

[00:03:13] front end development as a whole.

[00:03:15] It could have been anything.

[00:03:16] I was just interested in coding.

[00:03:18] I was interested in doing so without any sort of business objective.

[00:03:21] And I landed on performance, like the actual speed, uh, the paint time, um,

[00:03:27] the effect on UX of having just performant website animation.

[00:03:32] So I went through the docs for the browser engines and the CSS specs and

[00:03:38] just try to figure out and log the performance of every little tweak and try

[00:03:42] to figure out how can I squeeze as much performance at a front end animation?

[00:03:46] Because the status quo at the time was jQuery and therefore jQuery’s own

[00:03:51] animate function, which was notoriously slow.

[00:03:54] So you couldn’t do all these beautiful, sexy animations you would get through

[00:03:57] WebGL or through even flash.

[00:03:59] Uh, you couldn’t really do that across most devices.

[00:04:03] Uh, so this was like, this was like four years ago.

[00:04:05] So I set out to build that and it actually culminated interestingly enough

[00:04:10] with, um, jQuery asking if they could use velocity JS or if they could actually

[00:04:17] merge it into jQuery to replace its animate function.

[00:04:22] And so that was a cool little serendipitous moment.

[00:04:25] And I guess one quick last thing, this might be a longer answer than you’re

[00:04:28] hoping for, but in the process, I wanted to, um, demonstrate its adoption and

[00:04:35] not actually less so demonstrate to others, but more so know for myself

[00:04:39] who’s using velocity.

[00:04:41] And so I built a second project when velocity was released called Libscore,

[00:04:46] uh, which was in partnership with Stripes open source grant.

[00:04:49] And it crawled the web.

[00:04:51] It basically spun up Phantom JS instances and crawled the real time,

[00:04:56] essentially variable environments of the top million sites on the web ranked by

[00:05:00] traffic, and then sniffed all those global variables and try to figure out what

[00:05:04] were they associated with which library.

[00:05:06] So we weren’t scraping HTML.

[00:05:08] We were actually sniffing the global variable environment so we could figure

[00:05:12] out what gets injected by module loaders and whatever else to get to the real

[00:05:16] bottom of what’s running on this webpage.

[00:05:19] And so we released that into the wild.

[00:05:21] Uh, digital ocean was kind enough to actually give us an unbilled account.

[00:05:25] So like a bottomless pit of just comp computes pretty cool.

[00:05:29] And so we ran this across the web and found out for the first time ever.

[00:05:35] All of the thousands of websites that are using velocity.

[00:05:38] I had no idea.

[00:05:39] I had no way to tell.

[00:05:40] And so launched it crawled, got the results.

[00:05:45] And I remember basically turning on my screen, like looking at the results of

[00:05:50] this, this crawl and realizing that, uh, Uber, Samsung, Microsoft, New York

[00:05:55] times, like everyone, all these big names that I had looked up to, um,

[00:06:00] were using velocity.

[00:06:01] And then it became useful for other developers as well.

[00:06:04] Cause they also had no idea.

[00:06:06] Yeah.

[00:06:07] Wow.

[00:06:07] And when was, when was some of this, this stuff released for the first time,

[00:06:13] just to give people a timeframe, kind of a mental timeframe for when they

[00:06:17] may have encountered velocity.

[00:06:19] Yeah.

[00:06:19] So I think, I think velocity was maybe four years ago and then libs score

[00:06:23] maybe a year after that.

[00:06:26] Um, yeah, that’s right.

[00:06:27] Yeah.

[00:06:29] And the, the interesting parts of this story, I mean, you know, did, did, did

[00:06:34] you have, um, an engineering background before you started on this project?

[00:06:41] See that that’s why I love that question because it gets through a deeper

[00:06:46] imposter syndrome, which I wonder if other people feel.

[00:06:49] So I have zero comp side background.

[00:06:53] I went to school for, I had a dual bachelor’s one in film and one in

[00:06:58] economics and my knowledge of CS was just hacking garbage code together.

[00:07:04] PHP, um, JavaScript eventually node then back to the front end for velocity.

[00:07:10] And even while coding velocity, which a lot of people say, Oh, wow, you

[00:07:14] coded an animation engine, a physics engine.

[00:07:16] It’s like, I’m not that competent.

[00:07:19] Basically I just, I look at it almost as like general AI and narrow AI.

[00:07:23] I am not the general AI.

[00:07:24] I am not a good coder who could be hired by others.

[00:07:27] And in fact, I have a little bit of a story about that with strike.

[00:07:30] Um, but what I am is much like my writing on julian.com.

[00:07:35] I go very narrow and very deep and become obsessive about mastering something.

[00:07:39] And so in the case of velocity, I went obsessive about mastering browser

[00:07:44] performance.

[00:07:44] So there was a time where it was basically maybe Paul Irish, myself, and

[00:07:50] some dev advocates on a current on the Chrome project and Firefox who knew as

[00:07:55] much about browser performance, not under the hood, but on the actual user

[00:07:59] facing side as I did, I just knew everything.

[00:08:01] And then I learned what else I needed to know to actually build out a well

[00:08:05] tested stable, um, animation engine.

[00:08:09] But the way it was architected was by no means brilliant.

[00:08:12] Uh, and I’m sure it could have been a lot better.

[00:08:15] And I remember there was, there’s a moment where you realize like, if you go

[00:08:17] to cdnjs.com right now or some other service for tracking, um, uh, uh, CDNs

[00:08:24] for JavaScript, for front-end JavaScript, or even look at the NPM JS stuff or

[00:08:28] the, yeah, uh, velocity is used, uh, I think serves a few billion impressions or

[00:08:33] maybe tens of billions of impressions per month still.

[00:08:35] And so, um, realizing that I don’t know how to code and I was, if you look at

[00:08:41] the, uh, the, uh, the history on the repo prior to me stopping working at velocity

[00:08:47] about a year and a half ago, it was every, every line was coded by myself essentially.

[00:08:51] So the fact that I was single-handedly coding, uh, what was powering his

[00:08:55] major websites was very freaky.

[00:08:57] And like, I knew, I remember thinking to myself like, guys, I haven’t, I

[00:09:00] haven’t unit tested this very well.

[00:09:03] And how is Microsoft using this?

[00:09:05] I swear to God, I’ve barely, I have not tested this properly.

[00:09:08] Just craziness.

[00:09:09] So, yeah.

[00:09:11] Wow.

[00:09:11] It’s, and the truth is, so let me fill in some gaps maybe for, for people who are

[00:09:16] unaware of why this is a big deal and why, you know, why, um, why having an

[00:09:23] engineering background would be more kind of expected in this scenario, doing

[00:09:29] animation stuff is pretty tough, right?

[00:09:32] Um, but beyond that, jQuery at the time that you released velocity JS was, um, to

[00:09:38] put it, you know, very simply, it was the leading JavaScript, everything on the

[00:09:44] web, essentially every, every person writing JavaScript, um, either knew about

[00:09:49] jQuery and decidedly, uh, chose not to use it or they use jQuery, right?

[00:09:55] Uh, there’s, there was no, um, there was no kind of in between.

[00:09:59] It wasn’t like there was a war amongst a lot of options instead.

[00:10:04] The, this was kind of the thing to use.

[00:10:06] And so there were tons of animation kind of, uh, uh, stacks that were built on

[00:10:12] top of jQuery as a result.

[00:10:13] And so, um, for, for Julian to come in and build a, a library that essentially,

[00:10:22] uh, uh, directly challenges jQuery without a computer science degree is

[00:10:28] very much so, I guess you could call it like a David and Goliath story, even

[00:10:33] though they aren’t necessarily against you.

[00:10:35] And as it turns out, eventually, uh, we’re quite the opposite.

[00:10:38] Uh, you decided to work together.

[00:10:41] Uh, this is, this is not really what you would expect as a brand new developer

[00:10:46] to be able to write this, this, uh, this thing kind of out of the gate that ends

[00:10:51] up being such a powerful and important piece of software for the web and not

[00:10:56] just for the web, but for the browser really.

[00:10:59] Yeah, it’s, it’s truly was the first project I’d ever coded from start to

[00:11:05] finish and release publicly, or even any sort of production environment.

[00:11:09] It truly was the first thing.

[00:11:11] Um, and I think I credit its completion to one, my sort of fanaticism and two,

[00:11:18] uh, the realization that if this doesn’t work, uh, it could break a website.

[00:11:24] It could not, it could, it could, a modal might fail to animate to full

[00:11:28] opacity and so a site might not work.

[00:11:30] And so I got pretty obsessive about, uh, just trying to, I actually bought

[00:11:34] maybe 12 different devices and sync them up through this like ghost browser thing.

[00:11:39] I forget what it was called and just test religiously the absolute wrong way.

[00:11:43] But my point is I became compulsive about ensuring I was doing the best job I

[00:11:47] could from a de-risking perspective.

[00:11:50] And I figured if I coupled being obsessive about de-risking with being

[00:11:53] obsessive about understanding everything, one could know about performance.

[00:11:56] So I could squeeze out the most performance out of this engine

[00:12:00] versus anything else out there.

[00:12:02] I was like, that should be enough.

[00:12:03] And if I focus on that, it doesn’t matter how well it’s architected.

[00:12:06] It just matters how, how much fun I’m having and whether I’m

[00:12:09] going to see this to completion.

[00:12:10] And that’s really, um, most of the battle.

[00:12:13] I think most people simply don’t complete their projects.

[00:12:15] You, you’ve mentioned this word a few times, and I think it’s incredibly

[00:12:19] important to kind of pull out and maybe inspect a little bit deeper.

[00:12:23] The word obsession.

[00:12:24] Um, I’d love for you to tell me, tell us first, is this something that you

[00:12:28] feel like as a part of your kind of DNA where have you always been, um, you

[00:12:33] know, in the positive sense of the word obsessive about the things that you do?

[00:12:38] And number two, how can developers cultivate and, uh, perhaps use

[00:12:44] obsession to their advantage?

[00:12:46] Uh, because obviously, you know, this, this was a key part in the development

[00:12:50] of this very successful project.

[00:12:52] Um, you know, saying that, or I guess accepting the idea that luck was

[00:12:58] involved beyond luck, you know, your obsession kind of gave you that other

[00:13:03] factor, maybe of grit, and I’d love to know, you know, how do you stay

[00:13:07] obsessed or cultivate that obsession?

[00:13:11] For me, I think obsession is, is basically shorthand for the combination

[00:13:17] of flow and the joy of hacking stuff together.

[00:13:24] And if you are in a flow state while incrementally hacking something together,

[00:13:30] obsession naturally follows.

[00:13:32] And so I’m actually misusing the word obsession because it’s not an obsession

[00:13:35] where I feel truly emotionally compelled to do something.

[00:13:39] It’s just that I don’t want to break my momentum and it is so pleasurable to

[00:13:45] stay in this, stay in this momentum.

[00:13:46] Like the dopamine hits are so real and so, uh, recurring that the inertia

[00:13:53] is really what I’m describing.

[00:13:55] And so when I think I’m good at identifying things that cultivate

[00:14:00] inertia in me, because I think I know what I like.

[00:14:05] And so when I can identify something I like that can be hacked and has a reward

[00:14:11] cycle that enables flow, then game over, I’m going to be locked into it.

[00:14:16] I’m going to get it done.

[00:14:17] So a couple of examples of velocity, of course, is one in the form of hacking

[00:14:22] together performance benefits and the flow state there is I would find

[00:14:25] a performance benefit, I would then run my test suite, I would see the decrease

[00:14:31] in lag or the increase in frame rate.

[00:14:34] And that back and forth reward cycle, uh, creates a lot of inertia where

[00:14:39] I keep wanting more and more and more.

[00:14:40] Basically gamifying my pursuit.

[00:14:43] And another example is the writing I do on julian.com, which is very much the

[00:14:47] same thing where let’s say I’m writing a guide on how to write well, I will

[00:14:52] start by obsessively finding every single book ever written on how to write on

[00:15:00] Amazon with decent reviews and a certain threshold, like a threshold count of

[00:15:04] reviews, and I will buy them all.

[00:15:07] I will read every single one start to finish, no matter how boring.

[00:15:12] And I will try to pluck out the gems of wisdom, the diamonds in the rough, even

[00:15:17] if the book’s terrible and then I’ll collate all those together.

[00:15:20] So at this point, my flow, my reward system is just, did I find a diamond

[00:15:25] in the rough, every few pages, great copy paste, throw into a document.

[00:15:29] And now I’m collecting and incrementing hacking together this giant rubric of

[00:15:34] how does one write phenomenally well.

[00:15:36] I’m not saying I’m there, but I will get there thanks to this process.

[00:15:40] And so as I hack that together, I can then formulate and figure out the natural

[00:15:45] structure of how to teach that to other people.

[00:15:48] So, um, I would say almost everything I do follows this same pattern.

[00:15:53] And if I were to try to, um, uh, help others to, to repeat those steps beyond

[00:15:59] what I’ve just mentioned, it’s have a real understanding of what it is you like.

[00:16:03] And that usually comes about from trying a lot of stuff.

[00:16:06] And just being honest with yourself.

[00:16:09] We talked about this in today’s episode and we talk about it in

[00:16:13] other episodes on developer T.

[00:16:15] One of the worst things you can do is waste your time.

[00:16:19] And sometimes that’s not so easy to figure out exactly how you waste time.

[00:16:26] Managed cloud services save developers time and effort.

[00:16:30] It wouldn’t really make sense, for example, for you to build your own

[00:16:33] logging platform or your own authentication stack or your own content

[00:16:38] management system, when a managed tool or an API can solve the problem and

[00:16:44] often solve it better than you could in the first place, but how do you find

[00:16:48] the right services to integrate?

[00:16:50] And on top of that, how do you take the, uh, the biggest advantage of these

[00:16:54] services and stitch them together in really unique and powerful ways?

[00:16:58] And how do you manage access to all of this and the credentials between

[00:17:02] multiple projects and multiple teams?

[00:17:04] Managing these details alone is essentially a full-time job.

[00:17:09] Manifold makes your life easier by providing a single workflow to organize

[00:17:13] your services, connect your integrations and share with your team.

[00:17:17] You can discover the best services for your projects in the Manifold

[00:17:20] marketplace, or you can bring your own custom integrations and manage them

[00:17:24] all in one unified dashboard with services covering authentication, messaging,

[00:17:30] monitoring, content management, and more, Manifold will keep you on the cutting

[00:17:35] edge so you can focus on building your project rather than focusing on problems

[00:17:39] that have already been solved.

[00:17:41] Once you have the services you need, you can deliver your configuration to any

[00:17:44] environment and deploy on any cloud.

[00:17:46] Now, while Manifold is completely free to use, by the way, that’s a

[00:17:50] huge reason to support them.

[00:17:53] If you head over to Manifold.co slash DevT, that’s Manifold.co slash DevT,

[00:17:59] you’ll get a coupon code for $10, which you can use to try out any service on

[00:18:04] the Manifold marketplace.

[00:18:06] That’s 10 bucks basically for free.

[00:18:09] Just for being a developer T listener, head over to Manifold.co slash DevT

[00:18:13] to get started today.

[00:18:14] Thanks again to Manifold for sponsoring today’s episode of developer T.

[00:18:20] That is extremely important.

[00:18:23] Um, that that’s kind of the whole point of this show, actually.

[00:18:27] I’m glad that you, that you kind of backed your way into that as you went

[00:18:32] along, because the whole point of this show is to kind of uncover your purpose.

[00:18:35] And one of the real and very important aspects of your purpose is

[00:18:39] understanding what you like, right?

[00:18:41] That’s that they’re in some ways they are kind of orthogonal to each other.

[00:18:47] The idea that we have, you know, preferences, um, and when we combine

[00:18:52] those preferences with the values, uh, the things that we care about being true

[00:18:56] or, uh, the, you know, the ethics that we want to forward in the world, the legacy

[00:19:02] that we want to live, leave behind for, you know, the next generation or, you

[00:19:06] know, how we want to impact the other people around us.

[00:19:08] Uh, when we combine our preferences with that, then we come up with something

[00:19:12] that we really do actually care about, right?

[00:19:16] And that care can fuel us.

[00:19:18] And I love that flow state for you and this reward cycle, you’re gamifying

[00:19:25] and using your preference.

[00:19:26] It’s kind of a two-sided sword, uh, to approach mastery here.

[00:19:31] You’re using all of these kinds of psychological principles, uh, to set

[00:19:36] yourself up for a pursuit of mastery on a given subject.

[00:19:41] Exactly.

[00:19:42] And I think a key ingredient that some may overlook is actually being interested.

[00:19:49] And so it’s the interest plus the sort of game of the self gamification.

[00:19:54] You need both to attain mastery.

[00:19:57] Um, I feel pretty strongly about that.

[00:20:01] So your interest in, uh, in browser, uh, performance, what do you think is kind

[00:20:07] of the deeper thing that caused you to be interested in that, and we’re

[00:20:11] just using this as an example, there’s certainly more things.

[00:20:15] It’s a really good question.

[00:20:16] And I actually know this because I had to think about this a couple

[00:20:20] years ago for an interview.

[00:20:21] And I realized it was having watched, I think iron man, uh, the first, and I

[00:20:27] saw the animations in Tony Stark’s heads up display within the helmet.

[00:20:33] I thought, damn, that’s really cool.

[00:20:35] How neat would it be?

[00:20:36] Uh, because VR was coming out around the time, uh, the first version of the

[00:20:39] second dev kit version of the Oculus was coming out around the time that I was

[00:20:43] releasing velocity and I thought, how cool would it be, uh, if, if we could

[00:20:48] replicate those, those HUD effects in the Oculus and I could power it using

[00:20:54] JavaScript because I didn’t want to have to learn, uh, or whatever was being

[00:20:58] used then to make Oculus, uh, games.

[00:21:01] And I wanted to empower everyone to do really cool stuff.

[00:21:03] And I thought that would be one of the raddest things ever.

[00:21:05] And so it was something about getting that cool sort of superhero animation

[00:21:10] effects that mixed with the beautiful trailers before, uh, these types of

[00:21:16] movies, I wanted to see if those could be replicated on a website, not as a

[00:21:20] video, not as web GL, but like divs and tables, you know, um, and that to me, I

[00:21:26] get a huge kick out of gorgeous, uh, web animation for whatever reason.

[00:21:32] I just find that or animation anywhere, frankly, HUDs websites.

[00:21:36] And so it just wasn’t possible to do it very well in pure JavaScript, which

[00:21:41] is the most accessible language to the highest number of people who know how to

[00:21:44] code.

[00:21:45] Yeah, wow.

[00:21:47] And so there’s, there’s this kind of factor.

[00:21:50] And I think on this show, uh, maybe there’s, you know, I, I, I try to play

[00:21:55] out what I think people who are listening to the show are saying in their heads

[00:21:59] when they hear, uh, when they hear me discuss something.

[00:22:02] And I think one of the things, one of the narratives about this show that may be

[00:22:05] believed is that I’m extremely serious.

[00:22:08] Let me, let me kind of break that down.

[00:22:11] Your purpose has to be some altruistic motive and that, uh, everything has to be

[00:22:16] about, you know, making the world better in some fundamental way.

[00:22:21] And that’s not, that’s not at all the case.

[00:22:24] There are so many things that go into this and your example here is, is a

[00:22:29] perfect example of this, uh, that you watched an, a really cool trailer that

[00:22:34] somebody used probably after effects or something, and they built this awesome

[00:22:38] animation and you wanted to make this, this kind of, um, this movie fantasy

[00:22:44] thing a little bit more accessible.

[00:22:47] And that can be a purpose for a person because you just really enjoy it.

[00:22:53] You think it’s super cool, right?

[00:22:54] That’s, it doesn’t have to go, you know, deep to your core and your identity as a

[00:22:59] human to be a valid reason to do something.

[00:23:04] Absolutely.

[00:23:04] And I think that comes down to time horizon.

[00:23:08] So in the short term, I think it’s okay to have a non altruistic, a low sort of,

[00:23:14] um, purpose pursuit so long as you’re loving it.

[00:23:19] Uh, but I would not want to be the guy who was doing, uh, HUD animations or heads

[00:23:24] up display animations, uh, throughout the majority of my working life.

[00:23:28] Cause if I look back when I’m 80 as per Jeff Bezos is regret minimization framework,

[00:23:34] um, where, you know, choose what you work on in a way that if you were 80, looking

[00:23:40] back at where you are now, you would not have regretted not doing something else.

[00:23:44] And, um, so back to my points, I would not want to be doing that forever, but in the

[00:23:50] short term, it’s a wonderful excuse to have fun while learning.

[00:23:56] And once you’ve gotten those learnings, then you can apply those to something

[00:23:59] that you find more meaningful.

[00:24:01] Now I’m not saying one cannot find lifelong purpose in something like this,

[00:24:05] but I could probably make a decent argument that most couldn’t and most

[00:24:10] people would want something deeper.

[00:24:12] And so I think again, it comes back to time horizon.

[00:24:15] Uh, how old are you?

[00:24:16] What is the short term?

[00:24:18] Uh, and can you do a purpose this pursuit to gain mastery on something that could

[00:24:23] then serve you in perhaps a larger vision?

[00:24:26] Yeah, and I think it’s also important to understand that like these things stack,

[00:24:32] right?

[00:24:32] It, there’s not just a, a single, you know, outcome from this.

[00:24:37] You mentioned learning, but there’s, there’s so many other things you make

[00:24:40] connections along the way, right?

[00:24:42] Um, you actually, uh, had a chance to learn, you know, it’s not just learning

[00:24:47] about JavaScript, maybe it was learning about some, some of the fundamental ideas,

[00:24:52] uh, and the modeling of animation, um, maybe things that you hadn’t experienced

[00:24:58] before.

[00:24:59] And so the learning is, you know, at a fundamental level, it’s experience,

[00:25:06] right?

[00:25:06] And so if we take our experiences and we stack them together, then even the

[00:25:11] things that, like you say, are on the short time horizon can absolutely be

[00:25:16] stepping stones to those longer term visions that we have.

[00:25:20] And that was exactly the case for myself.

[00:25:22] So let me walk you through the byproducts of having pursued velocity.

[00:25:28] So I built the animation engine.

[00:25:30] I pushed it out there.

[00:25:31] I was living in Vancouver, looking for an excuse to somehow come to California.

[00:25:36] And keep in mind, it’s not that easy to get a green card.

[00:25:40] Um, certainly not if you’re unwilling to work for someone else.

[00:25:43] I wasn’t quite sure how I was going to come to California because I was

[00:25:47] already working on my own stuff.

[00:25:49] And so I released this animation engine and WhatsApp, Adobe, Google, um, few

[00:25:57] YC companies, white commoner companies, uh, wanted to work, wanted to hire me.

[00:26:02] And it was enough of a sort of kick in the butt, like fire into my butt and

[00:26:07] say, you know what, let me, let me go work for someone.

[00:26:09] And I, despite, let me stop the startup.

[00:26:11] I’m pursuing, let me go and work for someone because I really want to be in

[00:26:15] the U S I want to be around awesome people.

[00:26:17] And that led me to the second byproduct, which was there was a period there may

[00:26:23] still be, I don’t, I don’t, I don’t have a poll for this, like Libscore is a poll

[00:26:26] for library usage, but where a lot of people had heard of velocity, a lot of

[00:26:31] people were using it, a lot of people subsequently or consequently knew my

[00:26:34] name in San Francisco in particular.

[00:26:38] And so, uh, so a bunch of people sort of follow me on Twitter and this

[00:26:42] little, this, this tiny little bit of clout I had, I was able to leverage

[00:26:46] into meeting just what everybody I had wanted to meet.

[00:26:49] So CEOs, uh, people who are, who are working on major open source projects, um,

[00:26:55] writers, all sorts of people.

[00:26:57] And it was because I looked like I had, I had something, I had a following at

[00:27:01] some sort of social proof as a result of velocity and it’s adoption.

[00:27:07] And another thing that happened with velocity is I released it and, uh,

[00:27:12] Stripe offered the open source grant to me, which is a program they’re running

[00:27:17] to, uh, fund open source project developers to come work out of their

[00:27:21] offices, um, and work on those projects in their, in the Stripe environment

[00:27:26] surrounded by all those smart people and resources.

[00:27:29] And so I got that and that was an amazing, that changed my

[00:27:33] whole career trajectory doing that.

[00:27:35] And so one thing I want to point out before I wrap up with like, with my

[00:27:38] list of velocity byproducts with none of which were planned, uh, all of which

[00:27:43] just came about naturally from the following thing, I grew velocity and

[00:27:49] that that’s another key distinction that, well, let me step back a bit.

[00:27:53] So there’s kind of two problems that I think a lot of open source developers

[00:27:56] face, one is they don’t finish the projects and another one is they don’t

[00:28:00] then grow it after they finished it.

[00:28:03] And when I say grow, I mean market, you know, get the word out.

[00:28:06] And when you don’t grow your open source animation, animation

[00:28:10] engineer, whatever your project is.

[00:28:12] Uh, what was the point of building it?

[00:28:15] You built it for yourself.

[00:28:17] Okay.

[00:28:17] Well, how about you put in now 10% of the time it took you to build a thing.

[00:28:22] And if you want to do the truly altruistic thing, allow other people to

[00:28:25] hear about it so their lives can be bettered by what you’ve done for yourself.

[00:28:30] If it lives in a little chamber, uh, that was actually a pretty selfish act.

[00:28:34] It was not also the best use of time, probably.

[00:28:36] So there’s this sort of, um, angst, some, like if you consider the

[00:28:43] cliche of the like Linux neckbeard guy, who’s like, yo, I’m going to build it.

[00:28:47] Well, like he wouldn’t say, yo, first of all, but he would say, I’m going to

[00:28:49] build this thing and I’m not going to market this when people will come to it.

[00:28:54] They’ll either see it’s merit or they won’t.

[00:28:56] Um, and so these are the type of people who, as, as this cliche goes, are

[00:29:01] unwilling to do, you know, quote unquote, cheesy, gross, salesy marketing,

[00:29:06] but you’re short selling yourself.

[00:29:09] Uh, it’s not cheesy and gross.

[00:29:10] You’re doing the world a favor.

[00:29:12] And so to wrap all this up, I put in, I actually, I explicitly thought to

[00:29:17] myself after I released velocity, I said, that took a long time.

[00:29:21] That was like eight and a half months of my life.

[00:29:24] I’m now going to spend at least a month and a half doing nothing, but full

[00:29:28] time getting the word out.

[00:29:29] And that’s exactly what I did.

[00:29:31] And that is what led to this momentum of awareness, which led to all

[00:29:34] those byproducts that I mentioned.

[00:29:37] Wow.

[00:29:38] And there’s so much to unpack, uh, in this story and in the particulars of

[00:29:43] the story, and I, especially, I want to focus on this last thing that you

[00:29:47] mentioned, the idea that to work on a project for myself and to not put

[00:29:52] marketing effort into it, not grow it, not share it with the world, um, you

[00:29:56] know, for example, not taking the time to even write documentation, uh, for

[00:30:02] the thing that you built that is open source and available to the world.

[00:30:06] And that that is, uh, that’s actually in a way is a selfish act.

[00:30:12] And the idea here, I think perhaps the reason for this actually, uh, the

[00:30:17] reason this happens more often than it should is maybe connected to our fear

[00:30:25] that what we make is not valuable.

[00:30:28] And it may actually be, uh, a bit of, um, you know, imposter syndrome that’s

[00:30:35] happening where somebody says, Hey, you know what, I’m going to make my

[00:30:38] own little animation library.

[00:30:40] Imagine in an alternate, you know, parallel universe or something, Julian,

[00:30:44] you decided to make your own animation library, but because you’re not trained

[00:30:48] and because, you know, there’s this huge juggernaut jQuery, um, and because you

[00:30:53] didn’t write the unit tests and you know that you didn’t do it that, you

[00:30:57] know, the quote right way, you decide not to tell anyone about it.

[00:31:03] And in fact, you don’t even name it velocity.

[00:31:04] You just named it Julian dash animation dot JS, right?

[00:31:08] And then it goes away and nobody ever knows about it.

[00:31:11] And unfortunately, you know, all of these kind of mental models, these

[00:31:15] preconceptions that we have about the world and about our place in the world

[00:31:19] and about our participation in the world, they can fall apart.

[00:31:23] Uh, they, they fall apart because we don’t really play it out.

[00:31:27] And this, this perspective that we have of ourselves and the work that we do as

[00:31:31] not very valuable really is, is often incorrect in one way or the other.

[00:31:38] Sometimes we overvalue the things that we, that we create.

[00:31:41] Uh, but more often than not, these open source projects is open

[00:31:44] source scripting, even right.

[00:31:47] Very simple stuff, even at the work that I’m doing at clear bed.

[00:31:50] Sometimes we have really simple things that if we were to share them with each

[00:31:55] other, I encountered one, uh, recently, it was actually filters for Gmail, such

[00:32:00] a simple thing, right?

[00:32:02] And it seems like, oh, this is just for me.

[00:32:03] This is something that I don’t really need to share because certainly

[00:32:06] everyone else has filters.

[00:32:08] Certainly everyone else has already solved this problem, but as it turns out

[00:32:12] that one thing saved me a massive amount of time and headache of trying to go

[00:32:17] through and figure out filters for myself.

[00:32:19] And somebody shared their filters with me and this simple act of sharing, even

[00:32:23] if it doesn’t end up going gangbusters, you know, blowing up and jQuery asks,

[00:32:28] you know, comes knocking on your door and asks to merge with you.

[00:32:31] Even if you don’t have the same success story that Julian you’ve had, that

[00:32:35] doesn’t mean that sharing that value won’t provide some benefit, not only to

[00:32:40] other people, but also to you.

[00:32:43] And I think that’s really kind of the ultimate moral of this story,

[00:32:46] Julian.

[00:32:47] Yeah.

[00:32:47] If you’re honest with yourself, that you are solving a problem, meaning if the

[00:32:52] problem you choose to solve through your open source project is one that actually

[00:32:57] exists and hasn’t been adequately solved, meaning if you’re just being blind to

[00:33:01] the reality that it is actually a solved problem, then at least one other person

[00:33:05] is going to have your problem.

[00:33:07] And most likely many other people will have that problem because if you’re

[00:33:11] working in JavaScript, a lot of the problems are universal.

[00:33:14] And so, uh, let them, let the market using growth and sales terms actually dictate

[00:33:21] whether it’s valuable or not.

[00:33:23] Uh, don’t prejudge if you solve your own problem, that’s enough of a criterion

[00:33:28] to say, let’s see what other people think and to give it a real shot to know what

[00:33:33] other people think you have to do at least a little bit of marketing.

[00:33:36] And that’s, that’s something that we’re going to talk about, uh, pretty at length.

[00:33:42] This is something that you care a lot about.

[00:33:43] And it’s really what you do kind of as, as your bread and butter business, right?

[00:33:48] Uh, the work that you do at bell curve is all marketing and growth, correct?

[00:33:53] Yeah, that’s right.

[00:33:54] And the itch for that came about from the obsession I had growing velocity.

[00:34:00] So the, the, the flow state and the reward cycle of building velocity, looking

[00:34:06] at the browser performance hacks, then translated to, or transferred to the

[00:34:11] actual growing process of velocity, where I would get a little bit of blog post

[00:34:16] coverage, get a little bit of adoption and the reward cycle was fulfilled by

[00:34:21] seeing the additional GitHub stars.

[00:34:23] It’s a superficial metric, but it is a proxy for general adoption.

[00:34:27] It’s, it’s something.

[00:34:28] And so that cycle took off and I was like, oh, well, how else can I get the word out?

[00:34:33] How can I get 5,000 more GitHub stars?

[00:34:35] How can I get, you know, Samsung to use this?

[00:34:38] And that’s, that just became its own part of my life for a few months.

[00:34:42] And I pause and said, all of these skills I’m learning how to get the word out

[00:34:48] systematically, um, they apply equally to a startup.

[00:34:53] In fact, they apply better to start up because you can do so in service of

[00:34:56] actually, uh, earning revenue and you can put money in to put poor fuel on that

[00:35:02] growth fire, because with velocity, I’m at the mercy of my purely my wits and my

[00:35:06] resources and my social networking, essentially, cause I’m not paying for any

[00:35:10] of this coverage.

[00:35:11] And so it comes down to, well, how else can I use these skills?

[00:35:15] But most importantly, I fell in love with the process and I realized this is the

[00:35:21] branch in my career that I’m now going to pause at and choose a direction.

[00:35:26] And I chose, yes, use these skills I’ve developed and pursue growth

[00:35:31] marketing, uh, which I’ll define briefly.

[00:35:34] So you have your marketing, which is, you know, all encompassing getting the word

[00:35:38] out about your thing and then growth marketing is specifically the subset of

[00:35:43] marketing focused on moving the needle on your metrics.

[00:35:45] So improving revenue, doing so in a calculated and attributable way.

[00:35:50] So, you know, it’s positive return on investment.

[00:35:53] That’s what growth marketing is.

[00:35:54] You can contrast that to say brand marketing, which is kind of like scratching

[00:35:58] your back, getting the word out, sponsoring a conference, you know, putting up flyers.

[00:36:02] Like, you don’t know how well that’s performing.

[00:36:04] It’s probably not doing that good of a job.

[00:36:06] You’re kind of getting the word out.

[00:36:07] That’s what I don’t do.

[00:36:09] Uh, it’s just less effective for all the things I’m interested in.

[00:36:12] Thank you for listening to today’s episode of developer T and a huge thank you to

[00:36:16] Julian Shapiro for joining me on the episode, head over to julian.com and sign

[00:36:21] up for updates when Julian writes, he releases these guides, they’re completely

[00:36:25] free and they’re incredibly useful.

[00:36:27] Head over to julian.com.

[00:36:29] Thank you so much for listening to today’s episode and thank you for

[00:36:31] heading over to check out manifold manifold.co slash dev T you get $10

[00:36:38] worth of credit for free just for being a developer T listener.

[00:36:41] And by the way, manifold is free to use.

[00:36:44] Go and check it out manifold.co slash dev team.

[00:36:47] Thank you so much for listening.

[00:36:47] If you heard anything useful, anything valuable in today’s episode, then it’s

[00:36:52] probably a pretty good bet for you to subscribe and whatever podcasting app you

[00:36:56] use because we do episodes like this one on a regular basis, three episodes a

[00:37:01] week and subscribing is the best way to make sure you don’t miss out on future

[00:37:06] valuable episodes.

[00:37:07] Thank you so much for listening and until next time, enjoy your tea.