Chris Castiglione Co-founder of Console.xyz. Adjunct Prof at Columbia University Business School.

How to Become a Freelance Web Developer

27 min read

Hello, and welcome to the Learn to Code Podcast with One Month. This week we have Mike Heavers on the show.

Mike Heavers (@heaversmike) has been designing, strategizing, and coding for the web for over 20 years and he’s worked with the likes of Nike, Facebook, Lululemon, and even universities including Cornell and Carnegie Mellon! He works with HTML, React, JavaScript, and Python.

Today, we’ll be discussing what goes into being a successful freelance developer.

In this episode you’ll learn: 

  • The difference between freelancing and consulting
  • How to find clients
  • How to set client rates
  • As well as some best practices for invoicing and pricing!

🐶 Please subscribe and rate the Learn to Code Podcast on iTunes!  ❤️

iTunes SubscribeYouTube SubscribeStitcher SubscribeSpotify Subscribe

Here is my conversation with Mike Heavers:

How did you learn to code?

Mike: I’m from a small town in Colorado called Montrose. It’s kind of on the Western slopes. People in Colorado divide the state into Western and Eastern slope depending on what side of the Rocky Mountains you are on. I’m from a small town there. And I had a really good computer lab teacher. This was back in, ’96 I’d say when the internet was still somewhat new to folks and especially to people in small towns. And all this technology was new.

I had this teacher who just was really great about applying for grants for software and hardware. And so we had a really cool computer lab that he just kind of gave us free rein to play around with. And one of the things in the lab was a copy of Dreamweaver, which I guess is still maybe limping along.

What is Dreamweaver?

Mike: Sure. It [was] sort of a more visual way to program websites [popular around 2000-2008] where you can actually see the thing being built in a preview window. It’s owned by Adobe. I think at the time it was owned by MacroMedia. And we also had a copy of Flash, which at that time was called FutureSplash. And I got to play around with that too.

Chris: So, this computer lab in your high school, were there classes that were teaching you how to code, or did you kind of have to pick it up on your own?

Mike: We kind of had to pick it up on our own because nobody really knew. You know, we had books and things like that that we were learning from but the teacher of the class, he just kind of oversaw everything, and really encouraged us to try everything, and come away with a complete project. But there was really no curriculum.

What was the first successful project you made with code?

Mike: We had to make a website for ourselves but I think that the first thing, because I kind of picked up on it pretty quickly, I got enlisted to help make our high school’s website as it sort of took shape. And being able to do that for someone other than myself was really a big boost of encouragement into “Yeah. Hey, I can make this work. This is a really useful skill”.

Chris: So you made the high school’s website with HTML and CSS but using Dreamweaver?

Mike: Yeah, and there was no CSS back then. It was all HTML.

Chris: You’re right. I think CSS was invented in, I think it was invented in the ’90s but I don’t think it really took off until maybe ’99, 2000-ish.

Mike: Yeah. It may have been around at the later stages of this thing. But yeah, initially I definitely wasn’t using it. I was just using HTML.

Chris: Yeah. Interesting. And then, how did you go from, “Okay, you’re building this really basic HTML website for your high school to making a career building apps and building websites? Was that linear? Did you know, “Hey, this is what I want to do”? Like right from there?

Mike: Not at all. I did a couple of websites in college but for the most part really, I just put it away and didn’t touch it. I was in school in the journalism program, but it got unaccredited for about six months and I knew I could only be in school for four years, so I looked for a different field. And went into Business School and got a degree in finance. I just sort of blindly pushed through that and when I graduated, I realized, “Oh, I don’t actually want to work in finance.”

So, I had to figure out another way to make money. And at that time the web was really becoming popular and everybody wanted a website. I was out in L.A. at this point and surrounded by a lot of aspiring actors, and movie makers, and all of the business and it was really good – a lot of people would approach me to put their public face up online.

So, that’s how I got started making websites.

When was the first time that someone paid you to make a website?

