Monitor performance issues & errors in your code

#71: Soft Skills: The software developer's life manual Transcript

Recorded on Wednesday, Aug 10, 2016.

00:00 Writing good, clean code and having a deep working knowledge of Python is critical to your success as a Python developer. But if you look at those who have truly excelled in their career, it's often because they bring something in addition to coding skills.

00:00 We all want to be the most successful and satisfied version of ourselves. But that's much easier said than done.

00:00 That's why I'm excited to introduce you to John Sonmez. He's had a brilliantly successful career as a developer and he wrote a book to help all of us do the same. It's called Soft Skills: The software developer's life manual and it's packed full of concrete, practical steps you can take to stand out in the tech industry.

00:00 This is Talk Python To Me, episode 71, recorded August 10th, 2016.

00:00 [music intro]

00:00 Welcome to Talk Python To Me, a weekly podcast on Python- the language, the libraries, the ecosystem and the personalities.

00:00 This is your host, Michael Kennedy, follow me on Twitter where I am at @mkennedy, keep up with the show and listen to past episodes at talkpython.fm and follow the show on Twitter via @talkpython.

00:00 This is episode is brought to you by Hired and SnapCI. Thank them both for supporting the show on Twitter via @hired_hq and @snap_ci.

00:00 Hey everyone, thanks for listening this episode. I have a quick Kicstarter update before we get to the interview with John. Many of you ask about this crazy student award and I said we are going to reveal it and talk about when we get far enough along in the Kickstarter. Well, it's time to reveal the crazy student award. So the entire premise of my Kickstarter course is to help you guys successfully build and launch new online businesses, either as a side business or completely as a full time endeavor. So, here is the crazy goal, if we reach 40 000 dollars for the Kickstarter and we are not that far away, we will fund at least one business that has successfully launched within six month of the course going live. We'll pick a student and we'll give them a $1000 cash to help them promote and launch their business. If we make it a little bit farther to 50 000 we'll do this for 3 students. We hope that you guys who are backing our Kickstarter love this reward, it's not a million dollars but hey, if you can get two extra weeks to stop consulting and just focus on launching your business and get it out there and be successful, we'd love to be part of that. So if you want to check out the Kickstarter, people seem to really like what we are building there, it's at talkpython.fm/launch. Now, let's talk to John about software careers.

02:47 Michael: Hey John, welcome to the show.

02:50 John: Thanks, I'm glad to be here.

02:51 Michael: Yeah I'm really glad to have you here, I'm a big fan of your work, and I've recommended people check out your books and some of your videos when they've asked for career advice. But, after recommending your work a bunch of times I'm like you know why don't I just have John on the show and we can really dive into it. My goal, my hope is that a lot of the listeners out there, we can help them boost their career, get that job they're looking for, something like that.

03:17 John: Yeah, that sounds like a plan, let's do it.

03:20 Michael: Awesome. All right, so before we get into what you have in your book and some of the other stuff you have going on to achieve that goal, let's just start at the beginning what's your story, how did you get into programming?

03:29 John: Oh Gosh, how did I get into programming- probably way back when I was a kid, I think the first thing that I remember that really got me inspired to program was going into like a survey course in maybe like junior high school or elementary school, where we had some Apple 2e this is the first time I saw one of those computers and we're learning the basics of programming in Basic. I remember having this floppy disk with me and I was just so fascinated by this idea that you could actually program a computer, I mean I didn't even really know much about computers at that point, but it just seemed so intriguing to me. I remember having this disk where I had all these little silly programs that I wrote and I sort of have these aspirations of building games, of building something with it. I think I didn't really have an opportunity, not too many people have an apple 2e, so I didn't really have an opportunity to do much with that, until a few years later when home pcs were becoming more of a thing. And I remember getting a home pc and the first thing kind of that I did when my dad brought home the home pc was I found qbasic on there and I started playing around with that.

04:45 Michael: Wow, that's awesome. You started out with this exploratory experience with basic and qbasic; how did you go from that into I want to make this my career, this is super interesting and actually getting into programming for real?

05:01 John: Yes, so I think from there, once I had gotten a home computer I just hooked. I wasn't programming at that point but I loved computer games, I've been playing Atari Nintendo all that stuff, and here was this computer even more powerful I remember playing you know Sierra on-line, Sierra games and all that and I liked the idea of creating my own game and that's kind of something that I think really drove me, I remember spending a lot of time online playing multi-user dungeons kind of the precursor to the Everquest it was wow whereas it was just a text based game.

05:43 Michael: Those were great which ones did you play do you recall?

05:45 John: There was, I remember playing just through telnet right I had this dial-up BBS right, and it actually had internet access so you dial up to the BBS and then you can actually get telnet access from the BBS system and then I would find MUD listings and I telnet into muds and all the different variations. I didn't like lp- that much.

06:12 Michael: That's cool, I remember my friends and I played this one called Shadows Edge and I think it was pretty popular. Those were really interesting days, those were the days when William Gibson was talking about cyberspace and the world seemed like even though it's so bizarre that was so basic and text based, and yet it seemed almost like there was more possible.

06:30 John: Exactly. Yeah. I just remember sitting at the terminal and thinking imagine there's tell net and then there's go for protocol, and I was like just taking like gosh it's so much, it felt like this cyberspace to me, it really did it felt like there's this huge universe out there that I can access via text6:53 and it was awesome. And I remember even playing a MUD there was BBS system called major BBS they had this major Mud that was part of the BBS system and actually you know, it's kind of funny about that is, that was perhaps the most complex program I had written at that time, was I remember being in high school and I couldn't play the game all day but I found this program called terminate it was a to connect to the BBS, I forgot what they call it, a client essentially, and it was programmable so I wrote a script to play the game while I was at school, so basically I'd run this script and while I was at school it would connect to the BBS, it would go and log into the game it would run around and kill things, and so I would be getting experienced getting levels and then every like hour or two the BBS would disconnect you, so we would handle that and redial in and keep trying to dial until it got in, and so that was- those days were just, it was like being a pioneer you know, it was such a magical time I think. And that's what really got me interested in technology and development. I wanted to be part of, I wanted to be creating that world that intrigued me so much.

