I have wanted to be an author since I can remember. As a child, I would write short stories and read Isaac Asimov books, wanting to be prolific like him. I participated in a writing club as a teenager and the teacher encouraged me to try to publish my work. I had every plan to do so but life ended up getting in the way.

Years went by and I got distracted. I failed to write at all for a long time. Then, when I became a software developer, I developed the urge to write about how passionate I was about programming. I frequently wrote blog posts and articles about my journey and what I was learning. On several occasions, I started to write ebooks on various technical topics or about learning to code. I gave up each time thinking that no one would ever read them, or that they weren't going to be any good.

My first book, Learn to Code. Get a Job. The ultimate guide to learning and getting hired as a developer., was finally published last month on Amazon and eight other online stores. It was a triumph of me finally being able getting past my own doubts and fears, and just going for it. The book is a combination of my experiences from teaching and mentoring for the last several years as well as hundreds of hours of research I conducted while writing the book.

This article discusses how I overcame my self-doubt and my journey of self-publishing.


The idea for this book came to me over a year ago when I was looking for books to recommend to the students in my local coding group as well as the people who would read my articles and send me emails asking for resources. I bought many of the books on Amazon that related to learning how to code and I found that the best ones usually contained all of the code for learning inside the text; sometimes, this included Git, plus programming language, tools, and frameworks. This was unfortunate because books like that become outdated very quickly. Also, it's impossible to learn everything you need to know just from one resource; you need many. Books are better suited to advice which doesn't age so quickly or, perhaps, to deep technical knowledge on one subject. I don't think books are a good medium to contain a comprehensive curriculum for learning to code.

I wanted to find a book that had targeted advice for people who wanted to learn how to code and get their first job. So, I wrote a book on the topic myself. It took me almost a year from writing the first outline until it was published for sale.

At first I thought I might release it as a book on Github similar to Getify's, You Don't Know JS series. After some doing some research and seeking advice, however, I decided it was best to publish it as a regular e-book and paperback (audio version is coming soon). I spoke with publishers about the idea and what I had so far, but they were either completely uninterested or wanted to take 90% of the profit from book sales (which is after platforms like Amazon or iBooks take their cut).

When I realized I wasn't going to get anywhere with publishers as an unheard-of author, I decided to look into self-publishing. I was surprised to find that so many people over the last decade had become successful authors by self-publishing. So I bought some software, did some research, and made a plan.

Writing & Editing

I first outlined my book in markdown because that's how I usually take notes, though I wanted to find something with more features for Authors. There are several apps on the market, but the one I liked the best was Scrivener which has mobile and desktop apps that sync over Dropbox.

I did most of my writing in the desktop application, but the phone app was very helpful for when I had short periods of downtime, like waiting in line or in-between meetings. As I wrote more chapters, I would send them off to friends and family to get feedback.

I probably revised each chapter at least three times after it was finished, not including the final edits. I hired two editors total. One of them did an okay job of picking out a few grammatical errors here and there. The other one, my friend, completely tore my sentences apart and questioned everything I wrote. It was tough to get that kind of feedback but he was definitely the kind of editor I needed. If I had gone through a publisher, I would have had different stages of copy editing, line editing, and proofreading. In my case, however, they were all kind of done together with some extra proofreading at the end to try to catch any final errors.


I am not an artist, and I did not hire one for any of the images inside of the book. I made due with using my regular mockup tools that I use when I'm building applications plus some screenshots that I took from websites. It took me quite a few hours to figure out how to properly size the images and get them to display correctly. I also had to make some final adjustments before publication to get the images to display correctly for both paperback and ebook versions.

For the cover art, I hired a talented designer, Faith Miller, who had recently worked with me on a project. If I could go back in time, I would have definitely gotten started with the design sooner because it took several months which was longer than what I expected. Originally, I thought it was just going to be some nice looking font with a background. It's a good thing I didn't decide to make the cover on my own. Faith gave me a lot of different options and had me choose between all of her ideas which was really nice. I'm very happy with how the cover turned out and I'm going to use the same style for any future non-fiction works that I publish.


