Any Java freelancers out there?

Posted: September 16th, 2008 | Author: Pierre Olivier Martel | Filed under: Freelance, Java | View Comments Lately, I made the switch from making a living out of Java consulting to become a full-time freelancer. My motivations for doing so were, among others, mainly dictated by the need to :
  • Work more from home (no more grey cubicles and old 15 inches CRT monitors for me!)
  • Have a more flexible schedule (sometimes inspiration comes in the middle of the night)
  • Work on multiple projects at the same time
  • Take time to learn new technologies, participate in conferences and start a blog
So far I haven’t been disappointed except for one thing : I can’t seem to find much freelancing Java opportunities. Now, I’m just starting out as a freelancer and it is way to soon to draw any conclusion but I’m beginning to doubt. Is java freelancing possible?

Now don’t get me wrong, there is a lot of java consulting opportunities. I still get a lot of phone calls for Java contracts but being on-site is always a non-negotiable requirement. From what I can see, PHP seems to be more suited for freelancing. It’s the technology of choice for smaller web development companies and the bigger companies working with Java won’t allow their code to get out of their walls or simply want to keep a closer eye on their contractors by making them work at the office.

I’ve always found PHP a little messy for serious development. I am now intensely learning Ruby on Rails in the hope that it might be easier to make a living freelancing with this technology (and also because it’s a lot of fun!). But it’s a long shot and I’m not sure where it’s going to lead.

So how about the other freelancers out there? Any of you doing Java? Who are your clients and how do you find them? Are you allowed to work from home? Are you working in team or on your own?

Choosing the right apps to manage time and code

Posted: September 9th, 2008 | Author: Pierre Olivier Martel | Filed under: Freelance, Tools | View Comments The good thing about freelancing is the freedom you have to choose the best apps for the job. The last few days I’ve been looking for apps to manage my time and source code. Since I might develop from my desktop, from my laptop or from the client site, I restricted my choices to web applications.

Managing time

When you bill your clients by the hour and work on a irregular schedule, you need a good way to track time and know exactly how much you spend on each task. Also tracking the overhead internal work I do (client relation, marketing, training…) and for which I don’t get paid can afterward help me find the right hourly rate to charge my clients.

I had a few requirements in mind before starting evaluating time tracking applications :
  • Simple, simple simple… and fast!
  • Provides some kind of desktop widget (ideally a Google Desktop Gadget) to track time.
  • Manages multiple clients, multiple projects and allows for estimation tracking.
  • Provides a way to do reporting for the client in order for him to follow the advancement of the project.
I tried quite a few web applications that all match more or less what I wanted to achieve and three of them stand out of the pack :
  • Harvest : This is a complete time tracking solution that even lets you produces invoices and track expenses. I really liked the UI but couldn’t customize effectively the billing module (taxation in Québec is more complicated with two levels of taxation). Although it offers a handful of desktop widgets to track time, none of them fitted my needs (Windows using Google sidebar instead Vista sidebar or Yahoo! Widgets).
  • Toggl : This also looked like a promising solution. Toggl has pretty much all the features I was looking for but I didn’t like their pricing options. They only have two kinds of subscription plans: Free and Premium. The free subscription doesn’t include all the features I was looking and at 20$/month the premium subscription cost more than I was willing to pay for a time tracking tool.
  • Tick : This is the one I finally settled for. Real easy, intuitive and fast. I also tested the email customer support and I always got quick replies. Tick provides a desktop widget running on Adobe AIR and easy client/project/task customization. The only downside is that I wasn’t able to find an easy way to produce reports in HTML, PDF or email format to keep my clients updated on my work. But at 9$/month for the freelancer plan, this is a good bargain for what I need.
Managing code

Since I don’t have a server at home, installing a source control repository on my developer computer was out of the question. And installing a server at home doesn’t protect me against thieves or natural hazard. So I had to find a hosting service that provides hosting for Subversion. A quick google search helped me find quite a few.

Since I’m currently supporting only one project that needs source control, I wanted to start out with a free plan that I could later upgrade when the business catches up. Unfuddle and Code Spaces are two solutions that offered just what I was looking for with even more features like bug tracking, project management and wiki solutions.

Comparing their free plans, I settled for Unfuddle since it offers unlimited repositories and 200MB of free storage, which is more than I need right now. Registering a new account and setting my repository worked like a charm. My source code was checked-in in less than 15 minutes.

***

How about you other software freelancers out there. What apps are you using to manage time and code? Any other good alternatives to what I mentioned?

Making the switch

Posted: September 3rd, 2008 | Author: Pierre Olivier Martel | Filed under: Freelance | View Comments

So here I am. Day one of my new career as a professional freelancer in software development. Since I finished university with a degree in Software Engineering a little more than two years ago, I jumped from big companies to smaller ones, each new experience helping me understand the different dynamics of the workplace.

In the past few weeks, I started thinking more about what I wanted out of my career and one thing struck me as the basis of all : passion. I truly am passionate about technologies and software engineering and so far I have not been able to find the proper work environment to truly nurture this passion. All those 9 to 5 schedules, grey cubicles environment, political agendas and big bureaucraty got me thinking there must be a better way. And since the best way to find the proper environment in which to work is to build it yourself, only two options remained : Start a company of my own or work as an independent freelancer.

I considered the first option, starting my own company, but didn’t feel the timing was right. Being successful with a startup takes a few winning conditions like finding the right partners to work with, a good idea and potential clients. I figured that all the pieces of the puzzle might fall into place later on in my career for a startup opportunity but until then the safer more pragmatic choice would be to start off as a freelancer.

Until I get enough workload from clients to work full time, I set myself a few objectives for the weeks to come :

  • Start a technical blog (I guess I can check this one off the list just now!) and write on a regular basis
  • Develop my professional network by attending conferences, meeting with old colleagues and schoolmates
  • Participate in an open source project
  • Learn a new programming language, most probably Ruby on Rails. I’ll blog more about this later.
  • Further my knowledge in software developement and Java (reading Better, Faster, Lighter Java and The Pragmatic Programmer the moment)

Needless to say my main objective right now is to find enough good clients to make a living. This might prove harder than I first thought. I’m putting a lot of energy into this and reading everything I find on the web about finding freelance contracts, pricing and marketing. This should be the subject of my next blog article.