Skip to content

Instantly share code, notes, and snippets.

@mdang
Last active November 24, 2023 12:27
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mdang/ef3669d4f266c62c3312 to your computer and use it in GitHub Desktop.
Save mdang/ef3669d4f266c62c3312 to your computer and use it in GitHub Desktop.
Lesson: Freelancing

Freelance Development

Learning Objectives

  • Explain what freelance development is and why companies contract developers
  • List what paperwork is generally involved on both sides
  • Explain what a Statement of Work (SOW) is
  • Explain what scope creep is, and how to avoid it
  • Describe the accounting required for freelance developers
  • Explain how to price your services
  • List some ways to build a client base
  • Work with clients w/o killing anyone

Intro

Who is interested in doing freelance development at some point? What are your reasons for why?

In all, I did freelance development for about 3 years so far.

Expectation vs Reality

  • Work anywhere
    • Coffee shops often times have slow wifi
    • Takes time to get there and set up, no external monitors
  • Flexible schedule
    • For the most part this is true, but clients still expect you to be available during normal business hours
    • No clear division of start and end of the business day.
  • More free time
    • Sometimes you're working holidays
    • No paid vacation
    • No sick days
  • Lots of money
    • You have a lot more added expenses you need to cover
    • You're not working consistently, periods of no work or administration

Why do companies hire freelancers?

  • Short term work
  • Contract to hire
  • No health benefits, 401k, paid vacation, sick leave
  • Specialized talent needed (e.g. Day CQ)

My first freelance gig

O's Nails

Was supposed to be a few days but dragged out to weeks for $300. If you're able to do better than this, then you're already doing better than I did when I started.

Mistakes made:

  • No statement of work, did not define scope
  • No requirements, wireframes
  • Informal arrangement (No upfront payment, no completion date)
  • No real reasoning behind the price, it was just a number thrown out

Legal & Paperwork

Structuring your business

  • Sole Proprietorship
    • If using something other than your legal name, need to file DBA
  • LLC, INC
    • Protect yourself, piercing the corporate veil

What you should have ready to go:

What you can expect to receive:

  • (NDA) Non-disclosure agreements
  • Statement of Work
  • Wireframes/Clickable prototype
  • Business/functional requirements
  • 1099-MISC
    • If client has paid you more than $600 that year they're required to submit one
    • The IRS uses this form to distinguish different types of income that may not come to you as part of a regular job
  • W-9
    • Request for Taxpayer Identification Number and Certification. This form can be used to request the correct name and Taxpayer Identification Number, or TIN, of the worker
    • Businesses use the name, address and Social Security or tax identification number from form W-9 to complete form 1099-MISC

Statement of Work (SOW)

A SOW is a project-specific agreement outlining the mutually agreed scope of work and the timeframe for its completion. It sets expectations, deliverables, and the price. It may also include information on resources needed for the project, including roles and responsibilities on both sides. The secret to a good SOW is to avoid being vague – if it’s too broad and non-specific, you may end up with a dispute.

A statement of work often times consists of:

  • Scope of Work
  • Project timeline
  • Payment schedule
  • What browsers need to be supported
  • The technology stack used

Scope Creep

We Do Look through example SOW's, wireframes, business requirements and compare and contrast good/bad ones

Finances & Accounting

  • Invoices
    • Unique invoice number
    • Line items of work performed
    • When payment is due (Standard is net 30)
    • Additional work not agreed upon and additional cost
    • http://www.freeinvoicegenerator.co
  • Taxes
    • Self Employment Tax - Covers Social Security and Medicare taxes. If you were employed by someone, they would pay half and take the other half out of your paychecks each month, but since you employ yourself, you’re responsible for all of it.
    • Save up to 35% of your income to be safe
    • Quarterly Estimated Payments
    • Keep personal and work finances seperate to avoid audits
      • Work space
      • Cell phone service, computer, etc

You Do Browse at some invoicing solutions, discuss in class some good starter ones for freelancing

