An Interview with Engin Arslan, Author of Coding for Visual Learners

Engin Arslan is the author of the Leanpub book Coding for Visual Learners: Learning JavaScript with p5.js. In this interview, Leanpub co-founder Len Epp talks with Engin about his career, including his visual effects work on TV shows and movies, his book, and at the end they talk a little bit about his experience self-publishing as an author on Leanpub.

This interview was recorded on February 21, 2017.

The full audio for the interview is here. You can subscribe to this podcast in iTunes or add the following podcast URL directly: http://leanpub.com/podcast.xml.

This interview has been edited for conciseness and clarity.

Len: Hi, I’m Len Epp from Leanpub, and in this Leanpub Podcast, I’ll be interviewing Engin Arslan. Engin is a front end web developer with a background in materials engineering and visual effects. Prior to his work as a developer, Engin worked as a visual effects artist / technical director on a number of TV shows and films, including Tron and one or two of the Resident Evil movies. He received an Emmy nomination, as well as winning a Canadian Screen Award for his visual effects work on the show Vikings.

Engin currently works at a digital services company based in Toronto called Myplanet, and he is a part-time professor at Seneca College, as well as a Pluralsight author. You can follow him on Twitter at @inspiratory, and learn more about his work on his website at enginarslan.com.

Engin is the author of the Leanpub book, Coding for Visual Learners, Learning JavaScript with p5.js. The book and the accompanying course are designed to teach beginners to learn how to code in a way that is engaging, and may be especially attractive to artists and visual designers who are looking to learn how to program. But it will also be attractive to anybody who’s trying to learn how to program.

In this interview, we’re going to talk about Engin’s professional interests, his book, and at the end, we’ll talk about his experience using Leanpub to self-publish.

So, thank you for being on the Leanpub Podcast.

Engin: Thanks for having me.

Len: I always like to start these interviews by asking people for their origin story, and you’ve got a pretty varied background. I was wondering if you could tell us how you got into materials engineering at university, I believe it was in Ankara, and how you made the transition to visual effects in Toronto?

Engin: Materials engineering was not really a deliberate choice. It was more of a choice that was inspired by family, friends, etc. I didn’t really make that too consciously, so I can’t really talk to that. But while studying that, I knew I wanted to pick something related to engineering. But as I was studying materials engineering, I found it to be a little bit too theoretical for my liking, and it didn’t really live up to my expectations.

And at around that time, I figured I would like to do something more artistic. Something that has a more visual component to itself. So I started to look for ways where I can express myself in that manner, and I started to consider graphic design for a while. And then it didn’t really materialize, but I started to take courses in university that were regarding design — like graphic design, interactive design, etc.

And through those courses, I got introduced to the 3D aspect of things. 3D software, 3DS Max, Maya, etc. That made more sense to me because I already had this technical background, and I was looking for more visual expressions. The 3D domain seemed like a great way that I can actually express myself, and work in. So I gradually made the shift into there.

And what happened is, I started to look for schools that could actually educate me in that area. I wasn’t really too comfortable with the idea of self-education at that point. But at this point, I’m much more comfortable with it. I started to look at schools that could actually give me a solid foundation in 3D, and those schools tend to be more in North America. And I found a college in Toronto, and came to Canada to be able to study visual effects.

I studied visual effects at a college for, as a post grad sort of program for a year. And then I started to work in the field, in a smaller commercial studio, where they were making commercials, or like small TV shows and sports graphics mainly. And after a while, I found a job in a much bigger studio, where they were working on feature films.

So my first feature film was Resident Evil, and then I started to work continuously on movies from then on — like Tron, The Thing, etc., as you mentioned. And I worked in visual effects for five years before making the switch to web development.

Len: I looked up your profile on IMDb, and saw that remake of The Thing — which I’m definitely going to watch, because I love the original — well I mean the original, I suppose — with Kurt Russell. It’s just such a great idea for a show.

I’ve got a couple of questions around that. What’s it like working on visual effects? I imagine you don’t visit the set or anything like that — but what’s the communication like with, say, the director, when you’re doing visual effects work?

Engin: I think there are some people in visual effects, like some of the partners, that would actually be in closer communication with the director, or would even actually be working on the set. But I was more isolated from that aspect of things. I was far down below the pipeline where we were closer to the delivery part of things.