08:13 Michael: Yeah that's really cool, you know you're sort of destined to be a programmer when you start solving your problems in code even if your problems are I'm really tired of these sort of mundane tasks got to do in a mud, the level of, right.

08:25 John: Exactly, yeah.

08:25 Michael: Nice. So maybe let's talk a little bit about your career in terms of your experiences and so on, so that people get a sense of where you're coming from I guess. So you started out as like a lot of us do is a full-time employee, is that right?

08:41 John: That's correct, yeah. I started out with a lot of different jobs, I think I went to school to Boise state university for a year, I almost dropped out of programming because computer science, I remember my first Java class and it was like we're hand-rolling iterators and doing sorting algorithms and I was like this is not what I signed up for, this is not fun, if this is my life, if this is what programming is, I don't want to do it. I want to make games.

09:13 Michael: There is no gaming, there's no fun in implementing a database engine without conditionals, or some bizarre homework exercise you get, right.

09:26 John: Exactly, so I was kind of distraught, and it was hard, it was boring and I remember during my summer vacation I got this summer job working as a tester at HP and strangely enough, the guy that interviewed me, he was like one of the interviews questions was have you played Everquest? I was like not really, he was like would you be interested in playing Everquest? I was like, oh yeah definitely, it's like a graphical mud yeah, hell yeah. And so, I think that's why I got hired.

09:57 Michael: That's awesome. That's a really cool benefit of the job, yeah very nice.

10:02 John: Yeah, so these guys they were all into Everquest. Essentially, that was my first like real job and I ended up, I was a tester, but I ended up like figuring out ways I could do development, I learned postscript, the printer language, pcl and I started modifying the scripts they are using for running the test, and I ended up not going back to school because I was making enough money, I got a couple of promotions, where I was like, well you know when I get out school I was hoping to make like, I don't know at that time, I think I was hoping to make like maybe 40 or 50 thousand dollars a year, and that's what I was making at my job, my summer job, so I just stayed there. And then from there I ended up moving into a full-time development position at HP, and I moved around a lot, I did a lot of consulting and contracting, I worked for Xerox, small start-up companies that went under as I moved around I pretty much moved around the country basically as either a full-time employee directly for a company or a contractor, which was essentially more of the- not the freelancer contractor route, but staff augmentation, where you're paid an hourly rate and you're working for a single company. I pretty much did that for a pretty good bulk of my career.

11:27 Michael: Right, and I think those are great jobs, and they're very interesting, and what we're going to talk about totally applies to that as well; but since then you've gone to do some more independent things, right? Like, one thing that really blew my mind is you said that you had created a number of online courses, and that number, and the time frame really blew my mind, like as me creating my online courses for my training company, I know how much work it is, can you talk a bit about your online course venture you went on?

11:59 John: Sure, yeah. So, at some point, to kind of cut the fast-forward the story, after being an employee for some time I started get some entrepreneurial type of ideas in my head, I started to run into some people that were not doing the regular nine-to-five thing and so, different things changed in my life, I finally get to this point where I call it like that, I think the transition was becoming a finisher. Instead of just starting things and not finishing them I had a real good dedication that I started to develop, I would finish what start. And that made a huge difference in my life. I got some opportunities, I started the simple programmer blog which was just my personal blog at the time, and opportunities kept coming my way from it and one of those opportunities was from this company called Pluralsight, and they had mostly .Net training but I was doing, I had just built an android app and an iOS app as I was playing around with that, and they said, hey do you want to teach a course on Android, do you think you could teach a course on Android?

13:02 And I thought, well you know, I've never taught an online course, I don't even know how to record a course, but sure I'll submit a demo. And so I submitted a demo and they said this is great, yeah, let's do it we'll commission you for a course. And so, I did that course, and that course went really well, and I got my first royalty check, and I think at that point it was maybe, they paid me like a few thousand dollars to do the course or something like that and I got the first royalty check and I think it was maybe like 3,000 or 4,000 dollars, maybe 5,000 dollars and I thought, wow I'm getting paid for work that I did before, like I'll keep getting paid for this work, this is awesome.

13:42 There's something here right, so I said man, I need to take advantage of this opportunity as much as I can, so I said what are the courses you need? And they said well, do you know anything about iOS? And I said, a little bit but in two weeks I'll know a whole lot more! So I studied hard, I started really learning as much as I could crunching it everything that I could learn about it, and I put out an iOS course. And then I asked what other courses do you need? And, I ended up building quite a few courses, and then as I started building these courses I started building a system, I started getting better at it, and faster at it.

14:19 At the same time the royalty checks were increasing and I started to realize that there's a really huge opportunity here, and there's a lot of authors already but they're not taking advantage of this opportunity, they're taking like three months to put out of course and stuff, I've got to figure out how to do this fast, how to do this efficient and have a high-quality course. And so, over a three-year period I put out 55 full-length courses that are around on average three to five hours in length. And I basically saw this is that as my ticket out, I saw this as a way to- as I started doing the numbers I was like ok, if I can do this if I can hold down my full-time job and I remember having this conversation with my wife, because she was not sure about how much time I was going to spend but I told her like, ok look here's my plan I'm going to do my full-time job, and every night I'm going to work like 4-5 hours, every night, you're not going to see much of me, every weekend I'm going to be working, but I'm going to do this for like a year or two years, and we'll be set for life, right, that was you know, I had done the math, and this worked out.

15:34 And so, my life for two years was basically just, I mean I don't want to say it was hell, but there was no recreation in there are no vacation. It was the grind right, but I worked, and I worked hard, I was putting out blog posts and still were running my business at the same time, and I was working probably 80, 90 hour weeks for probably two years. And I ended up putting out maybe something like I think it was 20 courses or so, over that time doing it part-time, and then after that it happened my checks got to the point where I could quit my full-time job. So I quit my job, I told my boss like I love working here, but it just doesn't make sense, I'm able to make enough money for royalty check that's more than the salary you're paying me, and he said well, you should have quit earlier.

