I have been interviewing candidates lately for a developer position requiring 10+ years experience and have come across a couple of CVs that I am not sure how to understand: I have interviewed a few of these people and so far have had no luck.

What are people's experience with developers with about 10 years experience, but who from day one have been working as mostly project-based freelancers? Are there potential benefits or drawbacks to a software development firm in having that type of experience?

This question appears to be off-topic. The users who voted to close gave this specific reason:

"Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – durron597, jwenting, GlenH7

How is this helpful? You can't get any meaningful information by generalizing all freelance developers with ~10 years of experience, nor will anyone's experience with different individuals help you. You're interviewing them, so you (and perhaps other members of your team) have interacted with them. Are they qualified? Are they a good personality fit for the team? What exactly else are you looking for?
–
Thomas Owens♦Sep 24 '11 at 19:40

@ThomasOwens - I believe he is asking how do programmers who mostly worked as freelancers (as opposed to those who have spend most of their time working for a company) differ? Personally, this is an ok question and it stands. It is undoubtable that for example, freelancers will understand the concept of project management and management in general a little better than those who haven't done it.
–
RookSep 24 '11 at 19:59

@Rook - How does project management differ in an employee situation as oppose to a consulting situation?
–
JeffOSep 24 '11 at 21:23

Assessing people is a complex process, that shouldn't be dumbed down to trivial criteria, such as having been a freelancer or not, having 10+ years of "experience" (whatever that actually means) or having written at least 1M LOC.
–
back2dosSep 25 '11 at 0:07

9 Answers
9

This depends a lot on the developer. And the job you're interviewing for. And what exactly you mean by freelancing.

There may be a concern over their ability to work as part of a team (they may not be keen on code-reviews, for example). But then freelancing might involve going to a company and working as part of a team, or even working as part of a team of freelancers.

There may be a concern over their lack of experience maintaining a product, assuming you work for a company who has a legacy product to maintain, but it could be that the nature of their work has given them that experience.

There may be a concern over their ability to stay in one place. Or that may be exactly why they're trying to get out of freelancing (plus, I've had salaried staff leave after a year).

And it might be that all those things are a problem but it doesn't matter in your workplace.

On the other hand, there is a good chance they'll be better at other parts of the development lifecycle (such as project management, gathering requirements, testing) but it's possible that they've had someone else doing that for them, or that the companies they've worked for have taken on that part of the job.

So, in the end, it's just like interviewing anyone else. Identify your concerns before the interview, make sure you ask the right questions and don't waste time on stuff like "what do you think is your biggest weakness?"

Thomas Owens comment is pretty to the point. Having been been a freelancer doesn't say anything about someone as a person or as a developer.

Personally, I have been working in software development in a couple of distinct capacities:

As an employee of a (large) consultancy organisation. I would work on their clients' projects at their clients' place of business. An hour-invoice type of deal, this was at a time when the concept of fixed price project was still at its infancy.

As a freelancer / self-employed contractor. Essentially this was the same as being employed through a consultancy organisation but I had the power to say "no" and could go after projects I liked.

As an employee of an in-house development shop.

As an employee of an independent software vendor.

As a business owner, developing smaller software applications for clients.

What does that say about me as a developer? Nothing.

There are many prejudices about freelancers, for example that they don't have any staying power, are easily bored, can only be trusted with the simplest of assignments. They probably are true for some, because if you do get that itch or your quality isn't up to scratch it may be easier to jump from project to project than to stay with one organisation for a longer period of time.

Freelancers are willing to take their skills and put them on the line. They get the boot quicker than any other employee, often simply because the money ran out or company politics killed the project they were hired to do. If someone has 10+ years experience as a freelancer, he or she has been able to pay the bills for all that time without the comfort of job-security. To me that is a positive. Even spells of many short contracts (3 months) are not necessarily a warning sign, while that would most certainly set alarm bells ringing for someone who was an employee all that time.

And what about someone who was employed all that time by a couple of consultancy organisations? They could easily hide the fact that they were booted from every project they worked on, simply by not mentioning specific/any projects or being vague about their duration.