But still, you could have interactions with the director. Some directors are more hands-on. They would actually prefer to communicate their vision directly by visiting the effects studio, and come into the dailies, which are these sessions where you will be watching the footage that’s worked on currently. And they will be giving their artistic feedback.

Some directors will only be communicating with the visual effects supervisor. But some directors would actually be communicating with the artists as well, to ensure that the vision is realized in a correct manner, I should say. So yeah, that communication can happen in various ways.

Len: I’m just very curious about how — are you said, like, “Create a stormy scene,” or something like that? And then you just go off and use your own imagination, and your own artistic instincts to do something? And then you iterate with whoever your contacts are?

Engin: Yeah. Again, I think that’s really varies based on the workflow that’s established, or the director that you are working with. Some directors, I imagine, would have a more clear idea of what they really want. But sometimes directors don’t even know themselves, what they want in that scene. So it is more like a exploration phase for the visual effects studio, because there’s really no limit to what you can come up with.

So sometimes you really start with a blank slate, and try to figure out what would work for the director’s vision. And it is actually one of the challenging aspects of it, because if you are working with the direction, then it’s fine. It makes you sacrifice originality a little bit, but it gives you predictability and a better framework to work in. But if you are working with someone that’s not quite sure what he or she is looking for at at that point, then it’s a little bit more challenging, and can get a little bit more frustrating as well, because that exploration takes a while sometimes.

Len: I imagine it must be a curious experience to work on — I don’t know if you ever did? But on some gruesome scene.

I remember — warnings to anyone listening, you might want to skip the next minute or so — but I remember a scene in Resident Evil when a guy’s in a hallway, and this grid of lasers comes down the hallway and cuts him into pieces. I was thinking about this interview in advance — someone must’ve had to figure out like the algorithm for how to make the pieces fall, and tweak it over and over and over again until someone liked it. Did you ever have to work on something like that? Where you were like, “What am I doing?”

Engin: Oh yeah, totally. Actually most of the shows that we were working on were in that nature almost. I worked on Strain, the TV show. And Strain had a poster, I think — in some states it had to be banned, it was too graphic to be displayed in public. And what else? Resident Evil was one of those shows for sure, and we worked on multiple installations of it. The Thing had moments like that as well.

So I think it was part of our job almost — job definition — that we needed to be comfortable working with those kind of visuals. I was luckily not at the department where they actually had to collect references to be able to build these models, or these textures etc. — like their surface qualities, right? Those people actually would be collecting real life reference, to be able to build these from.

I only had to go to that reference library once, where we had it in our computer system, and it was not something that I would be comfortable working with, to be honest with you. I’m glad I didn’t have to work with that. Again, maybe I was lucky in my career that, looking back at it, I don’t remember too many scenes where I was like, “I’m not really comfortable working with this one.” Except for a scene in the TV show, Strain — where, again, a warning to the listeners, this might be a little gruesome.

We had a scene where a worm was coming out of someone’s eye. That was a little bit hard to work with and look at. But that also meant less revisions. Because I think supervisors didn’t want to look at that as well. So they were like, “Okay, yeah we approve this, let’s send it to someone else.”

Len: It’s really interesting to hear about how things work in the background. And it must be a sort of similar experience to be a writer — I imagine, on one of those films or shows where people are throwing gruesome ideas around all the time, and just having to work them through. In the room as a writer might be one thing — you have the imagination in your head, and it goes away. But to then have to be designing it, and looking at it for hours and hours and hours, must be a completely different thing.

Engin: Yeah, totally.

Len: What kind of technology did you use?

Engin: So we would be using 3D animation packages. Like Maya, Houdini, 3DS Max. These would be some general examples. We were specifically using Houdini and Maya for 3D animation. But then there are like other tools that works with other aspects of the production as well. There are like really specialized tools that handle the texture creation for example, or texture painting.

Because software, like general purpose software such as Photoshop, that is for image editing, doesn’t really scale well for visual effects purposes. So they have more specialized software that works with compositing images or — as I said, texture painting etc. For compositing, we had software called Nuke. For texture painting, would be using something called Mari. Most of these packages come from Autodesk, and they are all usually very expensive.

Len: Specifically your title was Lighting Artist, I believe? Or Lead Lighter? Can you explain a little about what that particular job entails?

