<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Niels Cautaerts - Writing</title><link href="https://nielscautaerts.xyz/" rel="alternate"/><link href="https://nielscautaerts.xyz/feeds/writing.atom.xml" rel="self"/><id>https://nielscautaerts.xyz/</id><updated>2026-05-12T22:00:00+02:00</updated><entry><title>I wrote and published a book with Packt</title><link href="https://nielscautaerts.xyz/i-wrote-and-published-a-book-with-packt.html" rel="alternate"/><published>2026-05-12T22:00:00+02:00</published><updated>2026-05-12T22:00:00+02:00</updated><author><name>Niels Cautaerts</name></author><id>tag:nielscautaerts.xyz,2026-05-12:/i-wrote-and-published-a-book-with-packt.html</id><summary type="html">&lt;p&gt;Finally I can return to shitposting on the internet&lt;/p&gt;</summary><content type="html">&lt;p&gt;You probably have not noticed in the infinite sea of noise that is the modern day internet that I have not written anything of note in over a year.
I have not published anything on Medium.com since November 2024; since then, it seems the site died and everyone went to Substack.
I only wrote one meaningful article for my personal website in 2025, about a Physics problem dealing with the Drude model of electrons that took me down a rabbit hole I just had to write about.
If you are interested, you can read it &lt;a href="https://nielscautaerts.xyz/solving-ashcroft-and-mermin-problem-11.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The primary reason for my hiatus: I was busy writing a book.
The book is titled &lt;em&gt;GPU-Accelerated Computing with Python 3 and CUDA&lt;/em&gt;, and after about 1.5 years of work it was finally published at the end of March this year.
You can buy it on &lt;a href="https://a.co/d/03WGN1iS"&gt;Amazon&lt;/a&gt; and on &lt;a href="https://www.packtpub.com/en-be/product/gpu-accelerated-computing-with-python-3-and-cuda-9781803248103"&gt;Packt Publishing's website&lt;/a&gt;.
If you don't want to buy a copy, the internet has a way of making e-books like this ... "accessible"; just give it some time.&lt;/p&gt;
&lt;h3&gt;How did I end up in this predicament?&lt;/h3&gt;
&lt;p&gt;In the fall of 2024, I received a LinkedIn DM from someone from India claiming to be a representative from &lt;a href="https://www.packtpub.com/en-be"&gt;Packt publishing&lt;/a&gt;.
They asked whether I wanted to "collaborate on" (read: author) a book for which they had a working title: "GPU programming in Python with CUDA".
I still have no idea how this person found me, or how they decided I would be a good author for this book.
My working hypothesis is that they found my YouTube video from many years ago about GPU programming in Python with Numba-CUDA, which has a decent number of views and which you can find &lt;a href="https://www.youtube.com/watch?v=9bBsvpg-Xlk"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;At first I thought it was a scam.
I have multiple Packt books in my e-book collection, mostly through &lt;a href="https://www.humblebundle.com/"&gt;Humble Bundles&lt;/a&gt;.
Some are trash, but some have been pretty helpful.
This surely wasn't how these books were written?
Was I authoritative enough to write this kind of book?&lt;/p&gt;
&lt;p&gt;After doing some research (for example, see &lt;a href="https://medium.com/@vincent.vandenbussche/writing-a-book-unveiling-my-journey-with-packt-7bc5c47ca3ad"&gt;this article&lt;/a&gt;), I came to the conclusion: indeed, this is how Packt books get written.
Scouts find relatively unknown people in LinkedIn or other platforms and try to get them onboard as authors on pre-decided titles.&lt;/p&gt;
&lt;h3&gt;Why would I do this?&lt;/h3&gt;
&lt;p&gt;After establishing it was not a scam, the decision to take on this project was not straightforward.
At the time, I had two daughters at home, 2.5 and 0.5 years of age.
Work kept me plenty busy.
I'd just gotten serious about running and was training for a marathon.
I was tired all the time.
Honestly, it was not the time to write a book.
I say that even with hindsight.&lt;/p&gt;
&lt;p&gt;On the other hand, I was working quite intensively with GPUs at my job, yet I felt my GPU knowledge was shallow.
I wanted to dive a bit deeper, but the projects I was working on didn't strictly require it.
Forcing myself to sit down and learn something never works: I need a project that forces my hand.
I figured this might be that project for GPU programming.&lt;/p&gt;
&lt;p&gt;In addition, I already had a pretty good foundation in the subject, and I had knowledge that seemed pretty rare among Python developers and data scientists.
To this date, I still meet many people who use Python professionally and yet who have never heard of the Numba compiler.
I felt like this was an opportunity to make PyTorch monkeys aware that the iceberg of GPU programming in Python is much deeper.&lt;/p&gt;
&lt;p&gt;My suspicion was that Packt reached out to me to write this book because their highly successful book &lt;a href="https://www.packtpub.com/en-be/product/hands-on-gpu-programming-with-python-and-cuda-9781788995221"&gt;Hands-On GPU Programming with Python and CUDA&lt;/a&gt; was published 8 years ago and had become quite dated (the book still relied on Python 2.7).
So I reached out to the author, &lt;a href="https://www.linkedin.com/in/brian-tuomanen/"&gt;Dr. Brian Tuomanen&lt;/a&gt;, to get the full scoop.
Brian is a nice and helpful guy.
Unrelated, but at the time of writing he's looking to cross the Atlantic to work a job in Europe; maybe someone reading could hook him up.&lt;/p&gt;
&lt;p&gt;Brian detailed how his experience writing for Packt was miserable.
He had been working on a 2&lt;sup&gt;nd&lt;/sup&gt; edition of his book, but canned the project after being expected to work unrealistic deadlines and being harassed with mails from the publisher.
He actually advised against taking up the project with Packt and to look for another publisher.
He was even keen to hand over his materials for the 2&lt;sup&gt;nd&lt;/sup&gt; edition of his book so I would finish it.
Still, with hindsight he was happy he wrote the first edition of his book, because he said it opened a lot of doors after he completed his Ph.D.&lt;/p&gt;
&lt;p&gt;I ignored Brian's advice and went ahead into the exploratory phase with Packt.
I told myself I had been warned, knew what to expect, and I could push back when the publisher became unreasonable.
What followed were a few video calls, each time with 3-4 people from India sitting in their living rooms, some with very noisy backgrounds.
They explained what all their roles were, but, to tell you the truth, in those 1.5 years of writing I never really understood what each one of them was responsible for.
Whenever I needed to communicate with Packt, I just C.C.'d all of them.&lt;/p&gt;
&lt;p&gt;What quickly became clear was that I would not be able to complete this project by myself.
So, I convinced my super knowledgeable colleague &lt;a href="https://www.linkedin.com/in/hossein-ghorbanfekr/"&gt;Dr. Hossein Ghorbanfekr&lt;/a&gt; to join me on this crazy project.
He was in a similar situation at home with a young kid that wouldn't let him sleep.
But he was also eager to dive deeper into the CUDA + Python topic.
The deal was simple: equal authorship.
Split both work and any profit 50/50.
With hindsight, I could not have found a better coauthor; Hossein threw himself into this project even more than myself at times.&lt;/p&gt;
&lt;h3&gt;What was the onboarding process like?&lt;/h3&gt;
&lt;p&gt;It turns out that when Packt has an idea for a book, they basically just have a title.
Once they have found authors, the authors have to propose content for the book in the form of a fleshed-out outline.
They needed chapter titles, number of pages per chapter, a summary of each chapter, main headings, and what the reader would learn.
Since we had not yet done any serious research at this point, we were at the stage of "not knowing what we didn't know".
This is not a good place to be for making a detailed plan for a book.
Roughly, we knew we wanted to start with low level fundamentals, then deal with some higher level libraries, and then have some applications chapters that were inspired by our own work.
We came up with the chapter titles ourselves, but for the rest of it we bluffed something together with the help of Google and AI chatbots since we only had a week to complete this task.
We thought it didn't matter that much: we would always be able to change it latter.
That was incorrect.&lt;/p&gt;
&lt;p&gt;Then Packt revealed their timeline to us.
Contracts were to be signed December 2024.
The book was to be published March 2025 - 3 months after closing the contract.
To come up with this deadline, they just added up the pages we promised in the outline and assumed each of us could write at a constant rate of 2 pages per day.&lt;/p&gt;
&lt;p&gt;I reminded them that I took a co-author on board to halve the burden, not to write the book two times as fast.
We negotiated a timeline extension for the first draft to Summer 2025.
Still this felt extremely tight, but the team assured us that if we were having problems meeting the deadline we just had to let them know and they would be flexible.&lt;/p&gt;
&lt;p&gt;With this promise, we signed the contract and started working on the book in early 2025.
The contract promised a total of about 1000 USD for each of us as an advance on royalties after meeting a number of milestones, and 16% of royalties after that.
Brian told us he makes about 200 USD every quarter from his book.
We were not in this for money.&lt;/p&gt;
&lt;p&gt;The "authors portal" Packt gave us access to was a SharePoint environment.
There was a folder for each chapter in the outline.
Book chapters were to be submitted as MS Word documents according to a specific template.&lt;/p&gt;
&lt;p&gt;There was no way we were going to write a coding book in MS Word, so the first thing we did was develop &lt;a href="https://codeberg.org/din14970/packtcompile"&gt;packtcompile&lt;/a&gt;, which allowed us to compile Jupyter Notebooks to the MS Word format expected by Packt.
In a Jupyter Notebook we could keep working, executable code beside the explanatory text.
After publishing the book, we open sourced &lt;code&gt;packtcompile&lt;/code&gt; with Packt's approval.&lt;/p&gt;
&lt;h3&gt;The writing process&lt;/h3&gt;
&lt;p&gt;The first chapters were relatively easy, we were fresh, and deadlines were met.&lt;/p&gt;
&lt;p&gt;Then life happened, fatigue set in, and the writing pace ground to a painfully sluggish crawl.
We started with the chapters that didn't require much research, meaning we left ourselves the harder chapters for later.
Don't do that.&lt;/p&gt;
&lt;p&gt;As mentioned, with two kids at home and a full-time job, doing this on the side was an impossible job.
I had to negotiate with my wife for substantial blocks of focus time on weekends, and I had to take holidays specifically to write on this thing.
After a couple years of being more disciplined about bed time, when I was close to finishing a chapter I was back to my old ways of marathon sessions behind the laptop until 3-4 a.m.
The book took a toll on me, but also on my family.&lt;/p&gt;
&lt;p&gt;Deadlines slipped.
We would not make summer 2025.
Not meeting agreed upon deadlines didn't feel great; fortunately, the Packt team was always understanding and flexible.
The planning was iteratively adjusted, as promised.&lt;/p&gt;
&lt;p&gt;Interactions with Packt were often strange.
We never understood their opaque way of operation.
Often they would respond within the hour to an e-mail sent on the weekend.
Sometimes they wouldn't reply for a few weeks.
In the middle of the project, the entire team was replaced with a different team; only one of the original people stayed on.
We were never given an explanation for this event.&lt;/p&gt;
&lt;p&gt;For the most part we tried to ignore Packt and focus on submitting a first draft of the chapters ASAP.
Our thinking was that we would then have something to iterate on.
We submitted the first draft of the final chapter in January 2026.&lt;/p&gt;
&lt;h3&gt;The revision process&lt;/h3&gt;
&lt;p&gt;We were told that chapters would be reviewed by an editor and a technical reviewer.
Chapter review and revision would happen in parallel with writing new chapters.
This mostly didn't happen.&lt;/p&gt;
&lt;p&gt;The editor was a Packt employee; one of the 3-4 people we always e-mailed.
They fixed grammar, sentences, structure, stylistic suggestions, logical consistency.
They also always verified whether we adhered to the content promised in the outline.
We did not write what we promised in the word-salad of an outline we produced at the beginning.
That would have been a very shitty book.
As a consequence, every chapter was a battle with the editor to get our deviations from the outline approved.&lt;/p&gt;
&lt;p&gt;Addressing editor comments only required minor changes.
The first chapters were reviewed very quickly; only a few days after submission.
The later chapter languished for weeks without review.
We think this was because the editor wanted to combine their comments with those of the technical reviewer.
But technical review was a separate debacle.&lt;/p&gt;
&lt;p&gt;At the start of the process, we were asked whether we could suggest candidate technical reviewers.
Our suggestions were denied, yet we were told it was difficult to find suitable technical reviewers.
By the time we had written a first draft for about half of the chapters, late spring of 2025, we were informed a technical reviewer had been onboarded.
The reviews for the first chapters arrived early June of 2025.&lt;/p&gt;
&lt;p&gt;The reviewer was not happy with the chapters; they completely disagreed with our approach.
The reviewer pitched an entirely different scope for the book: they wanted to see CUDA C, more low level details, best practices around profiling, optimizations.
This was a hardcore CUDA person, and it seemed like they wanted to read a book written for them.
But that's not the book we were writing.
Plus we were already half way; we could not rewrite the entire book.&lt;/p&gt;
&lt;p&gt;We appealed with Packt and declined to make the changes proposed by the reviewer.
As academics, we had experience with endless review cycles and negotiations with reviewers.
But Packt was not interested in these types of discussions.
We think they didn't have anyone in house to make an informed call on how to proceed.
Instead, they decided to search for two additional technical reviewers.
We never received an explanation for this move.&lt;/p&gt;
&lt;p&gt;Two new technical reviewers were onboarded when more than 80% of the book was written, at the end of the fall of 2025.
We received their first feedback after the first draft of the last chapter was written.
It seemed like one of the new reviewers didn't read the chapters and instead dumped chapters in an AI chatbot and let it generate the report.
The M-dashes and verbose bullet lists gave it away.
The other reviewer put in some effort, fielded some pretty good remarks, but it seems like they only reviewed the first 30-50% of each chapter.
Honestly, I can't blame either of these reviewers; they were being asked to review 500+ pages of content in the span of a few weeks for a free copy of the book.&lt;/p&gt;
&lt;p&gt;Unlike academic peer review, Packt technical review is single pass orchestrated by an ambivalent editor.
We, the authors, received feedback but Packt told us we were free decide what to do with it.
We responded to all comments and tried to implement improvements / corrections, but we don't know whether this information ever reached the reviewers.
Or whether it mattered at all.&lt;/p&gt;
&lt;p&gt;It seems Packt does technical review mainly pro-forma, as a way to make it seem like the content has been thoroughly vetted.
As if to say: this stuff is legit, dear reader, look, it has been checked by three experts!
Unfortunately, authors and reviewers never enter into a useful dialogue to improve the manuscript as a whole.
There is no time for that.&lt;/p&gt;
&lt;h3&gt;The publishing process&lt;/h3&gt;
&lt;p&gt;In the middle of February 2025, a few weeks after submitting the first draft of the last chapter, we were informed that the book's publication date had been set: 31&lt;sup&gt;st&lt;/sup&gt; of March, six weeks out.
We were told this was a final deadline that could not be changed; it was already announced on Amazon and advertised via different channels.
This decision was made unilaterally by the publisher without any up-front discussion with us.
We were still waiting on technical review.
At this stage, about 20% of the chapters were in a semi-revised state and we had yet to receive editorial and technical feedback on about 50% of the chapters.&lt;/p&gt;
&lt;p&gt;We had a video call with the Packt team to find out what was going on and express our displeasure with this way of working.
Instead, we got worse news.
They said they needed four weeks for copy editing, so we had a little over two weeks to revise the entire book.
Half of which, we had received no feedback on yet.
We said that was impossible, but at this stage they weren't willing to budge.
We managed to get them to agree on a phased approach, which would grant us a little over 3 weeks to revise.&lt;/p&gt;
&lt;p&gt;As to why we suddenly had to publish the book ASAP after more than a year of writing: no coherent explanation.
Some bullshit along the lines of "the book will be irrelevant if we don't publish it now".&lt;/p&gt;
&lt;p&gt;Where were the reviewed chapters?
The editorial and technical review for the remaining chapters was all dumped on us a few days after that video call, and the clock started ticking.
We had hoped to be able to go through the entire book to fix inconsistencies, perhaps even rearrange chapters and content where it made sense.
We had written some of the chapters explicitly as a rough draft that we could iterate on later.
No chance for those things now.&lt;/p&gt;
&lt;p&gt;After three weeks of all-nighters we managed to make the reckless and stupid deadline.&lt;/p&gt;
&lt;p&gt;The copy-editing process turned the Packt word file of each chapter into a PDF.
Given the large number of mistakes we found in the proofs (e.g. all subscripts/superscripts missing in the entire chapter), we are convinced this was all done by hand.&lt;/p&gt;
&lt;p&gt;Concerning the proofs, we were told we would receive them in batches with a turnaround time of 3 days.
Instead we received all of them on a Friday evening and were told we needed to review them by Monday so they could finalize everything by Tuesday and Wednesday.
An absolute joke, given the large number of mistakes we still found.
Undoubtedly, the book is still full of mistakes; we simply did not have the time to find them.&lt;/p&gt;
&lt;p&gt;We are proud of our work and we think we made a book that fills a niche, but given the unnecessary time pressure, the manuscript did not meet the quality standard we originally envisioned for it.&lt;/p&gt;
&lt;h3&gt;The post-publication aftermath&lt;/h3&gt;
&lt;p&gt;For all the rush we'd gone through to make the publication deadline, it was awfully quiet on publishing day.
We didn't receive any official communication from Packt, we didn't see any big announcement.
On Amazon, the book could now be ordered.
On the Packt website, the book remained unavailable for a few more days.&lt;/p&gt;
&lt;p&gt;We asked the Packt team what the next steps were, whether we had to do anything from this point on.
We were informed they would send us the rest of the payments (we received them) and each five printed copies of the book (we also received them).&lt;/p&gt;
&lt;p&gt;For any other inquiries we were redirected to the "growth lead".
The book was no longer a production matter; it was time for the sales phase.&lt;/p&gt;
&lt;p&gt;The growth lead sent us one e-mail to ask us for influencers and referrals who could help advertise the book.
We made a list of people inside and outside of our network that might give the book an honest review.
These suggestions were ignored.&lt;/p&gt;
&lt;p&gt;They also asked us to set up a meeting with them so they could explain the process.
They never showed up to the meeting.&lt;/p&gt;
&lt;p&gt;Every once in a while we see a post on LinkedIn shilling the book.
Sometimes we get tagged in the post, sometimes we don't.
Invariably, the "growth lead" is tagged in the post; this is probably part of the agreement for receiving a free copy.
It seems shilling Packt books on LinkedIn is a hobby for some, since one of the people posting about our book was already advertising about another book they'd supposedly read the week after.&lt;/p&gt;
&lt;p&gt;Observing this kind of inauthentic activity from the sidelines feels very strange, and has cemented my view of LinkedIn as an ad feed masquerading as a social network.
My coauthor and I both made a LinkedIn post to announce the book, which received minimal attention from our direct network.
The "influencer" posts, which contain very little information of value, receive hundreds of reactions and attract weird off-topic comments that reek of LLM.
I am convinced half of LinkedIn activity is generated with fake profiles, bots, and like farms.
And yet, I also react to these posts to show them to my own network, which makes me feel like a massive hypocrite.
We've decided to let Packt do their sales thing; we don't have any impact on it anyway.&lt;/p&gt;
&lt;p&gt;We've also observed some genuine activity around the book, with some people reaching out personally.
For us, this feels a thousand times more meaningful than fake LinkedIn buzz.
If CUDA programming in Python and JAX are interesting to you, we'd be very happy if you would give our book a read and reach out to us if you liked it (or hated it!).
Whether you &lt;em&gt;buy&lt;/em&gt; the book or not: I don't care.
As authors, we each get 8% of every sale.
When Packt was dragging its feet on technical review, my coauthor and I were considering just tossing the book up online for free.&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Life took a little 1.5 year detour to write a book about CUDA programming in Python.
The experience was stressful but interesting.
It gave me the excuse to dive deep into a topic that I've been meaning to properly learn for a while, and I don't regret that.
We think our book is a useful resource for data scientists and Python programmers that want to dive one layer deeper.&lt;/p&gt;
&lt;p&gt;Publishing with Packt was a mixed bag.
It's not a scam and they fulfilled their contractual obligations.
In the writing phase, communication with the publisher was considerate and solution oriented.&lt;/p&gt;
&lt;p&gt;However, the tooling they offer to write technical books (MS Word) is such a joke, we had to write our own word doc generator.
For all their lip service, they don't take review, revision or quality seriously.
Once a first draft exist, the team turns into rabid dogs to get the book out the door ASAP.&lt;/p&gt;
&lt;p&gt;At times we've thought it would have been better to just publish the book as an open book.
Principally, I am against putting knowledge behind a paywall.
Now, I must contend with the fact that I am a hypocrite for doing just that.&lt;/p&gt;
&lt;p&gt;On the other hand, I'm quite convinced that if we had gone without a publisher, we would have never completed the book.
Making a commitment and getting poked every once in a while creates just enough pressure to push the thing through to completion.
The publisher taking care of marketing (even with very cringy methods), printing, shipping and distributing is also not negligible.
If I ever write a book again (not soon), I would try to work with a publisher that allows free online access and just sells physical copies.&lt;/p&gt;
&lt;p&gt;I'm not sure what the point is of this article, except to bring closure, tell people we wrote a book, and recount the experience of writing with Packt.
Now it's time to return to more low effort stuff.&lt;/p&gt;</content><category term="Writing"/><category term="gpu"/><category term="python"/><category term="writing"/><category term="Packt"/><category term="book"/><category term="computing"/></entry></feed>