Mike: That’s a good question. I got paid for a few in college. And I did some for non-profits. I think the first one I remember was for like a low budget movie. It was sort of like, I want to say like a B movie, but I don’t know if that implies that it’s CED or something because it wasn’t. It was just like a lesser-known, smaller production company that paid me to do their website. It paid pretty well for the amount of time that it took me to do everything and I got to be on both the designing and coding side of things, which was really interesting to me.

I always thought I wanted to be a designer and that coding was just a way to kind of get paid to design. Then as I learned more about coding, I transitioned morph-fully into being just the coder and not the designer.

Chris: Wow. I always found, when I was getting started that it was tricky because I didn’t necessarily have enough confidence to charge money for projects. You know? At first, I was like, “Oh, I’ll just do it for free.” Or, “Oh, I felt like I couldn’t accept certain jobs because I just didn’t feel like I had that confidence.”

What about you? How did you have the confidence to start charging? Was it their idea? How did that come about for you? Or did you just feel like, “No. This is something I can do”?

Mike: I guess there was enough demand that I knew. And I knew that it took so much time that I had to charge something. But I was definitely undercharging for my services even then. I think I would sometimes work for 15 or 20 dollars an hour making websites, you know?

At some point, it was really starting to kill me because I was getting a lot of referrals to do websites. I was taking on a lot because I knew it was money and I didn’t have a lot of money at that time. But I was charging such a low rate that I just, I had to put in a lot of work and manage a lot of different clients to make that really pay off.

Chris: Totally.

Mike: I still shoot myself in the foot in this way sometimes but, it’s taken me a long time to really become comfortable charging both what I think I’m worth and what I need to make in order to have the work/life balance that I want.

Chris: Yeah. I mean, for a web developer, that’s definitely such an in-need job, that’s definitely a low rate for that. It is an interesting question though, how do you choose your rate? And how do you build the confidence to charge more?

And so this might be a good way to get a segway to really get the focus of the conversation that I want to get into. It’s just like, how do you become a successful freelancer? Maybe you could start by just telling us in your own words some projects that you’ve worked on. And then maybe one or two that you’re really proud about. Just to give us a sense of the types of different projects. ‘Cause I know you’ve worked on so many different projects. Like, what are we talking about?

Mike: Yeah. I’ve really done a lot and I feel like there’s a couple of approaches to being a freelance developer. There’s the approach where you really dive in deep to one specific platform or technology, and then there’s the generalist route, which is the one that I’ve taken.

I worked for agencies pretty exclusively until maybe a few years ago. And as such, I think you get to touch a lot of different technology and take on a lot of different projects. There’s also kind of shorter length engagements.

What is a web development agency?

Mike: I kind of use that term loosely. And I think some people actually recoil at the name of an agency. Or not recoil but they like to distinguish between an agency and a studio. Or people have different terms for it.

Chris: What is the difference there too? Maybe break that apart for us.

Mike: I think that’s what I’ve noticed, and I don’t know, I have a hard time delineating things as well. However, I think that companies that position themselves very creatively, as a sort of artists, like to be considered studios. They’re creative studios.

And companies that cater a little more towards the client and whatever they need, might consider themselves agencies, ad agencies, or digital agencies, to where they’re just like, they are there to make whatever you need to happen online, happen.

Versus a studio is like, “We’re the artists. Come to us. We’ve got good ideas and capabilities, and we can kind of make this thing happen in our own way.”

Chris: So, maybe it’s like the difference between hiring a painter, and one type of painter paints your walls and the other type makes Picasso paintings.

Mike: That’s a really good analogy there.

Chris: Like one person is not going to be like, “Hey, your living room should be like a blue spot.” You’re like, “Just paint the wall. Just do it.”

Mike: Yeah. I think also that agencies tend to be a little bit bigger and take on things that aren’t just digital. Like, they’ll take on PR and print advertising, and things like that.

Chris: Yeah. Let’s talk about one of your experiences working at an agency. I know you worked at Maverick Digital, which is where I met you.

How did you land your job at a web development agency?

Mike: I’m smiling really big right now because I’m thinking about just some of the funny situations that we ended up in at Maverick Digital. I started, and I didn’t know this, but I started at Maverick when it was brand new to the world. It was started by a really great guy, Tod Tilley, who used to work for Bacardi. He started the agency up under the auspicious of taking on the Bacardi business and doing some of their digital work.