Engin: Visual effects work is very departmentalized. There are multiple departments that handle different parts of the workflow. My job as a Lighting Artist, and later as a Lighting Lead, was to ensure that the 3D assets that we were receiving were looking realistic, they were helping us to tell the story, and they were well integrated into the live action footage that we were receiving. We would be getting these gray-scaled or roughly textured 3D assets that would be looking flat and unrealistic. They would basically look like 3D assets at that point. But we would make them so that they would look realistic and believable.

Len: And was this when you started programming in Python?

Engin: No actually, it happened the other way around. I took some programming courses. I’m not one of those people that started to program at the age of 10 or anything. I started really late actually. I had programming courses in university, but I didn’t really fare well. I actually failed my programming courses the first time I took them. I barely passed the second time I took them again.

But I didn’t end up hating programming or anything, I just didn’t really reconsider it again for a long time. But after starting to work in visual effects, I realized how much of the pipeline, how much of the entire industry was standing on the power of computation. The entire operation was enabled by the efficiency that was gained by automation, or computers. And we were using programs.

So computers were everywhere, and these software that we were using had — they are application programming interfaces in Python. So I noticed, to be able to get much more efficient at my work, I need to actually learn Python. And the other reason was, I was working with really smart people and they seemed to be coming usually from computer science backgrounds. The people that I would generally look up to, where they were really good at problem solving skills, etc. I noticed they were coming from a more technical background.

So to be able to fare better at my job, but also to be able to have a little bit of commonality with those people, I decided I would like to get better at programming as well. And then Python happens.

Len: I was actually going to ask you about that episode, where you say in your book how you took your first computer science course in university, and you failed, and you had to take it again. And then you sort of stayed away from programming for a while. And I was wondering, was it something in the nature of the way programming was being taught to you, that just didn’t click for you personally?

Engin: I think so. I mean, looking back at that time, I don’t understand why that was the case. And taking the course second time, actually, I remember I was trying to be more deliberate about it, thinking about what it is that’s actually failing in this course. Because I remember — even the first time that I was taking the course, that it wasn’t exactly a computer science class, it was more hands-on programming using C#.

I remember going into the course, and I was faring well up until a point, and then everything just like was collapsing. And the same thing happened the second time as well. I don’t remember at which point where things didn’t really click for me. But I remember clearly that, “Oh yeah, I get this. I’m faring well actually.” And then at one point, things just stopped working. I would be really curious actually to go back to that class and see what didn’t really work.

It definitely had to do with how the material was being taught. It was a class that was being taught by teaching assistants. So I don’t think we even had a professor. It was more like a hands-on practice kind of a class. And the ratio of teaching assistants to the number of students was really low.

I’m generally a kind of a person that doesn’t really like asking for help. At least that was more the case at that time. And I think that contributed to the failure. But I also believe that something about the way that course was being taught didn’t really communicate the power and joy of programming to me.

Len: And when you did return to programming, and started, realized you wanted to learn Python, how did you go about doing it at that time, yourself?

Engin: I think it was around the time where MOOCs — massive online courses — were getting more popular as well. I remember MIT OpenCourseWare was recently published. Not recently actually, it was a couple of years old, but I think the potential was just being realized, and it was getting more and more common to see courses on these subjects that were open for everyone to use.

And I still had a hard time starting off, because I didn’t have too much guidance, and I didn’t know how exactly to go about it. But I started off with the MIT OpenCourseWare Python course. Which was an excellent introduction actually. It is a little bit more theoretical than I would have liked, at least today.

If I were learning a new programming language today, I would go for something more practical and hands-on. But that was the perfect course for me starting out. Because it’s actually infused me with some love for the theory behind things as well. And the instructors in the course — this was a course that was recorded live, as they were teaching.

So you could actually see their attitudes inside the classroom as they are teaching. Not them just delivering the subject to you, as some online courses are nowadays. But you can actually see their way of teaching in the classroom as well, and you could read their passion towards their profession. And that’s really actually — well, that’s really made me love everything about it.

I started to develop a taste for the culture, a taste for the theory, the background, the richness of it. And one thing actually that really stood out for me was these instructors in MIT. They would be throwing like small candies or chocolates to students for them asking good questions. And that was like exact opposite of my experience in learning programming, or learning anything in university basically.

So I actually decided to apply that kind of approach in my teaching as well. And now when I’m teaching in college, I’m doing the exact same thing. And people seem to be really engaged with it. So I think how you teach things is really important as well, besides the material.

