by Ashley MacWhirter

From grit to gigs: how I started my freelancing business


In less than one year, I went from a Georgia Tech Coding Bootcamp graduate to a business owner specializing in web development of business websites. There are several challenges I’ve faced and continue to face during the process. These range from networking to contract creation and pricing to, most importantly, having the essential trait of plain ol’ grit.

If you are reading this article, you are probably interested in the idea of owning your own business. No matter your background or level of experience you may have in the field, many of these hurdles will apply to you as you embark on the crazy, yet fulfilling journey.

My Background

Before entering the bootcamp in January 2017, I had very basic knowledge of HTML, CSS, and JavaScript — not even enough to make an entire webpage that was worthwhile. However, I already knew I had a passion that I needed to uncover and explore, and so my journey began.

At the beginning of the bootcamp, if someone had told me that I would have my own web development business within a year of graduation, I would have laughed them out of the room. I had spent literally hours and hours on our basic HTML/CSS/Bootstrap assignment alone!

The finish line of graduation was no where in sight, and the pressure was on…but I made it! I had learned a crazy amount of technical web development skills in those six months. But the most important thing it taught me was how far I was able to push myself to get what I had been dreaming of and actually accomplish it. This was the start to a new me.

I graduated the Georgia Tech Coding Bootcamp in July of 2017 with a job offer from one of the top telecommunication companies in the country within one week, and signed my first freelance contract in October 2017. Things were happening quickly and it didn’t slow down.

Keep reading to discover some of my networking techniques, advice, and to find out what the heck I did once I started getting clients. I’ll give you a hint — at first, I had no idea.

Networking my way to success

I had my first potential client lined up in February 2017, one month after bootcamp started. I met the business owner through mutual connections, and the conversation organically developed as the business owner vented about their frustrating experience with their current website and web developer. I jumped in.

At the time, I was still terrified, and I still didn’t know how to build a complete website (far from it). I was nowhere near ready. However, when an opportunity presents itself, I always tend to seize it and figure it out along the way.

I explained my schooling, my current timeline, and offered to develop a more attractive and more efficient website that they could be confident in and proud of. They were excited about the idea, and I was fortunate enough that they waited until my graduation in July for me to start on their site.

This was the start to developing my freelancing business.

I signed the contract for this project in October 2017, and completed the project in January 2018 with an ongoing hosting and maintenance contract. They were extremely pleased with the website, and have since stated that they intend to refer any work they know of to me.

As soon as that project was wrapping up, I got a message on LinkedIn from a startup owner looking for an independent contractor for some mobile development work. Thanks to my personality and hunger for growth in my new field of expertise, I signed a new contract as a part-time independent contractor in February of 2018. I agreed to 10+ hours a week, since I was still working full-time as a full-stack developer.

Just after signing this contract, I was approached by yet another company to develop their business website. Even with my busy schedule, I agreed to take on developing their site as well. To be fair to the company, I was transparent with my current schedule, and we agreed on an acceptable timeline and a contract was signed.

As business was consistent and even picking up with potential clients in sight for the future, I decided that it was finally time to start my own LLC. One big reason for this step was the obvious tax benefits — I could finally receive tax breaks and also be taxed fairly on the work I was doing. That’s great and beneficial, but the main reason was that I was finally able to fulfill my dream of owning my own business.

Currently, I am working full-time for someone else and part-time for myself, but the ultimate end goal is to work for myself 100%. This was the first step towards accomplishing that.

Networking tools I use


  • Make sure you have a good, professional photo.
  • Update your profile and maintain it so it is always up to date — this is your living resume.
  • Customize it so that your profile stands out from others. That may be a different background photo, or an eye-catching ‘about me’. Be creative.
  • Stay active. Like and post relevant content daily. Your consistent activity will be visible to potential clients, employers, and recruiters.
  • As messages start rolling in about jobs and opportunities, even if you are not interested and it might be overwhelming, always respond back professionally, respectfully, and thoughtfully. In the future, you never know when that individual may have a key to the locked door you’re trying to push through.
  • If you have fellow developers who would fit the bill, recommend them. The recruiter will appreciate it and so will your peers. You never know when a peer might be the one to open a door for you either. (Plus you could get a referral kickback if it works out.)

Business cards

