My book, Data Visualization with d3.js, was finally published on Friday. Right on my 26th birthday.
It's been 10 months since the journey began, a year if you say it began the day Packt first contacted me about writing a book. Most of the journey was one giant slog.
The exciting phase began in January, then finished in March with a happy blogpost: It takes about two months to write a technical book. I won't say I was oh so wrong because it didn't change that much since March.
"The final tally for the book is 179 pages, 30 examples, 66 days, 171 hours." ~ Swizec in March
Structurally speaking it was done. All the ideas were there, all the knowledge was organised, all the code samples were finished. None of that changed. But it took me and the editors another 7 months to finish.
At the end of March, Packt asked me to come up with reviewers for the book. I asked around on Twitter and some of those who raised their hand showed up in comments later, so I guess Packt contacted them. The whole process was a blackbox; when people asked me what was going on all I could say was "I've given your email to Packt. Don't know what happens next, sorry."
On April 5th the commissioning editor came back with their first round of feedback. It was for Chapter 2 and it said "I've highlighted a few minor things, and the chapter is 20 pages too long.". Feedback for the other chapters followed a similar pattern.
You see, Packt had envisioned a 120 page book. I delivered a 179 page book. This is what they called a "major problem". But they liked the content.
After three more months I delivered the final drafts. Slimmed down to about 140 pages the book was a joy to read and I didn't lose any content.
I was so happy. Excited even.
The editor came back with a few more edits. Instead of the days or weeks it took me to edit a chapter before, I got most things fixed by end of day.
That's how excited I was to finish the book and have it published.
"Hey, please fill out this invoice for your royalty advance."
Yes! We are done!
"Err no, you filled the wrong amount. We only want to pay the first draft part of the advance right now."
What do you mean first draft? Most of the chapters have gone through three drafts already, they are done. But fine, guess I get the rest of the advance when we're done done.
Then I went to the US for a month. And spent another month traveling around Europe. The book was supposed to have come out in August but I hadn't heard anything from Packt. Thought that was pretty fishy.
The real slog begins
Come back home. Spend a few days in blissful ignorance, get ready to live life again.
"Hey, we have reached the rewriting stage. Here is the first round of feedback from your technical reviewers."
What the hell? Rewriting stage!? But I already wrote the bloody book twice, I don't want do it again. Just publish the damn thing!
I didn't say that of course. I just sighed and refused to open the chapters for two weeks.
When I was done battling primal fear - you know, the kind that twists your stomach in a knot - three chapters worth of feedback had accumulated. But at least it was good, solid feedback. The kind that makes you say "Damn it dude, you make such a good point you should be the one writing this."
But it was now September and the publication date on Packt's page had been changed to October. This meant I had to ignore a lot of the feedback that said "This example doesn't work perfectly. Can you change it?"
At this stage all I could do was fix up code readability, change tiny things about the examples and improve my explanations to make them more correct. If I didn't make the hard choice to avoid major changes, I could spend another two years making this book perfect.
What worried me, however, was that most of the comments were dated to early July. I got them at the end of August.
A lot of them were also "So errr, I don't know if this is in an earlier chapter, but this function is never introduced." It was always in an earlier chapter. Every single time.
I don't know how commissioning editors think technical books work, but you can't just give somebody Chapter 4 to review before they see Chapter 2 that talks about the basics everything else builds off of. I also don't know why it took so long to send the feedback to me, but I got a clue in one of the emails.
"Yeah it's taking a bit longer because the commissioning editor is still assembling everyone's feedback into a single document to send to you."
And people say .doc is a good format for collaboration. HA!
When this round of edits was done, I was no longer excited. It was the beginning of October and I just wanted the book finished already.
Oh and during this stage the commissioning editor changed. The new one was a really nice guy with some great ideas, but most of the great ideas went right against the feedback I'd gotten from the previous commissioning editor and it was now too late to turn back. Bummer.
Two weeks ago I was contacted by a dude who was the first person besides me actually excited to work on this book. Man I loved this guy. He was friendly, easy to talk to, he even made sure to have the book published on my birthday. That was super nice of him.
The last in a long line of people to touch the book.
Every day he sent me a final draft of a chapter with some minor fixes in wording, grammar, making introductions to code samples and images consistent, fixing all the d3, D3, d3js, and d3.js to a consistent form and so on.
When he didn't introduce glaring grammar problems, changed sentences to make them look written by a foreigner, or broken them because he didn't understand the original meaning perfectly, he was pretty cool. He would poke me on Skype when something was confusing.
By the end of that week I hadn't gone to bed earlier than 4am on even a single day. My brain was dead. I still haven't fully recovered.
But the book came out on my 26th birthday and that makes me happy. You should check it out, here.
The final final tally for the book is: 194 pages, 12 months, 333 hours of focused work, 450 euro of royalty advance, 16% royalties promised.
Yesterday I asked how Packt plans to market my book and got a one line response:
Yes we do market the book. We have a marketing team for that.
I set up some AdWords.
PS: they sent my three copies of the book to the wrong address - a combination of my pen name and my business address. I just hope the mailman figures it out.
Learned something new?
Read more Software Engineering Lessons from Production
I write articles with real insight into the career and skills of a modern software engineer. "Raw and honest from the heart!" as one reader described them. Fueled by lessons learned over 20 years of building production code for side-projects, small businesses, and hyper growth startups. Both successful and not.
Subscribe below 👇
Software Engineering Lessons from Production
Join Swizec's Newsletter and get insightful emails 💌 on mindsets, tactics, and technical skills for your career. Real lessons from building production software. No bullshit.
"Man, love your simple writing! Yours is the only newsletter I open and only blog that I give a fuck to read & scroll till the end. And wow always take away lessons with me. Inspiring! And very relatable. 👌"
Senior Mindset Book
Get promoted, earn a bigger salary, work for top companiesLearn more
Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.
Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.
Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help 👉 swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.
Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers 👉 ServerlessHandbook.dev
Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization
Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are ❤️