I have been freelancing for the past 4 years and have done so for 6 years in my programming life of 11 years. All said and done, I find doing a honest job in estimation, no over billing and writing code to the best of your ability is the key to success.
Documenting your own knowledge helps a lot. Knowing what is the latest and greatest, even if you have never tried it helps in keeping your client informed about their choices.
Not living in your comfort zone is the best thing you can do to yourself. What I mean is, don't give your clients what you know, give them what is good for them even if that means you have to learn a new tool/trick/language.
Maintain a healthy pipeline, it helps in keeping the stress down.
On a day to day basis freelancing is more stressful then a regular job, but on an average over a month or quarter you will find it to be more relaxing and it lets have more time for yourself.
There is the Check 21 Act[1] which does not need ACH and is not subject to any of NACHA rules, regulations or fees. Banks already use it and if it is integrated well, it brings down the payment time to 24hr.
Check 21 describes a file format that is used by banks and service providers to upload payment information to FRB.
We created a complete bandwidth management product using iptables and tc back in 2001, with packages based on bandwidth, hours of usage, usage in hours etc. It was used by small ISPs.
lartc.org was the bible we used to traverse the path of achieving control and command the precious resource called bandwidth. Those days are long gone, but building that small product gave me a chance to learn about networking like never before and taught me a lot.
I got a call to interview with Google 10 months ago. Had two phone interviews which went well, could not answer a Javascript prototype object model question, but the interviewer was very kind go explain me where I was wrong.
After a few weeks went for an interview at their MV campus, awesome place. Of the 4 interviews of 45 minutes each and one lunch session that I had, I would say I did good in 2, fine in 1 and goofed up 1.
I did not get an offer, I had guessed that with how my interview went, but my hopes were high :-). All in all I learned new things, met some excellent people and had a great time.
I had read online about the white board process, so I was prepared for that. I really feel for the interviewers that they had to sit for 45 minutes looking at my bad handwriting ;-). The only thing that I could not understand was why when I was not being interviewed for a traditional engineering role, I was being questioned about Big O, algo design etc. The HR lady told me it would be related to the area of my work (Web development, Javascript, Open source contributions etc), but the interview at MV was not at all like that.
Having read other peoples experience with interviews at Google and the scale of their APIs, I think at some point they are looking for people who can do whatever is thrown at them and not just be bound to the technologies they know. All the CS questions they asked me, I feel they were justified to ask them, they wanted to find out if I will be able to work in other areas if need be and not just be "a frontend developer". The interview was easy, I was just not prepared to answer those questions.
Given a chance, I will do it all over again, but this time will go mentally prepared for a CS 101 interview as well.