When I interviewed with him, I was brand new to New York City and I went into his building. He had a really nice space. I didn’t realize at the time that he was sharing it with other people and there was like four or five people in the room when I met him. And right away when I met him, he said, “Oh, come on outside. Let’s go for coffee.” So, I didn’t really get to have a good look around but I didn’t realize it; I was essentially his first or second employee. It was just me, and Todd, and one other person. We started from the ground floor really.

I think by the time you and I were working together it was maybe, what, 15 people, 20 people?

Chris: Yeah. It seemed like a really big fancy agency. I mean, at the top of that skyscraper, building, whatever. The Martha Stewart Building in Chelsea.

Mike: Yeah. The Starlight Lehi Building.

Chris: That’s the one. What kind of tips would you give for somebody that wants to work at an agency? If you want to start putting together some clients in your portfolio, like these big Gray Goose, or BlackBerry?

How do you get to work with big clients like that? What’s the first step to that? How did you do it?

Mike: The first step I think, is really showcasing what work you have in its best light and not being shy about that. Being honest in what parts that you worked on, if maybe you didn’t do the whole thing, or whatever. Or if it wasn’t for a real client. But just showcasing your work and spending time documenting the work that you do in a way that’s really clear to other people that you’re confident, and know what you’re doing, and that you are capable of working at the caliber or level that they’re looking for.

I know some people if all they did was school work, student work, you can still make a website. Whether it’s for a fake client or a real one, you can make a website and show it off as if it was your only thing. And I think when you put that kind of stuff online, if you don’t have a lot of work it’s making that one project that you feel really good about as big and thorough as possible.

And if you have a ton of work then it’s maybe more of showcasing that breath or that versatility. But just picking an angle that people can look at really quickly and say, “Okay, I can see how this person would fit into our organization. Let’s bring him in and talk to him.”

How might a web developer stand out in a job interview?

Chris: It sounds like an organization like Maverick or like these big New York City agencies are probably getting dozens or hundreds of applicants. I would imagine. And I would imagine that 90 percent of them are horrible, just because I’ve seen a lot of these applications come in.

Mike: I had recommendations through various people I had created freelance websites for. But, I also had a website that I think was somewhat unique and I approached the agencies with something like a personal email. I’d just dig up an address, and rather than go through the traditional channel of applying online, or maybe in addition to just applying online through whatever service they wanted, I would just drop them a line and write a really personal story about how I was excited to do the type of work that they were doing. What I thought of their work, and how I saw that I might fit in.

And I think a lot of people do that too. But it definitely cuts through the playing field quite a bit. And if you’ve had any agency contact, I think that’s a big plus to any other agency because they know some of the aspects of an agency business, which is like pretty quick turn-around projects with shorter life spans, things that focus on advertising, which not everybody wants to take part in, and so they know that you’ll be able to operate in that environment.

Chris: That’s interesting. One thing you brought up that’s interesting is that sometimes web development agencies will have shorter project spans because maybe they only need to … Maybe they have a big client. They need to build it up before a due date two months from now so they bring in a lot of people, churn it out, and then maybe they don’t need you anymore.

So, that’s interesting to think about because it means there’s a lot more opportunities to build up different things for your portfolio. If you can kind of come in-and-out, and chose your projects, that’s kind of cool.

Mike: Yeah. Absolutely. There are different types of agencies and some agencies specialize in building products and services that might be around for years to come, but some of them focus more on these short lived campaigns that you might see online for only a day or two.

It’s kind of whatever you’re into. And some people are a lot more comfortable just staying in one place and working on one thing for years at a time, while some people really like that fresh mindset and workload that comes with projects that turnover more frequently.

What is the difference between a consultant and freelancer?

Freelancer: A person who works independently and typically joins a company for a temporary period of time. As a freelancer your role is to take an assignment from the client, and go off and complete it within their set time and budget.

A freelancer typically works offsite. An example might be a “freelance front-end developer” who joins a company to create a blog theme, and then after that the deliverables are handed over and the work is complete.

