Concurrently Asynchronous | Multithreaded Income Episode 28 with Stephen Cleary - podcast episode cover

Concurrently Asynchronous | Multithreaded Income Episode 28 with Stephen Cleary

Feb 06, 202424 minEp. 28
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

In this episode of the Multithread Income Podcast, host Kevin Griffin chats with guest Stephen Cleary, a professional developer and author of the O'Reilly book 'Concurrency in C# Cookbook'. Steve shares his experiences of speaking at Codemash, his work with Logos Bible Software, and his journey writing technical books. He provides an in-depth view of the publishing process, the considerations for marketing a technical book, and how it helped boost his personal brand. Steve also gives a glimpse into his future plans, including the potential for a deeper dive book on 'Async/Await' and creating a professional course on Udemy.

00:00 Introduction and Guest Arrival
00:08 Discussion on Codemash and Talks
01:00 Getting to Know Steve Cleary
01:09 Deep Dive into Steve's Work
02:33 Steve's Journey into Book Writing
03:56 The Publishing Process and Challenges
12:20 The Financial Aspect of Book Writing
17:02 The Impact of Writing a Book
19:04 Future Plans and Work-Life Balance
22:52 Conclusion and Farewell

Stephen Cleary https://blog.stephencleary.com/
Twitter https://twitter.com/aSteveCleary
Concurrency in C# Cookbook (2nd ed) https://learning.oreilly.com/library/view/concurrency-in-c/9781492054498/

Transcript

Introduction and Guest Arrival

It's time for the multi threaded income podcast. We're like insurance for a turbulent tech landscape.

Discussion on Codemash and Talks

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 GriffinKevin 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 GriffinKevin 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,

Getting to Know Steve Cleary

reintroduction to Async and Await in C Sharp. And then I had a talk a little while ago on the Async

Deep Dive into Steve's Work

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 GriffinKevin 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 GriffinKevin 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.

Steve's Journey into Book Writing

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 GriffinKevin 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 GriffinKevin 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.

The Publishing Process and Challenges

I would never drink that. But apparently it's some super exclusive, you know, expensive

Kevin GriffinKevin 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 GriffinKevin 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 GriffinKevin 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 GriffinKevin 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 GriffinKevin 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 GriffinKevin 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 GriffinKevin 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 GriffinKevin 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 GriffinKevin 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 GriffinKevin 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

The Financial Aspect of Book Writing

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 GriffinKevin 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 GriffinKevin 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 GriffinKevin 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 GriffinKevin 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 GriffinKevin 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 GriffinKevin 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,

The Impact of Writing a Book

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 GriffinKevin 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

Future Plans and Work-Life Balance

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 GriffinKevin 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 GriffinKevin 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 GriffinKevin 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

Conclusion and Farewell

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 GriffinKevin 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 GriffinKevin 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!

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android