Len: So at Seneca College, are you teaching an introduction to computer programming? Is that the kind of course that you teach?

Engin: Yes, I’m actually in the same program that I studied visual effects in. So I’m at Seneca College right now, and I’m teaching the visual effects artists introduction to Python course.

Len: And was that the inspiration for your book, and the accompanying course on Pluralsight? Oh it’s not on Pluralsight, sorry, that’s a separate one, isn’t it?

Engin: Yeah, that’s a separate one. For this course, I think the inspiration was mainly myself. I wanted to have something — I think this book came out of my own frustrations in learning programming. At least — not necessarily when I was learning Python, but when I was learning JavaScript, I shall say.

Because learning Python, I had a direct application area for what I was learning. And that application medium was really visual. So I would learn how to do something, and then I would be able to apply that in the visual effects software. And that was like a really direct mapping as to what commands I’m running, and what is being created afterwards. And that was really engaging.

But when I started to learn JavaScript, I couldn’t really find good mappings in between what I’m trying to learn, and what’s happening on screen. I couldn’t really find a good and engaging way of teaching myself the subject. When you are learning — and I started to think, if you are to teach JavaScript to a visual learner, if you are to teach JavaScript to this person, what they would like to see. And I was thinking to myself, well doing dumb manipulation using JavaScript is like not really engaging, and wouldn’t really be a convincing way of leveraging the power of programming for them.

So I started to look for ways where I could try to teach programming to people in a more engaging manner. And I came across the p5.js library. The implementation of Processing basically in JavaScript — very like it’s written in JavaScript from scratch. So it works in your browser. It doesn’t have any other dependencies etc. So I found it to be a really great way to teach programming. It showed real promise in my eyes. And I decided to write a course that would leverage that for teaching programming.

Len: Perhaps it’s a slight tangent, but you say you’re teaching a course — programming related to visual effects. And I was wondering what the scene is like for visual effects in Toronto?

Engin: So for visual effects, I think Toronto’s a vibrant scene actually. I think Vancouver is really good. As far as I know, Toronto seems to be really promising. Almost on par with Vancouver. One thing is the visual effects scene flourishes with government incentives. There seems to be strong incentives in Ontario for those kind of businesses to actually set up shop. So the scene is strong in Toronto, I would say — as far as I know. But I’m a little disconnected at this point, because I’ve been out of the industry for two years or so.

Len: I was going to ask you about that. That must have been quite a big change — to move to web development from visual effects.

Engin: It was. I mean, it was almost the second time that I was doing it. So I had some confidence that I could do it, because I regard my change from materials engineering to visual effects as a career change as well. So I had some experience in it. But it still was a bit tough. Because this time, I had no guidance — while I was teaching myself programming, while working in visual effects, I had guidance, I had people that I can ask questions, etc. But trying to get into web development was a bit more lonely as a journey, where I didn’t even know what questions to ask initially. So that was challenging for sure.

Len: And where did you go to learn?

Engin: So I’m trying to remember how that process happened. At that point, online courses were much more abundant. So it was almost a problem of picking up the right choice, versus finding resources. And when I’m learning something, I usually tend to pick multiple sources.

I feel like it is really hard to filter down things initially, and judge them without even looking at them. So I would start off by picking up a resource that seems to have good reviews. But if, for whatever reason, that doesn’t seem to work for me, I will just jump to a different resource continuously until things start to click. And that was one way of going about it.

But then the other things that were really helpful were being part of the community. Going to the meetups, going to conferences, and asking questions there to the people, to understand things that are not as obvious as what kind of library or framework that you should be using. The culture, infusing yourself — like putting yourself into the culture, and trying to suck it in, just to be able to develop that understanding, was really helpful as well.

Len: And did you find that the community was welcoming?

Engin: Oh yeah, for sure. The community is great, and I think that was one of the reasons why I wanted to change a career. Because even though visual effects is active in Toronto and it is as active as it could be, given the global scene, there are many studios here that are active — but you don’t really see going into meetup.com all that many meetups, where people gather, transfer knowledge, talk about their work, or talk about their projects. And I found it to be a little limiting in career development.