Consultant: A person who, in addition to having a specific skill set, takes on the added responsibility of drafting timelines, budget, and contracts. As a consultant you may have an ongoing relationship with the client, perhaps working on a retainer, or with a set number of hours each week.

For example, we recently hired a “Data Analyst” (“consultant”) who worked with us for 10 hours every week for four months to help improve our analytics.

Mike: I’ve definitely had projects where I’ve felt more like a consultant and ones where I’ve felt more like a freelancer. I’m trying to think of what those are. I think a consultant to me, implies a little more agency and little more responsibility over your own business. There are more potential financial gains that I could see with being a consultant and being a free agent.

Chris: It sounds like a consultant is somebody who is going to be negotiating anything from the rates, the scope, the time it’s going to take to do something, drawing up, I don’t know, invoices, all this kind of stuff. And maybe just having more authority and responsibility in building the project.

Whereas, a consultant might hire a freelancer to do one aspect of that. You come in and you do the ad campaign design. Or you come in and just do the analytics.

Is that kind of how you think of it?

Mike: Yeah. I think that’s a pretty good way to sum it up. 

Chris: Yeah and the reason I bring it up is that I don’t think there is necessarily an expert. People use these terms. You can Google it right now and you’re going to find the opposite meaning on somebody’s blog somewhere.

There’s just lots of different ways to use the terms, but what you were describing is generally how I see it as well. And yeah, I think it just having some command and confidence in how you define yourself is what is really important. I think being vague or being unsure is probably the only wrong answer when you’re trying to present yourself to work on the job.

Mike: Makes a lot of sense.

Chris: Well, as long as you have some opinion on it, probably helps you out.

Mike: Honestly, I think that the more you can really be specific about what your needs are and be transparent, the more highly regarded, better paid, and better your day-to-day work experience will be.

And like I said before, it has taken me a long time to learn that, but I think people are okay hearing you state your needs, whether those be what you want to make, or how many hours you want to work, or where you want to work from. And just because what you want out of a job is maybe not quite what another person is looking for. Or what they had presumed the working relationship would be, doesn’t mean it’s the end to the story. It can often create a healthier working relationship.

Chris: Yeah. That’s amazing. That reminds me of one of my favorite quotes from, Neil Gaiman’s commencement speech at the University of the Arts. He’s talking about finding work as artists after college and he says, “There’s only three things that you need to know to find work. And you need to be on time, is number one. Number two is be nice. And number three is do good work.”

Then he says, “Actually you only need to do two of them though. ‘Cause if you’re on time and nice, people will hire you and trust you get to do good work. If you do good work and you’re nice, people will be a little lenient whether you’re on time or not. And if you’re on time and you do good work, then you don’t really have to be that nice. You can kind of be a dick.”

I’ve had this similar experience if you’re trying to find which two of those three work. It’s a great speech. You should check it out. I think it might be called Do Good Art or Do Great Art, so, yeah, check it out.

How do you find clients?

Chris: I have a few more things that I’m really curious to learn from you about making your own consulting business, being a freelancer, whatever that is. How do you find clients? If you’re not working at agency, we talked about getting a job there but beyond that, how do you get your own clients?

Mike: Yeah. It’s interesting. It still ebbs and flows for me a bit. I would say most of it is through existing relationships or through word of mouth. So, that being nice to work with and doing good work definitely follows you around. And if you burn any bridges, you won’t get those referrals or those people passing your name along. I have worked, I think, pretty hard at trying to be a nice person to work with and trying to maintain a good reputation. And that has brought me a lot of work engagements effortlessly, which are the nicest ones to have.

That being said, I really do try to put my work online in a lot of different places so that people can find me. And I do that mostly just because I don’t want to get stuck in a rut of the same type of work over and over again. I kind of like when I get a surprise call from out of the blue and get to take on a project that I would have normally never found out about. And some of that has come through people finding me online.

That could either be through my portfolio, or through social media, or I write a lot of tutorials, and things like that online. So, sometimes people find me that way and I think that’s a really easy way if you’ve had to solve a hard technical coding challenge and done so, and it was not well documented online already, I always take those opportunities to write up how I figured it out and put it online for other people. And it’s not to earn money or anything like that. It’s just like, “Hey, I’ve learned a lot from the stuff I’ve found online. Here’s something that might help someone else in the future.”