16:25 And so, I went for one year I did full time I said ok, what I'm going to do this year is I'm just going to full-time create Pluralsight courses, and aside from doing blog posts and YouTube videos and stuff that's my focus, so I went independent and I created in that year, my goal was to create 30 Pluralsight courses, I created 36 Pluralsight courses, I was actually finished by November and then I actually stopped doing them.

16:57 Michael: Did you take December off?

17:00 John: I did. Yeah I take that off, what I intend to do now is like every year I tend to work like nine months of the year and then take 2-3 months off, sort of off, you know, however off you can be owning a business.

17:15 Michael: Yeah absolutely, you can't really entirely walk away and just put it down like you can a regular job.

17:15 [music]

17:15 This portion of Talk Python To Me is brought to you by Hired. Hired is the platform for top Python developer jobs. Create your profile and instantly get access to 3500 companies who will work to compete with you.

17:15 Take it from one of Hired users who recently got a job and said, "I had my first offer on Thursday, after going live on Monday and I ended up getting eight offers in total. I've worked with recruiters int he past but they've always been pretty hit and miss, I've tried LinkedIn but I found Hired to be the best. I really like knowing the salary upfront, privacy was also a huge seller for me."

17:15 Sounds awesome, doesn't it? Wait until you hear about the signing bonus- everyone who accepts a job from Hired gets a $1000 signing bonus, and as Talk Python listeners it gets way sweeter. Use the link hired.com/talkpythontome and hired will double the signing bonus to $2000. Opportunity is knocking, visit hired.com/talkpythontome and answer the door.

17:15 [music]

18:24 Michael: The one thing that I think is worth pointing out in your story, and it mirrors my story as well, is you didn't decide, hey I've got this great idea and I've got two months savings in the bank, I'm going to quit my job and go build the idea. You sort of grew it on the side until it was clearly not a risky move, I did the same thing with my podcast and on my online courses. I could more or less comfortably live on the various revenue sources and when I told my wife, look I'm going to quit my job and go focus on this thing that I think it is way more valuable to the community, way more valuable to us, it wasn't like, oh you better get this right, because it was already working.

19:08 John: Exactly, yeah, it's really interesting, I've got two kind of thoughts on that, like two things that are kind of almost contradictory information. As a developer, having a mortgage having a family or whatever, and having a job, having a career already, I think that's absolutely the way to go, and that's what I recommend to everyone is like, you have an idea, you quit your job, you've got a couple of months savings, you're throwing it all on the line, on one shot, you don't even know marketing, and that's going to be the most important thing, building the audience and market, you don't even know that part, right; and you've got a gun to your head. This is horrible situation, you've got to figure your first business is going to fail, you've got to figure you're going to have a big learning curve, you know, you've got to have some runway. And plus, I think most people don't realize what it's actually like to work really hard.

20:01 And, and I don't say that to belittle anyone, but you know, when I started doing a full-time job and working the part-time doing the Pluralsight, I realized that man I've been sandbagging it for a while, like there's a huge difference, and even the kind of stuff that I do now it's like there's a huge, you've got to really check yourself to make sure that you can do that because I know plenty of people that have quit their job and like, ok, now I have eight hours a day to work on my business, and they go to Starbucks and they work like an hour, and it's just because you've got to get that discipline. So I think what you said is absolutely critical, most people should be, like if you can't build a business on the side, you can't build a business full-time. I firmly believe that.

20:50 Because if you don't have what it takes to work a full-time job and to build a business at the same time, you don't have what it takes to build a business, period. It requires that much, and it's not for everyone. But if you're going to do it, you've got to be able to do that. And then, the other thing that I would say, though kind of the contradictory side of it is, if I were young if I were like 18, 19 just starting out, I would never- I would go and move to Thailand, Chiang Mai or something like that, where it's like 500 dollars a month cost-of-living or I'd find like a roommate situation where- I would get my living expenses to be under 1,000 dollars a month.

21:32 There's ways to live under 1,000 dollars a month, under 500 dollars a month if I could; and I would just focus everything on building an online business. Because as soon as you hit the point where, if your expenses are 1,000 dollars a month and you build a business that generates a 1,000 dollars a month which is really not that hard, it can be done certainly in a year by anyone that's willing to really go at it, you're free, for life. Now, you're not going to make as much money in the short term, but in the long term, that's what I would recommend. But I think it's two different paths, you know, if you are already down the path, at 18, 19 you've got nothing to lose going that route, in your late twenties or thirties you got a family, you got a mortgage, you got people depend on you- you got a lot to lose, so you can't take that kind of a- you can't be a vagabond and take that kind of risk.

22:26 Michael: Yeah I agree, I really wish I had thought about some of these things when I was younger, but still, it's all good. So, one thing that I'd like to maybe take it back to is like, as we maybe could move a little bit into your book, is we're talking about this move into entrepreneurship and how amazing I think it is, and you as well, but what we're talking about I think really applies across the board, especially your book applies across the board like even if you just work at a company with 20,000 employees in software development, right. So, one of the quotes I like from your book is you said, you quote someone who says "the biggest mistake that you can make is to believe that you're working for someone else. Job security is gone, the driving force of a career must come from the individual. Jobs are owned by the company, but you on your career." And I think that really sets the stage well for shifting the focus of what you need to do long-term.

23:21 John: Yeah, I totally agree. I think that the thing is that you have to have the mindset that you are a business, right, that you are the business not that you're an employee, whether you're an employee or not. I always tell developers that if you're an employee of a company that just means that you own a business that has one customer right, and that's the mindset, and the reason why that mindset is so important is because it changes the way that you think about everything, right. There's a whole different mindset between I go to work and I clock in and then I get my paycheck and that's owed to me. It's almost an entitled attitude, it's not like you expect to get something for nothing, but you expect that if you just show up and you are there doing your work that you get a paycheck, and that's not really how the world works, it's an abstraction above the real economics of the world; the real way that the world works is that you create some kind of product or service or some value for people and people pay you for that.

