I'm a web dev freelancer as well.
And here my thoughts and tips.
- First, I don't find it a crazy lifestyle, in fact it changed my life for good. I can manage my schedule, I've no boss, damn I'm my own boss. I can choose who I work with and I get to meet very cool people all around the world. Unlike being stuck in a office, with people that you probably don't even like. Also, I can work in any place in the world, as long as I have a computer + internet connection. Take that you in-house Senior Software Engineer (just kidding)
- However, isolation is your worst enemy, you better have friends you can hang out with at the end of the day, or this can really be a very lonely life.
Organization, you MUST BE FREAKING organized, you must really know you. You need to record everything, working hours, projects timelines. To-do lists will help you a lot on this. Always create for the next day before you go to bed.
Freelancing is great, but there will be times where you will have no projects and no money getting in. So put aside money enough for you to live for at least 4 to 6 month. Have a network of friends who do also freelance, we trade a lot of projects and it's a great help. You can also create a product but just remember that this takes time, and time is money.
Forget bidding boards, really, get the hell out of there. Do you really want to value yourself/compete against to some guy who codes for less than $10 an hour ?
Instead, find job boards, contact clients directly, just don't spam anyone.
If you are good at this, look at yourself as a brand, have a a great portfolio, brand yourself, and price yourself for how good you are. You may not get that "I need a wordpress ninja for custom plugin", but if you are good at it you can get much more reliable clients, and by reliable I include, awesome connections, work, steady projects and cool apps to build.
Last but not least...
Instead of trying to be a swiss army knife, focus on what you are really good, and apply yourself, and be the best you can. This will be your turning point after awhile, believe me.
I might take a bit of exception with the 'focus on what you're good at', with the reply that some people may simply be really good generalists. Besides understanding tech, you generally need to have good people skills. Between good social skills and having a good graps on the tech to serve your clients, you may not need to become a domain expert on DNS, or email spam filters, or CSS3, or JavaScript, or any number of tech skills (or business domain skills). Sometimes being able to parse out a client's problem and bring in the appropriate freelance skills when necessary may be the best skill you have.
That said, you have to know yourself. If you're really passionate about search, go become a Lucene expert and become the 'go to search guy' in your area (or perhaps even in a vertical).
Isolation can hurt - I have regular phone calls with a distributed group of guys who are all in similar (yet different) career stages as me, and we bounce ideas off each other, critique, offer support and skills when needed, and so on. Hearing real people on a phone helps much more than solely email or forums.
phatbyte - I'd like to pick your brain a bit more - mgkimsal@gmail.com please if you're so inclined. Thanks.
I worked for a couple of years as a freelance web developer and the only tip I think is really valuable here is "Bonus tip: Make friends with small design shops."
As a freelancer, I think it is very difficult to try and attract work via your web presence. There is too much competition online. In fact, when I was freelancing, I didn't have a professional website of my own at all, I just had my own personal blog, which brought me zero clients.
For me, being an effective freelance web developer was all about making and cultivating personal connections. As a freelancer you must be reasonably good at all aspects of business, including business development and sales. I think most salespeople would tell you that the key to sales is meeting people, telling them what you do, and finding out if they need your services or if they know anyone else who does.
The great thing about being employed in web development work is that it is a skill with a lot of demand, so it is not difficult to find people who need it. What is more difficult is finding people who will pay at a level that makes the pain of freelancing worthwhile (for me, the pain of freelancing was mainly being solely responsible for absolutely everything, including the parts I detest, which are primarily billing and collections.)
As a career freelancer I find it difficult to find the time or motivation for open source work. I feel like most of the people who get involved in open source are probably doing it on the clock at the office, where the extra time spent perfecting free software is subsidized by a salary. But maybe I'm wrong?
I picked a hard problem (Drupal Performance) and worked on a open source project (Boost Module) for about 7 months till I was approached by a company and offered a job. This was an exit strategy I had in mind, get highered. I'm now paid to work on performance related issues & I enjoy it. When it comes to performance, I open source (GPLv2) most of my code since sharing is the fastest way to solve complex issues involving speed and scalability.
All of this to say if you don't find the open source work exciting, maybe you picked the wrong problem for you to solve. Now that I have a 9-5 job, I have less time to perfect the free software I've created. If it works 100% for the biz, why would they want to pay me (time) to fix problems the biz doesn't have.
I've spent time in various open source projects and Drupal was the first one where something stuck (people wanted to higher me). Luck has a lot to do with it; picking the right project at the right time. I've been contributing to Open Source since 2004, 2009 was the first time someone saw my code/work and wanted to higher me.
It depends on how you define contributing, I do not actively contribute source due to the fact that I do not want a conflict of interest to arise on ownership of IP with a client. But I am heavily involved in beta /release candidate testing for several projects as well as bug report submission and general community information dissemination all of these things are passive contributions to the projects and communities around those projects.
I think those people are actually not that significant when compared to some other main contributing parties such as university professors, grad students, independent consultants, and those employed by companies explicitly supporting free software.
You are also probably relatively happy with the tools you already have available to you, which is fine.
My full-time job pays me far too much money to make it worth my time to realistically ever waste it freelancing on the side.
Whenever I do actually sit down and start doing freelance work, it’s at my extremely ridiculous hourly rate. I charge effectively triple my hourly salary just to make it worth my time.
This seems quite self-contradictory. Regardless, I've found that after doing it for a few years, I can make 2-3x more doing freelance than I could in a salary job. All it takes is hustle.
3x salary is actually a great formula for equivalent compensation.
If you make $30/hr salary, you really make $40/hr with vacation/health/employer-paid taxes/use of office and equipment for free/reimbursed travel+conferences
+you don't get paid for slow times, and non-billable tasks
+you have to compensated for the increased risk you take on (consider the reverse--you would take less average pay to know that it's completely reliable and consistent)
Exactly. That's what I meant when I said all it takes is hustle. When you freelance, your have very direct and tangible control over how much you make. You have some control when salary, but the correlation with effort is a lot murkier, in my experience.
Agreed, like I said in my last comment, it all comes down on how you see yourself in the market and how good you are at it.
If you are good and you get the job done, clients will pay anything.
> Every single thing you build from here on out should have as much quality as you can provide.
On one hand, it would discourage me from just going out and building stuff, to get experience. On the other hand, exceptional circumstances ought to be treated as exceptional. If I'm moving between servers, I'd better triple-check that everything has been moved properly before hitting the switch.
- First, I don't find it a crazy lifestyle, in fact it changed my life for good. I can manage my schedule, I've no boss, damn I'm my own boss. I can choose who I work with and I get to meet very cool people all around the world. Unlike being stuck in a office, with people that you probably don't even like. Also, I can work in any place in the world, as long as I have a computer + internet connection. Take that you in-house Senior Software Engineer (just kidding)
- However, isolation is your worst enemy, you better have friends you can hang out with at the end of the day, or this can really be a very lonely life.
Organization, you MUST BE FREAKING organized, you must really know you. You need to record everything, working hours, projects timelines. To-do lists will help you a lot on this. Always create for the next day before you go to bed.
Freelancing is great, but there will be times where you will have no projects and no money getting in. So put aside money enough for you to live for at least 4 to 6 month. Have a network of friends who do also freelance, we trade a lot of projects and it's a great help. You can also create a product but just remember that this takes time, and time is money.
Forget bidding boards, really, get the hell out of there. Do you really want to value yourself/compete against to some guy who codes for less than $10 an hour ? Instead, find job boards, contact clients directly, just don't spam anyone. If you are good at this, look at yourself as a brand, have a a great portfolio, brand yourself, and price yourself for how good you are. You may not get that "I need a wordpress ninja for custom plugin", but if you are good at it you can get much more reliable clients, and by reliable I include, awesome connections, work, steady projects and cool apps to build.
Last but not least...
Instead of trying to be a swiss army knife, focus on what you are really good, and apply yourself, and be the best you can. This will be your turning point after awhile, believe me.