This method is almost outdated now in a world of technology, but it still has its merit. I always carry cards on me and have often found myself handing them out at any gatherings, meetings, and meet-ups. Sometimes I even pin them up on boards like in a local coffee shop. You never know who is looking.

Never be the person scrambling for a piece of paper when someone asks for your information.

Be kind — because word of mouth matters

To me, this one should be a no-brainer as it pertains to any aspect of personal and professional life: be kind. Word of mouth goes a long way, and honestly will probably get you most of your projects from referrals.

If you are known to be kind, consistent, positive, communicative, and honest, you are more likely to gain work. Professionals will trust the opinion of another professional over the opinion you present of yourself. If they receive positive feedback of an experience with you, you’ve got yourself another project.

Find a mentor

Let’s be honest. You most likely don’t have all the knowledge and experience it takes to start your own business. That’s why it is so important that you find a mentor or two…or ten.

It can be intimidating getting out there and extending your vulnerabilities to someone whom you may or may not know very well. But once you get over the hurdle of pride and stubbornness, you’ll enter a world of professionals who are more than willing to assist you along your journey.

Everyone needs to start somewhere, and most (if not all) started right where you are at this very moment — reading articles about how to make a dream manifest in your mind, and how to bring to life a skill at your fingertips.

One of my key mentors is one of my bootcamp instructors, John McSwain. He is incredibly passionate about coding, knowledge, teaching, and life in general. He is an inspiration in bringing dreams, thoughts, and ideas to life. He is also a big proponent of the key ingredient of grit.

Several times throughout the bootcamp when students were becoming discouraged with the amount of work, the difficulty, or time management, he would give the best back-to-reality talk to pick you up and get your stuff together. I needed his wakeup calls, and he was the first one I went to when I was thinking about diving into the freelance world.

I already knew I had my first client lined up, but I was terrified and my confidence wasn’t where I thought it should be. When everyone else I had talked to said that freelancing was “not a world to get into,” or it was “too tough,” John’s response was, “Go for it!” And I did.

Don’t be afraid to ask questions

Starting a business is also intimidating in the financial and tax categories. I actually came across a freeCodeCamp article and video on my LinkedIn feed by Luke Cicilieno. He was able to answer a lot of the questions I had in my head, which was the last step that was holding me back from jumping into all the paperwork and glory that came with the job. During his video, Luke encouraged viewers to “feel free to contact him with any questions”… and that’s exactly what I did.

I found him on LinkedIn, sent him a message to see if he was willing to answer any questions, and he did more than expected. He responded promptly and offered to hop on the phone with me to discuss any questions I had. This ultimately gave me the final push I needed to get the paperwork going.

As I said before about networking — you’ll be surprised to see how many professionals are willing to stick out a helping hand and offer advice, support, and even potential referrals! Ask questions — the worst that can happen is that they don’t respond, or say “no.” Feel free to reach out to me as well!

Ok, I have the client — now what?

The story of my first client


This step was one of the most challenging for me to overcome. I did the work to gain the skills, I did the work to network and gain the client, and now they actually want to hire me… now what?!

I had never created a contract before, I had no idea what I should charge, and putting a project timeline and deadline together seemed daunting. Just like you, I started out by reading several articles about all the different aspects of the business side of freelancing.

Things I knew I needed to figure out

  • Price
  • Payment plan
  • Content
  • Timeline
  • Deliverables
  • Contract

A sit-down with the client to discuss desired content is of utmost importance. This is what drives the price, timeline, and deliverables. Before that meeting, I sent the client a list of 10 simple questions to answer about their website, business, and vision. This gave me a good idea of what exactly they were looking for, what was most important to them. I also hoped that their answers would help fill in some other blanks, too.

Here’s my little questionnaire:

1. Tell me about your business. What does it do? What does it provide? What is your philosophy?

2. What would you like your site to accomplish?

3. What makes your company unique and remarkable?

4. Who are your competitors?

5. What types of websites do you like? Why do you like them? What types don’t you like and why?

6. Who exactly are your customers? What audience would you like to reach?

7. What features would you like your website to have? Social media connection? E-Commerce (merchandise shopping)? A blog? Photo Gallery? Videos? Mobile app or responsive? Contact/Feedback form?

8. Do you have any existing design material? Logo? Old website? Promotional items? Something else?

