4 ms·
I want to chime in because I did EXACTLY the same thing you did. I took a $10 furniture moving/warehouse job out of college back around 2001 so that I could fi
by zackmorris 12y ago
I want to chime in because I did EXACTLY the same thing you did. I took a $10 furniture moving/warehouse job out of college back around 2001 so that I could finance my struggling shareware game business. I worked seasonally, 7-9 hours during the summer and a few 6 hour days a week during the winter, for 3 years.
It was one of the worst decisions I ever made.
I lost the next decade of my life to profound depression after the loss of a close friend, crushing debt, no social life, just really endless problems that were exacerbated by the regressive political climate of the times. I felt a strange duty to give up my dreams and put my nose to the grindstone to make up for the cushy years of the late 90s when the future was so bright you had to wear shades. It put me so far behind that I was just coming out of my funk in 2007 and had no reserves to prepare for the housing bust even when I saw it coming a mile away. I got another dead end computer repair job for 3 more years only to see $1000 per month go toward my credit card debt (which never went down even though I haven’t used a credit card since 2008) which led to a falling out with my business partner and total implosion of my finances which I won’t go into. So in many ways my career didn’t begin until around 2011 or so when I started over.
But, in the 3 years since, I worked very hard every day to make it as a freelancer and it seems the effort is beginning to pay off. I started small on freelancer.com, getting $100 jobs that I completed every 1-3 days and began to see that it was a possible replacement for a regular job. I supplemented my income by flipping old Macs on ebay and craigslist. Then I moved up to elance and odesk and began taking jobs in the $1000-1500 range. I’ve worked with a couple of clients in the $5000 range and had a 6 month contract at my hourly contracting rate which allowed me to save enough to live up to a year afterward with no outside income. I’ve started getting so many leads filling my inbox that I can’t answer them all. The catch is that this is mostly for iOS work, which can be extremely taxing/tedious if you bump up against limitations in the APIs (which seems to happen often in the projects I take on because I like the fringe stuff). So there is definitely work available, but be prepared to put in a lot of hours both on and away from the computer.
The biggest challenges I face now are lean weeks between gigs and just general anxiety from everything resting on my shoulders. I’ve found that the right client there makes all the difference. If you remember the old adage “good, fast, cheap - pick any two” then the default mode tends to be good and cheap if you are a perfectionist. So clients that are well educated and/or patient tend to be more copacetic than clients that are merely wealthy or business-oriented. YMMV though because I tend to be a lazy programmer who likes to write the best solution once (as opposed to iterating) so I do the majority of my problem solving in the background of my subconscious. In my younger days, I was kind of the opposite, and would have made a better rockstar hacker in a startup doing good/fast work had there been more opportunities after the dot bomb.
I feel like I’ve been a bit of a broken record about this stuff but it’s because I wish there was a road map available for new developers so they could avoid the same mistakes I made. For example, always charge at least your overtime rate which in your case would be $18 per hour. So that means if you bid for a flat rate job, draw up your hours estimate, multiply it by 3, and multiply that by $18. So say you think something will take 2 weeks or 80 hours, you would bid at least $4320 for it. On paper it looks like you’re charging $54 per hour, but in reality it could be 2 months before you get another gig, allowing for downtime. After you do a couple of jobs like that and track your time, you can begin to refine your estimates and get closer to actually making $50 per hour, and then gradually raise it to $75 or $100 or whatever you feel comfortable with. That mostly depends on how much in demand you are, so in the beginning it’s more important to land a couple of gigs than charge top dollar IMHO.
As for where to get gigs, I’ve done a couple for friends in the $1000-1500 range, and if you want to do web development, just look at prominent businesses in your area that have a lousy web presence. I tried cold calling and hitting the pavement once but only had a list of 50 businesses and didn’t get any hits. You should probably aim for at least 100 businesses if you go that route since it’s maybe a 2% conversion rate. A better way is probably to start with immediate family, talk to their friends in various businesses and narrow it down to 2 or 3 and meet them casually over coffee or dinner and make your pitch like it’s old hat. Then your conversion rate might be 50% because you can get right to their sore points and once they are interested in what you can do, charge maybe 50-100% of the going rate in your area, depending on your experience level. The hardest part about that is being on call afterward as the friendly neighborhood computer guy, so have some sort of plan in place for incidents and charge accordingly, say $75 per hour with a 2 hour minimum so they only call you when they really need you.
I just want to close by saying that this is probably a means to an end. My goal now is to be part of at least a 5 member team of consultants (what contractors used to be called in the 90s) and charge hourly business rates, which probably are in the $100-250 range, even in rural America. Either that or save up enough money so that I can bootstrap my own apps. A possible route there is selling ownership in your business, say 10, 20% for X many tens of thousands of dollars but I don’t know enough about how the new micro investing laws work so I will probably have to think of something clever enough for kickstarter. I’m hesitant to go that route again though because I failed so painfully in the past and am really looking for a sustainable business model. This last part seems to be one of the great pains of our time, so I’m optimistic that somebody might provide a turnkey solution, but I’ve been waiting 15 years for it. Grouptalent, gun.io, freelanceinbox and others of that sort seem promising so you might have luck there. If you want to get started right away, I recommend odesk and have heard good things about guru as well. You can definitely do it, so don’t settle for labor because most of the safety nets have unravelled and they prey on people with no leverage. You know how they say not to be the smartest person in the room, or the best player in the band? Well don’t be the only guy in the warehouse without an addiction, criminal record or kids on child support. The ridicule I endured at that job was at least as damaging to my psyche as the low pay and backbreaking workload. Get out as soon as you can.
- shire 12y agoWow that was actually very helpful, thanks a lot for this info. Just one last question as a starting freelancer is PHP and Wordpress a good tool for learning to become a Freelancer web developer or is there something you recommend?
- zackmorris 12y agoYa I used Wordpress as a CMS for my first few clients and it is a good way to learn the ropes because you can roll out a site rather quickly. The main issue is maintainability, which I will explain below. I really enjoy PHP in particular, but it's not a very well-formed language. It's kind of like English, it's evolved over time to do everything under the sun and has a lot of contradictions. That said, I've never found a language that lets me work faster to prototype an idea. I have high hopes for Go though, and keep in mind that PHP and Javascript are nearly identical except for a bit of syntactic fluff like the $ and how Javascript kind of goes off the deep end when you get into things like prototypes. There is a whole spectrum of C-based languages like Python, Lua, Java, D, C#, C++ that are all worth learning. I started with C++ and worked my way up to higher level languages, which is why I tend to be more of a back end programmer. I’ve never quite wrapped my head around Perl or Ruby because in my mind they tend to mix functional concepts with imperative code in kind of a weird way (lots of regexps, sets, filters, stuff like that, but still requiring the elbow grease of C) so it's probably better to start with a language like Lisp or Scheme before learning them so you have the fundamentals, or else your code might turn into spaghetti. For what it’s worth, I ended up moving away from Wordpress because it can be a target for hackers. You may have to update sites each year as security vulnerabilities are fixed. But Drupal and Joomla have the same problem since they are built on PHP (they are also sledgehammers when a pencil would do). So if you have the option, it might be better to go with Node.js or Go because I think they are probably the future of servers. Node.js has the achilles heal of callback hell, but, I think generators and coroutines will eventually alleviate a lot of that pain, and futures might be a stopgap until then. If I do web work again, it will probably be with static sites generated by something like Jekyll or Phrozn, with jQuery and Foundation/Modernizr for the fluid layout, and only write a few back end scripts when needed. I used to host on Linode but found that companies taking the Rackspace approach are really operating at too low a level than what most people need. I highly recommend Firebase and their CDN hosting for this, because you can avoid having to maintain a server or write back end code altogether. If you decide to move some of the code to the front end, Backbone.js is a good thing to know, but inordinately complicated for some reason. I think REST APIs/CRUD are great but either build them from the start or keep them in mind as you structure the site so they can be dropped in easily. React.js might alleviate some of the front end pain eventually. Maybe skim or ask Stackoverflow for the best CMS that can optionally generate static code and that either has a nice GUI for layout or supports Markdown (if you find one, lemme know!). That way you can keep your content separate from your presentation in a more maintainable way than the old methods like pulling it from a database, and compile your site like you would any other application. The web evolves so quickly that any content that is mixed with the site itself will eventually become unmaintainable. Techniques like that will let you also roll out to mobile or other viewers. Allowing users to edit content easily is still an open problem, so for now I would recommend taking contracts that don’t require it. Either that or give them a simple Markdown or other interface and store their body copy in the database, but don’t worry too much about letting them edit the structure of the site because most clients don’t end up needing to. Better to generate that from some high level description IMHO. That’s where frameworks like Foundation come in, because you can begin to think of the site as data instead of code and let someone else worry about the inevitable browser incompatibilities. Everything is moving towards SASS, because most of the uncertainties in web development will eventually become ubiquitous tools, so check out appfog and learn how your back end can call a service’s database, email, or whatever other API you need so you don’t have to build that stuff out yourself. It’s worth a few dollars a month to have someone else worry about the edge cases and failure modes. Actually, after writing this out, that’s really the best advice I can give you, is find people who are getting into SASS (either providing it or utilizing it). Maybe see if there are any local meetups in your area, or at a university if you have one close. It would be good to start a blog as soon as possible and document the hurdles you encounter them, because others can learn from it and you’ll get some job leads from it eventually. I’ve been meaning to do that myself so that I could just point to a link instead of being so verbose on forums! I hope I haven’t said too much here, I just am trying to convey the pitfalls I encountered so that maybe you can avoid them. Just pretend it’s always a year or two from now and keep your eyes on the latest and greatest stuff and you’ll do just fine. Be skeptical of anyone claiming to know the “one true way” and always remember that fatal flaws in every approach are eventually exposed, to the future is a moving target. But where there’s trouble there’s also opportunity. Good luck!