Self-publishing Staff Engineer.

February 17, 2021.Filed underbook14staff-eng10

After I publishedAn Elegant Puzzle, I consolidated my notes intoWhat I learned writing a book。That was my first book writing and publishing experience, and I learned a great deal. When I started working onStaff Engineer, I sort of knew what I wanted to do, but because I ended up self-publishing, I ended up learning at least as much as with my first book.

There are a bunch of great articles on writing technical books out there likeThe Economics of Writing a Technical Book,Writing a book: is it worth it?, andthis thread on the Orange site。My experience isn’t incredibly unique, but perhaps it will be useful for folks debating publishing a book, and either way, I willlearn a lot from writing this

Finally, before getting into the details, two huge “thank yous.” First toGergely Oroszwho was a month or two ahead of me working onThe Tech Resumeand saved me many dozens of hours along the way. Second to theTechWriters communitywho provided a great deal of feedback, suggestions, and publishing experience.

Beginnings

I started thinking about my next writing project in October 2019, about six months afterAn Elegant Puzzlewas published. I wasn’t excited to write another book about engineering management but did enjoy the prospect of publishing another book. There were a handful ofbooks I could imagine writing, but the one that felt most natural was one exploring the plight of the Staff engineer. Staff engineers are the core of large technology companies. Still, at many companies, neither the Staff engineers nor the engineering managers have a clear vision for what the role actually entails.

Once I had a clear idea, I started figuring out how to approach the book.

Schedule

这个项目的整体进度大致是:

  • Started the project in October 2019
  • ReleasedStaffEng.com, June 2020
  • Cover started, December 10th, 2020
  • Cover completed, December 20th, 2020
  • Editing started, November 2020
  • Foreword completed, January 20th, 2021
  • Editing completed, January 27th, 2021
  • Early Editionfor sale on Gumroad, January 28th, 2021
  • Full Release on Amazon and Gumroad, including paperback, February 5th, 2021
  • Audiobook, estimated late February 2021 to early March 2021

These dates are slightly rough in a few places; not everything has a clear starting or stopping date but is more or less accurate.

Budget

I didn’t keep a particularly clear budget and some items are slightly arbitrary to allocate against this project versus other projects (for example, Mailchimp is costing about $80/month now, but half of that is due to my blog’s mailing list). That said, to the best of my sleuthing, this is a somewhat accurate budget:

  • Cover art: $500
  • Mailchimp: $480 = $40/m * 12m
  • Canva: $78 = $13/m * 6m
  • Gumroad = $60 = $10/m * 6m (excluding processing fees)
  • Audiobook narration & production: estimated $3,000
  • ISBNs: $295 for 10 ISBNs (cheapest size for 2 codes)
  • Frontendor: $59 (styling for marketing site)
  • Airtable: $288 = $24/m * 12m

So all in, that’s $1,760 for everything excluding the audiobook and $4,760 including it.

Sales

I’m trying not to spend too much time fixating on sales, although I have to admit I like numbers that go up. I’ll occasionally be updating sales numbers onthe Exuberant Sketches page for Staff Engineer。As of 2/15 (10 days after Amazon launch, about 15 days after Gumroad launch), the sales are 1618 copies via Gumroad, 944 paperbacks, and 762 Kindle. That’s a total of 3,324 copies. It’s still very early days on whether the sales remain steady or quickly taper off, but either way, I’m trying to focus more on the folks saying the book has helped them understand their role (or get promoted) rather than the raw sales.

I’ve come to believe that folks don’t value things that they don’t pay for, so I wanted to charge a reasonable price even if folks could still get most of the content for free onstaffeng.com。Initially, I was thinking of charging $10 everywhere, but that felt like it would undercut the market in an uncharitable way to folks trying to make a living off writing technical books, so I decided to go with $25 for both paperback and digital copies.

Money moves slowly (especially money from Amazon), but from that, I’ve been able to donate $9,000 so far across Black Organizing Project, Resilient Coders, /dev/color, and Black Girls Code. I will be excited to donate more as it comes in.

Process