But looking at web development around the same time, I saw it to be a really vibrant and inspiring community. And that was one of the reasons why I wanted to go into web as well. Just because I saw it as flourishing and inspiring and exciting. So I started to attend meetups, or even go to conferences where I didn’t know about the technologies. Just because I wanted to get more context somehow. And I was liking the environment as well. And people were really receptive. Actually it was through those meetups, that I was able to get my first job as a web developer.

Len: So you’ve written a book, and you teach at a college. And you’ve also created a course to accompany the Leanpub book that you’ve written. But you are also a Pluralsight course creator, and I was wondering if you could talk about that experience. Did Pluralsight approach you? Do they have a professional crew that films you? Do they demand that you write everything out in advance?

Engin: So scripting your online course is your choice. They don’t really dictate it. But I find it to be a much more comfortable experience for myself. So I ended up writing everything for the preparation of that course, which I created for Pluralsight, which was on CasperJS and PhantomJS. I actually reached out to them, because I was teaching at college level for a while at that point, and I wanted to have an experience in online teaching too. I think I first established the contact, and pitched them an idea. And you go to an audition where they assess your way of teaching.

And then after that you are responsible for your entire production. There are materials that assist you during the production, but it’s not like there is a professional production crew that helps you with the production. It might be the case for certain courses, maybe? I’m not really sure. But the responsibility, at least from my experience, was mostly on myself. Where I did my own recording, creating the scripts, and creating the audio-visual aspect of the things as well, like with being seen on the screen, etc.

Len: So you actually had to go out and get your own camera and stand and everything to go along with it?

Engin: The tutorial doesn’t really feature me. It is only a screen capture. I only had to get a microphone, and screen recording software. So that’s pretty much the only hardware that I needed to get this going.

Len: Okay that’s interesting. I’d assumed that there would be video of you standing there talking. Actually, I’m curious, what do you use for your screen capture software?

Engin: I’m using ScreenFlow for screen capture. I’m on a Mac. I tried Camtasia as well, but I found the ScreenFlow interface in Mac works a little bit more fluently.

Len: On the subject of your book, I think it might be, not necessarily in the book, but on the book’s website, where you talk about how computation is driving one of the largest capital expansions in history. I was wondering if you could talk a little bit about what you’re getting at there?

Engin: Sure. I was afraid that you were going to ask for a reference for that — like where I’m getting my numbers, etc. I’m glad that’s not the case. I remember that being a phrase that I read in an online article. I think it was the code article that was written for Bloomberg, the feature article for an entire issue, basically. And I remember that phrase — it wasn’t exactly a phrase like that, but I remember it being my synthesis, and being impressed by it.

And it’s true that computation is changing our life fundamentally. And I think Paul Graham has an essay on this as well, where he’s talking about how we would have expected this age to be like a nuclear age, or space age. But it happens to be the software age, where we are digitizing everything. And it is changing everything so fundamentally. How we are interacting, our systems, our lives.

So I think there are these arguments regarding if you should learn to code or not as well. But apart from the practical implications of it, getting into that computational thinking mindset is really beneficial in this age that we are living in, I think. And I feel like there is no way around it. Even though you won’t be using coding for your day job, there are no direct application points of it, if you wanted to really get an understanding of how binary systems work, I think the most direct way of going about it is learning how to code.

One motivation in writing this book was also, I was looking at other ways of learning coding, other ways that coding is being pushed to people, such as learning CSS and HTML. And even though I think there are good ways of going about it as well — because they can actually give you a real tangible product that you can work with — one issue that I personally had with those languages is that, they don’t necessarily give you the joy of programming.

They are styling or Markup languages. So they don’t really allow you to build logic, and allow you to think computationally. So I think JavaScript really need to be part of that education. But it needed to be part of that education in a really engaging manner as well. Not like in the manner where, “Oh you can use JavaScript for that button to pop up a dialog box.” That’s really not speaking to the things that you could be doing with programming.

And other things that you could be doing with programming — with JavaScript, that are really impressive and inspiring — could also be very tough to learn as well, at least initially. So I was looking for a really sweet spot in teaching coding, and creating visuals around it seemed like a good way of doing it.

But yeah like, regarding that phrase around computation — I think it’s a really important factor to remember that this is a really big part of our lives, and we need to familiarize ourselves with it. You could be reading about computation, and trying to understand what it is changing, and how it is changing it. But it’s like reading about bike riding. I feel like you need to actually get on the bike and like try it a little bit as well, to get a sense of what it is like, and what you could be doing with it.

