An interview with Jaime González García
00:00
00:00
  • April 11th, 2019

Jaime González García, Author of Boost Your Coding Fu With VSCode and Vim

00:00
00:00
1 H 8 MIN
In this Episode

Jaime González García is the author of the Leanpub book Boost Your Coding Fu With VSCode and Vim: Unleash the power of Vim in Visual Studio Code, boost your productivity and become an even more awesome developer. In this interview, Leanpub co-founder Len Epp talks with Jaime about his background, growing up in a small village in Spain, studying in Sweden and his remarkable career journey, his programming book projects and how he drew inspiration for them from fantasy and science fiction, and at the end, they talk a little bit about his experience as a self-published author, with a bonus segment on Jaime's experience becoming a father and taking paternity leave.

This interview was recorded on March 13, 2019.

The full audio for the interview is here. You can subscribe to the Frontmatter podcast in iTunes or add the podcast URL directly.

This interview has been edited for conciseness and clarity.

Transcript

Boost Your Coding Fu With VSCode and Vim: Unleash the power of Vim in Visual Studio Code, boost your productivity and become an even more awesome developer by Jaime González García

Len: Hi, I'm Len Epp from Leanpub and in this Leanpub Frontmatter podcast, I'll be interviewing Jaime González García.

Based in Stockholm, Jaime is a full stack software developer and UX designer, and a popular conference speaker. He works at Google and is currently a front-end software engineer on the Hangouts Meet hardware team. His duties also include developer relations for people in the developer community in the Nordic countries.

You can read his blog and signup for his newsletter at barbarianmeetscoding.com and follow him on Twitter at @vintharas.

Jaime is the author of a number of Leanpub books, including JavaScript-mancy: Getting Started and Boost Your Coding Fu With VSCode and Vim.

In this interview, we're going to talk about his background and career, professional interests, his book, and at the end, we'll talk a bit about his experience as a self-published author.

So thank you, Jaime, for being on the Leanpub Frontmatter Podcast.

Jaime: Thank you for having me, it's a pleasure.

Len: I always like to start these interviews by asking people for their origin story, so I was wondering if you could talk a little bit about where you grew up, and how you first became interested in creating software? I know your route wasn't exactly direct.

Jaime: No. So I was born in a very small village in the north of Spain. It's a small valley, and I think it's got about 3,000 inhabitants today. It's surrounded by mountains - it's like a very beautiful place. Growing up there, it was very nice childhood. I was very much a wild kid. I would hang out with my friends outside, herd cows. I remember very vividly my uncle using a scythe to cut the grass. That was how my childhood was.

And then my dad, he was a very forward-thinking man. You could see that with a couple of things. One was that he put my sister and I in English class when we were very young. People were putting their kids in French back in the day - they thought that French was going to be the thing to stick, but it wasn't. So my sister and I were very good with English. And another thing that he did, was that he was always buying the latest gadgets, and one of those gadgets was our computer.

That was the first time that I had contact with a computer as a child. I don't know how old I was back then. But I think he bought a weird terminal thingy that you would connect to the internet or something. You could only do so much with it.

But then he got a PC. I think it was a 286 - that was a long time ago, monochrome. That was the first time that I used a computer.

I remember that he wanted us to succeed, and he would put us through programming class. But again, this is a small town. There's not a lot of opportunities like that.

He would get me to learn BASIC. I was super young. I don't know how old I was, but I said, "Alright. Let's do it." I didn't even know that it was called "programming." I think I was so young, that I just got some problems I needed to solve, and then I just followed the steps. I don't even know what I was doing.

But one thing that happened in those classes was that I found a floppy disc of Civilization, and I somehow got it installed in the computer. And then people would be programming BASIC, and I would be playing Civilization. That was a big thing for me when I was a child; I really loved video games. So I traded the cows and the herding for video games. I spent a lot of my childhood - I mean, I did a lot of things, I played football, basketball, and also, playing video games.

I had slightly obsessive behavior sometimes. So when I found something that I really enjoyed, in this case it was Age of Empires, I would get very obsessed, and play a lot, and try to become very, very good.

Another time, I think I was 13 or something like that, I led these clans. I think I was one of the highest-rated players in Age of Empires back then. I even did conferences about strategy that you could follow.

But even though I was playing, I never connected the dots between the idea that I could program video games, or I could program anything. The computers were just fun to me to me play with. I did, actually, created some website back then for the clan. But I wasn't very much into programming back then.

Time passed, and I wished I'd had somebody who had connected the dots for me and told me, "You can do this for a living - programming. You can build your own things." But nobody did, and I just continued with my life.

When I went to university, I left my computer at home. So the first years in university, I didn't even have a computer. I was very scattered back then, and I just spent most of the time with my friends hanging out. I would read books the whole night, and then I couldn't go to school.

It was much later, that I had this idea. Sometimes I'm very impulsive.

This is how it went. I read this book that was called The Fifth Day. It talked very nice about the Nordic countries, and in this case, Trondheim. I said, "Oh, it would be really cool to go there, and then I could do Erasmus there," which is an exchange program that we have in Europe - and I would finish my degree. I said, "Okay." And then I did it.