ForAn Elegant Puzzle, I was able to draw from my own experiences as a manager, but I knew I wasn’t going to be able to do that for a book about Staff engineering. I decided to start by interviewing a handful of folks.

These interviews becamestaffeng.com, and served not only as a great way to ground the book in real experiences but also an effective mechanism to build up an email list of folks interested in the topic. I put together the site inGatsbyin a few days, although knowing what I know now, I wish I had usedHugo(much simpler, fewer moving pieces, easier to get CI/CD working on Github Pages). From there, I found a good domain, created the Github repository, set up Github Pages to host it, and created a new MailChimp mailing list.

I stored up about ten interviews before starting to release them, with the first being fromKeavy McMinn。Around the same time, I also began writing the guides and releasing them on this blog, with the first beingLearn to never be wrong.I dripped out the stories and guides, sharing them via mailing list and promoting the stories a bit on Twitter and LinkedIn.

That write-promote loop became the project’s overall cadence. I started with a goal of twenty interviews (recently hit withAaron Suggsas the twentieth), and with an initial slate of guides. Both the goal and the guides got reworked a number of times as I went, and the project became clearer in my mind.

Formatting

In September 2020, I started working on the actual book itself. The book is a private repository on Github that pulls in content from the publiclethain/staff-engrepository as part of its build. It is a 438 line Python script, a 48 line makefile, and a bunch ofPandocconfigurations. It’s a one-line command to rebuild the epub, digital pdf, and print pdf versions of the book and runs in about two minutes (most of the time is spent in LaTeX generating the pdfs).

You can see aredacted version of the build script on Github

This is pretty similar to howAn Elegant Puzzleworked, except my goal there was simply to produce something good enough to hand over toStripe Press, whereas my goal here was to create something to send to users directly. It was easier than I expected to get something pretty good.

The popular opinion is that any time spent creating tools is wasted, but I sort of disagree. It took a couple of hours toadd QR codes for every reference into the print copy, and I just wouldn’t have been able to do that without creating my own tooling.

Digital formatting was pretty straightforward, but I did run into a bit of a learning curve getting the paperback working underKindle Direct Publishing。经过三轮的印刷证明turned outright, and I gave up entirely on KDP Cover Creator–the final cover was actually made in Omnigraffle, which I find pretty funny.

Cover

The cover image was illustrated by an artist I found onFiverr, and then I created the full cover image onCanva。I was very intimidated by this process, but it ended up being pretty painless, and I love how the cover turned out.

It took less than two weeks from creating my Fiverr account to having a completed cover, and cost about $500. Next time I will try to find an artist to work with directly. Fiverr was a great way to ease the learning curve, but the compensation for the artist’s work was low. The biggest issue I had was accidentally using the approval copy of the cover illustration rather than the final copy and realizing later that it had a subtle watermark. This meant that I had to go back and remake all the various assets, but really that’s pretty minor.

Editing

I was able to find about a dozen folks from Twitter who were willing to review book chapters. This was immensely helpful and greatly improved the quality of those sections. I usedGrammarlyto do an initial pass on grammar and typos, and my wifeLaurelwas kind enough to do a final close editing pass for other issues. I explored getting a line editor, but ultimately the timing didn’t quite work out.

Audiobook

While I’d always considered making an audiobook forStaff Engineer, I was leaning heavily towards not making one by the time I finished the digital release. However, enough folks asked about it that I decided to look into it. I went into it hoping that I might be able to record the book myself, but life with an eight-month-old kid in a small house just didn’t mesh with the logistics of recording an audiobook: 20+ hours to record, and the need for a very quiet space.

So then I gave up on the audiobook again, until someone else asked for it, at which point I dug a little further into Audible’s audiobook creation platform,ACX。Then I gave up again because it felt a bit too complex and complained about it on Twitter, which led toIan Joshua, a product manager at Audible, demystifying the process over a Twitter DM.

A few days later and I’d listened to thirty narrator auditions, submitted an offer, and the audiobook was underway. I won’t have a precise cost to create the audiobook until it’s fully finished, but my guess is it’ll be around $3,000. Audible payments are fairly inscrutable, so I honestly don’t have a clear sense of how this will pan out financially. I’m hoping to at least break even and get a free education on audiobook creation.

