logo

Indie Hackers

Get inspired! Real stories, advice, and revenue numbers from the founders of profitable businesses ⚡ by @csallen and @channingallen at @stripe Get inspired! Real stories, advice, and revenue numbers from the founders of profitable businesses ⚡ by @csallen and @channingallen at @stripe

Transcribed podcasts: 277
Time transcribed: 11d 5h 6m 45s

This graph shows how many times the word ______ has been mentioned throughout the history of the program.

What's up, everybody? This is Cortland from AndyHackers.com, and you're listening to the
Andy Hackers podcast. On this show, I talked to the founders of profitable internet businesses,
and I tried to get a sense of what it's like to be in their shoes. How do they get to where
they are today? How do they make decisions at their companies and in their personal lives,
and what exactly makes their businesses tick? And the goal here, as always, is so that the
rest of us can learn from their examples and go on to build our own successful internet
businesses. Today, I'm talking to Adam Wadden. Adam is a guy with a very diverse set of interests.
He's a powerlifter, he's a musician, a podcast host, but he's also a software engineer, an
educator, and an Andy Hacker. And he does each of these three things in concert. In 2016,
Adam decided he was going to make a full-time living helping other developers build awesome
software. And since then, he's done $2.5 million in sales of his books and courses.
So Adam, welcome to the show. It's a pleasure to have you.
Hey, thanks for having me.
I was just watching live YouTube casts that you did earlier this week. I think it was
a couple of days ago. And you were trying to work on some sort of CSS issue, putting
together a website using your latest framework. And it was really cool to watch because you
had hundreds of people tuned in, and they were really just learning by watching you learn.
They were watching you tinker with things and change your CSS to try to get your website
to look exactly the way that you wanted it to look. It was pretty obvious that you were
enthusiastic about all of this. Do you think that being passionate about learning and really
enjoying that process is required for being a good educator? Or do you think it's good
enough just to like the teaching side of things?
Good question. I think probably it helps to be excited about learning yourself, to be
paying attention to the things that work for you. I've always been just a voracious learner
like my whole life. Anytime I learn about some topic that interests me, I can't resist.
But to just like dive into every corner and find out every piece of information that exists
about it on the entire internet. My sort of personal obsession with learning definitely
contributes to my ability to teach topics for sure.
We've obviously learned a lot because today you are selling these books and courses that
people love and that help many thousands of software engineers get better at their jobs.
How did you first learn to code yourself?
I have a couple different memories of what my first programming experience was, but maybe
that just goes to show that I've just been exposed to it in a couple different ways throughout
my life. But when I was in school, I remember this is back in the era where all schools
had Apple computers in the classrooms. You had the three Mac computers in the whole school
or whatever. We used to spend a lot of time messing around with HyperCard. HyperCard was
probably one of the first environments that I learned how to make a computer do things.
So even when I was in grade, probably grade five, grade six, a couple other kids that
were in my class with me, I was in a gifted program. So I was surrounded by a lot of smart
people who had a lot of different experiences with things.
But we'd be messing around with HyperCard, trying to make little games where you'd be
navigating, moving characters around with the arrow keys and opening doors with a space
bar and learning how to do stuff like that. And that was really fun. So that was one of
my early experiences of programming. Another was when I was a kid, I was like super obsessed
with pro wrestling. That was like my whole life when I was like eight, nine years old,
I love pro wrestling. And I would download these like wrestling emulator apps that weren't
like games. They were just like text based tools that would like programmatically generate
the outcomes of different matches that you would set up and stuff like that. People used
to use them to run like online role playing like wrestling simulator sites. So I would
always be trying out all these different tools. And one day I stumbled across a tutorial on
how to like build your own wrestling simulator with Q basic.
So that kind of got me down this path of like learning Q basic. And eventually I got obsessed
with trying to learn how to build like an RPG engine with Q basic. There's all these
cool tutorials about building different tiling engines and stuff. So I'd learn about some
of that stuff. Oh man. Then eventually like once I was in high school, we started actually
having like computer programming classes offered in high school. So I did a bunch of computer
programming there too, like learning some C we did like languages like Turing and Pascal
and different classes. Eventually we did some Java, some one year was like web focused.
And when I was in my early teens is when I got really excited about like building stuff
on the web versus like compiling stuff with Q basic to make these little like, you know,
DOS based programs and stuff. But that's when I started learning HTML and trying to make
websites and stuff. And eventually went to university for computer science, but actually
only stayed for one semester and then dropped out because I just wanted to play in my band
and wasn't really enjoying the academic environment. Probably like five or six years later, I kind
of like rekindled my excitement for programming because I hadn't done it at all in a while.
When I was, I opened a recording studio just like out of my house recording local bands.
And the software that I used to record the bands is called Reaper, which is made by the
guy who made Winamp back in the day. It's like a really, really hacker friendly, like
digital audio workstation. So you could write your own plugins in Python or even in C plus
plus. I had a bunch of ideas for features that I wanted to add to the software to make
like my life easier as an audio engineer. Through like IRC, I just kind of got hooked
up with this guy who had been making plugins for it and was like a really talented C plus
plus developer. And he helped me sort of set up a project in C plus plus to start writing
my own plugins and kind of mentored me and answered my questions and stuff. So I started
making plugins to simplify like drum editing or all sorts of interesting things with this
tool. And when I was doing that, I started to, I kind of rekindled my excitement for
programming and reminded me how much I loved it because I hadn't done it in a few years
and sort of forgotten how enjoyable it was. And it got to a point where I was having more
fun just like extending this tool than I was actually recording bands and working on music
stuff. So I went back to college for like a two year program in software engineering,
just so that I could get like a co-op position so I could get some experience and be able
to get a job. I did that when I was like 25. Yeah. Then I spent a couple of years working
in agencies doing stuff. And then I started working on my own products and here we are
today.
It was a long winding story to how you learned how to code with on periods and off periods,
a lot of tinkering, a lot of formal learning as well. What do you think was the most transformative
period where you really learned the fastest or you learned the most?
I think probably in college and not necessarily because of what we learned in college, although
the program had a pretty good curriculum. It wasn't like a computer science curriculum.
We did do stuff with algorithms and data structures and stuff, but we also had courses on software
quality and automated testing and lots of stuff that was a lot more practical building
software and not just like the math of computer science. That's when I got really, really
excited about software design because before college it never really even dawned on me
that making code good was a thing. It was just like, I have a computer. I want to make
it do some things. These are the things I type that make it do that thing. And yes,
it's creative unless, yes, it's fun, but I never really noticed that there was an element
of craftsmanship to it at all. It was just all about getting the computer to do what
I want. And that was exciting enough. I didn't really think of any concept of refactoring
or keeping code clean or design, trying to come up with solutions that were scalable
or maintainable. So when I started to learn a little bit about some of those elements
in school, that got me really excited and sent me down this path of reading a bunch
of classic software design books. In my memory, that's the period where I remember just really
leveling up and getting better at this stuff, learning about TDD, learning about reading
Martin Fowler's refactoring book. I think the first book that I read that really answered
some questions for me and helped me was Agile Patterns, Principles, and Practices in C Sharp
by Uncle Bob. So that was a really exciting time that I remember just devouring all this
information and learning about polymorphism and object-oriented design and TDD and stuff
like that. I assume you're talking about your second stint in college because your first
stint you dropped out after only a semester. What was it like making that decision? Was
this like you following your heart to pursue your passion of being in a band? What was
going on? I think the problem for me was I was going to a university that was a 40-minute
drive away and I was living at home because I didn't want to accrue a bunch of debt living
on campus or whatever. Because of that, I was driving to school, going to my classes,
not really being around outside of class. I wasn't really meeting people or making friends.
I just had a hard time getting absorbed into that university environment. It was very much
like a thing that I was doing on the side where my real group of friends was still at
home. None of those people were in school. We were doing music stuff together. It was
hard for me to let the university stuff take over my life and me feel like a university
student. It just felt like this annoying chore on the side of my real life. I just didn't
put in the effort to get into it. I also think the way the curriculum was structured was
not really super fun either. In Canada, at least, we use university to talk about places
where you go for a four-year degree, in college where you go for a two-year diploma. Our colleges,
I think, are close to what you call community colleges in the States. The college curriculum
was just so much more hands-on and practical. It was much more like an apprenticeship than
it was some sort of study. That just resonated with me a lot more. There was so much more
project-based and making stuff. When I was in university, we had exams where I would
have to write programs on paper with pencil. Full programs. There were multiple pages long
and they had to be right the first time. It was just not really for me. I like tinkering
and watching the things actually happen on the computer and getting to experience the
fruits of my labor.
Who is that for? Why is that even a thing?
I don't know. I think education around teaching people to be software developers is pretty
broken in a lot of ways in those institutions. I know there's a lot of improved versions
of that. Lambda School is a really exciting initiative that I think is doing a good job
teaching people to be developers in a practical and effective way. The old school university
institutions, I don't think, do a very good job preparing people to actually be developers.
I feel like to learn to be a software developer should be treated much more like learning
to be a carpenter or something. Something where you actually get to learn from other
people and actually do the job, whereas universities tend to focus on a lot of the theoretical
stuff that isn't necessarily preparing you for working in the field. They're preparing
you for being a computer scientist, which is fine, but a lot of people go to university
for computer science because that's the closest thing to anywhere that you can go to pay money
to become a programmer. The goals are a little bit misaligned, I think.
Yeah, that was me. I went to college to get a CS degree, and I didn't really like the
classes that much. I was much more excited about coding stuff on my own, meeting up with
friends and other people who were getting CS degrees and working on our own online projects.
That's what really drove my education, I think. Anyway, you spent a long time learning, and
now you are a teacher. How do you think the time that you spent learning affected your
approach to teaching others?
I'm still learning. I'm not really happy unless I'm learning, unless I have something that
I'm excited about that I'm diving into and trying to get better at. I can't say I have
a really great answer for how I think being obsessed with learning specifically influences
my ability to help other people learn, other than that I have to believe that caring about
learning and wanting to learn things myself must influence how I structure material and
stuff to help things resonate for people that think the way I think anyways.
The best I can do is try and design something that makes sense for me in terms of how to
teach something. Probably the common thread between all the educational stuff I've ever
made has always been trying to make the learning resource that I wish I had when I was trying
to learn a particular topic. A lot of the stuff that I've worked on has been basically
targeted from me learning a bunch of things from a scattered bunch of resources all over
the place and trying to pull it all together into something that makes sense in a cohesive
way.
When I was working on a test-driven development course for PHP developers, there wasn't really
any good information out there specifically targeted at PHP developers or people who used
Laravel, which is the framework I use as the example for everything. There was tons and
tons of really good information in the Ruby and Rails communities and even in the Java
communities, but a lot of people in my community won't make the journey to go and learn another
language so that they can learn some principles to apply back to where they actually work.
Whereas me, I'm obsessed with getting to the bottom of things and learning every nook and
cranny of everything, so I'll learn whatever I need to to understand some book that's about
Rails that I don't know anything about Rails or whatever. I'll learn Rails and I'll learn
Ruby so I can learn the concepts and bring it back.
When I was really obsessed with powerlifting, I was reading Russian strength training manuals
and stuff and translating them to English so I could find out what approaches and stuff
people were using in different places. I'll go to the ends of the earth to find the information
that I want. A lot of other people, that's just not the way that they operate. What I've
done a pretty good job at and what's worked well for me is to take that natural inclination
that I have and use that to make things easier for other people by sailing across the ocean
and getting the information and bringing it back.
Today you are full-time on your courses and your books. You make millions of dollars actually
from selling those. Back in the day, though, when you were into powerlifting, when you
were in a band, how did you support yourself? Was your band actually paying you?
Oh, no, that was never any good. I was young, right? I was 16, 17, 18, 19 when I was really,
really into playing music a lot. I was just working part-time jobs while I was in high
school and then part-time jobs when I was in college too, just doing whatever. I worked
at a hardware store. I worked at a warehouse packing big skids of food shipments for grocery
stores. I did that for a while. My first real job that probably was enough to pay me an
enough money to live like an adult was working in Fort McMurray, Alberta in the oil sands,
which is like super far north. It's where they extract a bunch of oil from the sand
and sell it all over the world, whatever. Really horrible, awful, frigid, cold place.
I worked in the office there basically just doing data entry stuff because actually the
drummer in my band, his dad, was running the project up there. He got me the job up there.
Then when I got into the powerlifting stuff, I was doing a lot of that while I was in college
for software engineering and continued doing that during my first couple of jobs until
a couple of injuries set back my progress there. Now it's not as big of a focus for
me.
Yeah, my first real career, I would say, would be software development starting when I was
25, 26 when I got my first job. Before that, it was just whatever was around that would
pay me the most money so I could afford to live while I focused on the stuff that actually
excited me.
Now I'm fortunate enough to be in a position in the software industry. I think a lot of
the listeners are where you actually like your job, which is pretty nice. You get to
work on fun and interesting things and you don't necessarily dread going into the office
every Monday. Definitely a good place to be compared to those days.
I can imagine not really liking your job working in the oil sands of Alberta. Once you started
getting software engineering jobs, I think that's it for a lot of people. Most people
who love to code get a job like that and they're like, great, I get paid to do what I love.
This is it for me. It wasn't for you. You eventually went on to become your own boss.
Why do you think you never got stuck, so to speak, at any of these earlier jobs?
It was almost an accident in some ways, honestly. I don't think even when I released my first
book that I really had aspirations to be a full-time author, course creator sort of person.
The reason I created the book was mostly just out of a passion for making things and putting
them on the internet. My whole life I've always loved, even when I was doing the music stuff,
I'd love working on a new mix and posting it on the forums where I used to hang out and
get feedback from people or get put up something I was really proud of and hopefully have other
people see it and give me awesome feedback and that would make me feel really good. Even
when I was in a powerlifting, I used to create all these really beautiful, fancy spreadsheets
for different training programs. I would publish those in the forums and stuff that I would
hang out on for other people to use. I've always been really obsessed with making things
and making them to a really high level of polish and just derived a lot of satisfaction
out of putting things out there that were kind of finished that I could put my stamp
on and be like, I made this. Being into programming and being obsessed with learning and reading
all these books and stuff and realizing that I was doing all this work to learn stuff because
the resources didn't exist in the communities that I kind of hung out in, I guess just one
day I just kind of sounded like a good idea to make a book because I was reading all these
books and seeing... I was buying ebooks on Lean Pub and stuff like that that kind of
peers and stuff we're making. It's like, I could do something like that. It would be
really damn cool to write a book. That seems like a cool thing to be able to say I did.
So I think that was probably really my initial motivation. Yeah, I could make a little bit
of extra money, but I wasn't doing it as a way to escape the nine to five or anything
necessarily. That just kind of happened.
It's safe to say that you escaped the nine to five regardless. Today your courses and
books have generated millions of dollars in sales in just a few years and you get to keep
all of that. You don't have a publisher, you don't have an agent, it's all yours. Has making
all that money changed your ambitions or changed your motivations for why you do this?
In some ways, I think something that I never really thought too much about until I was
sort of in it was that your life is a lot different when you run your own business than
it is when you have a job. In ways that I never really realized, I basically feel like
I'm retired now because I just get to work on the things that I want to work on. I don't
have anyone telling me what to do. I can work my own hours, whatever. All my income is basically
not coupled to the amount of effort that I put in. I have a lot of freedom that I never
really realized was possible and that's only really possible I think when you have equity
in some sort of thing that makes money.
Although I wasn't super obsessed with this sort of thing before I started a business,
now I realize when I look back to being in school and stuff, it actually frustrates me
that they don't teach you about these options like, hey, you don't actually have to get
a job. School is designed to prepare you to go work for somebody else, but it turns out
that you can actually create your own job and make your own money doing your own things
and there's all sorts of benefits to it. Yes, it's hard in some ways that having a job isn't
and maybe it's not something that necessarily everybody can succeed at, but I feel ripped
off in a little sense because I wasn't really exposed to this sort of thing.
A story I like to tell is I remember as a kid, I'd be in the car with my parents and
my sister driving somewhere and we'd go through some really nice neighborhood and I always
be thinking to myself, looking at these nice houses, what sort of jobs do these people
have? Where could they possibly be working that someone's paying them enough of a salary
to afford something like this? It wasn't until I basically started working for myself that
it became clear to me, actually those people own businesses. That's why that they are able
to afford these nice houses. Because there aren't jobs that are going to pay you the
amount of money that you can make working for yourself and scaling up a product business
that isn't coupled to the amount of time that you work.
Exactly. If you're a founder, you get paid basically according to whatever customers
feel like you're worth paying. Whereas if you've got a full-time job, you've got a salary,
you're getting paid for your time, you're really getting paid according to how easy
you are to replace. And you're probably pretty easy to replace because you have a job title
and other people have gone to school to do exactly what you do. So there's a cap there.
Yeah, totally.
There's a cap on your salary really. When did you decide to first start your company,
Adam?
I mean, so the very first time that I tried to get people to pay me directly for some
service was probably when I was recording bands and running a local recording studio.
And that was like a total failure because bands don't have money or whatever, but that
was like my first attempt at working for myself. Didn't really work out, didn't make enough
money to really do anything with it, but sure.
Once I got into software engineering a lot more, the first time that I ever took money
from anyone on the internet was actually I built a small SaaS application called NIPIC-CI
that was just like a tool for reviewing code style in pull requests and PHP projects on
GitHub and sort of automatically commenting like, Hey, like you're using four spaces,
you should be using two or whatever, like that sort of thing to just sort of help people
avoid focusing on the wrong things in code review. And I built that, I think I released
that in like November, 2016 or 2015, probably 2015, must've been 2015. And I built that
mostly as an exercise in taking a product to completion, like a software project to
completion because I've been working at agencies for a long time. And one of the downsides
to working at an agency in my experience, anyways, is a lot of the time you work on
a project for a month or two, the client runs out of money because it turns out their business
was actually a bad idea. And the project basically gets put on hold. And so many projects never
leave like your local development environment. And that was kind of disheartening. And it
was, I really wanted to be able to build something from scratch, take it all the way to the finish
line and put it on the internet in a state that people could actually like put in their
credit card and pay me for it. So I kind of built this tool, this SaaS app, not really
as a means to like start a business and make money on the internet, just really to sort
of prove to myself that I could build a product from start to finish. But that, when I released
that was the first thing that anyone ever gave me money for. And it wasn't a lot of
people because I didn't know anything about marketing or bootstrapping a business or trying
to... I kind of did the classic developer kind of build it in silence and then one day
launch it thinking that everyone's going to be excited about it and sign up for it on
day one, which of course doesn't work. But I didn't really think of it as a failure because
that wasn't really my goal. But yeah, that would be the first time that I put something
on the internet that people gave me money for.
How did it feel to actually see dollars in your bank account for something that you built
yourself?
Exciting, but also like completely terrifying. There's something really scary about strangers
on the internet giving you money and feeling like you're on the hook in some way to like
not disappoint them because of course you sort of undervalue anything that you do yourself,
you know what I mean? It's like, I built this thing myself, how good could it really be?
These people are used to paying like Apple for things and I'm just at him in his basement
like, oh man, this is terrifying. But I'm pretty exciting in a lot of ways too.
A lot of people have trouble staying focused enough to ship things, but that doesn't seem
to be a problem with you. My advice for these people is usually to start small, work on
bite-sized things that you can release quickly before you get bored or distracted. How do
you manage to stay so focused that you can take these projects to completion?
I think the answer to that is I do not stay focused very well. And that's a challenge
for me too. So I totally agree with you that the best thing you can do is work on something
very achievable, like try and design projects that are small enough that you can sort of
see the finish line from the beginning. Other than that, I think it helps to sort of create
some sort of accountability for yourself in some ways. So for the last project, I worked
on it with a partner. So I sort of had no choice but to work on it because I would look
like sort of a real asshole if I just sat around doing nothing while he's expecting
to get this thing done and he's putting in his share and I'm not putting in mine. But
when working on things in isolation, the best thing that's worked for me is sort of trying
to be accountable to my audience. So making sure that I'm constantly posting updates about
how far along I am on whatever the project is, like on Twitter, as well as sending an
email out to the list of people who have sort of expressed interest in whatever I'm working
on. I'm trying to do that like every week sort of thing. So if I can send out an email
a week, if a week goes by where I feel like I don't have enough to email about, that kind
of stresses me out and makes me kind of feel like, oh shit, I'm not sort of keeping up
with this. Especially because I know from my own experience launching products how important
it is to be sort of in constant contact with the people who have expressed interest in
it. If you actually want to have a successful launch, you never want to be that guy that
creates a landing page and it doesn't finish the thing for a year and a half and hasn't
even talked to the people who signed up that entire time. And then someone gets an email
a year and a half after they signed up on a landing page saying, Hey, this thing's done
that you totally forgot about. Like there's no anticipation there. Like that's not going
to go well. So sort of like knowing internally that like the only way this is going to be
successful is if people are excited about it and there's hype around it and they really
want to buy it. And I'm sort of like screwing myself if I don't have an update to share
with these people. So yeah, that sort of like creates anxiety for me. And that's sort of
what drives me to actually get the work done. I think in a lot of ways, it's a crazy trade
off because working for yourself, you have a lot of freedom and you have the freedom
to spend your time. However you want to, like you're not going to do things that are boring
or that are like difficult or frustrating because that's not what you want to do. And
so I think it's good to have a little bit of that anxiety you were talking about Adam
to exchange a little bit of that freedom to do what you want with some external pressure
to force you to do the things that you need to do that you don't necessarily want to do.
Yeah. Even if it's feeling obligated to your wife so you can pay the mortgage. So she
is somewhere to live because I mean, once you stop making things, you stop making money.
I mean, that's not necessarily true if you're working on something that has like recurring
revenue or whatever, but for the business that I run, everything is quite launch focused.
And that's where I make most of my money at these big launches. So I always have to have
some idea for like the next thing that I'm going to be working on. And until that thing
comes out, sales are just kind of very, very slowly dropping for everything else.
You know?
Yeah.
So, yeah.
Okay. So your first business, nitpixi was software. It was software as a service. It
was a SaaS app. What made you decide to switch from building SaaS applications to releasing
a book for your next project?
I had been reading a lot of books and stuff from other people in the community who had
sort of been self publishing things. And, you know, that was really cool. And I had
this idea in the back of my head, like before I ever even put out the SaaS app, that one
day it would be cool to write a book about this topic, which at the time was like test
driven development, because I thought that a lot of the information out there was harmful
in a sense. And I wasted so much time doing things sort of what I thought was the right
way based on sort of the advice I'd read online, but in practice turned out to just like make
me hate my code. And I wanted to sort of kind of share what I had learned with other people
and transit other people on a path that I thought was better just because of how cheated
I felt by the information that I had been trying to learn from. But because I was working
full time, like writing a book just seemed like a really like an overwhelming task, right?
Like how am I going to have time to write a book when I'm working like a full time job?
How do I even get started? I don't even know anything about it. And then I noticed that
a friend of mine who had actually like been a mentor of mine when I was in the like audio
engineering stuff who used to run a studio. And I kind of interned at that studio just
to kind of learn the ropes and kind of how to do stuff. He had sort of started getting
into creating courses and stuff, teaching other people music production. One day I wish
I could remember how it even came up, but we just decided we just met up for coffee
one day after like not really being in contact for a couple of years. And I was just kind
of asking him about like how it was going and learning more about it. And I mentioned
to him that I've been thinking about doing like a book and it just been kind of like
an idea sitting in the back of my mind, but not really like something I was really excited
to necessarily get into. And he kind of convinced me to think about it a little bit more seriously.
And I told him my concerns about, you know, it sounds like a really ambitious project.
I don't know how I'm going to find time for it. And he said, why don't you start with
like a trip wire product? He called it, which I think is a term that, you know, other people
in that sort of internet marketer space would probably be familiar with where you just kind
of make something really, really small that you can charge like 10 bucks for and use that
as just like an opportunity to get your feet wet and sort of, you know, get a win and feel
like, okay, I've made something that's for sale on the internet. And the other benefit
to it is you get a little bit of opportunity to sort of practice with marketing and stuff.
Any people who buy that are going to be more likely to buy other stuff from you in the
future because they've proven that they're willing to give you their money for something.
So it's just like a good way to sort of get started with this sort of stuff. So I sort
of started thinking about that. Like, what can I make? That's like really small. And
I had sort of been building a reputation in my little Twitter community for a bunch of
like work that I've been doing with sort of like functional programming concepts and applying
it in PHP, nothing too crazy, just more like basic list transformation stuff. Like I remember
when I first learned like array map and I was like, holy crap, like I've been doing
this over and over again, using this loop. And this is how I've always written this code.
And there's a way to do it in this like declarative way using this like higher order function
that I'd never really thought about before. And that just kind of got me excited. So I
had been like tweeting like little examples of like, check out this like code that I like
refactored using, you know, these ideas, just sharing kind of what I was doing, because
I was excited about it, not because I was necessarily trying to deliberately build an
audience or anything. So, but I had been just because people are interested in people who
are sharing what they're doing online. So I had sort of a natural built in advantage
and that I really just enjoyed putting stuff out there. So that just kind of worked my
advantage in that sense. But I'd sort of been developing this reputation for doing this
sort of stuff. And people had been like messaging me like, Hey, how would you refactor this?
Or how would you refactor this? So when I was trying to think of like small product
ideas, I thought maybe I could do like a little kind of mini guide on refactoring like ugly
nested for loop stuff into sort of elegant list transformations in PHP, and just show
a couple of like my favorite practical use cases where some of these ideas are useful.
So I had this idea to do like maybe like a 40 or 50 page PDF that just covered like a
dozen useful examples. I started trying to look into like, okay, well, how do you kind
of launch an ebook? How do you get started? How do you kind of prepare for it? And somehow
I stumbled onto like Nathan Barry and a lot of his content. And he had had a lot of success
creating like self publishing books about like web design. And he had a podcast where
he interviewed a bunch of other people who had launched courses and books and kind of
shared, you know, what they learned along the way. So I started just like devouring
this information. I think something that is like probably a useful tip for people that
I do a lot is I'm constantly like noticing when I discover like a new person that I think
has something interesting to say about something. And as soon as I find out about someone who
I never knew about before, who has an interesting opinion on something, the first thing I do
is I go find like every podcast they've ever been interviewed on. And I listened to all
of them. And I just try to devour like every piece of content on the internet related to
that person. And that's been a really good way for me to get exposed to, to interesting
things and sort of learn, well, what people does this person learn from? And then I go
and devour with that person who kind of has put out and stuff like that. So whatever the
first article that I read from Nathan was, I wish I could remember how I even found it.
But I just decided, okay, this guy like knows a thing or two, but this stuff I'm going to
learn everything I can from this guy. So that led me to like, okay, I got to make a landing
page and start like collecting email addresses. And I got to like send updates to the list
and stuff. So I put up a little landing page for this book. I decided to call it refactoring
to collections. I was thinking it was going to be this like mini guide, started collecting
emails. Um, I wish I could remember what the numbers were. I do a blog post that we could
link to that probably shows like what the subscriber counts were at different times
throughout this sort of process were. But yeah, so I started collecting emails and started
working on the book. I decided to sort of structure the book in two sections. The first
half was going to be here, sort of like an introduction to sort of some of these concepts,
learning what like some of these basic list transformations do, how to think about them,
how they work. And the second half of the book was going to be, okay, here's a bunch
of practical examples of how you can use these ideas in your actual code. So I was just working
on the first half of the book. And before I knew it, I had like 40 pages or something
of just sort of introductory material. And it was really tightly done. I think I wasn't
like wordy or just like dragging on it. I just realized I had a lot more to say about
the topic than I thought originally. Um, so instead of just being this mini guide, um,
it ended up being like 150 page book or something. And once it started to grow, I started to
realize, okay, like I've been reading all Nathan's stuff. Nathan talks a lot about using
like tiered pricing to make sure that you like make the most money possible at your
launches and you don't just want to charge $19 for any book. You want to figure out a
way to have, you know, a hundred dollar package or like a $200 package. So I had made screencasts
and stuff in the past and, uh, I decided, why don't I take like all these examples from
the book that are kind of making up the last half of the book and I'll take each one of
those chapters and record it as a screencast too. So for people who want to sort of consume
that in video format and maybe pick up a, an extra trick or two by being able to watch
someone actually do the work, you know, maybe people would pay a little bit extra for that.
So I recorded a bunch of these screencasts, like 15 screencasts that were maybe like 10
minutes long, each sort of thing. Then for a third tier, I thought, well, I built this
SaaS app and the SaaS app is actually loaded with all sorts of practical examples of the
ideas that are in this book. And the SaaS app was a failure in terms of actually making
me money as an application, but I'm sure people would love to see like a full code base for
a full application that includes a lot of these ideas. So I'll throw that into a third
tier. So while I was working on this thing, I was sending out updates to people. Um, you
know, uh, here's a chapter that I worked on or, uh, here's how many videos I have left
or whatever. I started working on the book in February and I launched it in May, uh,
with the three tiers. I can't remember what I priced them out. I think it was like 29,
59 and one Oh nine or one Oh eight or something that had some weird number. Yeah. I put that
out there and it just did way, way, way better than I thought I did like 25 grand in the
first day. And I was like, Florida, I couldn't even believe it. And like, I was texting my
wife like, holy shit, this is insane. Like I thought maybe I'd make like 20 grand over
like the course of a couple of years of it just being up and selling slowly or whatever.
Um, but you know, following all these, um, following kind of this like step by step process
of trying to make sure I do everything right to sort of line up this lunch turns out it
actually, you know, it makes a big difference. So I ran like a launch sale for like the first
three days and it did like 65 grand in the first three days. And that's when I realized
like, man, there is like, this is more money than I ever thought was possible to make in
this time period. It's just like the craziest feeling craziest experience I've ever had.
And I thought, man, like this was just like my little trip wire product that I wanted
to make just to get my feet wet. Like the real thing that I wanted to make was this
like testing book or testing course. And I knew there was people hungry for that information.
And I thought, well, you know, if I'm going to make that thing and I think I can't do
it part time and that I, uh, I'm going to need more time than that to do it, quitting
my job right now is the best chance I'm ever going to have having the time to actually
put this thing together. And the opportunity is clearly here, right? Like I never thought
it was possible for me to just make my own money selling things on the internet until
I put this thing out there. So that just got kind of the wheels turning in my head and
I decided, uh, basically to put in my two weeks notice on my job immediately and, uh,
started working on, uh, the next course. I don't even remember what question prompted
this by the way. So if I didn't answer it, let me know.
I think you did. What does your wife think about all this money that you're making suddenly
out of nowhere? I mean, at the beginning and still to this day, a little bit, but at the
beginning she was scared because she was like, this doesn't seem right. Like, are we doing
something illegal? Like, you know what I mean? Like, you're not supposed to just have money
like this show up in your bank account. Like this is scary. Like I feel like something
about this just doesn't feel like rock solid or whatever. And of course it is. It's just
like a weird, crazy experience that most people don't get to experience. It's just so different
from how you're used to getting paid for things. But yeah, I mean, like, obviously, uh, she's
happy about like the lifestyle that we have now. It's great that I can be like home and
available and, uh, with her and our daughter and you know, we can go on vacations like whenever
we want. We don't have to ask people's permission for things. And, uh, of course I'm sure I'm
a happier and a better husband too, because I get to spend all my working hours working
on the stuff that I'm interested in. And whereas, you know, in the past I would always want
time in the evenings and weekends to be working on my side projects because I wouldn't get
to work on those at work. Now I get to spend more of that time with my family. So yeah,
that's great. Did you ever have any of those same doubts yourself? Cause it seems like
you're pretty confident and quitting your job. Not that long after you launched the
course. Um, I did have some doubts, like, man, maybe this next product won't do well,
but I really did believe that it was going to do well. I didn't know for sure. Like what
am I going to do after this? Like I know I want to do this testing book or testing course,
but maybe that's the last idea I have for something like this, but I thought worst case
scenario I'm a programmer. Like it's not hard for me to find a job, especially like my audience
and my reputation has been growing. I've been speaking at conferences, whatever worst case
scenario, I can just get another job at a company being a software developer and I got
to have a little bit of fun in between jobs where I made my own stuff and you know, made
a lot more money than I would have had a job anyways. So I wasn't too, too worried about
that. You mentioned that you were working nights and weekends and you're building this,
this initial ebook and course, basically while you had a full time job, I know a lot of people
were trying to make that work and yet can't find the motivation. Can't find the time.
Do you have any tips for anybody in that situation? I think, um, for me, the only reason I ever
finished that book is because in my head, I believed it was like a 40 page PDF and I
thought it was going to be something I could bang out of two weeks and it wouldn't take
a lot of time and it just, I could see the finish line from the beginning. Now I was
totally wrong and it ended up being way bigger. And if I had known how big it was going to
be, I think I would have been intimidated. I don't think I would have made a little start.
So probably the best advice I can give is figure out a way to, to split it up into smaller
projects and make things feel, feel achievable. You know, if you're just working on your first
project, maybe just try and figure out a way to cut down the scope completely so that the
whole thing feels achievable. Even if like, like the very first thing you release doesn't
have to be the thing that, you know, earns you your freedom. You know what I mean? Sometimes
it's good just to sort of get a little bit of a victory and feel like you, you put something
out there that made a little bit of extra money. Maybe it's enough that, um, you feel comfortable
like switching to freelancing and only doing like 25 hours a week on client work. So you
have a little bit of extra time to work on your, your side projects or whatever. Uh,
but I definitely think like just trying to figure out how you can make it feel achievable
and finishable by trying to slice it up into, into smaller projects and setting sort of
like mini deadlines for yourself, um, is a really, really good way to do that.
Yeah. I love that advice because it's so, it's like the most common thing in the world
for people to get jazzed up about this ambitious idea they have and then get discouraged because
it actually takes a long time to get to that idea and you really have to break it down
into chunks and they need to be small. And I think when I look at your story, you could
be sad to have started small as well. I mean, even before you decided to write this, what
you thought was going to be a 40 page book, you were tweeting, right? You had already
given a few talks. You, I think you had started your podcast by then, right? Yeah. Yeah. And
so all those were like things you were doing that weren't ever going to earn you freedom.
For your job, but they nevertheless contributed to you having this great book launch.
Yeah. I think like the most important thing you can do if you're, I mean, okay, so this
isn't totally true because there's a lot of counter examples out there, but for me anyways,
the most important things that I did for my own success were to like build my audience
and sort of like my personal brand so that I could eventually sort of cash in on that.
You know, a lot of that came down to like you were talking about giving talks and meetups,
which led to giving talks at conferences and sharing what I'm learning on Twitter, writing
blog posts, putting out screencasts stuff that it's hard to draw the straight line between
like this and some income, but by sort of just like being helpful on the internet and
being valuable and creating value for people, you're building up a lot of goodwill and building
this audience that hopefully one day when you do have the idea for something that you
could sell, you know, you have an audience of people to sell it to. There's a lot of
people who have succeeded at running businesses that are not personality-driven at all of
course too, so don't think that that's the only way to do things, but that's what's worked
for me and that's kind of how I built my business anyways. I certainly don't think that building
an audience could ever be a bad thing, you know?
Yeah, and I did things kind of the opposite way with indie hackers. Like I didn't have
an audience, then I built indie hackers and now because of that, I do have an audience.
So I'm kind of a counter example, but on the other hand, I'm also the exception that proves
the rule where because I didn't have an audience beforehand, it's not like it's not in my DNA.
It's like being pushed on the stage before practicing and so like I barely even tweet.
Like I don't even know what to say.
Yeah, it's hard to do these things if it's not sort of your natural inclination, right?
Like I definitely am lucky in the sense that this sort of stuff is helpful in the sort
of business that I run anyways, like being able to build an audience and build a reputation
and stuff like that and sharing what you know, like it all helps me be more successful at
launching courses and stuff like that. But I don't know if I could do all that work if
it didn't come naturally to me. Like if I didn't get, if I didn't derive satisfaction
out of just like being able to post like some interesting tweet or some tip on Twitter and
have people like reply, wow, this was like so helpful to me. You know what I mean? Like
I get like a lot of satisfaction out of just like sharing what I'm doing and that sort
of stuff. So it helps me and it's like been super important, but that's not the reason
that I do it, which is probably the only reason that I've been able to get where I am because
I enjoy sort of every step of the process. If any of that stuff felt like a chore or
felt like I had to like be really deliberate about like forcing myself to like do a live
stream or something, I don't know if I have sort of a grit to get through that. So I think
maybe the other element to that is just to find what energizes you and just try and look
for some alignment between like, okay, one of the things that I derive satisfaction from
already that also contribute to sort of like my end goal in some way I can like sort of
focus my time on that. So for me, like I've done a lot of blogging and stuff in the past,
but I've always been hard for me to keep up with it. Whereas like live streaming has been
something that I've been doing for a few years now on and off that I actually really enjoy
doing and could do every day and you know, wouldn't ever feel like a like work. And writing
blog posts, some live streaming are both going to build your audience, you know, the same
way maybe one works better than the other or whatever they attract slightly different
kinds of people, but they're both moving you in the same general direction. So I think
it's probably important to just look for opportunities to double down on the things that you personally
derive satisfaction from that also contribute to your goals.
That's such a great point. We were talking earlier about how it's important to have a
few of these external forces that sort of force you to do things you should do. You
know, it's kind of, it's kind of a good thing when you're running out of money and you're
forced to get serious. It's kind of a good thing when you have an audience and they give
you a little bit of anxiety to get the thing out the door, but there's a limit to that.
And if a hundred percent of what you're working on is you having to be forced from, you know,
some external thing that's forcing your hand rather than just like your internal satisfaction,
then you're not going to last very long either. So totally, totally. Yeah.
You talked a lot about the things that you did right in order to make over $65,000 in
your first few days of launching this course. Since then, you've gone on to launch quite
a few more courses. What are some things you've learned since then? How has your approach
changed?
Honestly, my approach hasn't changed too much from the first product, but I can share some
a few things that I think I did wrong or that I've done a little bit differently since then.
So probably the biggest mistake I made for the first launch was I had this like three
day launch window where the book was discounted for three days. And by like midnight on the
third day, I was still getting sales like every couple of minutes. And just to sort
of honor my word and not look like a lying asshole, I had to go and like change the price
and put it up to full price and end the sale. And then people stopped buying completely.
That was like such a shitty, stressful feeling. It's like literally there was this like hose
of money firing at me and I turned it off, plugged it. So what I kind of learned from
that was that I don't think timed launch windows are not a terrible idea. Like, you know, having
some time period where something's on sale, I do think it's probably a bad idea to do
too short of a window. Like in that case, what I've done since then has been to not
have an actual end date on the launch at the time that it starts and instead just sort
of launch at a sale price, wait until sales have significantly slowed down and then use
that as an opportunity to send out another email and be like, Hey, this is the last week
to get the book at the launch price or to get the course at the launch price. The price
is going up on Friday. And you use that as like sort of a second mini launch where you
can get a bunch of extra sales that you wouldn't have got before because you're sort of reminding
people.
You also didn't like artificially put a cap on like your launch earnings either. Cause
you sort of waited for things to sort of die off on their own naturally. So that's sort
of been the approach that I've used since then. And that's worked really well for me
and has made me feel a lot less anxious about leaving money on the table for things. Other
mistakes, I would say, uh, the second product. So the testing course, um, I launched that,
uh, November 2016. So maybe that was, I guess like six months after the book came out, the
refactoring the collections book. But I launched the course unfinished because I really wanted
to get it done. I had announced a deadline to my audience and I said, it's going to be
out on this day. I announced that like, I think like two weeks before the date that
I was going to release it. And I thought, you know, if I just grind through and record,
record, record, record these videos, I get it done, but it wasn't done. And there was
just so much to cover. Every thing that I thought was going to be like one 10 minute
video ended up being eight 10 minute videos and it just kept getting bigger and bigger
and bigger. So I talked to a few people to try and get some input. What do you think
I should do? Should I just postpone the launch? Should I do some sort of like early access
thing? I decided to do an early access launch. So I launched it on the date that I said I
was going to launch it, but I launched it with just the stuff that was done so far,
you know, at a pretty big discount with sort of the promise that I was going to release
new videos every week until the course was done. And that's what I did. But it took me
another year to finish the course, putting out videos like every week. Sometimes I would
miss a week, but I was putting out, you know, four or five lessons basically every week
until it was done. And it ended up being like 160 videos. It's like 23 hours long. It was
just like the most stressful year of my life because I just felt like these people had
given me money and I owe them now. It's not like they bought something that was finished
for me. They bought something that's unfinished. And now like I'm in debt to those people.
And that was a really shitty feeling. And because of the fact that people had already
paid me and I'd already given like what the core satellite was going to be, I couldn't
cut the scope of the project, which is what I would have normally done. Like normally
I have a deadline and it's like, okay, let's, I know I want to get it done by this day.
What can I cut? What can I change to fit that deadline? Because otherwise the project go
on forever. And I couldn't change it because people had already paid me and I still did
change it a little bit, but every time I wanted to make a change to the curriculum or cut
a section or something, I felt dread around it because I'm always worried who's going
to email me and be like, Hey, where's this lesson that you promised? I noticed you decided
not to do it. I only bought it for this one lesson and now you're not going to deliver
it. You know what? These are the fears that are going through your head. Yeah. It took
me another year to finish the course, which in some ways was, was okay. Like from like
a strategic business perspective, looking at it objectively, it was actually probably
good because every time I was posting new lessons, I could tweet about it. I could say
just added a new module on testing background jobs to the course or whatever I could say,
by the way, the course is still available at the early access price and having an excuse
to keep talking about it because I was still putting out new stuff meant that sales were
a lot steadier and consistent for a longer period of time. They didn't like drop off
as much like they would have at a traditional like finished product launch, but the stress
of it was not worth it to me. So I kind of decided after that, like I'm never doing an
early access product ever, ever again. From now on I finish it before I launch it because
when I launched the book, that feeling that day of the book being out, every line, every
word being written, the videos being done and people paying me money, that was like
an incredible feeling. I was like, holy crap. Like I'm reaping the rewards of the work that
I've done. Whereas the day that I launched the testing course, it actually did a hundred
thousand dollars in the first day. And that day was just like in some ways exciting, right?
But in more ways, I just like felt dread. I was just like, I was actually kind of like
scared because of how many people bought it. There was like more people I was in debt to
every sale was just like one more person that I owed something to. And that was just not
a good feeling at all. So I would say, um, if you're going to release like a, a course
or a book, like an information product like this, think hard about what sort of person
you are. And if that feeling of like being indebted to people is going to be like a major
drain on you, think about that hard before deciding to do like a pre-release. And you
know, if you're anything like me, you're probably better off just waiting until the full thing
is released.
Yeah. Sensitive dread is horrible. And it's funny because like you talked about your book,
your first book. I mean, that was the thing that you finished. Like there was a point
where you completed it. Every word was done. You can move on to the next thing. That sense
of freedom is incredible. For sure. I've never felt that for you before. I've, I built SaaS
apps. Like the Nandy hackers form. Are you kidding me? That thing is never going to be
done every week. The task list as long as that was the week before. So for you to go
from the situation that you were in to suddenly you're working all the time on this thing
that people have already paid for, there's no more money coming in. You're just like
and the whole, you're in debt. It sounds, it sounds terrible.
Yeah. You're just paying them back. It feels like crappy feeling.
So there are some other changes you've made to your processes that didn't fare quite as
poorly. For example, your most recent work, Re-factoring UI is a book you published with
a collaborator, Steve, I believe you said. What was it like working together with somebody
else for the first time?
It was really good actually. So I've known Steve for a few years now. We kind of met
each other because we're both live locally and we're both sorts of, you know, we both
kind of just been involved in the sort of hacker building your side project sort of
scene. He's a designer. I'm a developer. He'd worked with other developers on projects here
and there. And we had a mutual friend who sort of introduced us and we sort of hit it
off and started working on a couple of little fun projects together that never saw the light
of day, but we really enjoyed working together. He had seen like some of the success that
I had with my own products and stuff. He kind of was interested in getting into it too,
like maybe doing a book or something. Like long story short, I convinced him, like first
thing you got to do is like start building up an audience. And I think a good way to
do that is to try and teach developers design, like maybe share some tips and stuff on Twitter.
We both sort of like stole this format from Wes Boss, the hot tip where it's just like
a fire emoji, some useful tip, and then like a screenshot that kind of like shows off the
kind of the idea from the tip. He started doing those on Twitter with like design stuff
like developers make this design mistake. Here's like what you should do instead. We
were sort of collaborating on those, not really like in any sort of deliberate way, but I'm
a developer who cares a lot about design, even though I'm not like a designer by nature.
You know, it's something I've just worked really hard to get as good at as possible,
but I still feel like I'm very developer brained. You know, I'm not really like an artistic
sort of person because like he's my friend and like I want him to succeed. I would always
be like sending him ideas for design tips too. Like anytime I would like learn something
that really resonated with me as a developer, I'd be like, man, you should like make a tweet
about this because like this really changed the game for me in terms of my own design.
I think other developers could benefit from it too. And a lot of those things were things
that Steve maybe wouldn't have thought about on his own because they're just like second
nature to him as a talented designer. It's like simple things like vertically offsetting
your box shadows, you know, stuff like that. He'd be like, seriously, people, people would
not do that automatically. Yeah. So he'd like, we'd kind of work together on these tips.
I'd kind of help him like figure out how to frame something in a way that I think would
really resonate with developers because really I was framing them to resonate with me. It
blew up. So he went from like having like 800 Twitter followers to like 30,000 Twitter
followers in a year and a half just from sharing these tips on Twitter. And he had wanted to
do a book and I'd like been giving him advice and he had started actually writing the book
and he showed me what he had. And it was, it was very much like a chapter on like typography,
a chapter on, you know, color theory, a chapter on whatever. And I said to him, I was like,
this is great information, but this isn't like the way developers want to consume it.
Like developers don't care about learning design. They care about like making their
stuff look good. They want to get better at design sort of like by coincidence, by learning
like very tactical, immediately pliable advice. So I started working with them, like figuring
out how to reframe the content and stuff. And it got to a point where like I was helping
them so much that I kind of had to ask myself, like, can I really afford to like keep putting
in this time? Cause I got to work on my own stuff. And we just got to talking about it.
And I was like, well, maybe we should like partner on this and do this together. Um,
because I think, you know, working together, we've created some like really great content
that's really resonated with people. So we decided to kind of partner up on it. You know,
he would be responsible. I mean, at the end of the day, when we actually made the book,
what happened is I wrote all the words, like we planned all the outline together, figured
out what all the points would be. And then I took sort of our outline and turned that
into full, fully written chapters. And he did like all the example images and any of
the design stuff. And there's like 300 completely unique UI examples in that book. So it's like
an insane amount of design work that he had to do. Um, but that's kind of how we split
the work. And, and once we kind of decided that we wanted to write this book together,
you know, of course the first step wasn't to really work on the book. It was okay. Like
let's kind of get the marketing engine going in terms of building some anticipation around
it and making sure that we're building up the audience. So he kept doing this stuff
on Twitter. We started doing these like a case studies on like taking developers designs
that they would like submit to us and we would like refactor them into better designs. Um,
so we had this plan to do like a weekly article that was like a weekly written case study
that took an original design from a developer and improved it. And sort of outlined all
the steps turned out. We only ever did that one time cause it was so much work. And then
Steve started doing like video versions of the same thing, like screencasts and those
were a big hit. One of them went like totally viral and was like the front page of Reddit
for a while and stuff like that. So that was pretty cool. And, uh, yeah, so we just kind
of kept putting out content like that. Uh, eventually we announced that we were going
to be working on this book, which was way later than we had already decided. Like we
had known for a year that we were going to write this book before we actually announced
it. I think like a mistake that a lot of people make actually with products like this is they,
this they sort of like announced their intentions to the world too early. And I mean, and framing
it like that, it makes it sound like we're being deceptive or something, which I don't
think I don't think we are. But if you just come out of the gate saying like, Hey, I want
to make a paid product and I want you to sign up for it. It's sort of, um, it sort of devalues
any other like free content that you put out there because everyone feels like you have
this ulterior motive, even if you do like truly enjoy creating free content for people.
You know what I mean? It's like, Oh yeah, this guy wrote this blog post because he's
trying to trick us into signing up for his mailing list because he wants to milk us for
some money later. Like that's kind of like what people see, I think. So we tried really
hard to make sure that we didn't like tell people, Hey, like we're actually only doing
this to take your money because of course that isn't true. Like just like me, Steve
loves sharing stuff online and getting feedback from people. And he finds that really rewarding.
So we didn't want to sort of like poison our efforts there by kind of attaching this monetary
stuff to it. So we just kept working on the free stuff, putting out good articles, creating
good videos, stuff like that. And I like to think about it in my head as sort of like
you're compressing like this spring and you're just trying to push it down as far as you
can. And the further you push it down, the more energy builds up. And then when you finally
like release a paid product, the amount of compression that you put into that spring
is going to kind of determine how successful, you know, the paid product is. So we'd been
compressing this spring for like two years, squeezing out like every millimeter of space
in this thing to the point where Steve had like 40,000 Twitter followers and he's like
twit, uh, these design tips on Twitter. We're doing like, uh, some of them were getting
like 13,000 likes, like sort of insane stuff. Then we announced that we're going to be doing
this book. And by the time we announced that we were doing the book, we had people tweeting
us every day, like begging us to write a book with all the design tests and stuff. So we
knew, we knew we were onto something there. But again, we had sort of been like testing
this material for like a year and a half, making sure that it was resonating with people.
We didn't just like, I think like a common mistake people make and bad advice that people
give is the first step to validating a product idea is to make a landing page and see how
many people you can get to sign up. You need to make a landing page and see how many people
sign up. But to me, that's like the last step in validating a product idea because no one
is going to sign up on a landing page to buy something from someone who they've never heard
of who has never proven that they know what they're talking about, who has never delivered
value on anything before. So to me, like the best way to test these ideas is like tweet
things, create videos, create blog posts, just create free content around this stuff
and see what sort of what hits and what doesn't hit, you know? And then when I'm pretty confident
that like we have a good idea on our hands, like I'm 99% sure it would be successful.
It's like, okay, let's make a landing page and start collecting emails just to really
be sure that this is going to work. So we did that and collected like thousands of emails.
We have like 55,000 people on the mailing list now. Worked on the book for a while.
I think we started working on it basically full-time in like August after we had done
a lot of, we'd done a lot of planning already, but we kind of really cranked on it full
time in August and released it in December. We had built up like so much anticipation
around this. And you know, we've been sending out email updates, of course, like we just
finished this chapter, check out this free chapter, check out this free screencast. We
sent out an email, I think it was like Sunday night or something saying, Hey, so the book
is going to be released this Tuesday or something. I can't remember the day we released it to
December 12th, whatever day of the week that was, announcing the pricing and all that sort
of stuff. And then we stayed up to like four in the morning on Monday night, Tuesday morning
to get it all done and kind of get all the files prepared and uploaded and everything
fully finished. And we posted that online. What I've always done with these products
is to make sure everything's sort of working instead of like going to sleep, waking up
in the morning, launching it and hoping everything works. What I usually do is I'll put things
live as soon as I finish the final, you know, 11th hour work the night before, but I just
don't tell anyone. So we converted our landing page into like the actual sales page, didn't
tell us all, tried to go to sleep. And usually you get a few sales right overnight because
people just kind of, they check out the page and they know it's going to be released that
day. So they're just kind of checking and they notice whatever. So even before we went
to bed, we made the site live. We had like six or seven sales within like the first 15,
20 minutes, just from it being online and not even telling anyone. So we tried to get
some sleep. We slept for maybe three hours and got up at like seven in the morning. And
then, uh, I waited to like check all our stats on gum road until, um, until Steve was around.
So, uh, we hopped on like a zoom call and I was like, okay, let's check, see like how
this did. And it had been like three or four hours since we sort of silently launched it
and we hadn't told the single person and we had done $40,000 in sales. Wow. So that was
like, to me, like that is a, that was the craziest part of the whole thing. And then
it did like, um, I did close to $400,000 on the first day and it did a million dollars
in the first month. Was that your most successful product ever? Yeah. That is crazy. How much
has it done since then in total? Cause it's been out for some time now. Yeah. In total,
let me pull up a number for you here. Cause everyone loves the numbers. So it's done,
uh, 1.3 million us that's inspiring stuff. It's done, uh, done really, really well and
still continues to sell pretty well to this day. So there's a lot that I got out of that
story you just told about this book. And I think they're really two points I want to
talk about. Number one, at least when it comes to educational products like this, like books
and courses, it's not just your product that speaks for itself. It's also you. It's your
expertise that you can demonstrate. It's your reputation and your audience that you've built.
And so when you caution against putting up like this landing page prematurely, you're
right because people don't know who you are at that point. Like why should they trust
that you're going to be able to educate them? Why should they read your book? Like why should
they invest? Totally. Yeah. I think it's a lot different than like a SAS product where
I mean with a SAS app, I think having an audience is a, is an advantage because you know, you
have a network and people are more interested in what you're doing for sure. But there's
also an element of like, you want to make sure that the product can stand on its own
two feet. Like you want to know that if it wasn't you, if you weren't the face of it,
that people still have this problem and people are still willing to pay to solve this problem.
But with something that's like an info product, I think the personality stuff is a lot more
important and not, not the personality stuff per se, but just like earning people's trust
and like being like, you know, proving that you're someone that they want to learn from
I think is really important. So yeah.
The other takeaway that I got was that we've talked a lot about keeping it simple, keeping
it short. So you don't lose motivation and you stay focused, but this book was really
multiple years of work for you and it wasn't simple. It wasn't short, but what sounds like
really kept you going is you constantly had this steady drum beat of tweets and feedback
from your audience and these feedback loops where you release something and you try something
and you get feedback from your audience. It's positive or negative. It can be really addictive.
It's like with a true experience. It's the same thing with lifting, you know, you go
to the gym, you're stronger than you were the last week. It's really motivating. You
want to keep going. It's just such an underrated way to motivate yourself to keep going at
something.
Yeah, it's all just a ton of micro projects, right? So even like a tweet is not like Steve
sitting down and typing something out and tweeting it in three seconds. Like tweets
are sometimes two weeks in the making. They're like blog posts. It's like the same amount
of effort as a blog post, but sometimes harder because you have to distill it into 280 characters,
you know, because I think a really important piece of advice for, for sort of sharing valuable
information online that I picked up from Wes Boss as well, is that it's important or maybe
not necessarily important. It's not maybe the right word, but something that can really
help is to try and help people where they already are. So tweeting about a blog post
is not going to get as much engagement as if you can fit the information from the blog
post directly into the tweet. So we work really hard to try and just make the tweets stand
alone awesome pieces of content. And Twitter is not like the best place to build an audience
for every niche. You know what I mean? Like Instagram might be better for a lot of places
or maybe Facebook or maybe whatever else that I've never heard of. But for our audience,
which is developers, Twitter is like the new universal software message board. You know
what I mean? Like that's where everyone hangs out. So that's where kind of we focus our
efforts. So yeah, tweets are like little mini projects, writing a blog post as a project,
creating a free screencast as a project. Even when we actually finally started working on
a book itself, every chapter is a little project, right? Like I had a little web interface where
I was sort of publishing the stuff for Steve to review. And I had it all built so that
anytime like a chapter was finished, I would like add a little bit of metadata in the Markdown
at the top saying finished true. And then the sidebar where all the chapters were listed,
that one would change color. So I could sort of see my progress and I could see there was
a count at the top, how many chapters are remaining and stuff like that. Sort of game
if I get myself in a sense. But yeah, I think you have to just look at the next milestone
and work towards each milestone individually. Don't get overwhelmed by the whole thing.
The hidden benefit there is that every one of these milestones is like a mini release
that you can learn from. And so you see, it's a lot of traction. You see if people read
that blog post or retweeted that tweet and then it informs your decision for what you're
going to build.
Yeah, we have like this blog post, I think it's called like seven practical tips for
cheating at design. I think it's like the fifth most read posts of all time on Medium,
which is pretty crazy. So it was a really good market for us, right? Like I think developers
wanting to learn design is a huge, huge group of people. So we were really fortunate to
be able to kind of meet each other and work together and have this unique advantage where
Steve is a talented designer. I'm a developer who does a good job sort of interpreting Steve's
ideas in a way that makes sense for developers. And we were able to put something together
that I think resonated with developers more so than most other design kind of educational
products out there.
There's so many things I want to ask you, Adam. I'm going to keep you here all day at
this rate. You've been talking about building an audience. You've been talking about the
things that you've learned from other people who are super good at this, like Wes Boss.
I really like the tip to just engage your audience where they already are. If you're
going to tweet, say something useful in your tweet itself. Don't try to link people off
of Twitter.
For example, what are some tips you have for people listening in for how they can best
go about learning this stuff? Should they just open up Twitter and look at Wes Boss's
feed and your feed and just try to learn by example? Are there any books or courses they
should be reading? So they just ping you and ask you for advice?
I would say if I had to point to some of the resources that were really helpful for me,
like I mentioned Nathan Barry's content. I'm sure there's probably other stuff out there
now, but his stuff was really good and helpful for me. He has this book, Authority, that
basically takes everything that I learned from all his podcasts and all his blog posts
and distills that down into one resource. So that's a good thing to check out.
And it starts from like, okay, you have no audience, but you want to make an info product
or something. First thing that you need to do is build authority. That's what the book
is about and has a lot of good practical advice for doing that.
Yeah, I think the tip about trying to help people where they already are, you want people
to notice that they're getting value from you without even deliberately having to click
into what you're putting out there. If people are just scrolling through the timeline and
they see that you've made something interesting, it just works a lot better than forcing people
to click away somewhere else. I think maybe a little bit of an underrated
channel for developers specifically. So a lot of people that would be listening to this
podcast when it comes to creating valuable stuff on the internet is open source. So I
think if you're not the sort of person who likes to write blog posts or make screencasts,
you can build a pretty big audience just by creating useful free tools and stuff. That
can be a really good opportunity to practice your marketing skills too by putting together
a nice webpage for the product and writing good documentation and stuff like that.
And that'll earn you some trust and stuff with people too. There's certainly a lot of
people out there who have big audiences because they've created useful open source projects.
And if they were to go ahead and create a course or something, they'd have a big advantage
over someone who hadn't been creating open source. You know what I mean? Maybe writing
blog posts is a little bit more effective. Maybe it's not, but what matters is that you're
trying to pick something that helps you develop a bit of a reputation that is naturally aligned
with what you enjoy and what you get value from.
Other than that, one other maybe concrete tip, I think that kind of relates to what
we talked about before in some sense. I think when you first announce a product that you're
working on, you have a landing page, you tell everyone, hey, I'm working on this. Sign up
here if you're interested. What usually happens is you get a lot of signups on the first day
and maybe the first couple of days, and then it drops off completely because you don't
really have a good reason to tell people about the landing page again. You've done it. It's
out there now. What I do to keep that alive and keep new people signing up to the list
is anytime I'm about to email out an update like, hey, maybe I finished a chapter or I'm
sending out a free screencast or some sort of update on the product, I make sure that
I announce that I'm going to be sending that email through the other channels that I have
first to have a reason to drive people back to the landing page.
Anytime I'm going to send out a free blog post, I'll go to Twitter first and I'll be
like, hey, two hours from now, I'm going to be sending out a free sample chapter from
refactoring UI in case you're not on the list. Here's the landing page if you want to get
a copy of it. That was a good way for me to have more spikes in the subscriber count and
make sure that I was attracting new people. I think the studies or research says that
for any given thing you post on social media, only five to 10% of your audience ever even
sees that post because not everyone's a Twitter completionist. It's important to announce
that stuff multiple times, but at the same time, developers specifically are really finicky
audience when it comes to people peddling their wares on the internet.
Instead of just being able to tweet, in case you missed it, I'm working on a book every
three days. It's nice if you can just have another reason to talk about it, which is
I'm sending out an update that's going to cover this. You're not just repeating yourself
and annoying the people who are already aware. That's worked really well for me too.
We're talking a lot about the best practices, a lot of the tips and advice that come from
other people, things that are well known. Is there anything you see repeated often that
you don't agree with? Anything that you just ignore and do things your own way instead?
I think probably the one thing that I think maybe isn't necessarily common advice, but
maybe it's a common thing that people get caught up in that I don't think is necessarily
the best use of their time, is when you start getting into all this trying to do marketing
and stuff on the internet, it can be really easy to get trapped in obsessing over analytics
and funnels and attribution and conversion rates and all that stuff.
I don't think that that's the right place to be investing your energy. I know when I've
shared my stories about my product launches and stuff with people in maker communities
that I hang out in, a lot of time I'll get people saying, where does your traffic come
from or what's your conversion rate or whatever? The people asking me these questions are people
who aren't succeeding with their own products usually. My answer is I literally don't know.
I have no idea how many visitors we have on our landing pages. I have no idea what percentage
of those people sign up. I've never thought to AB test anything. I don't know what websites
they're coming from. I literally have no clue. All I know is that anytime I put out a free
blog post or put together a really well-crafted Twitter tip or do a live stream or put out
a free screencast, I make more money. You know what I mean?
Those are activities that are delivering value to other people that I actually enjoy working
on. That must be driving more traffic to my site from somewhere. That must be increasing
my conversion rates or driving more people to sign up for things. I don't know where
they come from. I don't know who they are. I don't know why they do it. I'm sure that
information would be helpful and I could optimize things better with that information. My personal
belief is that none of the changes that I can make with that information would ever
move the needle as much as just making more awesome free stuff and being valuable to people
on the internet.
I would say try not to get caught up in worrying about all these numbers and all that stuff.
Just focus on the activities that actually help build your audience and actually build
your own reputation. Try not to major in the minors so much.
Yeah, that makes so much sense. All this stuff, it gives you an edge, but it's not directly
creating value for people.
I'm sure at a certain scale, if you have millions of people visiting your site, there are optimizations
you can make that are going to make you enough money to be worth doing. If you're worrying
about that stuff because you were only able to get 600 people on a mailing list and you
only pre-sold 42 copies of your book or something, let's look at the numbers from a different
perspective. There's not enough numbers there for any of that stuff to matter. It's better
to just focus on the stuff that is delivering value to your audience and don't try and optimize
a bunch of stuff that just isn't going to make a difference.
I think a lot of it comes down to your team size as well. When you're a company of one,
that's definitely not the most efficient way for you to spend your time. If you've got
like 1,000 employees, sure, put somebody on the analytics and that kind of stuff. But
if you're small, you've got to make trade-offs so you can't really do all the things that
a much bigger company can afford to do.
Yeah. Actually, that's an interesting topic in general because that's something I struggle
with a lot is knowing that there's always more things I could be doing to be more successful
with what I'm doing. It's really hard to be proud of the stuff that you are getting done
and be satisfied that I got this done this week, I got this done this week instead of
focusing on all the stuff that you didn't have time for or the stuff that's slipping.
It's been really hard for me to try and teach myself to just accept the fact that there's
always going to be an infinite number of things that I could do that could improve things
and that it's impossible to do them all. Since it's impossible, I shouldn't get down on myself
for not literally accomplishing the impossible. So yeah, you got to focus on whatever you
think is the most important thing that you could be doing and the best use of your time
and try not to be so down about not getting all the other stuff done.
You sound like a perfectionist. You sound like me. I could have just said exactly what
you said.
Oh, man. Definitely. I mean, it's a blessing and a curse, I think, because I think an area
that is pretty easy to compete on in product development is quality. I think probably one
of the reasons that indie hackers was so successful in the beginning is because of the quality.
Everything was super, super polished and professional. It wasn't like some hacked together MVP.
I'm sure to you it felt like it was in a lot of ways, but to the people visiting the site,
it was like, this is nice. This is the real deal. This is well done. Yeah, it's the same
with educational stuff and courses and making that stuff good and the same with SaaS apps
and stuff like that. People care about using stuff that's good and well done. I think if
you're sloppy, you're leaving a lot on the table. But it also makes it really hard to
ship stuff to you.
I think learning to ship smaller things is kind of the secret there. It's better to...
This is like a 37-signals-ism. It's like half, not half-assed or something like that, where
it's like build half of a product and do it awesome instead of building a whole product
that's half as awesome as the half product would have been.
Yeah. Jason Cohen, who I had on the podcast earlier this year, has something similar.
He calls it the SLC, the simple, lovable, complete product. The idea is make a really
good skateboard. Don't make a crappy car.
Yeah, totally.
Same idea, basically. Well, anyway, Adam, I've taken up a ton of your time and I've
still got a thousand more questions I want to ask you. People will be wondering why your
next book isn't out. It'll be because you're still on the podcast answering Courtland's
questions.
Usually, I end by asking guests to give one piece of advice to people listening in who
want to start their own companies. But there's one specific topic that we didn't really get
onto. That's the topic of ideas. How do you know what to work on? I think this is what
stumps a ton of people. You seem to be pretty good at navigating it. You know exactly what
kinds of books and courses will resonate with what types of audiences. You seem to hit the
mark every single time. What's your advice for people who don't have an idea, who aren't
sure what audiences are craving, who aren't sure what they should work on?
I would say probably the least productive thing you could do is just sit down and brainstorm
product ideas. I think that's a trap that everybody falls into that I have fallen into
all the time. I always notice when I'm in that trap and I know that it's never been
productive for me. I think the best thing that you can do, a couple of different ways
you can find out what matters to people. One thing is to just make something, even if it's
not going to be a good idea necessarily, because once you actually try to make something and
finish it and do a good job on it, you will find things that were hard about that that
might lead you to ideas for products that could actually be useful.
I know there's all sorts of ideas that I've had for things that I never would have had
if I didn't release a book. Examples would be, and again, maybe people don't pay for
these, but the real pain points that I've run into is a better analytics for my sales
and not because I care about attribution for things, but because I want a better pulse
of I built my own custom sales reporting system just so I could get a quick way to see, okay,
where are my sales in the last 30 days? How did that compare to the sales in the 30 days
before that? I could see what is the trend? How fast are things dropping? Am I still doing
okay? Is next month going to be horrible? Other things is accounting tools that I wish
I had that I don't have that I only know I need because I tried to build some other
little business. So I think just getting started and just doing something is a good way to
sort of increase your, I don't know what a good metaphor would be, just widen your net
for other possible ideas and expose yourself to more problems and more pain points that
you can sort of discover.
So if you want a great idea to work on, perhaps start by giving yourself permission to work
on a mediocre idea.
Yeah, exactly. You got to start with something, got to start with a bad idea to help you find
the good idea. That's one way to do things. The other thing I would say is just like work
in public, super important. If you just share what you're doing online, share what you're
excited about, talk about what you're learning, write blog posts about what you're learning.
That's the only way that you can find out like what information you hold, what knowledge
you have that excites other people or that gets attention from other people.
That's what I've done with all my stuff. Like a lot of it starts with me being excited about
a topic and then trying to learn more about it and sharing what I'm learning about it
and then seeing if it's resonating with other people. It's like I did a Vue course last
year. I learned about this like render prop pattern from React that no one was doing really
in Vue. And I was really experienced with Vue and I didn't really want to switch to
React just to apply some of these cool ideas. So I tried to figure out how the hell can
I do this in Vue. I figured out how to do it and figured out some interesting ways to
do it and I just started tweeting about it. Like check out this idea. Here's like a little
screenshot of like something that you can do in Vue and this is how it works. I gave
a conference talk about it, like an online conference and the feedback from that was
really good. Then I wrote like a really in-depth blog post explaining more about it, just like
testing, testing, testing, increasing like sort of the effort involved in the test. It
starts with like a tweet, then like a talk, then like a really in-depth blog post and
just kind of making sure like every step along the way that it's still getting the same amount
of attention. Like if the tweet didn't get attention, I wouldn't have done the conference
talk. If the conference talk bombed, I wouldn't have done the blog post. That's how I sort
of test stuff and learn what people are excited about. And for the most part, like I'm not
that different from other developers out there who are interested in like, you know, up and
coming technologies or whatever. So the same is probably true for most people listening
to this podcast. There's probably a good chance that the things that you're excited about,
that you're learning, that feel new to you are exciting and new to other people as well.
So just share what you're doing there and make sure that it's resonating with other
people and use that to sort of like refine your ideas a little bit. I've never been crazy
formal about it. Like serving, people are asking questions. It's really just like putting
stuff out there and paying attention to the reactions, paying attention to the questions
people ask, stuff like that. And then the other benefit that can come from this too
is you can learn that you actually have something to offer that you didn't even realize you
had to offer. So example of this is I was working on a SaaS app idea and I live streamed
all of it because I wanted to get the most bang for my buck in terms of kind of spreading
the word. So I could have just worked on it in isolation, but I knew like, okay, you have
to work in public for things to be successful. You have to, people need to know what you're
doing. So I thought, well, I need to write this code anyways. If I write the code in
public, well now I'm creating content at the same time, then I'm getting the work done.
So that seems like a kind of a good use of my time. So I was working on this SaaS app
and people were tuning in and checking it out. And I kind of put together, I kind of
thought like, okay, the focus of these streams will be like, we're doing a lot of TDD, we'll
be doing a lot of stuff with Vue. And that's kind of what I was selling people on, right?
Like this is what I think people are going to be excited to learn about. But what it
turned out was I had sort of written my own like little homegrown CSS framework that I'd
been carrying around from project to project. And in the live streams, I was building the
whole UI with this kind of custom CSS framework. And all the comments in the chat were always
what CSS framework is this? What CSS framework is this? What CSS framework is this? And never
even occurred to me that people would give a shit about like what classes I was putting
in HTML, you know what I mean? But everyone was more interested in this like approach
to building this UI with the CSS than they were in the TDD stuff or the Vue stuff. And
that's what kind of motivated me to open source that CSS framework, which is now Tailwind
CSS, which has grown into like a really big project to the point where I'm working on
that like full time now to grow the community around that and look for opportunities in
the future to figure out how to monetize that in some way, maybe by like doing premium themes
or some of the other things that people have done with other UI tools. But I never would
have even open sourced this thing at all. If I hadn't been streaming myself working
on this SaaS app, and just people happen to care more about this CSS stuff that I never
would have even occurred to me would have been interesting to people. Yeah, they were
just more interested in that than the stuff I expected them to be interested in. So that's
just another good example of how like, just working in public can, can really clue you
into the stuff that your audience actually cares about.
I can tell you with certainty, Adam, that another thing you do that's very interesting
is just talk about the way that you do things. And there are a great many people who would
buy a book if you wrote one about how to launch online courses and how to build an audience.
And I can move into the meta work of selling how to sell. Yeah, I don't know if that's
really my thing. But I appreciate that. Yeah, I'm glad that I'm glad that I can help other
people sort of like, follow this path and hopefully learn a thing or two and hopefully
be a little bit more successful with their own ventures.
Well, I'm glad I got the opportunity to have you on the podcast where you did just that.
Thanks so much, Adam, for coming on the show, sharing your story and your knowledge with
all of us. Can you tell listeners if you can go to learn more about what you're up to,
what's coming next from you and anything else you might share online?
Yeah, sure. So Twitter is kind of where I hang out, where I'm most active. So I'm just
Adam Wathan on Twitter. I have a personal website at AdamWathan.me. I wrote a really
in-depth blog post called, it was called like the $63,000 book launch that let me quit my
job. That kind of outlined the entire process from like idea to launch for my first book
with numbers and kind of all the emails that I sent and like how many subscribers received
each email, like as much detail as I could possibly cram into it. So if you're kind of
curious about kind of seeing sort of like the blueprint for a book launch, you can check
that blog post out on my website. I gave a talk at MicroConf last year about nailing
your first launch. So again, a lot of the same sort of stuff that we talked about here,
but just kind of organized into a talk. So if you're interested in checking that out,
I can get you the link to that for the show notes. I think if you just Google like Adam
Wathan MicroConf recap, you'll probably find it. CSS framework, the kind of thing that
I'm working on the most right now is Tailwind CSS. So you can learn more about that at tailwindcss.com.
I'm working on a free video course for that right now, actually, that I'm hoping to have
out next month that'll kind of teach you how to design really professional looking UIs
from scratch using Tailwind, even if you don't have a ton of CSS experience. So that's kind
of a, yeah, doing a free video series for the first time in a while, which feels good
because I always have enjoyed putting out the free stuff probably more than the paid
stuff. Yeah, that's, that's probably it. That's maybe another thing is I host a podcast called
Full Stack Radio, which is basically just, I use that as an excuse to pester experts
with questions about things I'm trying to learn. So if you want to hear what I'm interested
in and follow along with the, you know, learn some things about that, check out fullstackradio.com
and I think that's probably it. All right, Adam, thanks so much. Yeah, thanks.
If you enjoyed listening to this conversation and you want a really easy way to support
the podcast, why don't you head over to iTunes and leave us a quick rating or even a review.
If you're looking for an easy way to get there, just go to ndhackers.com slash review and
that should open up iTunes on your computer. I read pretty much all the reviews that you
guys leave over there and it really helps other people to discover the show. So your
support is very much appreciated. In addition, if you are running your own internet business
or if that's something you hope to do someday, you should join me and a whole bunch of other
founders on the ndhackers.com website. It's a great place to get feedback on pretty much
any problem or question that you might have while running your business. If you listen
to the show, you know that I am a huge proponent of getting help from other founders rather
than trying to build your business all by yourself. So you'll see me on the forum for
sure as well as more than a handful of some of the guests that I've had on the podcast.
If you're looking for inspiration, we've also got a huge directory full of hundreds
of products built by other indie hackers, every one of which includes revenue numbers
and some of the behind the scenes strategies for how they grew their products from nothing.
As always, thanks so much for listening and I'll see you next time.