Or someone who was employed by let's say three big organisations with large in-house development shops? Are they any better? More stable? Again it would be easy for someone with an employment history like that to hide less attractive facts in a general description of their employment. Never mind they were spat out by every team they were assigned to.

TLDR

The type of contract someone had when working on a project means tiddly squat. Having been a freelancer your entire career doesn't say anything about your worth as a developer. Nor does having been an employed person all your career say anything about your worth as a developer.

Some of the longest jobs I've had in my career have been as a contract programmer. I spent 4 years on a contract at one company, spent 4 years on 3 "full time" jobs, and then went back to the same company on another contract that lasted over 6 years. I cared as much about the success of the project and lost as much sleep over problems as anybody on those projects. I did design, coding, customer site visits and weekends on call. I dare say I'd be as invested in the success or failure as if I'd owned the company. I resent the implication that because I was a contract programmer that I didn't care or work as hard as anybody else. The only difference is that I didn't get a health care plan.

Can the candidates give you a good reason why to work as a "freelancer" instead of a "company job" ?

There are several situations currently on the I.T. industry that pushes people to go "freelancer" instead of a "payroll job"

Long extended boring answer

This is a trickly situation.

Many "old fashion payroll HeadHunters", take "freelancers" as "inestable" or "untrustable" or "cannot keep a job" candidates. And some cases may be.

But, these days, Many companies that require Software Developers have change from been a "payroll" or "long term work within customer office contract" jobs to "short term within customer office contract" or "freelance work at home contract" .

There also some situations where developers may choose to go "freelance", and still be responsible, and perform well (I personally think these are good reasons, but, its subjective):

Lack of jobs on living area, but unavailable to change location

Age discrimination, you're over 35, and the company decides you to replace you, even if you have a good performance, and other companies do the same

Has a disability, that doesn't allow to have a job at a company,
but, can work at home

Have some independence, like parents with children, that can adjust or move its work time
(have to get the kids at school at 9 AM)

No job promotion, companies decide to hire "Ivy League Business Project Managers", and keep 5 to 10 year employees as "junior developers" for the rest of their productive life

Have tattoes, piercing, weird hairstyle of clothing, have a rock band, and still be very responsible at work

"Freelance" is a half way to "Own Software Developer Company"...

What are your reasons to accept a "freelancer" ?

What are your reasons to reject a "freelancer" ?

Does the "freelancer" paradigm works well in some projects, and bad in others ?

Can the candidates give you a good reason why to work as a "freelancer" instead of a "company job"? It's generally not "trickly" at all -- you choose to freelance when you're willing to trade stability and benefits for flexibility and a substantially higher hourly rate.
–
CalebSep 25 '11 at 4:25

I can only offer my personal experience. I've never worked as a freelancer, but I have worked with several folks who only worked as freelancers. They've all been very good. We would have been please to hire them as permanent employees, but they preferred to stick with freelancing.

Someone who has kept themselves employed as a freelancer for ten years and has been through at least one down business cycle will generally have good judgment, a lot of drive, and enough technical chops to keep most of his customers happy. You can't make a hiring decision based on this point alone: somebody with ten years of freelance web design isn't magically going to be a great low-level coder on a database server. However, if they'd been working in the right general arena, somebody with a ten year record of successful freelancing would go straight to the top of my resume pile.

They may not be inclined to put up with tedious busy work, or pointless bureaucracy. The folks I worked with did fine with bureaucracy in general, but they drew the line at pointless bureaucracy.

Obviously you have to call the previous employers and customers to verify their work history and quality.

Well, there's different types of independent contractors. Some are really the same as corporate developers, their paychecks are just processed by a different company. Some mainly do long term (6 month+) single client engagements, and some are specialists in a particular technology.