9. What is your budget for this website?

10. What is your timeline for launching this website?

Once I received the answers, I set up a face-to-face kickoff where we could go through the answers, discuss them, and come up with some reasonable guidelines and stopping points for current desired content.

Setting a timeline

The content was listed and described as specifically as possible so there were no questions or miscommunications about agreed upon items such as pages, colors, and functionality. Once this was done, we were able to move onto the timeline. The agreed upon content, my availability, and the clients desired timeline all played a role in this.

Luckily, the client was not in a hurry, so I was able to set the timeline based upon a reasonable commitment from myself based on the criteria. It is also important to note that creating the timeline is just as much on you, the developer, as it is on them, the client.

If they don’t get you the content, information, or feedback in a timely matter, the timeline pushes back. I made this clear verbally, as well as in the contract — which I will discuss in a bit. Along with the final launch date, we also decided on reasonable milestones a review process.

Every Tuesday evening, I would send my client my updates for them to review. I did this by launching the app on a free Heroku site so they could view it, click around, and make adequate notes on the current functionality and design. Their feedback was always due by Friday of that week, and if I received no feedback, I continued working as if it was a thumbs up.

This system seemed to work out very well and the client was very pleased with the level of transparency I was providing them.

Determining a price

Next, we needed to decide a price. Many articles went back and forth about whether to charge hourly vs. having a set fee for the entire project. Since I was brand new to the freelance world, and my client knew that, I decided that setting a overall lump cost for the project was the better way to go.

I already knew I would be putting in extra time since I didn’t have a project codebase or experience to lean on. I still had a lot to learn about the technologies I chose to use, and let’s be honest, I was still pretty slow. And I didn’t want my first client to pay for my learning curve.

We discussed pricing in person, and looking back it seems a bit like I low-balled myself. But that’s only because the amount of time I put into the project did not have the best return when breaking in down into an hourly earnings.

However, the price was agreed upon and I felt it was fair at the time for both of us. I needed to get my foot in the door, and they were willing to take a chance on a complete noob.

If this went well, I would have my first project on my portfolio and a satisfied customer willing to spread the word. Plus, I literally had no idea how much to charge or how many hours it would truly take me — trial and error.

Creating the contract

Once price, timeline, and content was discussed and agreed upon, it was now time to create my contract with the client. My first thought was, “How the heck do I write up a contract?” And “What the heck goes into a contract anyways?”

I was pretty lost, but I started researching and found this open-source contract for web professionals by Stuff & Nonsense. I took this contract and tweaked it a bit to make it my own. I wanted to make sure that the agreed upon price, payment, timeline, and content were all captured so there were no miscommunications or misunderstandings.

I also included the basic freelancing jargon of who owns what, who is responsible for what, and what the process is if something is not properly handled. After review from both parties, we signed the contract and the project was underway! Hooray!

Note: now that my business has been created, I intend on seeking out an attorney to create an official contract to use with future clients.



I left the most important part of my journey until the end: the importance of grit.

Grit is what got me through the bootcamp while working a full-time job with the late nights, early mornings, endless screen time, dramatic change in my social life (what social life?), the sacrifices of my relationships, time, money, sleep…

This is the same grit that allowed me to graduate with a certificate in Full Stack Development from Georgia Tech, earn a new full-time job at a top company as a full-stack developer, and have the courage and just enough insanity to also start my own company at the same time.

This is what will help you have grit:

  • Be open to change, new technologies, criticism, failure, and success.
  • Hold yourself accountable. No one will be there to tell you to work 8–5 or give you a story to complete. You need to create and complete your own stories and set your own hours. This sounds amazing, but can be incredibly difficult if you can’t hold yourself accountable.
  • Plan, plan, plan. Use tools like Trello to track backlog, development, bugs, and reviews to keep track of your time and work.

If you share the dream of owning your own freelance web development company, expect it to be tough. Expect a drastic schedule shift. Expect a change in your social life. Expect a shift in your priorities. You are making yourself and your company a priority and change needs to occur to make room.

However, with all of the change, there are no regrets with only bigger plans in sight. It is absolutely astonishing what you are capable of when you find your passion, believe in yourself, and are driven to make your dreams a reality. That grit is your power.

Know that you CAN DO IT, all you need to do is JUMP!