Get advice from Reuven and Arsalan about starting and growing your career as a software engineer as well as hiring new developers.
Reuven Lerner’s Bio:
Reuven created one of the first 100 Web sites in the world just after graduating from MIT’s computer science department. Today, Reuven spends most of his time training programmers at companies such as Apple, Autodesk, Cisco, EMC, HP, SANDisk, and VMWare in four open-source technologies: Python, PostgreSQL, Git, and Ruby. Reuven teaches in Israel, China, Europe, and North America, as well as online.
His monthly column in Linux Journal has appeared monthly since early 1996. His latest ebook, “Practice Makes Python,” is aimed at Python programmers who want to improve their fluency in the language. Two new ebooks, about regular expressions and technical training, should be ready in the coming months.
Reuven curates DailyTechVideo.com (offering a new conference talk about programming each day), and is a permanent panelist on the Freelancers Show, a weekly podcast for independent consultants. He also edits MandarinWeekly.com, a weekly collection of links and resources for anyone learning Chinese.
Reuven has a Bachelor’s degree in Computer Science and Engineering from MIT, and a PhD from the Learning Sciences program at Northwestern University, where he created and studied collaborative online learning communities as the developer of the Modeling Commons.
Reuven lives in Modi’in, Israel with his wife and three children.
Please say hi to Reuven on Twitter.
Episode Highlights and Show Notes:
Arsalan: A drip campaign is an email marketing campaign in the sense that you want to sell something to a group of people. It is like an email sequence that people will go through with the end goal of a sale once the sequence is complete. In your case, you’re probably selling them a membership into your larger mailing list, is that right?
Reuven: Right. Many people are familiar with an auto-responder where you sign up for an email list and you receive an email back. A “drip” campaign is sort of like a glorified longer term auto-responder. When you sign up for a drip campaign, you receive an email every day for “n” days until the drip campaign runs out. That is where an email course comes in. You can teach people things in these bite sized nuggets.
Reuven: My point is to get people onto my main email list so that they can then get information from me on a regular basis. If they hear from me on a regular basis, they will be more interested in buying my products. I also know that an overwhelming majority will not buy my products, and that’s okay. I want people to buy my products only if it is going to add value to them, but it is okay for me to talk to people in countries where they just can’t afford it, or students, or people who just simply want to interact and learn. I love that. I’m fine if I can make my living from the 10% to 20% of the people who buy my product and I’m happy with other people learning too.
Reuven: I’ve also started doing webinars every month and a half or so and that gets put on YouTube. All these things feed into my main list so that I can grow my following. This way when I want to sell something, I can even though I know that most people are not going to buy from me.
Arsalan: That’s a lot of information. First, you have to write the emails. You have to create a campaign. That means that you have to sign up for a service because you don’t want to be banned for spamming. Don’t use your own email account.
Reuven: I used to laugh at these companies that do email for you, but they provide a lot of value. You can do an amazing amount of stuff with automation using drip campaigns. You do have to sign up with them, which is right around $50 a month. You need a domain, the company, the material.
Arsalan: You need to write the material and produce a sequence, right?
Arsalan: So, let’s say there are six emails that will go out in a sequence. That’s copywriting and there’s some skill there. You need to have a compelling message at the end, like “join my mailing list.” Then, once they are on your mailing list, you have to write content for that. Then, you also have to give them some value in the weekly or monthly emails that you send that would compel them to open and read them.
Arsalan: You are paying monthly to this company called Drip, which is a fantastic company, I’m sure. But, there are other companies out there as well like AWeber and MailChimp that have a limited, but free version. Drip is very developer focused, so that is good. But, it is $50 for their basic plan. I’m unsure what the higher tiers are for. Yet, maybe if you are very successful, you pay more.
Reuven: You pay $100 per month if you have 5,000 subscribers or more.
Arsalan: Okay, so it’s still pretty low. You’re a consultant. You make a sizeable amount of money, or at least you should.
Arsalan: Your skills are in demand. People want to learn from you and others want to give you projects. I’m sure that you have the other problem of having to turn away people, which is a good problem to have during a certain stage in your career. Someone who is just starting out may have a few years of experience, but may not have a reputation. If they want to follow in your footsteps, they might run into some issues, like money and time. Time is valuable when you need to spend several hours per week setting these activities up. I don’t know how much time you spend on these activities. I would expect to spend around 10 hours or more every week without any clear and immediate return on investment.
Arsalan: The thing to remember, though, is that even if you do sell a lot of products, there’s no guarantee that you will make a lot of money or even replace your current income. You’ll be augmenting it. You’re thinking long term, retirement, and passive income. You’re thinking larger because you’ve already accomplished so much in the way that you are doing things now. For someone just starting out, they would love to be doing consulting at a good hourly rate, but it’s hard to sustain a consulting lifestyle over 40 years. That’s probably why we see more people moving into passive income and products. What do you think of consulting versus getting a job and having job security?
Reuven: I have no complaints or criticism of people who do that. I’m fortunate right now working with these big companies that schedule courses many months in advance. So, assuming that the course is not cancelled, I have a good sense of what my monthly income will be, but it still varies. If cancellations happen with one company, sometimes another company may take the newly vacant slots. In that way, it isn’t a total loss.
Reuven: There’s also factoring in that maybe someone doesn’t pay you, or they don’t pay you on time. Then, you have to deal with billing and accounting. I think it’s totally reasonable to have a good job with a big or small company, come home to be with your family and not be crazed with work all the time. I’ve been doing this for so long that this is the norm for me. In some ways it’s not a healthy norm because I’m constantly dealing with work stuff and work is constantly interrupting me, family, or whatever and I definitely sometimes need to push back
Reuven: My next goal is to be able to teach two to three weeks out of the month a year from now. The rest of the month I’d like to work on new eBooks, new content, new courses, new things that I can sell for that passive income. It’s an amazing feeling when you get an email from a payment provider saying that someone you don’t know has bought one of your products. The only thing that beats that is getting an email from them saying “wow, I love what you did.” That totally makes my month. I’d love to be there in another year where I am just doing lots of content and then it will all just build on itself
Reuven: You have to be willing to put in the time and that’s a hard thing to do. If you’re consulting 40 hours a week, it’s hard to find time to write. If you’re working a full time job and trying to break into consulting, it’s even harder, especially if you have a family. My solution has been a very poor one, which is just not to sleep very much. It’s not one that I recommend, but it’s one that has been a reality for me for a while now that I’m trying to break. This is a habit that’s not good for me or my family.
Arsalan: I find myself in a similar situation because I’m trying to run this podcast and I work as a full time consultant in a similar situation. I have to spend extra hours. The whole family has to sacrifice for this. Everyone has to pitch in. They’re taking care of themselves and not having me around as much. But, I bring this podcast to the people, which is a very important service that I’m providing. It is something that has been on my mind for many years. I really thought that someone would come up and talk about mentorship and diversity and all these other issues that I think are really relevant and important, but no one else is doing. So, I figured it was up to me to do it. But, if I have to do it, then I must do it consciously and make a commitment to do it. It’s just as important as my day job. That’s what you’re doing and you’re probably spending even more time than I’m spending on this podcast.
Arsalan: You have to be organized in order to do it if you have to do it for long term, like two years or more. You don’t want to just make $100 per month. That’s not enough. You want to make enough money so that if you did not want to teach or train people anymore, you could do that. That’s your goal, right?
Reuven: That’s right. I’ve been writing for a long time and it comes very easy to me. I think part of it is that I had to do a lot of writing when I was in school. I also wrote for the student newspaper when I was at MIT. So, for years, I have been writing on deadline. If I sat down and had to write something from scratch that I had never done before, it would take a long time. But, for the most part, the things that I am writing about have come to me from questions that I received in class that I try to further scope out or research. I already have a beginning and an end. So, I just have to fill in the middle.
Reuven: Everyone has their own style. My style is to go through it slowly and methodically, which is good for my readers, but it’s also good for me. That’s because it means that I’m sort of bootstrapping myself into things. In my free classes, I’ve even started using some of my webinars to test new material. So, I figure, if it’s good, then I can make it even better for my paid classes. I can spruce things up and see what works well and what doesn’t. It’s a matter of taking the content and improving it. The material on my blog is generally in its most refined form.
Arsalan: So far, we’ve talked about how you got interested in programming and what you’re doing right now. These are really valuable pieces of information, but we still didn’t get a picture of how you got started as a professional software engineer. Did you ever work as an employee?
Reuven: Yes, I did. When we were talking earlier about the different degrees, I mentioned that MIT has this five year Master’s program. After four years you get a Bachelor’s degree, and after five years you get a Master’s degree in Computer Science. Back when I was there, you had to be accepted into this fifth year Master’s degree program, which I was not. But, that acceptance or non-acceptance into the program comes two years after your first acceptance to the program. The first acceptance is just for a summer internship program working for a big company. So, a bunch of companies come to MIT and say they want the people who are going to be in this program, regardless of whether or not they are going to do a Master’s program in the end.
Reuven: I was fortunate enough to work for HP’s medical products group. This group was later spun off to Agilent, which was then sold to Philips. Now and then when I go to the Philips website, I will see one of the things that I was working on, just many generations later. For about two and a half years I worked for HP on hospital computer systems and I learned a lot. Then, a friend of mine from MIT called me. This is where personal connections come into play. How do people hire other people? A lot of it is through personal connections.
Reuven: A friend of mine was working at Time Warner. They needed a web guy. My friend recommended me. So, I moved from Boston to New York for about eight months to work at Time Warner, and then I moved to Israel. That was my three year period, plus the summers before that, working as a full time employee. It was valuable to see how companies work from the inside and how they’re structured and their management. That said, once I moved to Israel and began consulting, Time Warner agreed to be my first consulting client, which was very nice of them. I then learned a new way of doing work, and one that at this point, I don’t see myself going away from anytime soon. I sort of eased into the world of corporate work and the world of consulting work.
Arsalan: The rest is history, as they say.
Reuven: I am so fortunate that I have these courses lined up months in advance. Yes, I’m turning down work, although I’m really bad at doing that…, but I don’t like to disappoint people. I like working with new people and meeting smart, interesting people and doing projects. Five or ten years ago it was a different story for me. I was on the job boards looking for people who would hire me. I didn’t understand why they weren’t hiring me. Yet, there are a thousand and one reasons for that. Robert Williams has this thing called “Let’s Workshop.” “
Reuven: Let’s Workshop” is a service that sends you an email with leads that he has sifted through. He gives you like ten leads, but not all of them are going to apply to you. He also wrote an eBook about how to write email to potential clients. If someone is looking for a freelancer, how do you write to them? It is a brilliant short book. I read through this book and it dawned on me why no one was hiring me. What I had been doing was sending this ridiculously long and detailed email because I figured that’s what they wanted. But, Robert’s solution is to send them something short because they just want to save time and solve their problem. Everyone searches for work at some point and everyone has to learn how to do it better. If I had done it better, I’d be doing more development and less training even though I love doing the training.
Arsalan: I’ve read that book and have found it to be a mixed bag. I’ve heard great things and am happy he’s doing really well. But, I’ve found that the leads were perhaps skewed on one side. If you are a Word Press developer or a designer, you may have good luck with him. That’s a particular service and we don’t really want to talk about a particular service because there are certain types of leads he sends. Maybe the quality will go up or down, but we’re trying to get some timeless advice.
Arsalan: This is good to know because I hear a lot of people say they need a computer science degree to get into development. That’s a myth because you don’t need a degree to be a software engineer. But, if you have a degree, it will benefit you in other ways. It won’t matter for the first couple of jobs. It may matter in the long term, like in your example and how it helps you to do some higher order things.
Arsalan: Getting a job is not the only way to move your career forward. There are other avenues. You can create a presence for yourself. You can do consulting and contract work. You could do training if you get good in one aspect. You can produce content that others can consume. There are some ways to make some passive income. There are many different ways of making money and keeping your passion going. If you’re looking at how to contract or how to get a few contracts, then this course “Let’s Workshop” may provide some value, but there are other avenues as well. Do you agree that a new developer, who may not have expertise in any one thing, may have other options besides getting a job?
Reuven: For sure. The world is still desperate for developers. There is not enough talent to solve all the problems that people have. As time goes on, you would think that we’d be graduating people with more computer science degrees as developers. That way the supply and demand balance would have more supply. Yet, demand keeps outstripping supply. If you’re interested in working in the computer science field and you don’t have a computer science degree, you can get a job. It might take you longer because people might look askance at you or they might put you into the secondary pile, but you will be able to get a job. That job will lead to another job and it will continue on from there. You will meet people and they will recommend you. You will have ideas of your own and maybe start a new company or go into consulting. The world is your oyster.
Reuven: One of the most instructive things that happened to me was when I was at MIT. I was the Editor in Chief of the student newspaper there. There was a program called The Knight Fellowships where they brought science journalists to MIT to spend a year taking courses. The idea is that they would be better science journalists after spending a year taking courses with the undergrads. We somehow stumbled into getting a meeting with them. We asked them how they got into science journalism. None of them had studied science and none of them had studied journalism. I realized that what you study in college does not determine your career. The same is true with the computer industry. You can move around and it’s what you make of it. You may have to work harder without the degree, or compromise a bit more, but it’s still possible.
Arsalan: You don’t have to get a job in your location. If you live in a location where there are no tech jobs or the tech jobs only pay minimum wage, you don’t have to accept that. The internet makes this possible. You can work remotely or start a website. (28:05)
Arsalan: I want to talk about the majority of developers out there. My contention is that as long as you have an Internet connection, a quiet space, and the motivation, you can be a software engineer. If you don’t find someone to hire you right away, you may need to be persistent. Don’t give up because you will eventually get recognized. The reason is because there are not enough people out there who are doing this. Some things you could try:
- Creating a blog post
- Commenting on stackoverflow
- Following podcasts and commenting
These are just a few of the many things that you could do. I was wondering if it were possible for them to start a consulting company fresh out of college? Do you think that is a possibility, Reuven?
Reuven: People can do that, especially if you have some experience from high school or college. What might be hard is setting up the consulting company because it’s still a company. You don’t want to have to learn all the business things and the technology things at the same time. That might be a little hard. It’s not a bad idea to start a consulting company right out of college, but I think you should only do that if you have the technical chops already.
Arsalan: The advice is that if you want to start in software engineering and you have limited experience, try to gain more experience. If you want to create a startup, work somewhere that you can gain some of the business skills that you will need as well to increase your chances of success. We hear stories about teenagers starting companies that are successful, but those are rare.
Reuven: Yes, those are outliers. The only caveat that I would have with your example about business is you want to make sure that if you have a full time job, that you don’t also have a non-compete clause. Let’s say you work for a shoe e-commerce company and you decide you’re going to go off and start your own shoe e-commerce company they might come after you and sue you if you had signed a non-compete clause. It’s probably not likely, but it could happen.
Arsalan: That’s true. I forgot about the non-compete clauses. But, I think those things have a time limit like maybe a year or two, but you would have to go through your contract to see what it says.
Arsalan: You’ve worked for a few years with a few different companies, was it easy for you starting out for people to accept you and giving you responsibility?
Reuven: Do you mean in my consulting practice?
Arsalan: As a junior employee
Reuven: I think if I would’ve been a little less naïve and a little more aware of what was going on I would’ve realized how many times they were rolling their eyes at some of the things I was doing. I think my progress was enough to keep me going. I wasn’t a stellar employee, but I was good enough that they just kept telling me to keep doing what I was doing. But with big companies, there’s not the expectation that you’re going to move mountains, but that’s nice in some ways. You don’t want to be in a pressure cooker all the time.
Reuven: There were times when I goofed off because I didn’t really have a whole lot to do, which probably wasn’t a very good idea. But, then there were other times when it was crunch time and I would put in extra hours or come in on Sundays. I probably felt more at home when I worked at Time Warner because although it was a huge company, they treated us like a startup. I liked that because I am a small company kind of guy. But, by the time I left Time Warner, there were 40 of us in my area and it was already starting to feel big. I got along well with everyone I worked with and am still on good terms with them.
Arsalan: I think it’s important to recognize that you were just starting out; you kept good relations and that helped you get your first contract. If you’re going to leave a job, don’t leave on bad terms.
Reuven: I totally agree. When I was leaving my first job at HP, I wasn’t sure how to tell my boss. So, I sat down with him, we talked about it and he understood. That’s just part of the corporate world. People come and go. That’s how corporations work. To some degree, people are like interchangeable parts. I left on very good terms. When I left Time Warner, I left on excellent terms. The US is a big country. Israel is a tiny country. I think we have like 8 million people living here. The computer industry is very small. Everyone knows everyone else to one degree or another, and if you are not nice to people, it will haunt you. Always be nice to people, even when you are not at work because people are always going to be hiring and you don’t know who is going to be talking to whom. You don’t want to be viewed as that one person who is going to be difficult to work with.
Arsalan: It’s a good principle to live by. You have to watch your language and ensure that you don’t send any nasty emails to anyone as you are leaving so that you can leave on good terms. In the US there is this other cultural problem as well. Maybe people are against you because of your background. As a senior or manager who is running a team, you have to understand that it is natural for people to have biases. If one person is biased against another, sometimes it is hard for there to be harmony. I think when you are a senior level, you have to open your hearts up a bit more and have empathy. If someone is doing something that doesn’t fit with our cultural ideas, we have to give them the space. When we are in a professional environment, we should leave our personal biases behind. When you are running a team, I think it is on us to ensure that too much authority over a bias does not come into play. What do you think?
Reuven: I am always perplexed that these sorts of biases exist. It is ridiculous. If you want your companies to succeed and your teams to succeed, you are going to want to hire the best people. The best are comprised of several different dimensions. One of those dimensions should not be what this person’s ethnic, cultural, sexual background is. Those are all secondary territories, if they enter into it at all.
Reuven: If someone is mistreating you at work, there is probably a human resources department. They are there to help you. If you are experiencing any biases, it is inexcusable and you should go and talk to your Human Resources department. The problem is what if you are at a tiny company or don’t have any other options available for work. It’s easy to say that in the computer industry you will have lots of work options, but it’s not necessarily true. You never want to be in a situation where you feel trapped and you can’t leave a job even though they are treating you terribly. I’m not suggesting you stay at a job where you are being mistreated, but maybe you need to speak up and bring the problem to someone’s attention.
Arsalan: If you could start over, would you do something differently?
Reuven: Maybe. When I worked at HP, they told us we were moving far away and I didn’t have a car at the time. They asked me what I was going to do and I said I was going to get a car. They said right. So, on one hand I guess if I were going to start over I could’ve said no, I’m living in Cambridge, Massachusetts. There are lots of startups here. I’ll just work for one of these startups. I would’ve been happy there and they would’ve been happy with me. But, at the same time, I’m glad that I had the experience that I had. Being a corporate pawn, I could’ve gone one way or another. But, other than that, I’m actually quite happy with how things have gone.
Arsalan: Do you listen to podcasts or listen to screencasts, or are there any blogs that you’d like to recommend?
Reuven: I listen to a ton of podcasts. There are a whole lot of programming and software engineering podcasts, and consulting podcasts. That’s one category that I listen to. I’m also obsessively interested in politics, so I listen to things like the political gabfest. I also listen to the podcast for the American presidential election. I also listen to the New Yorker podcast, the Economist. Then, there are also some fun ones. It’s not unusual if you see me walking down the street with earphones in my ear and I am laughing very loudly.
Arsalan: What’s your best advice for software shops?
Reuven: Communication. We need to communicate more clearly among ourselves and with our customers. Your customers are most interested in whom they can rely on, who can make their businesses better, and in most cases that means clear, upfront communication and reliability more than technical genius.
Arsalan: What’s your best advice for new and aspiring software developers?
Reuven: To realize that you will never know everything, but you have to keep trying. Learn how to learn well. Enjoy the learning. Find your niche so that you can learn things that are more appropriate and more interesting. At the same time, realize that there is no way that anyone can possibly learn everything that is necessary. So, you may just be winging it part of the time. That’s all of us, even those of us who may sound like we know what we are doing all the time. We’re winging it part of the time.
Arsalan: Tell us about some of the projects you are working on and where can people go to find out more about you?
Reuven: There is my newsletter, which you can subscribe to from my website at lerner.co.il. There’s also my blog: blog.lerner.co.il. I try to do a webinar every month or two and those are announced on both my blog and my newsletter. You can follow me on Twitter at @ReuvenMLerner. Those are the general ways that I communicate with people and I am always very happy to hear from people. You can also email me at Reuven.lerner.co.il and I’m very happy to respond to people, just remember that I’m terrible at responding on time to email. So, if I don’t respond to you right away, don’t take it personally, it’s not you.
Reuven: For my projects, my first eBook: “Practice Makes Python” is at practicemakespython.com. It’s a book of 50 Python exercises and assumes that you’ve already learned some Python and you are looking to strengthen your skill and gain some fluency. These are 50 exercises that I’ve used in my classes with large companies to try to help people improve fluency. The book will make you work hard and through working on the problems and reading the solutions you can hopefully gain some insight there.
Reuven: I’m working on a similar book now called “Practice Makes Regex” which I am probably going to open for sale to my mailing list sometime in the next two to three weeks. Then I will make it available for sale to the general public as well. I also have my Daily Tech Video site called dailytechvideo.com. I also have my mandarinweekly.com website for those of you learning Chinese. Learning Chinese is super cool and fun, and not nearly as hard as you might imagine. If you learn it, people think you’re brilliant. I’m also starting to do more coaching and working with technical trainers. I have a coaching program mentioned on my blog for those of you interested in doing technical training. I would be happy to talk to you about that. I’m also working on an eBook on how to do technical training. That will also be announced on my mailing list. I think that is it for now.
- http://lerner.co.il (home page)
- http://blog.lerner.co.il (blog)
- http://DailyTechVideo.com — a new high-quality conference video each day
- http://MandarinWeekly.com — a summary of the best new links for people learning Chinese
Thanks for Listening!
If you found this episode useful, please go ahead and share it with your friends and family. You can also listen directly and give your feedback on the website.