Foreword

I'm pretty sure that I metTanya Reillywhile asking her if she’d be willing to do an interview for this project, which led instead to a discussion of an adjacent project she was working on. We kept in touch a few times afterwards, and when I started thinking about my dream author to writeStaff Engineer’s foreword, she was absolutely the first person on the list: Tanya’s talk and post onBeing Glueis the seminal work on Staff-plus leadership.

As such, it’s hard to exaggerate how excited I am that she agreed to write the amazing foreword that she did, and I hope to return the favor (I imagine more figuratively than literally, although literally would be fun, too).

For some reason, I never even considered adding a foreword toAn Elegant Puzzle, probably because my personal network was much smaller at that point and an entirely unproven author to boot. I’m really glad I didn’t go that route this time. This is kind of a funny statement because that was only two years ago, but that's genuinely my experience of it.

Blurbs

Carrying on in that vein, I was very intimidated by the process of finding blurbs when I wroteAn Elegant Puzzle, but it was much easier this time. There were a number of folks who I met while recording interviews but who weren’t able to make the interviews work from a timing perspective. Of those, Amy Unger and Nicky Wrightson were kind enough to provide fantastic blurbs. In addition to Amy and Nicky, several others were generous enough to review the work, including Padmini Pyapali, Kevin Stewart, Uma Chingunde, George Orosz, Emily Robinson, and Shawn Wang.

These blurbs ended up onstaffeng.com/book,Gumroad page,Amazon page, and eventhe printed book

Selling

I decided to sell viaGumroadandAmazon。Both have gone well.

Gumroad has been fantastic. I initially hoped to go with a direct Stripe integration, but it would have required a bit too much tool building when I knew I should be focused on finishing the book itself. I also added a hosted Gumroad store atstore.www.klytx.com, which seemed like a good idea at the time, although I haven’t found much of a use for it yet.

Amazon has been good as well, and I’ve found the paperback experience withAmazon KDPto be surprisingly great. The print quality of all the paperbacks I’ve received has been quite good, although at least one person has submitted an Amazon review with a poor-quality print, which is quite a shame and hard to track down as they use multiple printers in each region. That said, the quality has been quite high for most folks, and having a physical copy was an important goal for me.

ISBNs

I wanted to have the same ISBN for Gumroad and Amazon, which meant that I spent $250 for ten unique identifiers fromBowker。ISBN pricing feels like a scam, but fortunately, the rest of my selling experience was great. In retrospect, I’m not quite sure why I did this. I probably should have just not bought ISBNs because I don’t anticipateStaff Engineerbeing sold in any contexts that would actually need them.

Marketing

有人曾告诉我的书在卖,而than bought, and I tried to keep that in mind when I started marketingStaff Engineer。I did a variety of things here:

That was pretty much it, I think. ForAn Elegant PuzzleI spoke at a couple in-person conferences and went to a handful of private company events to talk about the book, but I’m skeptical that those did too much. The only thing I really regret not being able to easily recreate wasthe feature with First Round Reviewwhich created a surprisingly large amount of visibility.


Btw, Gergely’sWant to Start a Startup, as a Software Engineer? Sell Something Onlineis a great piece on book marketing.

Amazon advertising

On the advice of Alex Xu, author ofSystem Design Interview, I decided to start experimenting with a small amount of Amazon advertising. Alex’s experience was good conversion, reasonable clicks, and very hard to scale up volume. So far, I’m seeing a couple of dollars in spend a day out of a $10 daily budget, and am seeing roughly $0.40 per click, but too early to say whether this is going to drive many sales.

That’s a wrap

When I launchedAn Elegant Puzzle, Brianna Wolfson told me that books are sold over the first six months, not just the first week, and that really stuck with me. It was also, with the exception of a week where Amazon pulledAn Elegant Puzzle’s digital version for two weeks due to a communication misfire over quality reports, true.An Elegant Puzzlesold~13k copies in the first five months。IfStaff Engineersells that many copies in its lifetime I’ll be pretty happy.

IfStaff Engineer最终被帮助you, pleasedrop me a note!