In this case, I moved to Sweden. What happened there was that I met my wife, my girlfriend back then. It was through meeting her and falling in love with her, and starting our relationship, that after like 10 years of "study" - I'm doing quotes, because I don't know what I was doing. I had realized that if I wanted to be with her, I needed to get my shit together - finish my degree, and start earning a living so I could maintain myself. That was when I finished my degree and that was when I started working as a software engineer.

We moved back to Spain, back then. I just wanted to pay the rent. I wasn't super excited about programming. But programming was on the rise back then, as it is today, even more so. The easiest job that I could get was as a programmer, even though my degree was like a super snobbish degree in Spain, it was like the cream of the crop. But, I don't know - people look down on programming. I don't know why, because it's awesome.

It was like, "Okay, I'm just going to do anything to earn money. So I can pay the rent, and so we can live together happily ever after." I started working as a software developer, and I was working for a year. I enjoyed it for the time, but I didn't think I would end up being a software engineer. It was just something that I needed to get money to pay the rent and food.

And then we moved back to Sweden, my girlfriend and I. Then I had the chance to really reflect, "What do I want to do with my life?" That was over a summer. We were living at her parents' and throughout those three months I was thinking, "Okay, what am I going to do with my life?" I was a telecom engineer, so I was thinking perhaps I will work at Ericsson? Designing, I don't know? Radios, or who knows?

But then I started thinking about, "What brings me joy in life?" And through reflection there, I realized that I really, really, really loved writing software and building things.

I was 27 at the time. It took me a long time. And then when I realized, "Oh, this is what I love to do," then I went crazy. I mean, it was not like a rational decision, it was just a natural reaction. "Now I'm going to dedicate every hour that I have awake to pursue this passion, or strong interest that I have." And that was what I did from then on. I've always felt like - you look back and you start thinking, "Fuck" - oh sorry.

Len: That's okay.

Jaime: "I've wasted so much time. I could have been programming all along" I mean, I chose the wrong degree. I wish somebody had mentored me better.

But I started from then on very strongly pursuing software development. So much so that, it was funny, because this became an issue which my wife and I would discuss. We would have discussions, because I would feel like I didn't program enough, and she would feel that I would program too much. There was always this - it went from, Jaime, he was completely unambitious, partying all the time, dancing with girls - and that was a problem, I was partying too much - to, "Jaime, you're coding too much." It was completely different.

Len: One of the themes of this podcast, because so many people that I interview work in tech is: if you were starting out again now, would you go to university and study computer science, if you were going to pursue a career in programming? Or would you do it another way? Because it sounds like you taught yourself how to program, after getting this telecommunications engineering degree.

Jaime: So, the telecommunications engineering degree, it included some programming, even though it was not the core thing. But if I could start over, I think I would definitely go to university again.

Because it's not just going and learning a subject. When you go to university, it's a whole experience of coming of age. In my case, I was living at my parents' until then. And then going to university was me moving to a new city, and then being independent - or, independent-ish - for the first time in my life. And meeting all new people, getting the chance to like reinvent yourself, or also grow into yourself.

There's a journey of self-discovery. University is not only learning how to code or learning a trade, it's all the experiences that you gather through all those years of living on your own, pursuing knowledge - ideally for knowledge, but also developing as a person.

So I think - it's hard to say. Because that's what I did, and I really enjoyed it. And I don't know what it would be like to not do it.

I mean, you could have probably come out of high school and then start working. But I don't know, I reckon university - I think that one thing that is very nice about university is that, I feel like you, particularly if you start working - you have that nine-to-five, or eight-to-five, that's very routine-based and it's more closeting - or limiting in a way.

In university I feel like it was more open, and you were able to pursue things in a freer way, and you weren't as closed. So I think that I could definitely recommend it. I know that in the US it can be very expensive, but if you move to Sweden, university is free. So move to Sweden.

Len: I've got a question about that, that I'd like to ask you in a minute. But just before that, I'd like to say - I couldn't agree with you more about the value of spending some years in university.

One of the things that I think a lot of people don't put together, particularly if it was just natural for them to go to university, because that's what everyone in their family did, is that it expands your range of acquaintance, and it also sort of demystifies things. Because you remember partying with that guy who's now a surgeon. And you remember partying with that guy or girl who's now a big-time lawyer.

But at the same time, there's just all these very profound, practical effects that it has on your life, that you can often discount, because they seem normal to you. For example - if you find a lump on your back, you can call your doctor friend. If you get called up for jury duty, you can call your lawyer friend and try to get out of it. I'm just picking tacky examples on purpose, because when you have that resource available to you, when those professions have been demystified for you - you often forget that that is not how everyone experiences those issues in life, and those people in those professions, and things like that. So it definitely has that big impact.