But it’s weirdly come back to me in ways where people see that stuff and they’re like “Oh, I know what you’re talking about. I feel comfortable potentially hiring them for this project.”

Chris: Yeah, that’s great. So, what I’m hearing is that referrals help you get work, as well as, putting your work online. And it sounds like the writing you do, and I think your writings are at Mike.com.

You’ve done a lot of articles on JavaScript and I think React, and Machine Learning.

Mike: Yeah. Yeah. I initially put a lot of that stuff only on my website. In retrospect, I wish I had put it on a platform earlier where more people just naturally go to, versus just on my own website and relying on search results or something else to drive to my website. I now usually write things on Medium. And I think I’m on Medium. I don’t remember off the top of my head.

But, it doesn’t matter where you put your stuff. If it’s as specific as some of the things that I write about, people will tend to find it when they’re trying to solve problems like that.

This was kind of interesting to me is I recently got approached by a publication called Heartbeat. It was started by an AI company as a way to talk about mobile machine learning and computer vision related projects. They had found some of the stuff that I did on Medium and so now they pay me a small amount if I write articles on Machine Learning for mobile development.

That was just an opportunity that arose by putting my writing out on a place like Medium where other people can see it and not on my website.

Chris: That’s a great idea. So, writing about the things you’re learning, does not only give you a chance to have a sense of reflecting on what you’re learning. I do this a lot on my blog when I’m learning something new.

You don’t have to be an authority on it, but after you’ve written a few blog posts, even as you’re just beginning to learn, you start to get some authority. People see you writing about it, they see you have interest on it, and then they get interested.

That’s so cool that in your case, they reached out with a job. More or less, just because you were writing about this thing that you loved writing about.

Mike: It is, and that’s a good point that you mentioned too. That you, in the practice of writing about what you’ve went through or what you’ve learned, you really do learn it to a much higher level. I think because you know you have to explain it in very concise, simple terms. And that a lot of people potentially could be reading this thing, you have to make sure you really know what you’re talking about and not just that you were able to solve the problem but that you can explain it in a simple way.

How do you estimate the cost of a client’s web site? What advice do you have for setting the price?

Chris: Let’s focus a little bit more on getting clients. We’re talking about a few ways that clients find you. Let’s say, once you have a client, and I imagine also that once you’ve done some work, the more work that you do, the more clients that come to you.

Let’s say you find a client, maybe it’s your first client, you’re getting started, what advice do you have for getting a rate or an estimate on how much work it’s going to be? Because it seems like there’s so many, we’re talking about web development, specifically. Like, making websites, making things for the web, web apps. How do you define that?

Mike: Yeah, that’s a good question. Even now for me, I could certainly set just a flat rate of what I think I should be making. And only take jobs that are willing to pay that. And that’s certainly something that people do. I’m a little more flexible with my rates depending on what type of project it is and how much I want to be working on that particular thing.

Projects for non-profits, for example, I might do a much lower rate than projects for a big company like Facebook or Google that can afford to pay a more competitive rate. I have found that some people don’t want to show any sort of, let’s call it favoritism for one company or another.

But I’m pretty transparent about that with people and say, “for this type of project, I charge this much money”. And a lot of times, among the things that you are enlisted to do as a programmer, some things are easier than others, or just command a better rate.

A typical Front-end Facing HTML, CSS, JavaScript, website. I personally don’t think should earn as much as something that’s a little more experimental and cutting edge where you more uniquely are the person that can solve that challenge.

Chris: Let’s take an example. Actually, as we’re talking, I’m reminded that you designed the first One Month blog when we made the blog.

Mike: That’s right. Yeah.

What do you ask a client before designing their website?

Chris: We hired you. We don’t have to talk specifically about that project because I forget probably as much as you do. But let’s just hypothetically, say I come to you and I say, “Hey, Mike I want a blog and I want it to be designed specifically for my brand.” Let’s say, I’m an author. “How do I get started? Can you just kind of talk me through what I can expect as far as price or even the languages? Or, what do I need to know? I’m confused. Help me.” That kind of thing.

