Writing a technical book ✍️ 📖
My complete experience, learnings and earnings included 💸
Around May 2021, I decided to start writing a book called Jetpack Compose internals. The goal of this book was to teach about how the library works on the inside, so devs could understand how to use it correctly and effectively in their day to day jobs.
It’s been such a ride since then 🚀
Why tho? 🤷♀️
I enjoy creating content in any form. One I find particularly interesting is technical writing. For some reason I always enjoyed writing docs, which is probably not very common 😅 I enjoy the process of gradually polishing a text, and figuring out the right moment to introduce every topic. Not too late, not too early. Finding the sweet spot where reading feels natural and easy. This requires lots of practice in my experience. This was also the reason to start writing the Effective Android newsletter.
Other reasons to write it 🤔
There were a few reasons:
Before the official Jetpack Compose stable release, the hype was pretty real in the Android scene. Every Android dev was looking forward to it, so it was pretty obvious that people would be very interested. Especially during the first several months.
There was no literature at all about how Compose worked internally out there yet. It was a clear niche, and the library was going to inevitably become the de-facto standard for Android UI, so the outcome would be likely good, and people would probably come back to the book and use it as a reference for years. When devs become very experienced with a technology, they always start digging into its guts in order to master it.
It was a great challenge for me. Very technical, lots of low level concepts are put into practice in this library. Such as state management and isolation in concurrency scenarios, change propagation, compile time validation and IR transformation to enable new language features, and much more. Looking back, every new chapter has been such a roller coaster to write.
I wanted to use the chance to learn Compose in depth. I wanted to become very knowledgeable on this new technology, since it would help me on my career as an Android developer in the years to come. As already said, Compose would likely be used on almost every Android app in the market in the close term.
Trying entrepreneurship had been on my mind for a while already. I always had my side projects but none of them were monetized. I thought I had a good chance this time, and good technical experience, so it was a good moment to try.
Sharing is caring. I appreciate the Android developer community profoundly, since the spirit is so positive and constructive, and I made very good friends on it. I've always loved sharing with everyone else, since others sharing their content is also how I was able to grow as a developer during all these years.
Those were only a few of the reasons, but all of them played pretty well together.
The issue of writing about internals 😵
It is too close to implementation details. That’s it, that’s the tweet.
Turns out writing about internals implies the need to update the book a thousand times so it does not get outdated too quickly. Especially when the target technology is on its initial years of existence.
When a library gets a public API freeze for a specific version (1.0 in this case), it means that any changes to its API surface are forbidden moving forward, since they would affect client code directly. That’s great, but it still allowed the developers in the Jetpack Compose team to make further changes at the implementation level. As long as the public api and behavior towards the client would not change. Therefore, it kept changing for a while. On top of this, new ideas kept getting added for new versions of the library, and I also found those interesting to include in order to understand the big picture.
Overall, I had to put lots of time and effort on it, especially during the first year. I still do, but in a bit more relaxed / optimized way. It is good to find a good balance. No one wants to get burned with a side project! 🔥
All this effort is why I appreciate so much all the support from the community, and all the sponsorships. Also learned so much during the process, at different levels.
The earnings 💸
A few days ago I wrote a Twitter thread with all the numbers.
These are the total earnings from July 2021 until today. Keep in mind that these numbers are before taxes.
It's been around 17 months published, so that is around 1875$/month in average. In practice, it has been quite closer to 1000$ several months, since it made much more during the first 2-3 months after release. To give you an example, these are the royalties from the last 3 months:
On top of the royalties, some sponsorships have been run:
🧑💻 Snapp Mobile and Snapp Automotive: They picked the Diamond 💎 sponsorship option: 5000$. Thanks to this, Were were able to make the book completely free for every developer in the world for a full month! This helped to drag so much attention towards the book, which transformed into hundreds of new readers.
💬 Stream: 1500$. They picked the Silver 🥈 sponsorship model. It reduced the book price a 25% during a full month. The great Jaewoong helped to make it happen 🙌 always very supportive with the community 😊
🎬 CodeWithTheItalians: Ivan and Seb purchased several copies of the book to do giveaways on their Twitch channel. Highly appreciated coming from two well known colleagues like them! Drop by their channel if you didn’t yet.
🎙️ Paris Android User Group (PAUG) also purchased several copies to give away in one of their meetups in October. Martin Bonnin made it happen 🙏
All the sponsors are highly impactful, since they help to make the book a reality and make it affordable for me to keep working on it.
Can we sponsor the book?
Of course you can run a sponsorship for Jetpack Compose internals. If you are interested in sponsoring, feel free to DM me on Twitter. These are some of the benefits of sponsoring the book 👇
Your company is highlighted in the book attributions page, forever.
Your company is properly attributed on tweets and tweet threads about the book for an audience of more than 8k Android developers (My Twitter account).
You can help reduce the book price from a 10% up to a 100% depending on the sponsorship option you pick. Some levels give you total exclusivity, so it is only your company sponsoring the book that month. I personally think that this is a win-win-win model, since you help to make the book more accessible, your company is promoted for a good reason, and you help me to keep working on it. All the sponsorship options are listed here:
Can I make a living from it? 🏡
As mentioned earlier, these are the earnings before taxes. Taxes in Spain can be particularly high, so net earnings are way lower. Luckily I have other sources of income on top, like Jetpack Compose and internals online training 👨🏫, which is performing very well so far. Got really good feedback from the first edition, and the 2nd one is around the corner. Looking forward to it!
The book has so much content that it allows for lots of content reuse / expand in different formats like the newsletter or the online training. Not everyone has the time or will to read a book, but they might rather attending an intensive course (2 days, 5h a day) or read an article from time to time. Content reuse is pretty important in this business, especially when you are the only person running it.
Getting back to the original question: yes, I could live from my side projects at this point, yet my overall income is way higher while keeping my full time job for now. It is also especially hard with a growing family in my care. But it is something I can already seriously consider, so that is a good sign for sure. Maybe in the future!
That said, it might be more than enough for you in your current situation!
The future of Jetpack Compose internals 🔮
I consider the book ready content-wise, so I am already in the process of revisiting some of the chapters. I don’t have a strict deadline for the final release, since that would make it feel like an obligation to me and it would instantly kill my motivation. I try to write when I feel inspired and in the mood, which is turning out great so far. I’ve learned to be more considerate with my mental health in 2022.
If you always wanted to read the book but you were in doubt since it was not 100% complete, it is the perfect moment to buy it. The great point of Leanpub is that you pay once, and you get every new update in your email.
If you liked this post, you should also read Alex’s one about quiting Apple to go independent 👇
See you around!