But also, yeah, just that time to explore and to find out new things, and a little bit of time to grow up, but more importantly - you brought up just going straight into work, and how work can be sort of very rigid. It's funny, because I grew up in a very rural place myself, where people often made a distinction between the real world and university, which always pissed me off. Because I'd be like, "Okay, let me describe the real world as you see it. A bell goes off, and at that time I need to be sitting at my desk. A little while later, at around noon, say - I get an hour off to eat. Then I have to be back at my desk for a while, and then at about five, a bell goes off, and I get to go home and I don't have to think about it anymore. What does that sound like?"

I'm being kind of mean about it, but that sounds like being a child in school. And when you go to university, all of a sudden it's never off. Because no matter what's happening, you could be doing more to understand your subject. I always like to say that people who say a class is easy - it's like, "It's only as easy as you make it, my friend. If you're finding it easy, then you're not trying hard enough." It gives you this opportunity to challenge yourself, and see how far you can go.

I mean, imagine if your job involved a four to ten year commitment to be self-directed and assessed in an irreversible way, like on a bi-monthly period for that whole time, you'd be like, "Wow, that sounds like a really hard job." Anyway, university can give you that foundation and experience.

Jaime: Exactly. Out on the land, people normally take you by the hand and guide you. And then when you go university, they just throw you there, and then it's like, "You're free to do what you want."

Len: I've got to say, for me personally, that was exactly what I loved about it. I loved being, in that sense, on my own, with no one looking over my shoulder. And no one punishes you for not showing up to class.

Jaime: Yeah - that was a big shock that I had, when after my long years in university, I started working - it was a shock. It was a complete shock, from being able to decide how I work, when I work, how I arrange my life, to all of a sudden, I did not.

In Sweden there's a little more flexibility, but in Spain, it was very rigid in the sense that, "You have to come this hour, leave this hour." You normally work extra hours that nobody pays you. It's very rigid. It was like going from having so much autonomy, to being, in a way, enslaved. I had a small crisis. I was thinking, "Oh, this cannot be life. Life cannot be this for the rest of my life."

Len: I wanted to ask you a little bit about moving to Sweden.

Jaime: Yes.

Len: Was that easy? Did you have to anything? Or could you just go because you're in the EU?

Jaime: Yes, it was the EU thing, that makes it very easy. The first thing was the Erasmus Programme, where you go as an exchange student. They give you a stipend, they give you some money. Which doesn't go very far, but the family can help as well. And that was just studying. After that, in the EU you have the free movement of workers. So you can go to any country, and then normally you have three months to find a job. And if you get a job, then you get automatic residence - or something like that. Probably - I don't know if thatt's actually how it works. I think that is it.

What I did was I came here, and I started looking for jobs. I was thinking - my idea was like, "Ah, this is going to be easy." Because I know English; Swedish people - all of them speak perfect English. And I had one year of experience as a software engineer. This is going to be easy.

And then I busted my face against a wall, because I couldn't get a job. We moved back to the city where we had studied 20:04, my wife and I. And for the next 7 months, we were living on her - on my meagre savings. Because in Spain, for my first job, I got like €900 per month as an engineer. I worked as a bartender and I earned like €1200. So as an engineer, with a Master of Science - I was earning a very, very low salary. So I paid rent, I paid food, and perhaps I saved €100 per month.

When I came to Sweden, I mean - two months they lasted, and that was it. So basically my wife, my girlfriend at the time - she was paying for everything, and I was looking for a job. I sent, I don't know? I always say like 200 CVs. That's how it felt. I think I got like two interviews, it was horrible.

I think that the biggest problem probably was that I didn't speak Swedish at the time. And in that area, that was not as cosmopolitan as Stockholm. People really wanted people that could speak Swedish. I don't know, perhaps my CV didn't inspire trust? Perhaps I had a bad picture, who knows?

So it was tough. Because seven months, looking for a job - having your wife, your significant other pay for everything - that was a tough period. I used to be a smoker, so I was very addicted to smoking back then. And I couldn't pay for my cigarettes. And my wife, of course she doesn't want me to smoke - so she wouldn't buy me cigarettes. This sounds so stupid today. But it was a huge source of discussions for us, because you're addicted. And you do not understand that you're addicted.

But after seven months, something like that, there was this person that gave me an opportunity, and trusted me. I went through some interviews and I got a job as a consultant working on - actually, I was about to come to a company as an expert in Python. And I had no clue about Python. But I was saying - when I got the job I said, "Okay, then I'm going to learn Python. I'm going to learn everything about Python. I want to get a certification on Python."

And then when I started the job - I think I was at a higher level than the people that worked there, so that was good. I came with a lot of enthusiasm and ideas about how they could re-architect their solution and improve. I think it went very well.

From then on, it was easy. Normally when you have somebody's seal of approval, it's like "bing," somebody has hired you in Sweden, then it is much easier to just get more jobs, or at least interviews.

Len: Eventually made your way to Google. But before I ask you about that, one of the pleasures of this podcast is that I get to interview writers from all around the world. And one thing I like to ask them is things specific to where they are. And I don't think I've interviewed anyone living in Stockholm before.

So I wanted to ask you, what's the startup scene like there?

Jaime: I think that the startup scene is amazing. But I've never been a part of it. My background is in .NET development, so that's enterprise. You have these two universes coexisting, but they never touch each other.

