Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Guest blogger Ryan Wachtl is an independant US-based web developer and runs the SilverStripe user group in Madison. Prior to this, Ryan wrote about SilverStripe PayPal Mini Cart Integration.

I recently celebrated my fifth year of freelancing as a web professional. This had me thinking about how I’ve grown over the years, both personally and professionally, and I’ve learned that, as a freelancer, the lines often blur between the two. Many of you may also freelance, either full-time, part-time, or on the side. You may have left a corporate or agency job in pursuit of greater control and more freedom, or maybe you’ve never freelanced, or like me, maybe you’ve always freelanced. Regardless of your current situation I hope you’ll find something useful to take away from this as I share my experience with you. At the end of this post I offer up my advice to any struggling freelancers out there.

First I should clarify what I mean by I’ve always freelanced. This has been the case ever since I found myself, somewhat unexpectedly, working in the web industry back in 2007. I had worked for a hand full of employers prior to that, but they were in unrelated areas like retail, horticulture, and even in a lab. Before I fell in love with web technologies I was studying to be a scientist, specifically in the field of plant biology. I still try to stay current in the field, and I did ultimately graduate with degrees in biology and human biology, but about a year prior I took on my first web project, one that would set me on a new path. My friends had just started a bicycle company and were in need of a web presence. I had hacked together a site or two before this in 2000/2001 (before web standards had become wide spread), but I was turned off by all the inline font tags, table-based layouts, lack of good CSS support in browsers, and the horrible abuse of JavaScript. My friend's new company website was my first paid web gig and the one that ignited a new passion inside me.

Shortly after my first paid project I left my part-time job and set out to self teach myself as much as I could about HTML and CSS over the next three months. I spent the following year taking on a few more projects, adding Javascript and PHP to my tool belt, all while finishing up my last year of college and a rather large undergrad research project. In the summer of 2008 I graduated and was sent into the world to fend for myself. Rather than continue onto graduate school or take an entry level job in biology, I set out to pursue a full-time career as a freelancer. Little did I know that I was in for some challenges.

In the beginning

Things did not come easy at first. During my first couple years I struggled with time management, work/life balance, and had my share of failed projects and client relationships. I found myself so obsessed with productivity that I was actually spending more time trying out various management tools than I was doing actual client work. I wasn’t entirely confident with my skill level so I would price out projects based on a low hourly rate and then quote a flat rate for the project. This put me in a position of working long hours for little pay and in the end I found I was not getting a great deal of satisfaction from my work. Accepting calls from clients at all hours of the day and stringing out the length of projects to offer a false sense of job security had me questioning whether or not this freelancing thing was really for me. My health started to decline due to all the stress (I had no health insurance at the time), I started to feel isolated, and I had nothing to show for it. I knew that if I was going to survive as a freelancer, I needed to figure out how turn things around.

Discovering my worth

The first step I had to take was to figure out what my time was worth, this included being realistic about how many billable hours I could actually fit into a day. I found out that freelancing is about more than just producing designs or writing code, I needed to handle accounting, marketing, and other business related housekeeping tasks, not to mention the daily emails that come in after you’ve worked with dozens of clients over the years. To get at my current hourly rate I worked backwards, first setting a revenue goal for the year and breaking that down into the number of days I wanted to work and the percentage of time I could invoice. About 60% of my work day is billable now, if you’re doing better than this congratulations you’re ahead of the curve. Getting my rates and time management sorted is something that just took time, I needed the experience to be able to estimate project scope and time more accurately, and gain the confidence to ask for what I was worth in return for my services. I’ve been able to double my revenue over the last two years and while I’m still not getting rich, everyday I feel like I’m moving more and more in the right direction. When it comes to matters of time and money I think Alan Weiss put it best in Million Dollar Consulting:

“Wealth is not money, but discretionary time. You need to make the money necessary to have maximum discretion as to how you spend your time”

Finding my niche