24:28 And so underlying every single business is this model we just create this abstraction over it when we are an employee and expect that hours = pay. As an entrepreneur you know that you can put in a lot of hours and that might not be equal pay, but underneath whatever environment that you're working in, whatever company it is, they have the reality of the situation, it doesn't matter if you're in a large company or small company, that company creates some kind of value, it creates some kind of product some kind of service, you're part of that creation and that's where the money comes from. And so you know, when you're divorced from that and you don't realize that you don't have that mindset, you're disconnecting yourself from a lot of opportunity and ways that you can grow your career.

25:13 And so, even if you don't want to be an entrepreneur, just as an employee just having this mindset of realizing that you are a business, and this is how the economic model works, it is how the system works, it gives you more opportunities to explore, it gives you the thinking to say, well if I market myself, if I build a blog, if I create, if I become more valuable as a developer I can make more money, there's more opportunities out there than just work- get paid for those hours, there's a whole range of possibility, and you start thinking about, well ok, this company that I work for, well let's see, you know if I think of them as my client how can I make my client better? How can I make them more money? Would they be willing to give me part of the money that I'm able to make them? Maybe. You've got more opportunities, so I think that's critical to shift that mindset.

26:02 Michael: It's definitely a big mind shift and I think, like you say, it really is important to go back to this value you create sort of trading value for money. When you are a business, there's a very sort of continuous curve- today I sold X number of widgets or n number of courses, and then the next day- so you have like a really fine curve that you can actually see, sales going, up sales going down, expenses going up, expenses going down. But when you're an employee, I feel like the same curve applies, but it's discreet. Like the way you feel it is discrete, you get the same amount of money and either you get a raise, you get a promotion, or you don't, or you get demoted, or let go, or you don't, but there's only like three or four steps, it's not like a continuous sort of a curve on a real number scale. But the curve is still there, and you've got to really be thinking out as if the curve was continuous, even though it's not. So, your book, let's talk a little bit about your book. So your book is called Soft Skills, what's the full title, I'm sorry I don't have it pulled up right now.

27:07 John: Soft Skills, The Software Developers' Life Manual.

27:11 Michael: Yes, and I think it's a super interesting take on helping developers with their career, because there's ton of career books about like general career, and there's a ton of software developer books like here's how you call a function with named parameters or something weird like that, but the sort of I'm going to take and focus on career specifically for software developer and technical folks, I think that's a really valuable book and niche that you've filled there. So, the first thing you start with is this business mindset that we already talked about. The next thing is focusing on people skills and you know, like the idea is, a lot of us feel like we should be able to just write code, hey my code is cleaner than anyone else's or whatever, so I should be advancing in my career, but that's not necessarily true right? So what are you talking about with people skills?

28:05 John: Right, I think that it turns out that the most valuable thing that helped me in my career is I work with developers and hear their stories and successes, is not that technical skills, it turns out to be it's all those the soft skills, the other skills right, which I talk about in the book. But people skills in general tends to be one of the biggest areas of leverage where a lot of developers lack these skills, and they think they don't need those skills, they think that being technically competent is enough. And maybe, I mean I say maybe but I know that it's not true I say maybe back in the day that was true, but it's never been true right, because if you look at in the industrial age, the industrial barons and stuff, and you read some of their writings and memoirs and stuff, you find again that people skills is more important than technical skills.

28:58 But specifically in our field, especially today, we have hit this point where software development programming itself is going through a period which I think is almost becoming commoditized right, we have plenty of places we can go online to find programmers that will program, and they're really good at it, for very low hourly wages, so why would a company, why would a person hire a programmer today and pay them the kind of salaries that we would like to get. And part of that is because, the majority of that is because of their communication, because of their people skills, because they don't just program, they can get along with the team, they can express their ideas and opinions, they know how to interact, they know how to communicate, they know how to make the team better.

29:54 And so, I think that's a critical, critical skill, and if you think about it, just you know from an employee perspective, if you want to get ahead in your career, if you want to get ahead in your job a lot of people say, oh well, you know, sure I could be a brown-noser or kiss up to the boss, and that's not what people skills are. It's about being able to make your team more effective, it's being able to understand humans and interact with them in such a way that you're able to not just code, but communicate the ideas, make the team better, get everyone on board, line people in the same direction. And so, those things are all really important, because, if you think about it, as a software developer, at least in most places I've worked, most of your time is not spent writing code.

30:42 A lot of your time is writing emails, and meetings, communicating your ideas to co-workers, having discussions these are the things that you actually spend most of your time doing. And so, if you're not good at those things, then most of your job, the most leverage, effective part of your job you're lacking in. So I think people skills are definitely a really important component. And it just helps you in your life in general, I mean, when you're talking to someone, when you're trying to get a raise, if you're someone that can be put in front of a customer, if you know what motivates a person and how to get them motivated, you're going to have a lot more success in getting what you want.

31:24 Michael: Yeah, I think that's definitely true. I feel like being a really good programmer these days, are kind of table stakes, but it's not enough to really win the game, you've got to do more, right? So one of the things you talked about when you were a full-time employee, this is not an entrepreneurial thing, is keeping your manager really well informed. One of the things I sucked at when I was a full-time employee was I would work really hard, I would do amazing stuff, I'd ship projects early, but I didn't communicate very well what I had done, what I was going to do, and so on. So you need to have a good story about what you did.

31:58 John: I forgot exactly where I came up with the idea, but I basically started creating what I call weekly reports and what I would do is I think maybe I had this idea because I was put into a role of managing a team and I realized that the main job is as managing this team that I just need to know what everyone was doing and working on, and I needed this information so I could relate that information. I remember getting this job and I thought, ok here's what I'm going to do- every day I'm just going to start writing down, I'm going to make a few bullet points of what I did that day, and so what I ended up doing was, the first week it was this contract job I sent a weekly report and I had- Monday I did this, I accomplished this and I put it in terms of what I accomplished really, right, and I talked about just a few bullet points for every day, so that they would know exactly what I did every single day, and what I accomplished, and I sent that to my manager and I cc'd his manager and I explained in the first email, I said, look the reason why I'm doing this is because just in case you're out, and just as a FYI so that you can see what's going on.