The startup scene is super huge, we have a lot of incubators. I meet these people in meetups. So you go to Stockholm ES, and you go to different meetups. We meet these people. But normally, since my background was .NET - I normally hang out with these other people, enterprise, big consulting firms - helping big companies, big established companies. But there are awesome startups, and unicorns.

Len: Speaking of big established companies, onto my next question. So, you've had this really interesting journey, and you ended up at one of the biggest, most established companies in the world. How did you end up at Google? Did they grab you from somewhere? Or did you approach them?

Jaime: They grabbed me. It's so funny, because I remember going to work in Linköping. That was the city where I lived before with my wife, in the middle south of Sweden. That was a university city. Somewhat small - it's big for a Swedish town, but it's small.

I was listening to this book, In the Plex. It's a book by Steven Levy, and it's about the origins of Google, and how Google came to be. Google ideals, and all of those things. And I remember thinking, "Oh, it would be so awesome to work at Google. But, that's never going to happen." I remember that a lot.

And then what happened was that - I have never thought about career advances. That's not something that I think about. I love developing software, and I always focus on just, I guess, code, and creating things, and having fun, and learning, and improving my craft. Those are the things that concern me.

And then - I'd been working at different companies, meeting people in meetups and sometimes talking at conferences, developing things, creating things in my free time, doing side projects. I'd been moving from company to company, when it made sense. Like perhaps you work in a company, and you don't enjoy working there, because their practices may not be very good, and they are not keen on changing them. People in your team, they are not excited about software development as much as you are.

And then you meet other people in other companies that you click better with, and they talk with you about their company and all this stuff. This is a natural way of moving companies. Which is funny, because I knew people there, so people are important.

I think it was January 2016. We spent the Christmas in the north. My wife is from Luleå, which is like, in the North Pole. It was minus 35 degrees or something. It was winter, and we came back from there, from celebrating Christmas. opened my email, because I had been isolated completely. And I see three emails. The first one is from Google, and the other one is from Microsoft. I was like, "What the fuck?" So I was like, "What? This has happened. So how did this happen?"

The email from Google was - somebody had seen my profile on LinkedIn, and they thought I was interesting for a position. It was a senior customer solution consultant in Stockholm. They wanted me to, if I was interested, start an interview process. And then the other one was from Mojang, the company that does Minecraft. Then it was like, "Okay." I mean, I was going to speak at a conference, at end of June or beginning of February. I think I was writing JavaScript-mancy at the time as well. The never-ending book.

And all of a sudden I get this - "Oy." Really unexpected. But I said, "Let's do it." That's how it went. And then I went through interview process, I never thought that it would amount to anything. But I had said, "Let's do it. I don't have anything to lose. I'll do my best, and we'll see what happens." And then next, I'm going through the interviews, and passing interviews, and then I got the offer. And then I started working at Google.

Len: Just one specific question - this has actually come up a couple of times with people I've interviewed. But how many interviews did you have? I know there's a lot.

Jamie: I don't remember exactly, but it could be eight? I would count the phone interview, I don't know if it was grueling? But it was long and arduous. The thing is that, you're doing these while you have a job. So you have your job, you have your life - and then on top of that, you need to prepare for the interviews. I mean if you work as a software engineer, chances are that you normally don't rely on computer science-y stuff.

You don't use this on the libraries, you don't implement algorithms at a low level, you don't do [crufts?], you just build applications. So those things, you really need to refresh them. In my case, I didn't do computer science, so even though I really enjoy computer science and all these thingsm, it's just hard to find time to do it. You need to prepare a lot, and then you need to be on for the interviews.

Len: You've mentioned side projects in your book, Javascript-mancy, the never-ending book. I'd like to move on to that in the next part of the interview. But before that, I've got one specific question. I grew up in a place where it goes to minus 35 or minus 45 celsius in the winter. You grew up in beautiful northern Spain. What was your first winter in Sweden like?

Jamie: Oh my God. I used to smoke then. So imagine going out for a smoke, minus 35. That was tough. But you get accustomed to it. I think that the problem - the cold is not as big of a problem as the darkness. We're very north, so the winter, it's like never-ending winter and never-ending darkness. That can be tough also. You miss the sun. And then in the summer, it's never-ending sun. I think that's easier to deal with though.

Len: It's interesting, I used to smoke myself - and occasionally crack and have one, from time to time now. And I do remember the times when I felt most like an idiot were when I had to do something very physical, and when I had to go outside in minus 35 to have my cigarette.

Jamie: Yeah. In Sweden they are very good. Sweden has moved forward, and people don't smoke. If you smoke, you're really the only person that does it, you feel a bit like a pariah. Every time that I would go out for a smoke, it was like the walk of shame. It was the walk of shame out, and the walk of shame in, because I was the only one doing it. It's good that they they don't smoke.

Len: It's a very enjoyable activity in many ways, but it has bad effects in the long run, we all know that now - thankfully.

Jamie: Yeah.

Len: I said you'd mentioned side projects. I wanted to ask you where you got the idea for Barbarian Meets Coding?