The second step that really turned things around for me was finding my niche. I had been building websites on SilverStripe from the beginning (after a long search for a quality CMS), but I didn’t actively seek out SilverStripe related work and thus found my time spent working with other platforms like WordPress, Magento, and Drupal, at the request of clients. At the onset of 2011 I decided to focus solely on providing front-end and back-end development for SilverStripe projects. Shortly after, I organized a local SilverStripe user group and started to seek out agencies that were using SilverStripe who needed help with overflow. I still work with a few of my own clients, but making the switch to working on portions of a project, as opposed to managing an entire project, has cut down on a lot of my non-billable administrative work and allows me to focus on producing quality design and code. I now have nice working relationships with a handful of agencies across the United States and I get to pair my skills up with other great designers, developers, and strategists.

The three constraints

And finally, the other major step I took, or more so the final hurdle I overcame, was to improve my project management skills. Once I realized how the three constraints in project management (scope, time and cost) impacted the ultimate success of my projects, I was able to gain control of my schedule and prevent projects from going horribly awry due to scope creep, unrealistic deadlines, and other conflicts that can arise within the three constraints. Early on I had a few projects that either failed to come to completion or failed to perform post production because I tried to fulfill a clients wish list of features with whatever budget they had. I am now wiser, and instead of focusing solely on features, I start all new projects with a list of goals (both user and business goals) and figure out how best to accomplish those goals within a given budget, or in some cases, what budget I feel is required to make it a successful project. I’ve been able to steer clear of problem projects when I see that a given budget does not match up with the expected results. For me, a successful project is more than just shipping a product and getting paid for my work. I need to see that the small businesses, agencies, and non-profits that I work with are getting value from my work and in turn are achieving their goals. Forming quality long-term business relationships and seeing other businesses grow as a result of my work is how I found job satisfaction.

Forward

I’ve come a long way, but I’ve still room to learn and grow. I have yet to put together a decent portfolio and should stop making excuses about doing so. I can be kind of hard on myself and keep thinking; my next projects will be so much better and they will be worthy of show. I really just need to start putting myself and my work out there more. While I’m really comfortable on the front-end, I’m still working on becoming a better programmer, like getting more into test-driven development (something SilverStripe is already nicely setup for) and delving further into object-oriented programming with both Javascript and PHP. I would also like to share more. I owe much of my success to all those that I’ve learned from. Far too many to name, but from your personal blogs, to stack overflow contributors, and to all of you in the SilverStripe community, I sincerely thank you. I need to return some of that, I need to take a little extra time to write about the solutions to the problems I come across.

Lessons Learned 

My advice to struggling freelancers.

  • Raise your rates. You’re likely not charging enough. After I raised my rates I gained more respect from my clients. It also encourages me to work smarter and be held accountable for delivering something that warrants said rates. You may need to juggle several different rates as you ease existing customers into it. Be honest and upfront with them, explain why you made the change and how it servers them better. Look at other trade and professional services in your area (plumbers, electricians, computer repair, etc.), I’ve found it a good gauge for setting hourly rates for a local market.
  • Get out and socialize. Let’s face it, freelancing can get lonely. Get out to conferences, they can seem a little cost prohibitive at times but the connections you make there are more than worth it. Join Meetup.com groups, present at them, or form your own if there are none. I’ve found that one of the best ways to learn new skills is to try teaching them to someone else. You’ll quickly discover your core competencies, and see where you may need improvement. Also check your area for co-working spaces.
  • Specialize, but not too much. I’ve found success in directing my efforts towards all things SilverStripe, but I also maintain a generic skill set. If you find yourself deep into one particular framework or project, don’t lose sight of the underlying technologies used in the project. For example, I work with jQuery a lot, but spend time now and then making sure I understand the abstraction and write vanilla Javascript. That is, decouple your proficiencies from the context of your tools and you’ll have a lot more job security and flexibilty.
  • Build long-term relationships. Take care of your clients and they will take care of you. As a freelancer I’ve found that the majority of my work comes through direct referrals. I don’t believe in bad clients, but I do believe in bad designers and developers. Most client relation problems are the result of poor communication. It’s your job to educate the client and clearly set expectations. But yes, sometimes it just doesn’t work out, learn from your mistakes and move on.

Well, that’s my story (in short). Are you a freelancer? What has your experience been like? Leave a comment below or hit me up on Twitter. If you find yourself struggling like I was, get in touch and maybe I can offer some more advice. Despite it’s hostile nature, freelancing can be a very rewarding experience.