33:07 And I phrased it really well, in my mind I was thinking ok, I want to make sure that I can get as much visibility as possible, and so yeah, that's what I ended up doing, and I started doing that every week, they could expect from me to get a weekly report showing exactly what I did that week. And it turned out to be a really good move for my career because all the work like you said, that that I was doing now I was getting credit, now was visible. One time I remember there was a highly politically charged environment at one of the corporations I was working at, and someone had got into he was trying to maneuver it politically and get me into trouble, and they accused me of something I have not working on and we got into a meeting and I had notes, I had weekly reports, not just my own personal notes, but weekly reports that had been sent out every single week that said exactly what I did on a particular day, that worked out really well for me and not so much for the other person who had no data at all.

34:15 So, I think it's a really good way, that's a good- if you think about it again, this comes back to people skills and thinking like a business is this idea that what does your manager need, I always tell developers your job as a developer or as an employee in any company, is to make your manager look as good as possible, that's really like, if you want to advance in your career, don't try and necessarily make yourself look as good as possible, but make your manager, and by sending weekly reports you're helping them to do their job more efficiently, and you're really giving them the credit of, ok because they're in charge of you and so the better that you do it reflects better on them, and so by couching it that way and showing how giving them the information that they need to be able to do their job better, it's going to make it better for you.

35:05 Michael: Yeah I think that's a really interesting piece of practical advice that would be totally missing from a lot of career books, so I think that's great.

35:05 [music]

35:05 Continuous delivery isn't just a buzzword, it's a shift in productivity that will help your whole team become more efficient. The Snap Ci's continuous delivery tool you can test, debug and deploy your code quickly and reliably. Get your product in the hands of your users, faster and deploy from just about anywhere at any time. And did you know that Thoughtworks literally wrote the book on continuous integration and continuous delivery? Connect Snap to your GitHub repo and they will build and run your first pipeline automagically.

35:05 Thank Snap CI for sponsoring this show by trying them for free at snap.ci/talkpython.

35:05 [music]

36:13 Michael: One of the things that I've tried to help people with on my show, I did a show 39 and 41 about people getting their first job. Because I feel like getting into software development, there's a pretty big step to actually get your first job and break-in but once you're in, I feel like if you're continually learning you're probably going to have not a huge problem finding a job, I know there's some exceptions there, but in general, I think the hardest step you take is getting into the industry. And so you had some really interesting advice around hacking the interview?

36:47 John: Yeah, so I think that if you just take your resume and apply for a job, that's the worst way to get a job, because you're competing with everyone else, because you're just a resume, just some data point to a company. But what I find is, can you can figure out a way to go in to the back door, and the best way to get a job, the way that most jobs get filled in, majority of jobs you don't even see that are even posted, is to referrals to personal referrals right, we hire someone because again, you know you said that it's really hard for someone to get started in the industry, and I think primarily the reason why, which I haven't heard too many will say, but honestly like hiring developers I think that the main reason is because you're afraid that someone can't actually code, and this seems kind of funny, but I remember when the whole fizz buzz thing was really big, and it was all over the place, like everyone was saying I can't believe people can be fizz buzz and then I interviewed like several developers, and they even knew about the fizz buzz thing and I asked them to do fizz buzz and they thought that was funny, but they couldn't do it.

37:58 And I thought to myself holy crap, this is just crazy, is this really like, I mean yeah, I understand that it's under pressure and what not, but if you know this is going on, and you haven't prepared, wow gosh. And so that's the biggest risk, is when you hire a developer, can they actually code, maybe they can fix a few bugs, but can they actually write real code? Because that can have a huge negative impact, and you won't even necessarily know it. So, all that is to say that when someone hires someone, the best way to hire someone is to know, not to get a resume and then and then see what kind of BS they're going to tell you in an interview, but to say if you already know someone, you know someone who knows someone who's an excellent coder, right, this is a great way, this is why personal networks and referrals work so well. So can you figure out some way, instead of just submitting your resume blind, to get a personal referral?

39:02 And one of the examples that I used in the book is I wanted to get this remote job right, I wanted to work from home, there was this particular company and I felt like they're a good company and I just wanted to get a good job working from home. And it was so competitive to get into that company, because there was so many people who wanted that job obviously. So what I did was I started finding some of the developers that work for that company and I start reading their blogs, and I started putting meaningful comments on their blogs, not just being lame and just trying to see what I could get, but actually contributing to their blogs and getting noticed, and after several months worth the time, pretty much all the developers in that team knew who I was, because I was this guy that was commenting on their blogs, we were having discussions, and what not, and guess what happened the next time that they opened up a job opening- well not only did I get a personal referral, but several of the developers in the team said, hey John you should apply for this job. And of course, you know when I did they referred me, they handed in my resume, and then multiple developers on that team said oh I know who that guy is, he's awesome.

40:09 And so obviously I got the job, and that's the better way than just submitting your resume, you hack the interview process by having the interviewer know who you are before you go into the interview. And that can be done in multiple ways, I always encourage developers to market themselves, to build a blog, something like that, it's great when you go into an interview and you shake the interviewer's hand and they say, oh you know I think I read a blog post that you wrote, I know who you are. And then, instead of having a grilling interview you have an hour-long conversation because you're already in, right. So people primarily hire people that they like, they figure out it's weird how we all want to be objective, and say that it's a meritocracy and we hire based on technical skill, but we have this way, you know psychologically in our mind of justifying of finding someone who we don't like in finding problems why they're weak technically, and so when we do like we're finding reasons why they're going to succeed. So you've got to remember that psychology, and you really have to build a rapport with an interviewer before the interview if you want to go around the background, not go through the initial process that everyone goes through, which is the most difficult way to get hired for a job.

41:36 Michael: Yeah absolutely. If you can get a recommendation it's so much better. The companies I work for, the point where it becomes a publicly available job where resumes are requested it would never even make it that far if somebody on the team knew somebody they could recommend.

