An Interview with Matthias Noback, Author of A Year With Symfony: Writing Healthy, Reusable Symfony2 Code
Published Jan 22, 2014 by Len Epp
Matthias Noback is the author of the Leanpub book A Year With Symfony: Writing Healthy, Reusable Symfony2 Code.
Matthias is a freelance developer from the Netherlands. You can read his blog at matthiasnoback.nl
This interview was recorded on September 12, 2013.
Len Epp: I’m here with Matthias Noback, a freelance developer, consultant and writer based in Zeist, in the Netherlands. Previously, Matthias has worked as software developer, paying special attention to internal quality assurance. He’s been a PHP developer since 2002, and has been developing with Symfony web application framework since 2007. He regularly writes about advanced Symfony2-related topics on his blog, which you can find at matthiasnoback.nl, and you can find him on Twitter @matthiasnoback.
Matthias is the author of the Leanpub book A Year With Symfony: Writing healthy, reusable Symfony2 code. In this interview we’re going to talk about Matthias’ professional interests, his book, his experiences using Leanpub, and ways we can improve Leanpub for him and other technical authors.
So thank you for being on the Lean Publishing Podcast!
Noback: Thank you.
E: I’d like to start by asking you to go back a little bit, and ask you for a brief introduction to your career. How did you get interested in programming in the first place?
N: It was at high school. I tried some things with HTML and I noticed there were some very nice editors around the time like Microsoft Frontpage. I used it as well as Dreamweaver. It started with the usual WYSIWYG modifications and all of a sudden I had created a web page to begin with for my father. He is a photographer. So this was my first non-official assignment. And only later I started looking behind the images and the layout and looked at the code. Well, as soon as I saw code, I wanted to know more about this, and I started reading everything I could on the Internet — still over a telephone cable at the time, with a modem that said [dial up noise]. Great time! Later, with faster Internet connections. Also, I went many times to the library. The local library. They had a computer so I could use it to find out more about the Internet and how you could put some stuff on it yourself. So this was very interesting to me. I was 16, maybe 17.
E: Ok, and did you study programming or web development?
N: Not at all.
E: Ok, ok.
N: No, that’s something many people don’t know. I started with philosophy. It took me eight, I think eight years to finish it. All the time I was working on websites and applications. So I think I spent just a couple of hours every week to study philosophy. The rest of my week, I was already a freelancer, in 2002. But only after a couple of years, I noticed that I was repeating myself. I was living literally in an attic with my uncle near the place where I live now. I missed the fact that there were other people around me that I could talk to about the technical issues. I started looking for some company that I could work for in a team. And there was a company in Amsterdam called Driebit, it’s “three bits” translated. They had quite a nice team of, maybe I think at the time, eight people. Some front-end developers, some back-end developers, some project managers. They had some great products, projects which I loved to work on. Even before I started there I got a book on Symfony1 and I started reading it. This was a great revelation for me.
E: I was going to ask you what led you to start working with the Symfony framework.
N: It was at this time that I had created a CMS system for myself. For my own customers. This wasn’t a very good system of course. Yeah, what could I do with just me as a developer? But yeah, I noticed that after reading this book on Symfony there were so much more possibilities to create software with just PHP and Symfony of course. I became very excited about this new of doing things. I think there were already good CMS tools and also frameworks but I think Symfony was even then one of the best.
E: And what was it that distinguished Symfony from the other ones that made it better for you?
N: Yeah, I’ve always found the documentation very clear and very friendly. Also, the community has always seemed very warm or welcome to me. Though I must say I don’t have that much experience with other frameworks so you may just call it bias. This Symfony thing.
E: Fair enough. That’s something I’ve found with people who, the way they choose different frameworks, is often sometimes even just the first response they had when started entering into a new community.
N: Yeah, yeah. That’s right. But I think Symfony has always had it’s documentation very good. So from the start even with Symfony2. In the very beginning there was already a good site with some information. Although it changed a lot, it changed frequently.
E: And you’ve contributed to the documentation yourself.
N: That’s right, yeah. Only later. I worked in Amsterdam at the time and there was a lot of discussion in that company should they take the step from the first version to the second version and do things differently. Very much. There’s almost no way, I think, to port a Symfony 1 application to a Symfony2 application.
E: And can you tell me a little bit more about Symfony2 and what in particular was it meant to address? Who was it useful for? Things like that.
N: Yeah, well, I think Symfony2 is very useful for developers who are looking for a more advanced way to do things while they are developing Internet applications. They want to have as much, I mean, they should be able to make as many choices as possible. The builders of the framework have made, have built in very many options for them to choose from.
E: Ok. I’ve read from things you’ve written on your blog, I think, and also in your book that developing software for re usability is very important for you and you’ve already mentioned it. I was just wondering if you could explain a little bit about what this means for you and why it’s so important.
N: Yeah, I see this happening all the time. Especially now that I pay so much attention to it. I see many people who love frameworks develop software only for this framework. For example, there are Twitter clients, Twitter API clients, just for Symfony. There is someone who build it just for Symfony. This was especially so for Symfony 1 and now there has been and more and more knowledge about how to create packages or reusable parts of software so I think this is changing right now but still people have much to learn about this. Many things are too specific. Too specific for just one framework.
E: I see. So you’re saying when someone’s developing an application, and parts of an application, they should keep in mind that if they develop in a certain way then this can be useful, not just in this particular instance, but in other instances as well.
N: Right, right. Yeah. I always encourage people to share their work so if they make it reusable from the beginning this will be much easier to do.
E: When did you first get the idea to write your Leanpub book A Year With Symfony?
N: I think in April this year. I don’t know what I thought exactly. At the time. If I could ever finish this, it seemed like a very big task. Though when I think back of this, I had a blog already with more than 50 articles on it. I was a bit encouraged by this idea that if I could write all this stuff and put online I could surely write it and keep it offline for a while and later release it to the public.
E: So some of the content in your book came from your blog?
N: Not exactly, but some ideas. I’ve taken some from my blog.
E: In your book you say that Symfony encouraged you to do things right. Can you tell me what you mean by that?
N: Yeah, that’s an interesting question. This is one of the facts I wrote recently on my blog. I wrote an article called “Why Symfony — 7 Facts”. This is all sort of controversial of course because facts, well, they are just strong opinions. But the seventh one is interesting. It’s the most interesting I think because I’ve noticed around me start using Symfony are becoming better developers right away. They look at the code from the framework, written by very good programmers around the world, and many times they will feel inspired by this. They will, in the first place, try to replicate this coding style and write their code in the same way.
E: Ok. Since you say you started in, you just got the idea in April. How long did the book take you to write?
N: Yeah, I was already finished in July and then I had a holiday and some time to think about the book. Is this the way I wanted to become known to many people? My conclusion was yes. This is ready. I had three, no, actually more, four or five people who had read the book already. Or partially. Their comments were not very substantial. They were good comments, so the book has become better in those few weeks but no reasons to postpone release.
E: Ok, so it’s mostly you but with some opinions from other people. That’s great. I wanted to that sort of, I think a lot of people who, you know, are developers and are thinking of writing a book themselves like to hear about those details that you normally don’t hear in kind of big stories. It took you from the moment you started thinking about it to when you were finished it was about three or four months. Then you took a break and had other people read it before releasing it. But also, one of the reasons I gather you could do it in that period of time was that you’d actually been writing about it already for a long time and already had an audience of people for your blog.
N: Yeah, those are important things. The writing experience. If I had tried this two years ago it would have taken me much longer. Some good native English writers or speakers had to correct me on many things.
E: Who is the intended audience for the book? Your ideal reader that you were keeping in mind when you were writing it?
N: That’s interesting. I sometimes thought of a new colleague or a fellow developer who would become a member of my team. I would explain to him some things and then another developer and I wouldn’t want to tell him everything in person again. So I would like him to read the book. It would get me a lot of free time back.
E: I see, that’s really interesting.
N: Yeah, this has been a good idea I think because my idea from the beginning was there is a lot on Symfony on the web. There is a good documentation. It’s called “The Book”. That was already a program for me. Yeah, “The Book”, so how could there be another book on Symfony? Right? But this documentation is very, yeah, it contains only the facts and no suggestions on how you could create your project or know best practices. Even some very bad practices on this side. Especially when it comes to security of web applications.
E: I have a very specific question that is very important for successfully launching and spreading word about an ebook. Which is who made your amazing cover? It’s fantastic.
N: I did.
E: Oh you did?
N: It is a picture I bought from a stock photo website. So yeah, that would have been awesome if I had such a mosaic in my garden or something like that. But no, just the image and then some overlay. But it looks very good. If I may say so.
E: It does, yeah. It’s just amazing and one of the things, and again it’s a very precise thing to talk about but it’s very important for selling ebooks, that the font you chose and the sort of precision of it is very clear in a number of different sizes including small ones. That’s something that a lot of people who are making book covers don’t take into account that it’s not just the size of a big book page. People are often are going to see a sort of thumbnail and your title stays clear at different levels of zoom I guess. I just wanted to mention that. That’s one of the things that I found so impressive about the book when I first came across it.
N: Yeah, it was more intuition that really designers knowledge or something like that.
E: You launched your book in a really interesting way. Can you explain what you did?
N: Yeah, I thought of this just a couple of weeks before I would release this book. I thought it would be great to really release the book real-time with an audience in the room. Well this is possible with Leanpub, of course, there is a button I would have pushed myself, but then in the room with just me. When you push it, it says “Publish Your Book”. You see all the build steps being taken with the real book as a result being published online. So after that, immediately, people can start buying the book. This is what happened, actually, two weeks ago. I had a presentation at the local user group of Symfony. Two users. I put the page on screen and also the publish button. I clicked it there and people were waiting and looking at the screen.
E: That’s amazing. So they were seeing the build process live.
N: Right, yeah. And this was very nice. It took only a couple of minutes. It would have been longer this would have been quite boring but people were actually very excited while they saw the progress. They even saw the message “sending mails” to interested readers. Many of the people were interested readers. Interested people. They were even subscribing at that same moment.
E: Oh, well that’s very cool.
N: So it was a great time that night.
E: I guess that’s a good transition to the next part of the interview. I’d like to ask you some questions about your experience with Leanpub and the lean publishing process. Can you tell me how you found out about Leanpub in the first place, and why you chose us for your publishing platform?
N: Yeah. One big example for me was Chris Hartjes. He has published with Leanpub two books on PHP unit testing. I didn’t actually read the books, but I saw it was very good at this. He’s very good at marketing and at promoting his own brand. Which is “The Grumpy Programmer”. He does this very well. I thought well, maybe I can do this too. I have something to say about Symfony and I feel very passionate about this. It was a good moment to start. I also mentioned this to him and he was very happy about this.
N: Yeah, yeah.
E: Oh you’ve seen it? Ok, ok great. Well that’s great that you came to us through Chris. How would you describe your experience using Leanpub from when you got started to when you published?
N: It was a very clean sort of experience. I wanted to write a book but not have many troubles with layout things. I was very happy that the whole infrastructure was there. So, the Dropbox folder and the build process. Whenever I wanted I could have a preview of my book. Also, Markdown, the format of the original manuscript, that is a very good format. It has many good options but not too many. So you have to use the right options and automatically be consistent in your writing. This is a very good combination of techniques. And since it was launched, I have had no trouble at all to see people buy the book, see who bought it, which discount.
E: Is engaging directly with people who’ve bought your book important to you?
N: Very much. I reserved last week a couple of days just to spend some time with these people. Sending messages, listening to what they said, making small corrections to the original text.
E: Is there more we can do to help you engage with your readers?
N: Not that I can think of, no. It is already very good: the discussions, the way people can reach me by sending an email.
E: And you’ve enabled the feedback feature so that people can either use the Disqus comments or actually email you directly.
N: Yeah. This was one of my main goals with this book. To mention Chris again, he said somewhere that one of the problems always is determining a price for your product. He said he would think of something that made himself feel uncomfortable. A bit too high, really, and that would be a good price. I thought no, not for this first book. So I chose the average price that was suggested to me by the Leanpub calculations itself.
E: Ok, oh that’s interesting.
N: Around $20. Or maybe $15.
E: So was this from people who’d gone to your page before you published the book and had entered a price they’d be willing to pay for the book?
N: That’s right. About 500 people. So I thought that would be quite representative for the price they would really want to pay. Some people were very generous at that time so they had said $30, $40, $50. Most people around $20. I thought that was a friendly price. Also, my main goal was to reach as many people as possible at this time. So I chose not too high a price.
E: You’ve chosen $25 I see.
N: Yeah, but in the beginning this was $15.
N: If you were an interested reader and you supplied your email address, I gave all these people a discount code.
E: And you’ve also chosen to have the minimum price and the suggested price be the same. Is there a reason for that?
N: Not really I think.
E: There doesn’t have to be.
N: I think it’s good to have one fixed price. I have noticed not many people would want to go higher with the price.
E: Ok, so you haven’t found too many people clicking and dragging the pricing slider to the right?
N: Yeah. That’s right.
E: I see that actually already, even though you just launched recently, you already have four translations on the go.
N: Yeah, that’s amazing. As soon as maybe an hour after the official release, there was already someone saying “may I translate this book to Portuguese, German, Polish, and Spanish?” The Spanish translator already wanted to translate before the book was published. He trusted me that much that he would want to do this.
E: What is your plan for splitting royalties with your translators?
N: This will be 25% for them. I know this is kind of generous, but I see that this takes a lot of effort for them and I’m not sure if it will pay back. So I think this is a good middle way.
E: Some people actually do 50%.
N: Ah, right!
E: So you don’t need to feel like you’re being… I mean I just ask these questions because when an author is doing pricing, especially the first time, it’s hard to know what to do and whether or not what one is doing is unusual, or right down the middle. Sharing this kind of information is very useful.
N: Yeah, it is difficult in many ways. I’ve looked very much at other Leanpub authors, publishers, and people writing books and what they do with the price.
E: Is there anything generally that you’ve thought, even if it’s very minor, when you were using Leanpub, or when you think about it now that you’ve published your book, that we could improve?
N: Well, not really big things. Some things thats come to mind… when it’s formatting the text, I would like to have more freedom to choose my own font.
E: Oh, fonts. Ok.
N: Yeah, but overall it’s a very clean way of doing things. Very fast.
E: So you had used Markdown before you started using Leanpub?
N: Yeah, it’s a common format for developers who write documentation for their own code. So that’s no problem.
E: So there were no big features that you’re thinking “ah, I really wish Leanpub had this”?
N: No, not really. Some convenience, maybe some tools…. There is a feature where you can create a sample of your book. The assumption here is that you can take some chapters and provide them as a sample to the readers, potentially. I chose to not give entire chapters away, but only parts of chapters. I devised my own system for extracting parts of every chapter.
E: Oh, I see. And then you’ve got to maintain two different files, and so if you update the complete, primary copy then you’d have to update separately the sample partial?
N: Right, but I had created a tool for this. I would have comments in the original files saying “this is the beginning of a sample, this is the end of a sample”. Then it would take from all the different chapters the sample parts and put them in one file. It removes the duplication.
E: If you had any advice to give to any other developers out there who are thinking of writing a book, what would your advice be?
N: My advice would be to just start and try this. I think within ten minutes I was already writing this book. I had some ideas and I had a small brainstorm in a text file. From that I started to split this in real chapters and, well, take my time. Maybe one hour a day to write a book. It is easy because of the infrastructure that Leanpub provides. It’s very much appreciated. Anything like this. Developers really like to read each other’s ideas.
E: My last question is that, at the end of A Year With Symfony, you say that if you were ever to write a book again, it would be about PHP package design. What are the chances you’re going to do that?
N: I’ve already created a new book on the site. On leanpub.com. I’ve already started writing on it.
E: Oh, excellent, good luck with that! If you ever have any questions or feature requests, or run into any problems, please get in touch with us directly.
N: I will.
E: Ok. Well, I think that’s about all the time we have. Thank you very much for being on the Lean Publishing podcast and for being a Leanpub author!
N: Thanks for having me.
Originally published at leanpub.com.