If you’ve been following me on Twitter, or spoken to me in real life recently, you may have noticed that I’ve written a book, and it was published earlier this month!
So first, let’s do the obligatory plug, because you can order it now! I’ve set up the memorable URL of https://is.gd/fullstackbook to share all and sundry, and obviously I think you should all go and order it! The link above takes you to Amazon UK who are currently showing out of stock, but you can order directly from Apress or Amazon US too.
I’ll do a further blog post on exactly what my book contains in a bit, but first I though I’d outline a bit about the process of writing my book, and then getting it published.
In December 2015 I took a leave of absence from being a consultant at ThoughtWorks with what I later came to recognise as something that had the symptoms of depression. I decided to step out of that environment temporarily, but knew I’d start climbing the walls unless I had something to pour my energies in to. So I decided to start writing a book of everything I’d learnt and all the best practices I’d started to adopt, especially when it came to mentoring more junior developers.
So I took my laptop to Manchester Central Library’s reading room (which is a beautiful place to work, even if at exam time you’ll be surrounded by teenagers with CGP books, which took me back), and opened Apple’s Pages app and started writing. I started writing an introduction (which mostly survives as the opening section of the Modern Web chapter) and then sketched out a table of contents. I set myself a target of 50,000 words and thought I’d have it done by the end of the year, at which point I could take it to a publisher and see if I had anything worth publishing (and then self-publishing an e-book if no-one was bothered).
Within a month I’d got my first 10,000 words down, spending most days at the library writing, but then I’d left ThoughtWorks and started freelancing with a Manchester digital agency and had accepted a job to return to BBC R&D, although I had to wait a month for the paperwork to come through before I could start. At this point, I got into the habit of going to the library almost every Saturday afternoon to write and normally got between 1–2,000 words done per weekend. The approach I took was fairly non-linear, I often went in and broke a heading down into a set up of subheadings and bullet points, sometimes restructuring things as I went. When I actually wrote prose, I often returned to it the following week to review it and expand on a related subheading, and often started with rewriting parts of the chapter.
Writing was hard. It’d often take me over an hour to get into a “flow”, where the first hour might result in my writing only 100 words or so, but when I was in the flow, 500+ an hour came easily. I’d skip through the structure to find what I wanted to write about that week, and then focus on that, normally finishing for the day when that section was done. I left notes where diagrams and code snippets need to be included, as well as other TODOs litering the code.
I enjoyed the structure to my weekends that writing a book gave me, and the sense of accomplishment I got from making progress although the end goal always seemed far away. I approached a publisher early on but it didn’t go anywhere, and I actually took a week off work and went to a resort in Spain where I spent almost the entire time working on the book. I didn’t use any fancy technology in the first year — just Apple’s Pages, saving the document to my Dropbox, as well as SpiderOak backup, and was mostly helped by Armin van Buuren’s A State of Trance radio show on Spotify (the perfect music to help me get into the “flow”).
I hit my 50,000 word target after approximately a year, but still about half of my structure remained unfilled, so I knew I had to continue. I set myself a new deadline of completing by the end of 2017, but 2017 was a slow year, and at one point I went 8 weeks without working on the book. In 2017 I also moved away from using Apple’s Pages with one very long document within it and used IA Writer to write the chapters in Markdown, and the GitBook software to compile that into a PDF for reviewing (something I rarely did other than to stroke my ego and look at the total number of pages I’d written).
After a slow 2017, in 2018 I conciously made an effort to make time for myself again (I stopped playing badminton at weekends) and set myself a target of completing it before my birthday in July. I set up a Trello board with the chapters in it, and made a big list on the mirror in my office with all the outstanding TODOs and sub-headings on it, crossing them off once I completed them. With 4 subheadings left to do I again researched which publishing houses I’d consider working with, reading reviews of them and settled on Apress. I submitted a proposal using their form to Louise Corrigan (an editor with the bonus of being both UK-based and who had web development in her portfolio), who seemed keen and after some conversations I had a contract to sign and the project suddenly got Very Real, and work ramped up. I finished the final chapters and started working with Nancy at Apress, submitting my final copy to their Sharepoint-based reviewing system. I also had a technical reviewer assigned to me who would check the accuracy of what I was writing. This process was actually very, very smooth and I was terrified when I received by first piece of feedback — a few small comments but mostly a “this is good!” comment. The Apress submission process involves using Microsoft Word, so I copied all of my Markdown files into Word and added the appropriate styling as I did so (their template includes built-in styles to help the production team appropriately lay things out, it also closely resembles the actual style in the printed book), as well as reviewing the content I’d written and fixing/rewriting things as I did so. The other key thing I had to do was to add all the diagrams, which I’d left until now. I use Omnigraffle extensively for work, but I splashed out for a personal copy for me, and used that to do the diagrams for the book.
Once the initial content was done, work was then fairly back-and-forwards between Apress and myself. I’d get comments back from Brandon (the technical reviewer) adjust and then submit for final review. Once everything got handed in, a production editor was assigned who did all the copy-editing (as well as changing all my British-isms to American…) and I was then asked to re-read everything to check their corrections and answer any questions they raised whilst editing it. And then it came out! And I got a physical copy! And it became very real very quickly!
I’m so pleased to have finished my book, and I’m so grateful for Apress for working with me to get it published. I know some people have already purchased copies and I’m glad for the feedback. I really hope that it helps people, and through some of the focus it puts on the human as well as technical sides of software engineering, helps make our industry better.
If you have any more questions on the book, or the process I went through, please get in touch via Twitter or e-mail me at firstname.lastname@example.org. And if you do get a copy, please let me know your feedback, and pretty please leave a review on Amazon, as that really helps me out too.