Jamie: I think that when I started like getting very much into development. I had two big inspirations. One was Scott Hanselman, and the other one was Robert Connery. Most of them had blogs. Those seven months of looking for work, I wasn't idle. I was learning a lot, a lot of coding. And as I was learning, I was thinking, "I should start a blog." And then, there I was smoking outside, and I started reflecting - "Okay, I want to do this blog. What am I going to call this blog?" Brainstorming different names.

I think that there was this other blogger that I really liked. I don't remember his name, but I think he was a UX designer, coder. His blog was called something like, "Nerd Plus Art." It could be that today even, I don't know? And then I was thinking, "I like that combination." And then I came up with Barbarian Meets Coding.

I love fantasy and sci-fi. One of my passions is reading books. I've been doing that for ages, forever. Yeah, I used to be super nerdy. I used to play in role playing games. The ones - D&D and Vampire and Werewolf - that you act, people are talking through an adventure.

I've always been into fantasy. I was thinking, "Okay, let's mix two of my passions, which are fantasy and coding." I always like to put things in my talks and in my articles, because I think that it's more fun if you have a thing that you can piggyback on, to tell a story. So that's how Barbarian Meets Coding came to be.

One of the happiest memories of my childhood is watching Conan the Barbarian with my uncle. My uncle was a big role model for me, and I used to spend a lot of time with him. We would watch Conan the Barbarian, and Conan the Destroyer. We'd watch those movies, I don't know how many times. Arnold Schwarzenegger as Conan the Barbarian, that was awesome. So yes, mixing that - that's how I came up with Barbarian Meets Coding.

Len: And how did you come up with the handle @vintharas, that you use on GitHub and Twitter and things like that?

Jamie: In my head I usually call, say "Vintaras." Len: Oh.

Jamie: We don't pronounce the "H." When you read fantasy in Spanish, then everything sounds Spanish.

It was funny. So in university, after three years of not having a computer, I got myself a computer. I was there in the middle of the living room. We stole a table from a cafe, and I put the computer there. I think it was a very old computer. It couldn't play any modern game. I don't know how I found out about this, but I started playing a multi-user dungeons on Mac. Basically, that's like a text adventure RPG, but it's in text.

It was really funny because, basically there are just letters that are describing the scene. And then you can do actions. It's terminal-based. You can create a character and you can customize the terminal to do things faster. You can create macros. You can do a lot of things. It was really funny, because every time - I used to live with a roommate back then. We were like brothers, because we lived together like six years.

And every time that he would come home, he would make fun of me, saying, "Oh, you're playing all the letters again." Like it was a real game. He'd say, "What are you doing, to spend so much time with this nonsense?" "I mean, you should try it, this is so much fun. This is so good."

My character in that universe was a half-Elvin ranger, protector of a small village near a swamp filled with evil lizard men. And his name was Vintharas. He was the [?] school, that was a very prodigal name.

When I joined Twitter, and all these things - nobody told me about SEO. It would've been much better to have like "Jamie," so people will go and find me. But I use "Vintharas," and no one knows why, and they aren't going to find me. The funny thing is, even at Google, I used that as well. And people always asked me, "What is this? I cannot find you within our system."

Len: It's funny - once you know that's you, though, then it's very easy to find you.

Jamie: Yes.

Len: Because I searched for it, and like I was like, "Oh is this a character from fiction or something like that?" And if you put that name in Google, it's all you.

Jamie: It's really made up.

Len: You mentioned themes. For your JavaScript-mancy book, for those who might not get it right away, "mancy" comes from necromancy or pyromancy, and it's a reference to magic, basically.

Jamie: Yes.

Len: Which is a really cool idea. I was wondering if you could talk a little bit about the motivation behind it? This JavaScript-mancy book, by the way, is hundreds and hundreds of pages. It's an excellent book.

Jamie: Thank you.

Len: Oh you're welcome, it really is.

I believe that was your first book. What was the motivation behind starting a project like that, and then completing it?

Jamie: So back then, I used to work as a .NET developer. I think that back in the day, I did a lot of - how do you call them? - desktop applications, you call them. Not web, there wasn't the web yet. And so I did .NET and C#.

There's this thing in the .NET community, back then it was very pervasive, today probably is less pervasive - it was the idea to look down on web development. "Web development, this is not real development. This HTML,it's not really software development. JavaScript is not software development, it's just copy/pasting." Again, it was this way of looking at web development that was a little bit like, "This is not worthy of our consideration." As a member of a community, you just suck in that feeling or that idea.

And then, eople starting talking about Node, and I could see excitement around web development and rich applications. I decided, I'm going to give it a chance. I'm only starting some JavaScript, and I want to give it a chance, to understand it. And then the more I started using JavaScript, the more I started enjoying it. I learned how to do different [?] in the patterns in JavaScript.

And then I learned how free - I was able to prototype things so quickly. It was much less ceremonious than C#, using it. So many artifacts, to compose different objects with each other, and then you could do very awesome things.

Through this experience, I realized that JavaScript was a very awesome language. It was fun to write, but it was also very powerful. It was a really good language.