Pricing your Services

You will hear many times in your career the question: "How much does it cost for a website?". My answer: "How much does it cost to build a house?".

Considerations:

  • Pick any two:
    • Cheap
    • Fast
    • Good
  • Timeline - How much time do you have to complete it?
  • Build in time for administration (e.g. meetings)!!
  • Are you able to complete the work yourself? Will you need help? How much will that help cost?
  • Scope of work - Front end, back end, both?
  • What technologies are required? Any unknown technologies that you will have to ramp up on?
  • Is there a database required?
  • Will you need to purchase any stock photography?
  • Who is hosting the site?
    • Are we able to deploy code ourselves? Or depending on someone else?
    • What restrictions are set on their host?
    • How much will it cost to host the site?
  • Do they already have a domain name purchased? Is there a testing area already set up or do we need to create one for them?
  • What external API's or platforms involved? (e.g. Facebook API, FB Application, etc)
  • Licenses required. Do you have to purchase some fonts? Commercial libraries?
    • MIT
    • BSD
    • GNU

Typical payment arrangements

  • Flat rate One set cost for completing the project.
    • Half up front, half on completion
    • Third up front, a third halfway, and final third on completion
  • Hourly Works well for smaller tasks like updating copy on a website, minor upgrades. Keep detailed audit trail of the number of hours you're spending. You'll need to prove it through some kind of billing software.
  • Weekly/Bi-weekly Better for long term engagements with an indefinite completion date

Getting paid

  • Be suspicious if you've gone halfway through the project and not received any payment
  • Do your research, there are malicious companies out there that will not pay and just keep getting more freelancers to replace old ones. It's difficult to take them to court, especially if you don't have the proper paperwork
  • Schedule reminders for yourself on a calendar to represent when you should have been paid
  • Lump maintenance requests into a single invoice if possible to make things more managable
  • DO NOT assume that since it's a large company that they'll be reliable with payments

We Do

Look at an existing project and walk through the steps that we need to think about

Clients

Building up a Client List

  • From previous workplaces. Majority of work from project managers, etc from previous work who needed work done at new agencies. (e.g. Being the lead app developer for US Air Force, and them needing someone who knows how the system works)
  • Partner with other developers
  • Work with agencies
  • Work with recruiters
  • Take advantage of social situations. (e.g. Had drinks with next door neighbor, they referred me to a Travelocity recruiter)
  • Find a niche, advertise a specialty (e.g. Facebook app developer, Day CQ)
  • Build trust
    • Complete your projects. Complete is always better than a half done "perfect project"
    • Give good advice. Don't just look at what they're asking you to do, figure out the intention and what they're really trying to accomplish
  • TEST TEST TEST your own work
  • Underpromise, overdeliver

Working with Clients without Killing Anyone

Communicating with clients won't always be the most pleasant experience.

Warning signs to look for

  • Scope Creep
  • "This should be quick and easy to do"
  • Refusing to pay you to get started, regularly behind on payments (e.g. not paying you to do any of the work, you don't have the resources to take them to court)
  • Nokia Live! - Just because it's a big client, doesn't mean they are trustworthy. Protect yourself. I didn't have the paperwork, trusted friend who was the General Manager, but he had to fight hard to get me paid after they decided to cancel the project on their end.

Tips:

  • Good communication, check emails and be responsive
    • Often hear complaints from clients that they can never get in touch with developer
  • If they are asking you to rush, tell them you can't continue without materials needed on their end. It almost always comes to a grinding halt at that point once you put the ball back in their court

Can you give me a quote?

Pair Exercise

25 min

  1. Pull from the class repo to get the example Statement of Work and wireframe for today.
  2. Read through the documents and come up with a list of questions you have based on our discussion today.
  3. When you're ready, let me know and I'll answer your questions as the client.
  4. Give a time estimate of hours required and final price. It's up to you whether you want to bill hourly or a flat rate.

Resources

@KShivendu
Copy link

So well written. Thanks a ton!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment