In the beginning of my career I tried to freelance a little bit and I realized that there was only simple things to work on. Like develop some site, or fix some bugs on existing site, or something routine and boring stuff, which full-time developers from that company wouldn't be happy to do.<p>I was thinking recently that it would be great to work as a freelancer from anywhere on different things every time and don't stick to something for a several years. But I'm afraid I won't be able to find something really challenging and interesting like things I would work on at full-time job in some SV tech startup. By interesting and challenging I mean something with performance challenges, huge amounts of data, distributed systems, scaling and stuff.<p>Am I right and I should better look for a full time job? Or am I just don't know how and where to find freelance projects?
If by challenging you mean large and distributed, then I would agree these areas are probably less common in freelancing than in longer-term engagements. If by challenging you mean intellectually advanced, there are plenty of freelance jobs involving machine learning, computer vision, and other niche technologies such as robotics. Although my experience is more limited than that of some folks here, my guess is that most jobs, whether freelance or employed, are going to be run-of-the-mill. In many ways, computers were invented to ease boring administrative tasks, and this purpose lives on.
The reality is that most really good shops want employees because they know the value of long term engagements with Software dev talent.<p>My experience is most of my freelancing work has come from corporate systems, it's not glamorous work but it pays the bills and pays well. From time to time some interesting things come along, like working on an ancillary project to IBM's Watson but those are few and far between for the majority freelancing.<p>There are exceptions like if you know nich or less used technology like big data technologies or Ruby for example.
It's possible to work on challenging things. But, if you want to work on things which are specific to a company and which require a long time to learn (say about 6 months before you can become productive), the only way is employment or long term contract. I have friends who work on challenging things via long term contracts, may be this is what you are looking for.
I would think that if you want to work on challenging things as a freelancer, you'll have to specialize in a niche. Your expertise will allow you to make up for a lack of familiarity with a particular code base.