Thinking of getting into freelancing?
Mon, 06 Apr 2009 19:30
Here's my current crop of thoughts about taking the jump into self-employment.
Freelancing is fantastic, if you have the right temperament. It's scary sometimes worrying about where the money is going to come from, but nice being able to go out and do your stuff during the day, not worrying about "looking bad in the office."
You have to be selling yourself constantly, so get used to rejection.
Most programmers feel the quality of their code should speak for itself, but that means nothing in this business. Can you deliver? Can you do it well? Are you cheap? Try to focus on the first two and ignore potential customers who only care about the third.
Don't do what I did: try and save up some money before you move into freelancing. That lump sum can save you from some sleepless nights. Keep building up that rainy-day fund for when work dries up for no reason at all.
Get someone to do your tax. Also, get someone to do your tax. Thirdly, get someone to do your tax.
Consider asking your current employer to work with you on a contracting or freelance basis. I know that might not be possible for various reasons -- it wasn't for me -- but give it some thought.
Always look for work. Always. That's been my lesson this year. Its better to have to outsource work to other freelancers than to sit through a dry spell.
10% of this game is the actual programming work, it's the really easy part. The hard part is dealing with customers, selling yourself and managing your finances and business. I hate quoting and invoicing (dumb huh?) and I'm sure you'll find your least favourite parts too.
50% upfront. ALWAYS. You can start doing this right away or wait for the first time you're screwed by a customer. I waited and lost a couple of grand. I know people who have lost a lot more than a couple of grand.
Charge what you think you're worth and stick to it. The worst they can do to you is say no. (If they agree to pay you upfront with cash out of their wallet you're charging too little!)
Follow your gut. If you think the job is a bad one don't go for it. If it seems to be too good to be true, don't go for it. But if you can afford it, take a fun or challenging gig.
Are you the primary breadwinner? Take care of your family. While you're revelling in your freelancing freedom she's worrying about how you're going to feed the dog this month. Or pay the home loan. Go the extra mile to make them feel safe.
— Gav
Now get back to work wage-slave!
PHP 5.3!
Sat, 28 Mar 2009 13:12
Anonymous functions (and closures) are coming in 5.3! Seriously this is A BIG DEAL. in PHP 5.2 and earlier the only way to have an anonymous function is with the create_function() method.
This method is nasty. Here's an example:
function do_stuff(callback) {
/* do stuff */
call_user_func(callback);
}
do_stuff(create_function("echo 'callback complete';"));
So you have code as a string. Not so great. Here's the only way to really do that:
function do_stuff(callback) {
/* do stuff */
call_user_func(callback);
}
function do_stuff_callback() {
echo 'callback complete';
}
do_stuff('do_stuff_callback');
You see? I had to declare the callback method as a regular function and then pass its name is as a string... blegh! From PHP 5.3 onward things will look like this:
function do_stuff(callback) {
/* do stuff */
callback();
}
do_stuff (function () {
echo 'callback complete';
});
So much cleaner! And if you've been writing serious javascript code recently (like me) you're going to feel right at home. (Except for the whole dollar variable prefix thing. What's with that?)
Here's some more information:
http://www.slideshare.net/sebastian_bergmann/of-lambda-functions-closures-and-traits
Setup
Sun 8 Feb 2009 15:33
So, it's been pretty quick to set up a new installation of the framework and to port my old content over. This is it, running on the new framework.
Except there's nothing database-driven about the site. First great feature, pretty URL's (see also .htaccess.)
Next up I'll be converting static-content to dynamic content, where appropriate.
Intro
Fri 6 Feb 2009 16:27
So, one of my goals for 2009 is to revamp the site. A bunch of my traffic has been people looking for Theodore Roosevelt quotes — not exactly what I had in mind.
My site needs to actually say what I'm about from the outset.
A goal I have had in mind is to start blogging. Good blogs, though, need regular copy but writing on a regular basis is something I've not been ready for. I still don't think I'm ready for it.
But it is time to dare greatly inasmuch as writing on your own webpage is great (or daring.)
Of course, aside from today, I plan to restrict it to technical topics and not boring meta-talk *blush*. I take my inspiration from blogs like Joel on Software and Coding Horror.
Any feedback would be appreciated.
Why is this just some HTML in a page and not Wordpress?
Well, I wrote a PHP MVC framework (a great learning experience)
and I've long been slightly bothered that I have this amateur website up instead of eating my own dogfood.
So this is a start. Trackbacks and RSS feeds will come. I'll try and document my progress here.
— Gav