41:53 John: Exactly.

41:53 Michael: Like that's like I guess we're going to have to actually open this up as a job rather than just get a recommendation. So, very important and I think this whole marketing yourself thing is more important than many people realize, even for regular sort of full-time employment situations, but let's come back to that in just a minute. So one of the things that you discuss and I think it's a really interesting question people want to figure out for themselves, is should you try to work at a small company, where you'll have a broader range of exposure to technology, broader responsibilities and so on, or at a large company where it might be more focused, but you have more people you can work with and depend on, and so on. What do you think about like a small company versus large company?

42:39 John: I think there's pros and cons of both; I've worked for both and in my career I tend to prefer small company especially if you're getting started out because you get more involved in the business and the economics of it and your hands into more things, that's a huge advantage of small company. And plus you're more visible right, you can't hide in the weeds, what you do both positive and negative is going to have a direct impact on the bottom line and so you have this opportunity to actually move the needle and to make a difference, and to get exposed to a large variety of things. In a big company you might be able to work on cooler projects right, you might be able to work on things that only a big company could do, and you might have more training opportunities and things like that, but there's nothing like getting the experience, getting that kind of experience that a small company provides.

43:35 If I were to say what is ideal as an employee, I would probably say that it's to spend a lot of time at various small companies, you're going to get the largest volume of experience by doing that, but there's some people that and it's changing right, there's some people that have worked at Microsoft their entire life, or HP, they were you know 30-year the intern at HP and they just worked HP for 30 years and development and they made good money and they had good careers, but gosh, I mean can you imagine what would happen if you got laid off after working for 30 years at the same job and you never had any other job experience? That would be a traumatic life event, that would be like having your spouse killed, or something like that. I mean that that level of trauma I can imagine. So I would strongly encourage people to at least, at least if you're if you're starting out to work at multiple companies and then if they're small companies I think you can gain that experience faster and then if you decide you want to go the corporate route and climb the corporate ladder then maybe you do that later on in your career, and then there's time for that, but I feel like you get a little bit more benefit out of the smaller companies then you do out of a large.

44:55 Michael: Yeah, I tend to agree with you I think one of the caveats of being really successful at a small company is you have to be willing to say things like I have no idea how to do that, but give me two days and I'll figure it out. Because, you may be the guy or girl who they come to and say, hey we need to set up a new server and we have got to do SSL and e-commerce and nobody here has ever done that; but we were nominated you to do the e-commerce system, like I've never done it either right, but it's both a huge opportunity that you're given the time, energy and opportunity to do that, but if you don't want to be the person that gets repeatedly thrown into the deep end of some other strange technology, then maybe a larger company would be better for you, but if you can embrace it I feel like you'll really flourish from being in that environment.

45:45 John: Yeah, yeah definitely I totally agree.

45:48 Michael: Yeah. Another thing that you talk about and maybe this is a good segue towards marketing, is specialization and niches.

45:56 John: Yeah, this is one of those areas that I end up doing the most discussion and talking on, because it's a hard pill for many developers to swallow, because a lot of times were told to be almost generalist, jack-of-all-trades that being the super developer that can do anything is highly valuable, to have a wide variety of skills, and I agree that you should have a pretty broad base, but I feel like marketing yourself, like if you don't have a specialization if you don't have a focus, if you don't have a very clear message, it's going to be really difficult. One of the examples I like to use is if you were convicted of a crime, say murder, would you go to hire a lawyer who dabbles in family law and does some tax stuff and maybe does some criminal law, here and there, the generalist right, you you would not trust them with the rest of your life.

46:56 Michael: It's crazy.

46:56 John: Yeah, it's crazy, right? So you would say I want the best criminal defense attorney that specializes in murder cases, right, you want that specialist right? Even if the generalist could do just as a good job, the generalist could say well I know all kinds of law, you are like, no no just give me the criminal defense lawyer please. You want that specialist guy, and the criminal defense lawyer, he might have experience with tax law and divorce law and all that stuff, but he's not going to advertise it that way, and that's the thing, it's like when you are, again it's shifting the mindset right, as an employee sometimes we have this mindset of oh I need to know all this stuff, but as an employer, someone hiring you, it's the same thing, they're like, well you know I've got this application that I need to get built, and it costs me money to build this thing I want the person that can do it right, I'm building this-whatever it is, framework, I'm using this, I'm building this new angular app I want and expert in angular right?

48:04 So, I think that it is critical and when you think about it, if you want to build the highest rate, if you want to get the best job, it's going to go to a specialist, being a specialist is important. So, it's important to pick some area that you are going to become the expert in, and there's so many different reasons why this is true, one other major thing is that if you can be the best in the world at a particular thing, and it can be a really small thing there's a huge advantage for being number one, right I mean you're going to get the invites to speak at the conferences, you can write the book on the subject, you can have the coaching or consulting business or you can have the blog where whenever anyone types in this particular keyword- it comes to you.

48:50 So you can build a reputation much faster, you always want to be the big fish in a small pond especially when you're starting out rather than being the small fish in a big pond because, it's going to take you so long to get momentum if you just wanted to be. I think a lot of younger developers that I talked to they say how can I become a famous software developer? And I'm like, well it's not by being a famous software developers by being this person who specifically, they're the best at this particular framework, you build your reputation that way, that's a lot easier to make ground, to become an expert in a particular market, a particular technology than it is to just be a generalist, a technologist that would be probably the hardest way to build a name for yourself. Instead pick that small, small specialization were you don't have competition, because you can easily become number one and that's going to be not only it's going to help your career, but it is going to give you so many options that you didn't have before.

49:51 Michael: Yeah, I think that's really interesting and almost counterintuitive in some ways, by focusing down and at least from the way you present yourself, not necessarily what you know, but the way you present yourself to the world by saying I'm going to focus on this thing, actually more opportunities open up, rather than say I could do anything. Once you kind of become the person who can do anything, you could be thrown in with everybody and you can just get lost in the sea,

