DEV Community

Carter Hesterman
Carter Hesterman

Posted on

Freelancing for the full time employee - Part 6 (Doing the work)

Before you lift a finger

Your client was happy with what you quoted them and they are now ready to take the plunge. Congratulations! Starting to develop a fresh new relationship with a client is one of the most exciting parts of a job’s lifecycle as a freelancer. It is also the time that you need to nail, otherwise you will find yourself becoming the victim of false expectations on both sides.

  • The contract: The most important thing you can do to solidify expectations (both legal, and scope-related) is establish a contract. A lot of times you won’t want to go through the hassle of pulling one together (thankfully I’ve got that template linked in here somewhere!) and it may seem awkward sound so formal in a legal document, but you will regret it after a short while if you don’t have one. Creating a contract that both parties agree to sign instantly takes the “personal”-level out of the transaction. If you don’t get paid on time, you aren’t being rude by following up with them or charging them an increased rate for a late payment, you are simply doing what you both agreed to do should that situation arise. Contracts, when properly made, can give both the client, and the freelancer, the peace of mind that comes from knowing their investment of time or money is legally safe.
  • The Down Payment: If I quote a project for a given amount, I always charge 10% of the agreed amount up front. This provides an excellent “inauguration” of the project for both you and the client. If you review the contract template I linked previously, you’ll notice that I say I will begin work once the down payment has been received. Not only does this get you some extra cash up-front, but it also helps your client get used to paying you in whatever way you request (more on this later). Aside from being a good starting point, most contractors and entities in the service field will charge a down payment before any work is done. Not only does this make you look more professional, it also makes your client officially invest in the project before you invest any of your time into it.

Getting paid (invoicing)

Whether you are invoicing for a down payment, or an agreed upon milestone that warrants a payment, you will want to become comfortable with sending your client professional-looking invoices. I originally used paypal business for my invoicing, but I wasn’t a huge fan of having them take a percentage of what I made just for that. Instead, I now use the free Invoice Generator to write up all my invoices. I’m sure there are great alternatives out there as well, but this one does everything I need it to. Most of the fields are pretty self explanatory, but these two are of extra importance:

  • Payment terms: I usually put net/10 here, indicating that I’m expecting them to pay the full amount of the invoice within 10 days.
  • Terms: At the very bottom you will see the “terms” box, in here is where you specify the penalty for a late payment. I usually put something that indicates there will be a 10% increase in the invoiced amount on the 11th day, and an additional x% for every ten days after that.

After generating the invoice, I download it, save it to my business’s one-drive folder, and then email it to my client. Immediately after doing this, I make an entry in my “Pending Payments” column for that client in my accounting spreadsheet (see the next section).

Accounting for payments and expenses

Your life as a freelancer will be better if you keep detailed records of everything related to the money in your business. This includes down payments, other payments, and all business-related expenses (examples of these are in the previous “Tax Deductions” section). You would think that you would just remember how much a client owes you, but after a few invoices or after managing multiple clients at a time, things start to get complicated. In addition to making sure you get the money you are owed, this is also something that will prevent your life from being miserable every spring when taxes are due. Keeping clean records are a prerequisite for making your complicated business financially clear and simple to understand. Here are the header columns for my spreadsheet that I use to track my business expenses, received payments, and pending payments:

Essentially I make a column for each, track the client name it is related to, and the date it was invoiced/received. As for expenses, I record what it was, the date it was purchased, the reason, and how much it was. I have some totals at the bottom so I can track how much I've made over the year and how much I'm still owed. At the end of the year, I'll duplicate this sheet and open a new tab with fresh columns for each of the sections.

Collecting payment

Of all my tools I've used for all my jobs, this one has varied the most from client to client. I’m yet to use the same tool twice between two clients for collecting payments. Here are a few options that I have used and have had work well for me:

  • Google Pay/ Venmo/ Facebook Messenger Cash: Mobile payment apps are plentiful and heaven bless any of your clients that are willing to pay with them. These are safe, easy to use, and quick.
  • Checks: I’ve had a couple clients pay me with checks, I tend to discourage this, though, since it requires time on my part to pick up and deposit the check. It would also be an awkward conversation if you happened to lose the check somehow or if it bounced. I'm usually more receptive to this method if they are willing to mail it to me.
  • Paypal: Paypal has an excellent invoicing system if you sign up for a free business account. Your clients will be able to pay with a paypal account or a credit card, but be aware that the site will take ~2.5% of the transaction for themselves. This can be trivial for smaller transactions, but if you are having someone pay you $15k over paypal, you may find that $300 to be an uncomfortable amount to part with.

Doing the work (My Process)

If you are like me, you have a thousand things that you want to get done in your day, and many of those include leisure activities. In my case, this primarily includes watching Netflix and playing video games. To my own amazement, I’ve found that I can get about 10 hours of freelance done a week and still have plenty of time to do other things. If you space it out right and you set the right expectations for your clients, you will never find yourself overworked and pushed up against a taxing deadline. If I have a client want something done that will put me in this position, I usually charge them at least double for the work. Here is a breakdown of my daily routine that nets me an excellent side-income:

  • Work Cadence
    Every day, I get up about an hour earlier than I used to. I’m not a morning person, but I have found I have more willpower to get things done before I go to work than I do when I get home. By the time I get dressed/cleaned up I usually will squeeze in 45 minutes to 1 hour of freelance before I need to leave. When I get home from work, I’ll hop back on my computer before I let myself do anything else and put another hour or so into my freelance. This puts me getting 2 hours of extra work in my day by about 6:30 or 7:00 in the evening. More than enough time for me to pursue my other hobbies! I like to take advantage of Saturday mornings as well to work on some of the tasks that require a longer sitting-session than an hour. If I get home from work later than usual or if I’m just feeling burned out, I simply give myself the day off and pick it up the following morning.

  • My Tools
    I’m not going to go into what tools I use for my programming, instead, I want to describe what tools I use to manage my daily workflow and business.

    • Task Management: As you gain more clients and your projects grow in complexity, you will find that you need something to manage all the asks/wants your clients have. After experimenting with Github Issues, Wunderlist, and One Note, I’ve landed on Trello. I like trello because it let’s me quickly create cards that represent different tasks that I need to complete for a certain goal. I usually will create one board for each client I have. On that board, I create the following columns: "New Features", "To Do", "In Progress", "Done", "Deployed to site". Here's a screenshot of one of my boards: Once I have the board created, I add my client’s email address as a user to the board and have them communicate most of their feedback/requests through the “New Features” column. If you can get this workflow established, you will both be much happier. I’ve found that my client’s really enjoy being able to see the status of the features they have requested. Using checklists on larger cards can be another effective way to communicate where you are at, as well as help you keep track of things you still need to do.
    • Time Tracking: If I haven’t communicated the importance of tracking your hours (not necessarily for payment purposes), then consider this another plea. Tracking your hours will give you a clear idea of just how much time you are investing into your side work. In addition to providing a sense of accomplishment, it is also important for helping you understand how to price yourself. Right when I sit down at my computer, I open up my toggl app on my computer and input the client I’m doing work for and then the name of the task I’m working on. If you want to get really clever, you can put the url for the trello card you are working on as the task name. If you forget to “Clock In” then you can always go back later and adjust the start/end times. Don’t forget to push the “Stop” button when you are done! When I’m generating an invoice, I always go to toggl’s reporting page and use the filters to get an exact count of the hours I spent for a given client over a specified period of time.

Scaling your workload

One problem that you will run into if you keep growing your business is the matter of scaling it. There comes a point where your two options for making more money appear to be either increasing your prices, or doing more work for more clients at the same time. With your time being a scarce resource, there is a cap on how much work you can do. To get around this and make your work scaleable, you can leverage a couple of options.

  • Get Partners: I have mixed emotions about this one. Asking a friend, colleague, or coworker to help you out can be a great way to get more work done quickly. The rub comes when you want to still make a profit off of them doing work. Most developers I’m associated with that I’d ask for help would only be willing to take at least a 50/50 split assuming we each do half of the work. While this can be useful for getting a difficult project done on schedule, you aren’t doing anything to increase your bottom line.

  • Offshore teams: I’ve worked with offshore teams in my full-time job as well as in my freelancing and have had mixed experiences. Offshore teams can be one of your greatest assets for getting more work done and not cutting into your bottom-line too much. Most of these dev shops charge a reasonably cheap hourly rate and get work done quickly. If you choose to go this route, save yourself some headache and answer the following questions before you officially hire anyone:

    • Are they easy to communicate with? Do they speak your native language? How long do they take to respond to emails, etc.?
    • Do they have a good track record? Do they have any previous source code that you can look at?
    • Do they have the skills and time required to do good work that doesn’t simply get the job done?
    • How much other work are they concurrently taking on? I finally found an amazing developer that I could pay hourly to work on many of the tasks for a given client I had. She was quick to respond to emails, she asked questions to make sure she understood the project requirements, and she did excellent work for a great rate. Until I found this particular developer, I went through maybe half a dozen others that varied in their usefulness. Going this route will let you take on more of a product management role as opposed to doing the actual work yourself. I had a weekly meeting on skype where I would share my screen and clarify all the cards on my trello board. The offshore team would then take notes and ask any questions they needed to for the week.

In conclusion

If you made it all the way through the series, congratulations and thank you for taking the time to read this! Side work isn't for everyone, but I've found it to be one of the more exciting and fulfilling parts of my career. The experiences that I've gained by working for clients has provided me with all sorts of invaluable knowledge that I would never have attained had I just stuck to what was assigned to me during my day job.

Top comments (0)