And then with this knowledge - I remember being at a Meetup, and people were talking about TypeScript. And every time that there would be an opportunity to bash JavaScript, people would take it. I was sitting there in the back of the room, and I was thinking, "No, JavaScript is good." The idea for the book came from this.

I just wanted to show people that JavaScript was awesome. Which is stupid, if you think about it as a business. It's like, to tell people that they're wrong - this is could be the worst business that you can imagine. But I just wanted to share my enthusiasm and my journey of my career, with other developers. Because JavaScript was so much fun to write. It was so good that I wanted just to share it.

That's where the idea for the book came from. I started writing some articles, and then I thought, "I can make this a book." And then I was thinking - because I always like to have themes, my thought process was, "Okay, JavaScript is thought of like a very obscure language that has like weird behaviors. So then, let's compare it to magic; and then we have, as you say, different schools of magic - necromancy, pyromancy. So then I will play with words. Some people don't get it, but yeah, it was pyromancy.

And then from, I was thinking how, it's going to be a book about learning the art of writing JavaScript. And so, I thought more about this fantasy theme. I thought, "Okay, so I can make a programming book, and then I can mix it somehow with a fantasy book." I want to have a story inside the book, and all the examples are going to be tied together, and they're going to be like a fantasy story, and exercises are going to be part of the story.

And then I'm going to have illustrations, like in fantasy books. I started thinking about how I'm going to get, for instance, all the illustrations - I have all these ideas, and you visualize these things in your brain, and they look awesome. And then sometimes, when your dream hits reality, you realize that perhaps you don't have the ability to do some things. There's some things that you don't do in the end, or that you postpone. For example, I would really like to illustrate the book with cool fantasy illustrations - but we will see when I get there.

And then, I was writing and writing, and all of a sudden it was like 600 pages. I realized, I'm just thinking about how much more I wanted to write. So 600 pages, and I have covered the basics of JavaScript and part of the object-oriented stuff that I wanted to teach - because JavaScript has awesome capabilities. I went to these people, "This is how you do C#, like classical inheritance in JavaScript. But then you have all these awesome things that you can do - because JavaScript, it's dynamic."

S I was like 600 pages in - writing a book is like a marathon. It is very tough as well. I realized, who is going to read a 1,500-page book? It's going to be super tough. And then also, I think it would be very tough for me to just do continual writing forever, without having something finished. And then I thought, "What if I break the book into smaller volumes?" Because that's very common in fantasy. You have this long series of books. That's when I started to breaking the books up. So then I got, JavaScript-mancy: Getting Started, and then you have like a 300 page book with an introduction to JavaScript. Then, you can move into OOP, and then you move into functional programming, and then you move into Async.

Len: You worked out a very robust process when you were writing that book, I gather from looking at it. Did you publish it in progress?

Jamie: Yes - I don't remember when I started publishing. But yes, I did. I did publish it very early. Because a lot of the things I wrote in my blog.

So, I'd write on in my blog. And then I published it in the book; I did this simultaneously. But in my blog was just the article itself, the content of the article. And then in the book, I added the chapter, I extended it, I added the exercises on the story. Writing the article is like 10%, and then then there's another 90% of editing and editing and editing. That takes so much more.

Len: And you had some technical reviewers as well?

Jamie: Yes I did. I was thinking, "I can use TC39 process." You have these different levels of proposals, from the straw man, to final or something?

What I would do is, I would be writing articles and chapters, and they would be in different levels of maturity, based on whether it was something that I could have just written. Because normally, I write content super-fast, without thinking about anything - shape or form, just content, content. And then I say, go review, and adding exercises as it gets reviewed by our reviewers. There it goes, maturing.

This was like a signal for the readers to know whether it was safe to read a chapter or not. It was like, okay - if you really want to learn about the creation process of a book, or you want to get the chapters super early - then you can look at this straw man chapter that is very early. But if you don't care about the amateur thing, and you just want to see a mature, final version of the article - then you can just wait till you see what this is like when it's reviewed and like finished.

Len: We've already naturally segued into the last part of the interview, where we talk about being an author, and writing, and how you manage that. I wanted to ask you, how did you find Leanpub, and why did you decide to use us as your platform?

Jamie: Good question, because it was a lot of years ago. How did I find Leanpub? I don't remember how I found Leanpub. Probably some other author was publishing on Leanpub back then. And what attracted me, was Leanpub is - for a software engineer, it's like the perfect way to write a book. It was like, "Okay, I get to use Markdown, and then I get to push to a Git repo. And then when I push to the Git repo, it automatically generates a preview of the book, and I can publish it as well. It felt like developing software, in a way.

That was like a perfect match. Software engineer, writer - this is how it should be. I just used Vim. And I'm using the same level of tools that I use for working. Again, I push to GitHub, get connected, and see the output in Dropbox that I can read for review. It was like the perfect workflow.

And then the idea that you can publish as you go and get feedback from your readers and see if it works or not. That also was very attractive.

Len: That was going to be my next question - was getting feedback from readers early on important to you, and did you have a process for incorporating it? Or was it like, you put your email address in the book, and people contact you that way?