50:17 John: Exactly. And people don't really believe you can do anything, right. As developers, we know that you can't know everything, but you can be really good but people will never really believe you're as good as you are claiming. But when you claim to be an expert in a particular thing, they're more likely to buy that.

50:35 Michael: Yeah, especially if you have evidence like a blog, a recorded public speaking on like some conference they put the videos like PyCon or in NDC Oslo or something like that, they put the videos online and you can say here is the video of me presenting for an hour on this; here is my blog with 20 articles on this, just go type this word into Google and you will see my name and my work come out next to it. And then, that's almost like- you talked about getting the personal recommendation through the back channel, this is like the personal recommendation to people you don't know.

51:12 John: Exactly, and the first thing that someone's going to do when you apply for job anyway is they are going to Google your name, and when it comes up and there's like a YouTube video of you speaking at a conference, and your blog comes up, and all this stuff you just got the job. Now they're interviewing you as a formality to find out if you're crazy or not, right, but you know that's so much better, they might spend an hour reading your blog or watching your video, that's more time than you would have in a face-to-face interview, and you've got the proof, the social proof you've got better than anything that you could possibly do in an interviewer or put on your resume, so that's is why it's so critical.

51:53 Michael: Yeah, one of the things that a lot of the people on my 'how to get your first job' segment that I did previously last year, I had one half where it was new people and their experience of getting their first job, the other half was people who do the hiring, at like Netflix and PayPal and so on, and they all said, look we're going to go to your github repository and look at your check-in and your repos, and also other things right, like searching for you looking at your blog, looking at your presentations. And you can't fake that stuff, you can't decide I want to get that job, so I'm going to go put stuff on my github that looks relevant like that has a history over years, and you have to be building towards that.

52:34 John: Exactly, yeah.

52:36 Michael: Yeah, so we're getting a little towards the end of our time to talk , what advice can you give people about marketing yourself and starting down this path, where if somebody Googles some aspect of some framework or whatever, like you become the person for that. What handful of things would you say to developers even as full-time employees that they should be doing to sort of boost their brand if you will?

52:58 John: Ok, so I would say first of all, the easiest thing that I think most developers can do and it's very accessible especially in the development world is to create a blog. This is pretty simple, this is something I've got a free course on it, if you just go to simpleprogrammer.com you'll see a pop-up and you can sign up but it's an email course, and it gives you the step-by-step directions on how to do this. Every developer should have a blog that they keep and they update regularly, that's the first thing and it’s for a couple of reasons one of the big ones is because, when they Google your name and then your blog comes up, and it's updated regularly, and it has good content on there, that's a really good way to if it's in writing it seems more relevant to.

53:42 So, if you have a blog and it's got your opinions on there, and you've got good information on there, that's going to be better than any interview. But you know, if you really want to boost up your brand, what you should really aim to do is, again we did we talked about the specialization, but you should pick out your niche, what is it going to be and you should try to be everywhere, whenever anyone searches on that topic, so whatever niche that you want to specialize in, if you can show up on as many mediums as possible, that's going to create a really strong brand. For example, if you found my book or you found my blog and then later on you hear me on a podcast or you find my podcast, you find a YouTube video, you're like oh I just listened to this guy, suddenly it connects and someone remembers your name, and they are like oh I heard this person before. If someone hears you from two sources, two different mediums, you're famous instantly.

54:39 Because that's what we were associated in our head, right, if you think about it yourself right, and you think about the people that you know that are 'famous' to you it's because you heard them on two or three different sources, and that's critical. So that's what really builds a brand and I've discovered is that if you can get out there in multiple mediums and when people who have multiple exposures to you, then it's really going to connect and especially if someone can talk to someone else and they say, oh this guy I've read his blog, and they're like oh I know that guy- bam, you're in. So you want to try to build those types of things, and the best way to do is to pick a really good niche, a good specialization.

55:21 And then, I would say that you know, the third thing I would say is the way that I view marketing, and branding yourself, is a positive light, it's not sending out spam emails with the advertising viagra pills right, unsolicited, it's creating value for people. If you go out there, and you create a bunch of free value for people, you will get a return. I always say that I giveaway 90% of what I do for free and I charge for 10% of it and that's because that's the best marketing that you could possibly do, is to give people free value. Because when you do that, then they share it, they're like oh, this guy's awesome, he's smart, right they want more from you and they'll eventually, if you're selling something, they'll buy something from you, or they'll hire you, they're going to want to do business with you, because you've built trust, because they know they've already gotten something valuable from you.

56:16 So I would say go out there and try to create as much value how can you contribute to the world, what thing can you create, what information can you put out there in a blog and YouTube video, podcast whatever it is, that is going to create value for people, and don't worry about what you're going to get back right? I mean, I'm not saying do everything for free and be a charity case what I'm saying is that you create most of what you do for free, you focus on creating value and by doing that, you will build up an audience, you will build up a reputation and when you have that, then you can sell something, then you can get the job, then you can cash in the check, but you've got to put a lot of deposits in the bank account before you can make a withdrawal.

56:57 Michael: Yeah, absolutely and that could be like videos you put on YouTube, tutorial showing people how to be really successful with whatever area you're trying to focus on can also be open source, right, like the Python community really values open source contributions so if you've had a very popular open source project, that's a huge foot in the door as well .

57:19 John: Yeah, I definitely think that's true. That's one area that I hadn't focused on personally, I don't have much out there in the open source world, but it's a huge opportunity there's a lot of, you hear a lot of success stories where people who had contributed to open source projects have really had successful careers from that so I totally agree.

57:43 Michael: Yeah, absolutely. Cool, so I think your book is super interesting, and very helpful. Some of the stuff that we're talking about is like oh I hadn't really thought about that that's really cool, then I don't know how long your book is it, it's quite long like 600, 700 pages right, there's a lot of stuff and concrete practical tips, like these in your book, so I definitely recommend people check it out.

58:05 John: Thank you.

58:06 Michael: And I'll link to it in the show notes. So maybe in our last few minutes, you could just tell us a little bit about what you got going on at simpleprogrammer.com, because it started out as just your blog, but now you're doing a lot of stuff like you have several podcast going through there, you have a video series- tell us what's going on there?

