The way to long-term freelance jobs

Doing good work, on time and within budget, is only the starting point. Here are some ways to really shine, and foster a longer-term collaboration:
  • Contribute ideas. Go beyond the call of duty. When you can suggest improvements, either for the immediate task at hand or to complement the employer's efforts in general, you show that you brings ideas and initiative, as well as technical skill.
  • Beat deadlines. The employer wants to feel like he's getting more than he's paying for, so you want to surpass expectations whenever possible. Coming in ahead of schedule is a no-cost way to impress.
  • Be responsive and available. You're not there in the same office, but do your best to prove that distance is no challenge. This can mean checking your emails outside local "business hours," and finding other ways to minimize the impact of time zones on your relationship.
  • Earn trust. If you don't know how to do something, admit it. If you're eager to tackle a challenge, but lack the experience, tell the employer — he may give you the go-ahead, but being honest upfront will keep expectations realistic and help him make a smart decision about assigning the work.
  • Communicate smoothly. Sometimes emails between you and your employer may be unclear, or seem negative. Work to fix communication issues early on. You want your employer to view communicating with you as a pleasure, not a chore.
  • Be "low maintenance." The employer gives you work to make his life easier, to get it off his plate. Try to get all the information you need early on in the assignment phase. Never hesitate to ask followup questions, and give progress reports at the expected intervals. But try to get everything you need up front to make the employer feel like working with you is an easy choice.
via ODesk Newsletter


CI Feature Matrix

CI Feature Matrix @ thoughtworks.org

Quite an interesting observation: compare biased comparisons of Ivy and Maven against each other, each proving itself to be superior.


Interview Improvements

So what should a developer job interview look like then? Simple: eliminate the exam part of the interview altogether. Instead, ask a few open-ended questions that invite your candidates to elaborate about their programming work.
- What's the last project you worked on at your former employer?
- Tell me about some of your favorite projects.
- What projects are you working on in your spare time?
- What online hacker communities do you participate in?
- Tell me about some (programming/technical) issues that you feel passionately about.
These questions are designed to reveal a great deal about the person you have in front of you. They can help you decide whether the candidate is interested in the same things as you, whether you like their way of thinking, and where their real interests lie. It's tougher for them to bullshit their way through here, because the interviewer can drill deeper into a large number of issues as they present themselves.
What about actual coding ability? Well, take a few moments after the interview and look into some code the candidate wrote. Maybe for an open source project, maybe they have to send you something that's not public, doesn't matter. Looking at actual production code tells you so much more than having them write contrived fiveliners on the whiteboard.
I'm sure you can come up with even more questions and other ways to engage the interviewee. At this point, pretty much any idea will be an improvement.
I don’t think there is one right developer interviewing technique. It is worth mastering a variety of interviewing techniques and then adjusting based on the job requirements, team composition, manager style and company culture.

Here is an initial (incomplete) list. I’ll update with new content from comments & conversations.