Concurrently Asynchronous | Multithreaded Income Episode 28 with Stephen Cleary
It's time for the multi
threaded income podcast.
We're like insurance for a
turbulent tech landscape.
I'm your host, Kevin Griffin.
Join me as I chat with people all around
the industry who are using their skills
to build multiple threads of income.
Let us support you in your career
by joining our discord at mti.
to slash discord.
Now let's get started.
Kevin Griffin: welcome everyone back
to the Multithread Income Podcast.
I'm joined today by my
guest, Steve Cleary.
How are you, Steve?
I'm doing well.
And we are at Codemash in
Ohio, another episode here.
Steve, you've been to Codemash a
couple times before, haven't you?
I have,
Stephen Cleary: although it has been
many years since I've been here.
Many years?
Pre pandemic, yeah.
Kevin Griffin: What, uh,
what were you speaking on at
Stephen Cleary: Codemash?
So, I had two talks lined up.
There was Async and Await from the
ground up, which is an intro, little
intermediate, uh, reintroduction
to Async and Await in C Sharp.
And then I had a talk a little while
ago on the Async Masterclass, which
is really advanced Async and Await.
And then I had a third talk, which is
last minute, because they had several
cancellations on Friday afternoon.
Yeah.
So I'm also giving a talk later
today on protocol design, which is
something I just find interesting.
Good
Kevin Griffin: times.
Well, that sounds fascinating.
I might have to step in for that.
That sounds good.
Uh, but that's not what
we're here to talk about.
We're here to talk about We're here
to actually talk more about you,
not the talks you've been doing.
Uh, so Steve, just kind of tell
us, what are you doing now?
Stephen Cleary: Okay, so I, uh, I
live in northern Michigan, and I work
for a company, uh, in the Pacific
time zone in Washington state.
Uh, the company is called Logos,
and they actually write some of the
best Bible software in the world.
Okay.
So, a lot of pastors use it, uh, we're
trying to get more laymen to use it.
But right now it's very, it's focused
on pastors, academics, people who like
study the Dead Sea Scrolls and stuff
like that, that need to dive into the
original Hebrew and Greek, uh, usually
end up using our software because
it's, it's the best in class for that.
And
Kevin Griffin: that's not the Bible
app that I see a lot of people using,
or is it something different, like
Stephen Cleary: deeper?
Yes.
Ours is much more about a
deep study in the Bible.
Although we're trying to make it
more user friendly so that it can
be used for more casual Bible usage.
Yeah, so we've got mobile apps,
web app, and the desktop app.
I've been on the desktop app
for the last year on that team.
Previously, I was mostly on back end
services, which are almost entirely NET.
Um, so mostly NET Stack.
Our desktop app is also NET WPF.
And then we share a lot of
that code with the Mac as well.
So both Mac and Windows
share most of their code.
Kevin Griffin: Oh, that's fun.
So you get a breadth of
technology and platforms.
Yes.
Awesome.
Well, that's cool to hear.
I'll have to check that out.
Uh, you also, we were talking a
little bit earlier, you have a book
you've published with O'Reilly.
Yes.
Tell us a little
Stephen Cleary: bit about that.
So it's got a really annoyingly long name.
Um, it's concurrency and C sharp cookbook.
Asynchronous, parallel, and multi threaded
development or something like that.
Second edition?
Yeah, second edition, actually.
There is a second edition, yes.
Kevin Griffin: Um, so, uh,
O'Reilly, is that, they're the
ones with the animals on the front?
Yes.
Alright, what animal do you
have on the front of your book?
Stephen Cleary: I forget what it's called.
Okay.
Um, but it's, uh, it's kind of infamous
because people make coffee from its poop.
Oh, okay.
Like, they, they feed it coffee beans.
Yeah.
And it poops out the coffee beans
and then they make coffee from that.
And I'm like, I would never do that.
I would never drink that.
But apparently it's some super
exclusive, you know, expensive
Kevin Griffin: coffee.
I feel like it's this sort of thing,
you drink the coffee first and
then someone tells you afterwards,
hey, by the way, great story
about where these beans came from.
Stephen Cleary: I don't know who,
who had that idea first, right?
Man, I'm really hungry.
Oh, this looks good.
Kevin Griffin: It's like
the invented coffee.
Someone had to get to that point
where they found the beans and
they roasted the beans and then
they, they drank the beans, right?
It's just a natural progression of you.
Um, so you have a book with a
very long title through O'Reilly.
Yes.
Now we've talked to a couple of other
book publishers, but I would like
hearing everyone's individual story.
How did you, were you approached
to do the topic or did you approach
Stephen Cleary: O'Reilly to do the top?
Oh yeah, absolutely not.
So, um, so I.
Shopped the idea around.
I wanted to write a
book on async and await.
Essentially, uh, which was still a very
new technology at the time, and at the
time, no other books really covered it.
Um, you know, if you were to pick up a
copy of, uh, C Sharp and a Nutshell or
whatever, you know, uh, at that time,
did not actually cover Async and Await.
So it wasn't really covered very well
in the book world, and I figured I could
write a small book on Async and Await.
And so I asked Microsoft if,
if they would be interested.
To me, that seemed like the
natural publisher for a book on
a technology that they designed.
And they said no.
And so I asked a few other publishers.
They all said no.
And O'Reilly said, yeah, that sounds good.
Um, so that's, uh, that's
how that got started.
Kevin Griffin: Did you have any
sort of pre existing relationship
with someone at O'Reilly?
Or was that a cold email?
I have an
Stephen Cleary: idea.
No, I, if, if I recall correctly,
they had like, uh, some kind of a web
form or something that I filled out.
Okay.
Something like that.
It's probably a completely
different process these days.
Kevin Griffin: So you managed
to ship an idea to them.
Um, talk a little bit about the process.
What was the next step for
setting up the outline?
Yeah, so.
Do you know what
Stephen Cleary: you want to talk about?
Yeah, so I think, if I recall correctly.
Most of the publishers that I submitted
to actually required an outline
before they would even look at it.
Okay.
So you had to have the idea,
you know, title, uh, convincing
them that you could do it.
You were the one to write the book.
Um, and also, uh, a pretty fleshed out,
uh, you know, not, not just, uh, uh,
chapter titles, but also like, here's
what I'm planning to do in each chapter.
Um, kind of outline for the book, um,
before you could even submit to them.
Uh, so.
Yeah, I had that all set up.
Now that all ended up changing, um, so
once I, uh, agreed to do the book through
O'Reilly, mainly because they were the
only ones who said yes, um, then, uh,
then I had a publisher assigned to me or
an editor, I guess the editor would be
assigned to me and, um, and they, uh, and
the first thing that they did was they
said, okay, here's our market research.
Um, like we have to change the title
to include multi threaded, multi
threading, and, uh, and I said well
the book isn't really about multi
threading, you know, it's about
asynchronous and parallel, sure.
Um, but, you know, I don't
really talk about multi threading
specifically, and they said well.
This is what people search for.
You know, they have that kind of data.
This is what people are looking for.
These are the terms that they're looking
for when they want to hit your book.
Um, so, so they adjusted the,
helped me adjust the title.
They really changed what
went in the book a lot.
Um, I was thinking just a
book about Async and Await.
Uh, you know, something, I didn't
want to publish my blog, right?
I'd read books that are, Oh,
I just took my blog posts and
reformatted them into a book.
Yeah.
I didn't want to do that.
I wanted to write a book, a proper book.
Um, and so I was planning to write
about, but I was still planning
to write about async and await.
It would essentially be the
same topic as my existing blog.
But they really encouraged me to
also add in parallel programming, uh,
reactive programming, uh, TPL data
flow ended up coming in in the second
edition, uh, system threading channels.
Uh, so it brought in a lot of these other.
Uh, technologies that I
wasn't planning to include.
I was planning to go much deeper in a
single topic and the publisher helped me
reshape or the editor helped me reshape
that into, uh, not going as deep, um, but
across a much broader variety of topics.
And that I think has really
helped the book sell a lot better.
Yeah.
So they know how to sell books,
you know, public, that's a
business that's, that's publishers.
Yeah.
Um, so, so they were really
helpful in, Reshaping the book
so that it would sell more.
Kevin Griffin: I think that's good advice
for anyone that might be looking at
going through a publisher for a book.
Is that, you just said, they're
really good at knowing what sells.
Yes.
So, while you might have a good initial
idea, they can take your initial idea, run
with it, and create a much better idea.
And it sounds like you're pretty
convinced it's a much better book because
of the changes they wanted to make.
Yes.
Stephen Cleary: Yeah, I think so.
I think that the book has been, uh, has
shown that, that that approach has been.
Was a good idea.
Yeah.
I do get asked a lot.
Hey, I want, you know, I want a
deeper book on async and await.
There are some people who want that,
but I think that, uh, that, that
looking at developers as a very
broad base, I think that that was
the right decision for that book.
Yeah.
Kevin Griffin: How long was the timeline
from the moment you got it sold to,
I guess, when it hit bookshelves?
Stephen Cleary: Yeah.
Good question.
I want to say.
a year or so, maybe a little more.
Kevin Griffin: Um, how often, I
understand you have checkpoints
kind of along the way.
Yes.
Certain chapters.
How long did you usually have
between say a chapter being due
or a set of chapters being due?
Stephen Cleary: Yeah,
it was usually a month.
So, you know, you'd have this month,
you want this chapter, these couple
of chapters, um, completed by then.
And It was, it wasn't super strict,
but they do being a publisher,
you know, they do have all their
marketing and everything like that
is like, is all lined up behind that.
So those deadlines, you can't
slip on them a whole lot.
Um,
Kevin Griffin: yeah, were you working
on multiple chapters at one time or
was it pretty synchronous through,
uh, one chapter to the next chapter?
I didn't mean to do that,
but I'm going to go with
Stephen Cleary: that.
Yeah.
Um, yes, it was, uh, yeah.
It was, uh, it was
mostly one then the next.
Um, every once in a while I'd say,
well, I want to do this chapter,
you know, next or whatever.
And they, you know, that's fine.
Gotcha.
Um, I'm trying to remember.
I don't think I ever wrote
like two chapters at once.
It was mostly one at a time.
Although I would go back
and edit as necessary.
Awesome.
Kevin Griffin: I was thinking, like, with,
uh, you have editing and tech editing.
Were those happening in parallel
with writing the new chapters?
Stephen Cleary: Um, yes, they would.
So, uh, so the, the way that my book
was published through them, uh, they
provided their own copy editors.
So anything like grammar, punctuation,
that kind of stuff, they took care of.
Oh, that's nice.
Yeah.
And I, well, I mean, they wouldn't do
it for me, but they'd say, Oh, they
would tell you, Oh, you should do this.
You shouldn't.
You should use the Oxford comma.
Oh wait, you shouldn't
use the Oxford comma.
I am pro Oxford comma.
I don't know about your listeners.
I feel like
Kevin Griffin: this table might be pro
Stephen Cleary: Oxford.
Okay, okay, cool.
We're in good company then.
Alright, um, you know, so they had
their own copy editors who would
provide that kind of feedback.
And then, or like tone.
Yeah.
Like mine was a cookbook.
So, O'Reilly has a line of cookbooks
that they want a specific tone in.
Okay.
And they want, uh, a specific
structure to all of the chapters.
Okay.
So, so each, each chapter has,
you know, certain recipes in it.
And I was able to bend that a
little bit because my chapter one
is like an intro, it's more prose.
It doesn't have any recipes.
Okay.
But, as a general rule, you know,
they have their own voice that
they want coming through also.
Um, so they have copy, copy editors
who, who help with all that.
And then as far as technical editors
go, they essentially ask me as,
you know, the subject domain expert
to provide My own recommendations.
And then they reached out to
them as technical, uh, reviewers.
And I had some great technical
reviewers on the first edition,
very happy to have them.
And Stephen Tobe was one who
would like invented async.
So you couldn't have a better
technical reviewer for your book.
Um, so I'm very happy that he did that.
Uh, so O'Reilly handled all
of that, uh, interaction.
And then, as I would write additional
chapters, I would get feedback
from each one of the reviewers.
I, I think I had three technical
reviewers, and then two or three different
copy editors in the first edition.
Um, that were all providing feedback
on the chapters I had already written,
while I'm writing the other chapters.
Um,
Kevin Griffin: now we don't need
to talk about numbers or anything.
Did you do a, any sort of
upfront, and then royalties,
or was it all royalties on the?
Stephen Cleary: So it was all royalties.
This was my first book.
So I was an unknown author.
And, um, do you not want
to get into numbers?
If you're comfortable talking
numbers, then I'm happy.
I'm totally comfortable talking numbers.
Let's talk numbers then.
Okay, so, if I recall correctly, yeah.
Yeah, it's ten percent
is their royalty rate.
Okay.
And it's important to note that that's
ten percent of the publisher's income,
which is not what the book sells for.
So, in the book, uh, production process,
usually the, the end of the last people
who actually sell the book to you, uh,
mark it up, uh, by a hundred percent.
Okay.
So the bookstores, Amazon, they get it
at half of what they sell it to you for.
Okay.
And then that half is then, uh, is, is
then spent, a lot of it's spent on, uh,
on things like you know, the publisher's
marketing budget and stuff like that.
And at all kinds of, you know, shipping
it out, printing it, of course, these
are all print on demand books these days.
Okay.
Um, so there's no warehouse costs
anymore, but you do have higher printing
costs than you do with offset printing.
Uh, so, so you end up with, uh,
with like 10 percent of that,
uh, Smaller amount after all
those other things are taken out.
Yeah, so, so like my book sells
usually for about 30, I think, you
know, is the average, uh, price.
At least the first edition was.
I haven't really looked at the
numbers for the second one.
But the first edition
would sell for like 30.
And I would make, you know, 1.
50, 1.
85, something on each copy.
So, you're not going to get rich doing it.
Yeah.
Right.
Kevin Griffin: But you hope you sell
a couple thousand copies and maybe
close to, you know, Millions of
copies, maybe, depending on the book.
Right,
Stephen Cleary: so the thing is,
with technical books, you know,
you're not Harry Potter, you
know, you're not Stephen King.
These are the books that
actually make money.
Most books lose money in the
publishing world, um, including
a lot of technical books.
And so they have to be, uh, Yeah, so you
as an author usually do not make money
with a technical book because your target
market is not everyone in the world.
Yeah.
The developers, which is
a small segment of that.
And then, oh, well, C sharp
developers, which is a segment of that.
And well, C sharp developers who
need to know async and parallel
programming is a subset of that.
So you have a very small target
market just to begin with.
Kevin Griffin: And it also seems
your, your book is not for the
100 level dot net developer.
It's more the two, three, maybe 400 level.
Stephen Cleary: I tried to make it as.
You're trying to
Kevin Griffin: make it as
accessible as possible.
I mean, just the title alone kind
of seems like, oh, this is for a
Stephen Cleary: higher level.
Yes, that's true.
Kevin Griffin: So you did also,
you have a second edition.
Yes.
Can you talk about the process of,
did they come to you to do the second
edition or was that your idea as well?
So
Stephen Cleary: actually,
uh, they did reach out to me.
I think that they had had
enough people reach out to them.
And I had actually come
to the same conclusion.
I was going to reach out to
them, I just hadn't done it yet.
Um, but I had had enough people, you
know, ask me about a second edition.
And there had been enough changes
in the asynchronous wait support.
With things like system
threading channels being added.
And things like that.
And, uh, asynchronous streams, um,
was something else that was new.
That I wanted to cover,
you know, in that book.
It made sense to have
that in the book, so.
So they, I believe they were
each reached out to me first.
Um, but I was like, yeah,
you know, I've actually been
thinking the same exact thing.
Let's do this.
Um, and so we did a second
edition, which was fairly painless.
Um,
Kevin Griffin: it's not a
complete rewrite, right?
Is it, it's a, let's start with what
we have and let's add this chapter.
Let's change to these chapters.
Yep.
Stephen Cleary: Yeah.
I simplified some of the
code, uh, you know, just, just
making it more modern C sharp.
Um, so I went through all the code samples
I, I ripped out in the first edition.
There's like these charts
of here's all the different.
net, uh, language, not languages, but
like all the different, uh, versions
and, and different, uh, runtimes and
how you get like, like, uh, data flow
into each one of these different things.
Well, you have to use this
version of the new get package for
this old done it for a runtime.
So I just kind of like ripped all
that stuff out and moved it to an
appendix because I didn't want it.
Clogging up each chapter.
Um, since by that time it was clear,
pretty much everybody's moving to
dot net core or will be very shortly.
So I just none of that matters anymore.
Yeah, which is really nice.
Kevin Griffin: Now they say you
don't write the book for the money.
Can you talk about where there
any other positive positive
effects of having the book?
Oh yeah,
Stephen Cleary: absolutely.
So one of the things that I guess, I
guess you could say it's in my blood.
I, uh, I have a lot of
relatives who are teachers.
Okay.
Um, including my mother, uh,
who was a, uh, a public school
teacher for many, many years.
Um, and, uh, you know, I've got aunts
and, a cousin who's a, actually
a, a professor of epistemology.
I can't.
I can't say it.
Okay.
It's a study of how diseases spread.
So like, that's what he does.
He's a professor who teaches how to,
how to, how to learn that and wrote
some fascinating things during COVID.
But, um, but anyway, so I've got,
you know, teaching in my blood and,
and, and so I've always enjoyed, uh,
going to conferences and speaking.
Well, I haven't enjoyed speaking.
That was something I had to learn how
to do, but I've always enjoyed writing
blogs, answering questions online.
That's just, uh, Something I enjoy doing.
And so I think that for me, writing a
book is kind of an outgrowth of that,
of like, I can write a book, if I can
write a book that can teach people,
that will make me happy as well.
And it has had an effect of, I think,
getting my name out there more, too.
Um, so my blog is already
pretty popular, I guess.
Yeah.
But, uh, but I think the book
has definitely added to that.
There's something to say.
Well, I'm an O'Reilly author, you know,
there's something to that, you know,
it's like saying well, I've I made a
course on pluralsight or something, you
know, back when you're part of a club.
Exactly.
Yeah.
Yeah.
So there's been, I can't like point
to anything specific and say, yeah,
this happened because of that.
But I get the sense that, um,
that it has helped my name,
my personal brand, I guess.
Yeah.
I'm not good at developing a personal
brand or anything like that, but I
think it has, uh, has helped with that.
Kevin Griffin: What's next?
Do you want to do another book?
You want to do courses?
Anything like that?
Stephen Cleary: I have been
thinking of another book.
Um, I keep starting it and then, and then
stopping it because it's, it's too much.
But I want to go like all the way
super deep into Async and Await.
You know, more like the book I
was originally going to write.
Yeah.
That's even a tighter target market.
So I was thinking about, uh,
self publishing that one.
One thing that I loved about O'Reilly
was their publishing process.
So they have it all set up.
They've got a GI repository, right?
Mm-Hmm.
. So, so you're syncing your,
your text back and forth.
It's, it's a markdown kind of language,
so it's not difficult to write in.
It's, it's very close to plain text
and, uh, but you can drop down into
the advanced stuff if you want.
Mm-Hmm, . And then they've
got this like CICD pipeline.
So you push it to their, to you sync up
to their GitHub repo and, uh, and they.
Have a PDF ready for you to download
in a few minutes with all the proper
styling and everything and this is,
this is exactly like print specific,
exactly how your book will print, uh,
kind of output and super convenient.
So I've kind of like started
playing around with building a
pipeline like that on my own.
It's a lot of work.
I'm sure.
So I've gotten distracted from doing
that instead of writing my book.
But I've also thought about
doing maybe a video series.
Um, I've got some videos up on
YouTube, but I don't really.
Cultivate that they're not
professionally done at all.
Yeah, um, so I've been thinking
about doing like a professional
course on something like Udemy,
Kevin Griffin: I would,
I'm a Udemy author.
I would highly say, yeah,
go do something on Udemy.
Um, there's definitely a market
there for some higher level stuff.
And I, especially async await, like
so many developers just have so much
confusion going into that stuff.
Yes, I would recommend you do it.
Yeah.
Um, yeah, I would recommend Udemy and we.
And we don't have to do it on camera,
but I can tell you about my experiences
with Udemy and potentially what
you could be looking forward to.
Let's talk a little about the, the
life work balance in writing the book.
Um.
Okay.
So I don't know.
That's true.
Yeah.
Yeah.
So writing a book takes
a little bit of time.
Um, I don't know, family situation, if you
have a spouse, kids or anything like that.
Um.
Stephen Cleary: Yes.
So I have a wife and three kids.
Uh, our youngest was pretty
young when I wrote the book.
Um, I think, was she born?
Uh oh.
Anyway, I had two or three
kids when I wrote the book.
Kevin Griffin: You had more
than one kid, more than zero
Stephen Cleary: kids.
Um, so, uh, it was a huge
time commitment, like massive.
Like it took literally.
I don't remember how many years of
royalties, like five or six years
later, I was like, I think I might
have made minimum wage at this point.
Like, it was literally that much time.
So it was like evenings and weekends,
uh, just all the time that I, all
of my spare time try to write a
little bit every day, you know,
um, but, but it was a lot of time.
And when I was done, my wife said,
you cannot write another book.
So I think I've kind of softened her up.
I've been softening her up a little
bit over the last few months.
Like, I'm thinking about
writing another book.
Kind of feeling her out.
And she's okay with it at this point.
But yes, at the end of that
first book she said, yeah.
Please don't do that again.
Yeah.
Take
Kevin Griffin: a break.
Don't jump into a new one.
And courses aren't that much different.
You'll spend the same amount of
time, if not more time, because
you'll do a take and then have to do
another take and then another take.
It takes a little bit of practice to
get into the flow where you can just
record one, one video right after the
other without, you know, minor editing.
I appreciate you chatting
with me about it.
Yeah, my pleasure.
Yeah.
So hopefully everyone out there, if you're
not inspired to write a book, you are now.
Um,
Stephen Cleary: Or
Kevin Griffin: disincentive.
Yeah.
But Steve, thank you so much for
hanging out with me and everyone else.
We'll see you on the next episode of
the multi threaded income podcast.
You've been listening to the
multi threaded income podcast.
I really hope that this podcast
has been useful for you.
If it has, please take a moment to leave a
review wherever you get your podcast from.
And don't forget the
conversation doesn't stop here.
Join us on our discord at mti.
to slash discord.
I've been your host Kevin Griffin
and we'll see you next week.
Cha ching!