Jamie: Exactly, in the beginning I just had an email there, just, "Contact me on my email or on Twitter, however you want." I don't think that I got a lot of feedback when I started writing JavaScript-mancy, the first book - I was a completely unknown person. So not a lot of people bought the book or got the book. So the feedback part, although, a good idea in theory - in my case, it didn't happen so much.

But right now, for instance, for my latest books on Vim - I think that when I published JavaScript-mancy, sometimes I lacked the confidence to say, "Here's what I'm doing." Sometimtes you feel like, "I'm hiding." I'm doing it, then hiding, and I am publishing it in my blog. I don't do other promotion, or self-promotion. Everybody struggles with self-doubt, and all those things.

Vack then, I probably was much more - since I didn't do a computer science degree, and I started developing when I was 26, I feel I always have these gaps that I should fill.

I think that perhaps now, I feel more competent as a developer than before. But then, I was much shyer about self-promotion. So I just developed this book on my own in a hidden way.

But now, with the latest books, I'll be be more vocal. Reaching out to the community, asking for feedback, asking for reviewers. I've got people contacting me through Twitter DMs, and yes, creating feedback in the very early stages. So that's nice.

Len: The last question I always like to ask people in these interviews, is - if there was one thing we could build for you, or one thing we could fix for you on Leanpub - and we would do it, what would you ask us to do?

Jamie: Good question. I don't know how you would do it, but I've always envisioned these books, I would love to - there's something that I always [do], the sky is the limit, when I'm visualizing things in my head, they all look like super awesome. And then when it meets reality, you have to settle. Because of timing constraints, or because sometimes it's good, and then people can enjoy it done, perfect.

But I have always envisioned these books, I would love to be able to design beautiful books - one of my goals, with everything that I do, is to delight. People would open the book, and it would be like, "What?" Aou're reading and you're enjoying every paragraph, and every sentence. And it's like, "Oh my God, this is the best thing I've ever read." So right now, I can do that with text. I don't know if I get there, that's my aspiration.

But I would love to be able to have very strong visuals in the design of the book. So we're talking about the layout. A beautiful layout, colors, illustrations. Being able to customize the output, the PDF output for instance. That would be very cool.

I have never done typesetting or anything like that. I know that you can use InDesign for that, or something? It's something that I've always wanted to do with these books, but I've never gotten there yet. That's something I would like to do, but I don't even know how you could implement it in Markdown. I know that you're working with something called Markua, but I don't know if it supports something like that. Like, being able to customize the output.

Len: Thanks very much for that. It's something that we've thought about a lot. As you mentioned, we do have an InDesign export feature, so that when a book is "done done", someone can then export what they've written in Leanpub-Flavored Markdown. or in Markua, using one of our writing modes - and then they can take it, and either do it themselves, or give it to a professional, to do all the super fancy things like kerning, and things like that.

Len: For us, there are things that we try to keep in balance. For example, one of our mantras - slightly tongue-in-cheek - is that, "When you're writing, formatting is a form of procrastination."

We all know what it's like. Actually, I was just watching a Family Guy episode last night, where the dog - the running joke is that the dog is a writer, but he never writes anything. And the joke in the episode I watched last night, was that he spent all day just moving the margins around, but in an empty document. That's just an extreme example of how formatting can be problematic. And also, when you are writing the way Leanpub books are typically written in plain text, it can become - how many different knobs do you want to give people to tweak? And all of a sudden your manual is 1,000 pages. So with things like that, it's tricky as well.

Jamie: I think that the way that it is right, the workflow for writing is very good. So thank you on awesome job.

Len: Oh thank you.

Jamie: I really love it. It's like perfect.

Len: Thank you for that. The other issue is that, in the ebook world, there are these super interactive books and things like that. But generally speaking, if you're writing a book and it's going to end up in ebook format, and particularly in Leanpub, we want it to be in multiple formats. So you can get it in PDF, EPUB, MOBI, and read it online.

For example, in things like Kindle or books in Apple, people can do things like change fonts. They can change the letters, the sizes of the characters and things like that. And all of a sudden, formatting - it's really important in PDF output, I mean, it's really important in everything, right? But at the same time, there is this interesting thing, where the reader can change settings.

Then it actually makes super-precise formatting not necessarily exactly what you're going for in all cases, when you want to reach a really wide audience.

So while we take formatting really, really seriously - and we understand how serious it is, particularly for certain types of projects - it is always a bit of a balancing act. But we appreciate getting nudged.

Jamie: I think that it's more in the case of print. Because I use EPUB and I publish in the Kindle store. So that's MOBI, actually. I have enjoyed a lot, like reading my book - that was like the only way to review the books, read my book on Kindle. That was the first time that I was reading the book, and this was like such an awesome feeling. Because it really felt like a book. It felt like I'm reading a real book here, I wrote it - but, it's a real book. And when I got in print, through Amazon, that was also very awesome.

Len: That's one of the things - I mean, every author, self-published or publisher-published - when you get that copy in your hands and you see your name, it's just, it's magical.