Mike: I definitely hear some form of that from anybody who’s never really enlisted someone to build a website for them before. And I think this is where if you know how to speak to that question well, it really makes the difference of you landing the job versus someone else.

I think the way to approach it for me, has been to first ask a lot of questions. The more information you can gather before you start talking, is really helpful because you find out what the person’s motivations are, what their budget is, etc.

Chris: Can we do that right now? I mean, I think it would just be so fascinating. I have an idea in mind. Help me out, what kind of questions would you ask me?

Mike: Okay so you’re looking to build a website to represent yourself as an author?

Chris: Yeah. Exactly. I mean, literally, I’ll use myself. I’m working on a book right now so I’m going to need a website. I’m assuming I don’t have one. How would I get started?

Mike: What’s the scope of this website? Like, are you going to be selling things on the website? Is it just a marketing page? Will it have multiple pages?

Chris: I mostly imagine that it will have some examples of my writing, and an about page, probably links to social media, maybe a few videos that I make. I don’t think it’ll sell things. Maybe just link to the Amazon page for the book.

Mike: Okay. Are you picturing most of the traffic for this website being driven from some other source? Or is SEO really important?

Chris: I didn’t really think of that but I just imagine that it would be on the book, and maybe it would be something that I would make reference to in interviews.

I just think it would be there to support people who already know me. I don’t know that it needs to have in-bound people just randomly finding it. I don’t think that’s the goal.

Mike: Okay. And are there any tools or things like that that you would want on the website that are more than just static and presentational in nature?

What does “static website” mean?

Mike: Static, meaning it’s just the content that is there. It’s not moving. It’s like a digital newspaper. Versus dynamic, being something that is interactive, or animated, or provides tools that you can manipulate to learn things about whatever is represented in the content of your book.

Chris: You mean like, you can dive into the book and highlight passages, and have friends on social media like them? That’s what you mean? No. None of that, just pretty simple. Yeah, static.

Mike: Gotcha. So, a few pages, static website, needs to look really nice.

Chris: Yes. That’s important. That’s probably the most important thing. I just want it to look really nice.

Mike: Okay. So, as I’m getting a sense of what you’re doing, I would probably be curious, and I recognize that your question is about getting this work, But honestly, for me, sometimes when I hear a description of what sounds like a little bit of a portfolio website, I often and honestly ask people if they’ve thought of something like Squarespace or like Wikis, or Weebly, or one of those more templated website builders that someone can manage on their own.

Chris: Yeah. I think that makes sense. Do you need code to do that or do you just sign up for that? You just have a thing, right?

Mike: Yeah. You can sign up for it. It’s a little template, and it has a back-end content management system interface that you have to get comfortable with. Then you don’t have to write code. There is that capability and sometimes actually people will pay a programmer like myself, to modify those templates to really make them unique or make them do a thing that they wouldn’t typically have been designed to do. And that’s an opportunity.

Chris: So, have you gotten work before just kind of editing like Squarespace pages. Has that been a job?

Mike: I have actually. I have done a Squarespace project and I used to do a ton of WordPress too.

Chris: Like theme? Customization?

Mike: Exactly.

Chris: Cool, that makes sense. I’m going to break out of the role-playing, although it was actually an interesting way for me to pick your brain and to see how you would solve that problem.

Yeah. I think I would probably generally go about the same way where its like, the easy option is using Squarespace, or WordPress, or one of these kinds for static sites.

I like the way you describe that. That makes a lot of sense.

Mike: Yeah, I mean, I think the reason I steered there, and I know that was a little bit off topic, is I want to make sure that I’m operating in a place that I really add value. And that when I build this thing for this person, it’s something that they feel good having paid the amount of money that they needed to pay for, and that I delivered something that they couldn’t find anywhere else.

And there’s plenty of projects that necessitate someone to hire a freelance developer. But there are times that honestly, a person might be better just running a templated Squarespace website.