58:22 John: Yes, so you know the focus right now simpleprogrammer.com I intend to own the word soft skills in the space, and what I mean by that is that my focus really is not on the technical skills for software developers, but on the soft skills on- my whole like purpose is to help software developers live better lives in all areas of their life. Because I have his holistic view and I feel like if you become a better person, in all the areas of your life, you're going to be better in everything that you do from your career making money to being a better programmer, and there's not enough focus on that. So, a simple programmer-

59:01 Michael: Like for example, if you're better health and better fitness then you probably have more energy to focus on your job, like there's a lot of a secondary knock-on effects, right?

59:09 John: Yeah, exactly. I mean we could even say if financially right, if you if you have good investments if you have a good cash flow coming in right, you're not stressed financially so your relationships will be better, your mindset will be better right, it's connected in so many ways I think. So really, I think Simple Programmer you could say is focused on self development or self improvement for software developers, and so I've got the blog there's articles that come out on there I think two or three times a week, and then some guest posts we accept on there. YouTube is really where I've been devoting a lot of energy I put out two to three You Tube videos a day, and all kinds of personal development and career topics for software developers, so you can check that out, on youtube.com/simple programmer.

01:00:03 Michael: And people can even send your questions right, you'll answer them if they line up?

01:00:06 John: A majority of the videos come from questions, and then you know, there's a simple programmer podcast which is some of the YouTube videos audio from that, trying to think what else we've got; I'm currently writing a new book that I'm actually writing online as I'm writing the book I'm sharing this blog post and it is going to be, an entire book probably will be a two-volume set about software developer career from the very beginning of how to get started and what you need to know, to managing your career successfully and to making future steps in your career. It's going to be bigger, it's probably going to be about 700 pages. Right now there's about like about 80,000 words written. I'm working on that, and that's being sent out every week a new chapter gets posted on the blog there. But yeah, my big focus is really just I want to help software developers to become better, to become better at their lives, to become better at what they're doing.

01:01:07 Michael: Yeah I feel like sort of a manifestation a lot of what are the advice that you're giving right, like you found this particular area of focus this niche, you put the work into it as a side business to build it up enough to sort of go and focus on entirely, and now you're able to just put your energy into it and it's really going well, that's awesome. Do you have any final call for action like for the people around here thinking like I could do better my career maybe get a different job, or promotion or something, what would you say final call to action?

01:01:38 John: I would say when I signed my Soft Skills book, every book that I sign I pretty much write the same thing I write 'take action'. And so, what I would encourage you to do, when I give a talk one of the first things I say is I say, hey look, don't take notes on what I'm saying take notes on what you're going to do, because that's what's important. And so I would say that for anyone listening, it's great, you might be nodding your head and say no yeah I totally agree with John, are you might be saying all that John guy he's a douchebag, whatever, but regardless if you're nodding your head, don't just nod your head, don't just agree you know, you read plenty of books, you listen to plenty of things and you say yeah that's cool, that makes sense, I'm totally going to do that- DO IT. Pick something that you're going to change, something that you're going to do and actually do it, right, commit to it make an actual step. You can read a book, and the book is just words until you take action. So take action, figure out something. I don't know if you do, do you do comments on the blog posts, on the podcast?

01:02:41 Michael: Yeah there's a whole comment section at the show page.

01:02:43 John: Oh cool, let's do this, if this is cool with you, maybe we can have people that listen to this episode leave a comment and say what action are they going to take after listening to this episode, what specific actions are they going to take, and then, maybe you can pick someone and you can send me their info or email address and I'll send them a signed copy of my book.

01:03:04 Michael: Oh, that's awesome. Yeah, I would love to do that. I definitely encourage everyone out there listening take action, put a comment onto the show page, and we'll pick a winner and send a book I think will be great.

01:03:15 John: Cool, awesome.

01:03:16 Michael: Yeah become a finisher right?

01:03:17 John: Exactly, yes, become a finisher.

01:03:19 Michael: Awesome. That's great advice John, and I really appreciate you being on the show. I've thoroughly enjoyed the conversation so, thanks a bunch.

01:03:26 John: I'm glad to be here and thanks for having me.

01:03:27 Michael: You bet, talk to you later.

01:03:27 This has been another episode of Talk Python To Me.

01:03:27 Today's guest was John Sonmez and this episode has been sponsored by Hired and Snap CI. Thank you both for supporting the show!

01:03:27 Rollbar takes the pain out of errors. They give you the context and insight you need to quickly locate and fix errors that might have gone unnoticed until your users complained. As Talk Python To Me listeners, track a ridiculous number of errors for free at rollbar.com/talkpythontome

01:03:27 Snap CI is modern continuous integration and delivery. Build, test, and deploy your code directly from github, all in your browser with debugging, docker, and parallelism included. Try them for free at snap.ci/talkpython

01:03:27 Are you or a colleague trying to learn Python? Have you tried books and videos that left you bored by just covering topics point-by-point? Check out my onlne course Python Jumpstart by Building 10 Apps at talkpython.fm/course to experience a more engaging way to learn Python. If you're looking for something a little more advanced, try my write pythonic code course at talkpython.fm/pythonic.

01:03:27 You can find the links from the show at talkpython.fm/episodes/show/71

01:03:27 Be sure to subscribe to the show. Open your favorite podcatcher and search for Python. We should be right at the top. You can also find the iTunes feed at /itunes, Google Play feed at /play and direct RSS feed at /rss on talkpython.fm.

01:03:27 Our theme music is Developers Developers Developers by Cory Smith, who goes by Smixx. Cory just recently started selling his music on iTunes so I recommend you check it out at talkpython.fm/music. You can browse his music there and listen to the full-length version of Developers Developers Developers.

01:03:27 This is your host, Michael Kennedy. Thanks for listening!

01:03:27 Smixx, take us out of here.

Back to show page
Talk Python's Mastodon Michael Kennedy's Mastodon