To publish the book, I first had to format it correctly. There are a few options for formatting as a self-published author. Platforms that sell books like Draft2Digital and Kindle Direct Publishing have basic formatting tools that you can use for free when you upload your book. There are also templates for word processing applications that you can use to output the correct format when you are exporting your book. Scrivener also has some good formatting tools that I tried out while I was writing the book but I ended up going with the easiest and best option that I found on the market, Vellum.

Vellum is amazing! It made it so easy to import my book and have it automatically formatted. I made some minor manual adjustments, but Vellum really made my book look professional with very little effort compared to other programs. It also automatically generates the table of contents and helped me with the copyright page and back matter. It was so helpful to have the table of contents generated with links for the book and page numbers for the paperback without doing any extra work.

Vellum also exports a custom file for every different platform you select. You can download and use it for free, you just have to buy it if you want to export the book :)

I chose to publish on as many platforms as I could without uploading separately to each one. I used Draft2Digital to publish my book to eight online stores, including Apple's and Barnes & Noble's, and then I uploaded it separately to Kindle Direct Publishing (KDP). The reason for the separation was KDP's strict requirements and the fact that most book sales go through Amazon (~80% of all ebook sales!) so I didn't want to lose an extra 15% off the top by using a third party. KDP actually rejected my paperback cover about eight times before they finally - after a few weeks and a dozen phone calls - approved my book just the other day.


The key to selling copies of a book is to build a following on social media platforms and through blogging. I have a small following on social media but not nearly enough to sell a lot of books. I am however, trying to grow my audience so I can be a full-time content creator. My book will be one piece in making this a sustainable venture for me.

Right now, I don't do anything too fancy for my marketing. I have reached out to the library who might buy copies of my books. I'm also ordering 'author copies' - which cost slightly more than the printing fee - for myself to sell to book stores and so I can do a few local interviews (instead of book readings since my book is non-fiction). One thing I wasn't expecting was for people to ask for signed copies. I feel very flattered by it but it wasn't something that I anticipated at all. Fortunately, Paypal makes it easy for me to set up a deposit page and then I can easily sign the books and send them off.

Hard Lessons

Be careful who and what you include in your book: I was using a great quote in one of the chapters and then came to find out the person had strongly supported Jim Crow for his whole life, among other detestable things. I just couldn't feel good about using his name in the book no matter how good the quote was. I eventually found another quote to replace it.

Also, there was another place where I quoted and spoke about a prominent individual in the tech industry. It turned out that he was caught heavily plagarizing other people's work (for years) which, of course, didn't align with my values. I found out about this wrongdoing when I was about to publish the book. I had to go back and redo that part and it delayed the release a little bit but I didn't care. I had to stand up for my values or I would never feel good about the book I worked so hard on.

Then, after all that, I totally screwed up the pre-order process. I had the book listed for pre-order on Amazon, but didn't correctly upload all of the files in time and it ended up that the pre-order had to be canceled. Of course, I couldn't see who had pre-ordered the book, so I just had to make an announcement on my social media and go ahead and make the book available for sale again.


This whole process was definitely not easy. I went through a lot of ups and downs over the last year. It's also scary to have it out there in the world where anyone can read it, rate it, and judge me without ever knowing who I am. Authors live and die by ratings on these platforms so it's unnerving to think about who might not like the book and why, and what they might say about it in a review.

I try not to worry too much though. There is nothing I can do about it after all. I sent my writing out into the world and now all I can do is wait for feedback and make updates for a version two in a year or so. I'm proud of myself; happy that I overcame all of my struggles to finally publish a book.

Are you working on a book or have an idea for one? Please leave a comment below. I would love to hear your thoughts.

Don't forget to check out my book :)

Disclaimer: this article contains affiliate links. That means that, at no additional cost to you, I may get a small amount of money if you click on a link and end up purchasing the software that I recommend. This helps me to support my work. Thanks.