Chris: Cool. That makes sense. Yeah, ’cause in my mind, what makes sense is that Squarespace, and WordPress, and these kinds of sites, they basically give you that back-end that give you easy to edit the content, they host it. They just solve a lot of these things and so it sounds like you could take this and probably re-cost a lot of money to make this site and all of this.

But maybe at your stage in your career, you’re saying you don’t really need to reinvent the wheel if it’s simple enough.

Mike: Yeah. Well, I’ve noticed that some people, even though they might know about something like Squarespace, and maybe even feel comfortable diving in, they just know that they’ve got plenty on their plates as it is being a writer, or musician, or whatever they do. They don’t want to be web developers also and they want you to just handle it. They want somebody who’s going to be capable of doing that no matter what it requires. And so that’s where you really add value – in just making this thing painless for them.

Do you have any failure stories, or lessons learned, while working as a freelance web developer?

Mike: When I was first starting out, I think one big issue (and we touched on this), was just not charging enough. To where, sometimes things come up in the course of making a website for somebody and if you’re not charging by the hour (which you certainly can charge by the hour), but working on a project rate or if something occurs that maybe you do mess up, and you’re not charging enough to cover the amount of time it takes to recover from that mistake, it’s going to cause a lot of problems. It’s going to be very stressful for you and you’re not going to want to work on it, and the client’s not going to be happy.

Also, the clients that are willing to, I hope this doesn’t come out sounding too harsh, but the type of client that is going to be willing to underpay you, or only hire someone who charges a very cheap amount for their work, is not always going to be the best client to work for. They’re not going to have a lot of leeway for these problems or timeline delays that occur that are hard to predict when you start out a project.

So, my first mistake was just not charging enough. And not holding off for the right type of projects.

I think another mistake that stands out is website security and not taking that seriously. I don’t enjoy thinking about web security. It’s just not a problem I’m interested in solving but it comes with the territory. And if you don’t understand it and you don’t do the basics when it comes to securing a website and a person’s data and information, you can get into a lot of trouble.

So, I think taking some time to understand web security.

What’s the best way to learn about web security?

Mike: I’ve never honestly, read a book on it. I think when I chose a platform or when I take on a platform that someone already has security like WordPress or Squarespace, or React.

Or on the back-end maybe it’s your database like MySQL, or Contentful, or whatever it is, it’s really reading about that platform and understanding the security concerns. I think WordPress, even now, can really be exploited for its security flaws if you don’t know what you’re doing.

And that’s not necessarily because it is any more susceptible than other platforms. It may or may not be, I don’t know, I’m not an expert. But it’s so widely used that I think it’s really highly targeted. Someone can write a script that goes out and targets every single WordPress website out there and can really spam it or do a DDOS attack or something like that.

So, understanding it in that way. Just doing a little bit of research before you pick your platform, or take on a new one.

Chris: Sometimes the Plug-Ins as well, you’ll pick the platform but then you’ll add all these plug-ins which other people write. And if you’re not wise about which ones you use, you’re just adding all of this potential vulnerabilities.

Mike: Yes, and that’s a big thing even with things like NPM packages. I don’t know how deep we want to go into the tech talk.

But nowadays, websites have so many dependencies when you install React, or some other framework, you’re automatically including the code of hundreds of different people’s work and any one of those can have some potential vulnerabilities. I remember there was a simple plug-in, I think it was like a left pad plug-in on NPM.

Do you remember this? That someone wrote where they decided to get unpublished from NMP and it crashed websites everywhere because everybody used this tiny little package on Node that added some left padding to a line or something like that.

Chris: That’s amazing. Yeah. I think that was in like 2016 or something and yeah, I heard about that.

Mike: I definitely, prefer not to say that you shouldn’t use these things, but I do think that I like to start as simple as possible when I’m building something and not add tools and plug-ins unless they’re really needed.

What’s the best language to learn if you want to become a freelance web developer?

Mike: Sure, if you want to become a freelance dev, on the front-end I think React is a huge one. It’s just got a big user base and there’s a lot of employment opportunities for somebody who knows React or React Native. On the back-end, I really have been into these NoSQL platforms, (rather than using MySQL or MongoDB), it’s a cloud-based data-based platforms. Things like Contentful, Firebase from Google. Netlify CMS. So, on the back-end, some of those.