This may be an Americanism, but I typically equate "freelancing" to a solo developer/entrepreneur who works a variety of smallish engagements for a variety of clients. The rest of this comment pretty much strictly applies to the somewhat stereotypical traits associated with that role. Of course, any individual should be judged individually - but, for me at least, there are a few different areas of probing during an interview that are dictated by the candidate's background. With that disclaimer, here's my thoughts on freelancers:

Some are freelancers by choice, some by circumstance, and some are forced to it.

You obviously don't want any of the latter - there is a non trivial amount (but nowhere near the majority) of freelancers that would not survive long-term employment for either personal or technical reasons. The only way they can get by is by constantly changing employers, and staying one step ahead of their poor references. These are pretty easy to weed out with standard interview practices - which should catch the bottom of the pile corporate developers as well. A freelancer's references are usually more forthcoming than a poor corporate developer's though (who often will either refuse to provide any useful feedback, or are so happy to get them out the door they'll lie through their teeth), so use those as well if you're still unsure.

Freelancers by circumstance will usually have either a long term engagement or a period where they went from employee to freelance for the same corporation. For me, I usually treat these the same as an employee - yeah, they're freelancers, but it's not really a part of their identity.

The freelancers by choice are where it gets interesting. These are the folks who have possibly turned down full time employment multiple times, but are now looking for a steady gig. Going from freelance to full time employment can certainly be a culture shock - and you want to find out why they're making the move. I'd look at these candidates similar to one looking to relocate - you're not just judging the company fit, but trying to make a determination on the lifestyle fit as well.

As for specific upsides/downsides, it's a mixed bag. On the pros, you may find more experience/skills in:

communicating with non-technical stakeholders/audiences

juggling multiple priorities

getting up to speed on a project or technology quickly

areas related to but not development (project management, server administration, support)

initiative

a personal support network

flexibility in work schedule

On the downsides, you may find:

lack of status reporting/bug tracking and team communication

little to no source control experience (don't know why, but a lot of solo developers don't see the need for it)

a focus on cranking out projects, with little to no eye for maintainability

a default resistance of "authority", whether that authority is corporate bureaucracy or a manager or a senior team lead or the team itself

flexibility in work schedule (see what I did there?)

Which, at the end of the day, are pretty much the range of solo corporate developer traits as well.

+1 for the last two points: resistance to authority and flexible work schedule can be a motivation for choosing a free-lance activity. Giving these things up could be quite difficult for a free-lancer.
–
GiorgioJun 22 '13 at 18:19

I somewhat agree with that initial comment but I do think there are at least some things worth considering on a somewhat subjective level.

Somebody who has done a lot of shorter-term assignments, is more likely to have been exposed to a much wider variety of technology and practices, than somebody who worked at the same company, on the same app, for ten years.

On the flipside of that, somebody who's worked on the same app for 10 years, is more likely to have a heck of a lot more patience dealing with legacy systems and will know a lot more about the impact of changes to a system in terms of long-term maintainability etc...

There are of course exceptions in both cases. It really depends on the nature of the work they've done and the personality of the individual doing it. A freelancer could be highly-specialized as consultants often are. The ten-years guy could still be juggling a wide variety of technologies depending on the nature of the work. I would treat these things more as avenues worth exploring at the interview than pre-judgments to rely on before it even starts. If I were putting a team together I'd want both devs described in the bullets on my team, personally.

But if you're looking to establish whether somebody is flaky on a single scan of a resume, I'm 100% agreed with that first comment. People don't choose freelance for 10 years because nobody will have them for full-time. It's what worked for them in that 10-year span and now they're ready to do something else.

If your problem is that you're getting more interest than you have time to interview, looking to filter candidates on arbitrary criteria should be a last resort. I'd recommend going to back to your ad and getting a lot more specific (and by that I don't mean "add more acronyms/bullet points") about what you're looking for and what kind of work they can expect to be doing at your company. That will allow a lot of them to filter themselves out.

Treat it like a matching process, not a contest. The advantage of candidates with that much experience is that the better you describe what they can expect, the more people who know they won't like working for you won't show up because they have plenty of options. And that's a good thing that reflects badly on neither you nor them. It just makes your job easier.