Freelancing For Your First Dev Job

So you’ve graduated from a bootcamp, or are fresh out of school, and looking for your first gig as a developer, what do you do?  Besides all of the applying, interviewing, emailing, networking, coding, portfolioing, there’s one other piece of advice you might hear, and that’s to try freelancing.

Freelance Definition

Considering the fact that experience is probably the biggest thing holding you back from getting that job, what better way is there to get it?  No matter how small the project, if you’re getting paid for it, that counts as PROFESSIONAL EXPERIENCE!!  If it’s an entire site that you design & build for someone, guess what, you just made something to add to your portfolio.

Here’s the thing about it, you could build an amazing complex project, showing off mad skillz doing things that’s beyond any expectations for a Jr. dev, but it’ll still pale in comparison to a simple static website that you were paid for and is live on the web.  Don’t get me wrong, you need your own projects, but in all of my interviews, those projects have never counted for anything when it comes to my actual skills.  The reason you need them though is because when they did come up in interviews, it was because ‘having personal projects shows your passion for coding’, and sometimes showing ‘passion’ is what puts you over the top.

So how do you find these freelance gigs?  You can try sites like Upwork, Fiverr, or even Craigslist.  Find out if there’s a local dev Slack Channel.  In my neck of the woods there’s DFWDevs. where 2 of the sub-channels are for gigs and 1099 work.  The absolute easiest way is to ask friends and family members if they have any need.  Maybe you know someone that has a small business, even if you do it at no charge for your brother’s wood-working shop that he runs out of his garage, you don’t have to tell anyone that, as long as it’s an actual business and the site is live, it doesn’t matter.

Or you just get lucky and actually have someone find you.  Although it’s not really all luck, you have to put yourself out there and get an online presence.  Through this blog and keeping my LinkedIn profile updated, I received a message from someone needing help on their site.  After speaking on the phone and then meeting, I signed an NDA (Non-Disclosure Agreement), and had my first real freelance gig.

This wasn’t just to build a simple site, but to update and maintain an existing site, on an ongoing, as-needed basis.  The site was built in WordPress, something I hadn’t developed in yet.  Yes, this blog sits atop WordPress, but I haven’t really dug into much code.  Still, I know PHP, so how tough could this be?

Well, coming from a clean, organized MVC world, WordPress was, “messy” to say the least, and not something I could easily reverse-engineer.  I ended up having to find a course on Udemy to help me learn actual WordPress development.  To make matters worse, this site was HEAVILY customized by the original creators.  So much so, that I soon learned another professional consultancy firm was brought in to work on the site and declined, stating that ‘only the people who developed it could do whats required’.  They recommended tearing it down and starting over.  And here I am, not even knowing WordPress, trying to fix things on my own.

Inner Site

At one point, I was just about ready to throw in the towel, but the people I was working for convinced me to stay on.  It was honestly an amazing feeling having someone say they like you and have your back like that, they were absolutely awesome.  Being a one-person dev team there was one downside, I ended up being their ‘Computer Guy’.  I found myself not just trying to fix and update the site, but also backing it up, handle hosting issues, working on SEO, Google Analytics, crawl errors, and at one point, after an email hack, had to become a cybersecurity expert in a matter of days.  Now, I love learning new things, but I was being stretched in just about every direction here.

This company really was awesome though, and I loved working with them, but I found myself putting in way more time than what I was getting paid for.  There really weren’t any expectations set and I didn’t really know how to deal with pay.

That’s probably one of the hardest parts of freelancing, especially for someone new.  How do you charge for your time?  Being new, you’re probably taking more time to accomplish some task than a more experienced developer would.  Of course you’re probably also working at a much lower pay rate to make up for that.  Plus you’ll most likely have to take time to learn new things.  Who pays for that?  For example, I had to take time out to learn WordPress development, SEO, Google Analytics, Google Search Console, cPanel, email security (DMARC, SPF, DKIM), among other things.

I think to be a good freelancer you need to be confident, not just in your skills but in yourself overall.  You also have to be assertive.  This can be tough for some people.  If you’re the type of person who would have trouble asking a boss for a raise, or time off, then you’re probably going to have a tough time freelancing.

You want to be fair, but you also don’t want to be taken advantage of.  That’s my problem, I try to always do the right thing and what’s fair.  The definition of which can vary greatly.  It’s why I’ve always been so great at customer service.  I’m an empathizer.  Everything I do, I try to put myself in the other person’s shoes.  I think to myself, ‘What would I expect if I was the one paying a freelancer’, ‘What would I think if I was the other person listening to me’.

Take photography for example.  Recently, I had family pictures taken.  I had to pay the photographer a Session Fee for taking the pictures.  And that’s ALL that it includes.  Want prints, it costs extra.  Want the digital files themselves, it costs extra.  Want professional touching up, it costs extra.  All of that makes sense to me, I mean, you can’t just give things away for free that cost you money.  But I do take issue with the digital files.  If I was a photographer (and at one time in my life I started to get into it), I would charge the Session fee, and yes, charge extra for prints, touching up and other services, but when it comes to the digital files, I would honestly just give ALL of them to the client as part of the Session fee.  I mean, what am I going to do with pictures of a strange family on my computer?  Why should I keep those hidden away from the people who it would actually mean something to?  You’re paying me to take your pictures for you of you, not to take pictures of you for me.  That just doesn’t seem right.

Anyway, sorry for the photography rant.  Back on topic, so this was my problem, how many hours should I charge the client?  I kept track of the time I spent, and I tried to be fair and do the right thing, but in the end I averaged putting in at least 3 times the hours that I actually charged for.  Yeah, I suck at freelancing.

Most of it was my fault.  I didn’t have any freelance experience in this field before and was naive.  I also failed to make sure we had all expectations fully drawn out in the very beginning.  These are questions you need to have answered before you start any gig.  How often do I submit my hours for payment?  What are your expectations, in DETAIL (not just some vague statement like ‘whatever we need at the time’)?  What responsibilities are mine?  Do I get paid for time I need to learn something, especially if it’s for an area that wasn’t originally agreed upon in my responsibilities?

You also need to make sure to be completely upfront and honest about yourself and your skills.  If something new is asked of you, don’t just say “ok, I’ll git ‘er done”.  Discuss it further and break it down.  Be up front if you don’t have the knowledge to do it.  If you need to take a quick course to familiarize yourself with a topic, bring that up right away and come to an agreement.

Of course, you may not get an ongoing gig like I had, most likely you’ll find one-shot deals, as in, build me this site and be done with it.  In which case, you’ll want to just charge a one-time fee for the job.  Maybe get paid a percentage up front and the remainder upon completion.  How much should you charge? Who designs it? What if the client wants to add a complicated feature half-way through or scraps something you already did?  Some good questions, but unfortunately,  I don’t really have the answers since I haven’t done any of these ‘one and done’ freelance gigs.


Are you pumped up and ready to go out freelancing now?  Yeah, I probably didn’t help much.  I mostly just wanted to share my own experience, from which there are several lessons to be taken.  My best piece of advice though if you want to try freelancing, reach out to the community!  Talk to someone who’s done it successfully.  Get on your local dev slack channel.  Don’t be afraid to ask questions.  It’s no different than when you first start coding.  The dev community is awesome in this regard.  Just as many coders are willing to help with code, freelancing coders are just as happy and willing to help with that, and you’d be surprised how many have started out that way.

As for me, my freelancing career is over for now, other than a simple site that I want to build for a close friend of mine.  I’m currently working for an awesome company….remotely!  And yes, you can definitely expect a post about what it’s like working remote in the near future.