And for things like animation, learning a data visualization framework like D3, WebGL frameworks like 3js. Gsap, a grade sock animation platform usually comes in handy in a lot of different projects that I do.

Chris: Great. What about for getting a job? Are the answers the same more or less for getting a job versus if you were going to get a job you could potentially be more specific. Are there any of those you mentioned, is there one that’s specific, you think in demand or in-need skill?

Mike: Yeah. Back to React, I guess. I’m always asked if I know React and usually whether they end up going that route or not, the intention is to always start with React. And usually, it’s up to me or the group to step back away from React if we have to.

Chris: So, one interesting thing about React coming up, what do you have to learn because you can’t just start learning React. You need to learn some things before you learn React. So how do you start on that journey? What are the tier steps on that?

Mike: I think you should really only be using React if you know how to do the exact same thing without React.

And what React brings is really a sense of state management. So, keeping track of what has changed as a user starts to use your website, and stores certain preferences, or uses certain features. React does a really good job of making sure the entire application can know about those things that the user has done and respond to them.

So, for example, if you added something to a cart, the cart would know that something was going into it but the page where the person added the thing from the cart would know to like, make a little flash, or collapse the box that was holding the item that you added. And your analytics platform would know to note that you prefer this color of t-shirt over this other thing.

So react brings a lot of that kind of stuff. But the core fundamentals that you needed to know, even just to have that t-shirt that you could add to your cart come with HTML, CSS, JavaScript, etc.

Learn to Code with Mike Heavers
Learn to Code with Mike Heavers

Do you have a favorite IDE or text editor?

Mike: I use VS code (Visual Studio Code by Microsoft_, which I would have never thought, I don’t know, five years ago that I’d be using a Microsoft piece of software, especially on a Mac. But it’s a really great editor. It does so much for you and it means that you have to know less about the language that you’re writing, or remember less about the language that you’re writing because it just handles a lot of that stuff for you.

It does things like code completion. A lot of these IDs will do this, but this has a really good concept of what they call IntelliSense where you start typing something, and it can autocomplete like the function call, or the library to include, or it can highlight where you’ve made errors, or where you need to add semicolons or brackets, or whatever.

It’s got a bunch of really good plugins that people have written that you can incorporate to handle different languages, different frameworks, etc.

What resources or podcasts do you use to stay up to date on new technologies related to web development?

Mike: I would almost say the challenge for me is how to not overdo it. ‘Cause I for a while, was reading five different email newsletters that were just full of links of about JavaScript or Web Design or CSS. And then I was seeing things on Twitter and Instagram, and then just researching a ton of things on my own for my specific projects that I was working on. And it was taking up a huge portion of my time and I actually had to scale back from that.

I think that the best way to stay informed is to, gosh, to pick one platform that you like to consume that media on, whether it’s Instagram, or Twitter, or just email. And if in the case of email maybe it subscribes to a few good newsletters. If it’s Twitter, go out and have an account where all you do is follow, for me it’s Creative Coders, so I’d just have a feed that’s full of only people who talk about their projects in creative coding and that’s how I stay on-top-of what’s new and what’s happening.

Chris: Can you share that feed with us because then we can see who you’re following?

Mike: Yeah sure. I can, that account is @heaversmike. I don’t even post much on this but I follow some really great creative coders.

Chris: Oh great. Yeah. I mean, you only have 90 people on here and I can see all of their profiles. This is a great place. This is a great resource.

Well, Mike, thank you so much for coming on the show. This was so much fun. I learned a ton. And I’m really excited to share this with everybody at One Month.

Mike: Yeah. I’m really excited to see it online and I’m really proud of seeing all the stuff that you’ve come up with for One Month and for people getting started where I was many, many years ago. It’s great to have One Month as a resource.

🐶 Please subscribe and rate the Learn to Code Podcast on iTunes!  ❤️

iTunes SubscribeYouTube SubscribeStitcher SubscribeSpotify Subscribe

Learn to Code Comment Avatar
Chris Castiglione Co-founder of Console.xyz. Adjunct Prof at Columbia University Business School.