Jamie: Yeah, it's awesome.

Len: Thank you very much for taking the time to do this interview. I really appreciate it.

Jamie: Thank you for having me.

Len: And thank you very much for being a Leanpub author.

Jamie: Thank you very much - I really love your service, keep kicking ass.

Len: Thanks.

So I just realized, I forgot to ask you about paternity leave.

Jamie: Oh yeah, no worries.

Len: Do you want, do you have a few minutes to talk about that?

Jamie: Oh yeah, of course. Okay, yeah, yeah, yeah.

Len: So people listening closely may have heard there was a baby in the background earlier on. Congratulations to you and your wife.

Jamie: Thank you.

Len: Coincidentally, I've interviewed a couple of people since then, but the last podcast that we published was with a woman named Sarah K Peck, whose startup is called Startup Pregnant. We spent a lot of time in that interview talking about taking leave around the time of the birth of a child. I wanted to ask you - so I gathered from Twitter that you've been on leave for eight months?

Jamie: Yes.

Len: Is that a typical amount of time for people in Sweden?

Jamie: Yes. I think that's a very common thing in Sweden. I mean, it's crazy. I come from Spain, the parent - the dad used to get like two weeks, and now they have extended it to four or something like that? I mean this also for me, it's crazy.

But in Sweden, there is 480 days of parental leave, that you share between the mom and the dad. And then, the way that it works is that there's a very strong equality, gender equality. Each one of the members of the couple has to get three months as the minimum.

And then you divide it as you want. But normally people usually divide it equally. So my wife was on maternity leave for a little bit longer. Perhaps, I don't know if it was like 11 months, or something like that? And then I was on parental leave for like 8 months. And there's still days left. I think we still can get like a month more of parental leave. I mean it's crazy.

Len: And what was your biggest surprise? I believe this is your second child?

Jamie: Oh no, this is my first.

Len: Oh it is, okay. And so what was your biggest surprise, becoming a dad and having this time on your hands?

Jamie: Well the biggest surprise - I think that I have a lot of opinions here. So the biggest surprise, I think that in modern society - how do I put this? In modern society, it's very common to live very independently from your family. And in my case, my wife and I are a unit of two people. My family's in Spain, and their family is in the north of Sweden. And as human beings, we're not designed to take care of a child, only two people. We're designed to grow and to take care of children like a tribe.

So the surprise was that anything - any comment, any idea that I had about how tough it was to have a child before having a child, paled in comparison with reality. It's incredibly tough.

It was funny, because, as amazing as an experience it is - as happy as you are - the first two months, I was with my wife, and helping her throughout the pregnancy and the first months - and then I came after work, and I would vent with my colleagues a lot. So it was funny, because, having the child is also my, I love him to death and he's the sweetest thing, but then I would always talk about how tough it was, in very excruciating detail. So that was one of the biggest surprises - how tough it is to take care of a child.

I think that it is a big shock, because my family didn't have a baby around that I could practice with as I grew up. So then you don't know how to take care of a child, or be around a child or anything, and then you have a baby, you go through the pregnancy - and they just give you the child, and then they say, "Here you have a baby, it's yours." And then they leave.

And there you are like with this baby in your arms, and it's like, "Okay, what do I do now?" And then the baby starts crying, and then it goes downhill from there.

I think the best way to put it - I wrote it in article in my blog - was that the baby breaks you down. Physically and mentally, it destroys you. And then, he will build you into someone that can take care of him. So he destroys, you're going to be destroyed, tired, exhausted. You're going to get to the limit, and then you're going to find a new limit, and you're going to find a new limit.

And then it goes from survival mode, and slowly you start rebuilding yourself and gaining confidence as a parent, and having more patience, and being able to sleep. I mean he also develops. But yeah, it's an amazing experience. You grow a lot. You're growing that relationship as well, because you've never been in such an extreme situation with your wife or partner. So you develop a lot like that as well. And then, through that, I discovered how to be extremely appreciative of my own time. I've never been this productive.

Because before, if I would have some time, I would like do like Facebook, Twitter, LinkedIn, blogs - "Okay, I want to do some writing." And then like 45 minutes later, I am trapped in Twitter, still, for the fourth time.

Now, it's like, if I have some time, I just do whatever. I'm so much more productive, because I don't have additional time. You don't have any time. It's crazy.

And then for the past eight months - it's been amazing to be able to have all the time to be with my son and get to know each other, really well.

It's very tough. Because you don't have any time for yourself. You're just taking care of a person that can't do anything, that can't survive without you. Basically, you lose yourself a little bit. So writing - I continue writing the books, I'm doing my own side projects - it's like a lifeline, to not lose yourself. And sometimes you have to choose, "Do I sleep, because I'm so tired and exhausted? Or do I do something for myself, and then I will be tired, but at least I feel like I have -" You have to pay yourself also. So yeah - amazing, but tough.

Len: Oh thanks, thanks very much for sharing that.

Podcast info & credits
  • Published on April 11th, 2019
  • Interview by Len Epp on March 13th, 2019
  • Transcribed by Alys McDonough