Len: It’s really interesting to think about the peculiar nature of our historical moment. I’ve got a sort of cocktail party line that I like to give, which is that we are just over the edge of pre-history, and the beginning of recorded history. Because in 1,000 years — I mean, assuming we make it — people are going to see the time before there were photographs and audio, and the time before, there were computers — as just this time about which we have written records and paintings and things like that.

They’ll relate to it in a similar way to the way we would relate to the time before writing was invented, or something like that. Where we have stories about it, but we don’t have the same kind of richness of an understanding that you can get when you can listen to someone talk or see them move around. And there’s an analogy for that, with the invention of the computer, and how 1000 years from now, how people will see how that fundamentally changed humanity.

I have a question about where you might see yourself 10 years from now. Given your engagement with teaching and creating courses and writing a book and things like that, do you think that that’s something you might end up doing full time at some point?

Engin: I’m not really sure. As I was working on this book and online courses at the same time, I found myself wanting to do a little bit more coding at the same time. It felt like a trade off. I was putting in the time to actually communicate what I know to other people, so that they can actually enjoy the joy of programming. Or enjoy aspects of this. But as I was doing it, and as I was deep into this process — I felt like I needed to balance as well.

I need to keep learning for myself, and put that learning into applications. And then maybe come back to teaching again. So I think it will be more of a cyclical process, where I do this and then I go back to learning for myself. I put that into use, and then go back to teaching, continuously. That’s where I see myself, or what I see myself doing.

Len: Ah great, well, best of luck in the rest of your journey — or the next step, I should say. We don’t have much time left, but I did want to ask why you chose to publish your book through Leanpub, as opposed to the many other avenues you could have chosen?

Engin: Leanpub was in my mind for the longest time. I didn’t actually even think I would be publishing a book, honestly. This book came into life as I was creating a script for an online course. But then I noticed the script became so big that I can actually create a book out of it. And I started to look at tools that I can use for publishing, where I can convert my files into an ebook.

And then I noticed Leanpub actually has a great set of tools that allows people to easily self-publish. And I was able to then easily format the material that I have, and put it on Leanpub. So I didn’t really go through the lean process that Leanpub promotes where you are actually publishing versions of your book etc. Then I decided to publish my book, and I actually noticed that I have a book. I was already finished with it. And I just signed up to Leanpub and started to use the tools that it offers. And it was really easy.

Basically, it was a good fit for what I was already doing. I was using tools like Node.js scripts etc. to be able to shape my material into different kinds of formats. To be able to deliver it in different mediums. And I just needed to create one more script for it to be suitable for Leanpub platform, basically.

Len: And if there were one feature we could build for you, what would that be — if you can think of anything?

Engin: I think having reviews and ratings could be useful, because there is not really a great way of assessing the quality of the books, or the sentiment around the books. So I think having a more community aspect to it might be helpful, when you are actually choosing to buy books. Or it can be helpful for authors to promote their work as well. If they think they can actually capture that kind of an audience. So I think that’s one feature that I will like to see in Leanpub.

Len: Yeah, thanks for that suggestion. Working on improving community in Leanpub generally, and around individual books or an author, is something that we really want to do a lot more work on in the future. We do have testimonials that authors can add, so you can upload someone’s picture, and a quotation from them. But we don’t have ratings and reviews.

For us, reviews and ratings are slightly complicated by the Lean Publishing idea. Because someone might write — what’s the value of a review that’s written when a book is 50% done? And if someone updates the book, should that clear out the prior reviews, like I believe happens in the App Store with apps. But then, if you choose that option, then it makes people want to not publish updates as often, because it clears out all the reviews. So there are a couple of issues around that.

Engin: That’s true.

Len: But there’s definitely much more we can do in that area. And giving people confidence in the value and quality of the book is something that we know is really important for authors.

Well, thanks very much for taking the time to do this, and for sharing your story and your thoughts with us. And thanks for being a Leanpub author.

Engin: Thank you, thank you for having me.

--

--

Leanpub is the best way in the world to write, publish, and sell ebooks. Publish in-progress, serial and complete ebooks in PDF, EPUB and MOBI.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Leanpub

Leanpub is the best way in the world to write, publish, and sell ebooks. Publish in-progress, serial and complete ebooks in PDF, EPUB and MOBI.