Nicolas Alpi, Web developer

A blog about productivity, startups and me.

Starting as a Freelance

I’ve been self employed for most of my working life. When I was in France I went self employed straight after school, then when I arrived in England, it took me a year to settle properly and I was back on the self employed saddle again.In total, I cumulate nearly 8 years of self employment, most of them Freelancing.

I’m writing this post to share my experiences and mistakes with people who are thinking about starting solo. My market is UK-based small businesses and my area of work is web development, but I’m sure that most of it can apply to any branch of work.

Freelancing is harder than it sounds

Most of the time, people picture freelancers in their pyjamas, waking up at 1pm and working in bed. I can safely say that I don’t think it ever happened to me. In fact, maybe it did, when I was really sick, but had something really urgent to finish.

Freelancing is about building a business where you are the only asset. People will pay for your time and your expertise. This is the only thing you will sell.

I’m certainly not saying that you will have to work up to stupid o’clock every day (and if it does happen you’re on the wrong track), but from time to time that might happen.

On top of your normal workload, you need to keep finding clients. So you need to market yourself and find new leads but also send invoices, do your bookkeeping, etc.

Freelancing is not just about working on your passion unfortunately, it is about building a business.

(I know this sounds a bit bitter, but there are also many fun and rewarding parts of being a freelance, I just like to warn people.)

Ask yourself why you want to be freelance

Before you go to the HMRC website and register yourself as self-employed, you should take some time and think about why you want to be freelance and what you want out of it.

There could be multiple reasons, from having more freedom, more free time, or working on projects that you choose, technologies that you choose, or being able to work anywhere, having no boss.There are hundreds of valid reasons. Taking the time to think about them before you start will allow you to clarify what type of work you want to accept, what type of clients you want to bring in and what you will consider as a success.

Where to find clients and how to keep them

You’re now ready to start, you know why you want to go freelance. Now it’s time to find your first clients.

Where to find them?

Asking all friends of friends who might be after the service you offer.

If your network is small or irrelevant to your service, then you’ll have to show up at Meetup groups, conferences and random events organised where your potential clients might be.

Networking is an art, and not every event you will go to will bring a new client, but there is a big chance that you will make good connections and who know what can happen in the future.

Don’t take every single lead on board

Starting as a freelance, there are 4 things you need to consider before taking any new client on board:

  • Who do you want to work with?
  • Do they have the money to pay me?
  • Will they pay me?
  • Do they value my expertise?

One mistake that many freelancers do is to take any project from anyone who can pay them. While it sounds sensible, it can turn out to be a massive mistake if you’re not very careful.

Your clients need to value your time and your expertise. With time you will learn to detect and avoid the potential painful clients. If they don’t value your work, they will never be happy and suck everything they can from your soul.

Keep them happy

One thing you will hear a lot is that to keep your clients happy you have to “under promise and over deliver”. I don’t really agree with that idea.

I don’t like the idea of underpromising. For me it’s as bad as overpromising. If you’re expert, you should know of long it will take to achieve X, Y or Z task. Point.

Over delivering is another danger. It’s ok if you rely on that client for a short term. But I like to think of my client relationships as long term. If you over deliver all the time, then what will they think when you can only do what you agreed to do?

So for me, keeping a client happy is about delivering on time and on budget what they were expecting. If we have a good surprise and it went faster than expected then we can over deliver but we will explain to them why we went faster.

What about money?

Here it’s easy. 2 rules:

1. Calculate your day rate

Calculate your day rate based on all your costs: sick days, holidays, bank holidays, days off, shit days, days spent finding new clients, office/house rent, internet costs, software costs …. see it’s not just about working days.

Here are a few resources that can help you sorting this out:

2. Don’t be stupid

Never take a new client without a contract and always ask for a deposit. Contracts can save your a$$ sometimes, and if your potential client refuses to sign them (usually they don’t refuse they just delay and delay and delay), it’s a sign that something is wrong.

The amount of the deposit is up to you, but you should ask for at least 30% of the total amount as a deposit.

If the contract is running for more that a month, then you should include mid-term payments.

You can help yourself with Andy Clarke’s contract killer template

Time management

Time managment is what makes the difference between good freelancers and excellent ones. You have to manage your working time, your marketing time, your rest time, your family time, your gym time and your buddy beer time. Ho and still find time to learn new tech in your field.

A good weekly planning for all this will usually sort you out, but be careful as it’s too easy to burry you head in the sand. Burnout is round the corner.

Then what’s next?

Well hopefully you will be a successful freelancer, you will become a better actor in your field of expertise, and you will become a better person. It did work well for me for 8 years, and I’m now facing new challenges on how to move from a solo business to create a team and a development stdio. If you have any resources that can help me on this path I would love to hear about them.

Good luck to everyone out there who is thinking about starting as a freelancer!

Launch GVIM MacVim With the Correct PATH Variable

I had the problem sitting there for a long time, and I finally found the solution this morning.

When I was launching Vim from the terminal, my $PATH variable was setup properly.
Idem when I was launching Gvim from the terminal, all good.
But when I launching Gvim from the launcher, the $PATH always ended up to the default $PATH (usual /usr/bin … but no trace of my rvm installation). Causing rails.vim and some other commands, Ruby related, to fail.

One of the solution is to edit the Gvim launcher with the command:

bash -lc Gvim

I’m happy I found it, that will give the opportunity to have a proper look at Gvim as a terminal alternative. I found that having menu can be useful time to time for plugins that you don’t use often.

Weekly Roundup 4

Quite a busy week, so not that much links.

What can I do to make Capistrano deploy faster: Simple snippet to make your deploy time even faster when using Capistrano.

Clever algorithms, Nature inpired programming recipes looks like an awesome book, and all the examples are in Ruby. I’ll give it a go as soon as I find the time.

Ruby on Rails best practices: Usally I’m not a big Sitepoint fan, but this blog post, very well written, gives a good intro about Rails best practices.

That’s all for this week, you now can close your browser and return to a normal activity.

Weekly Roundup 3

Startup Quote, inspirational quotes from successful start-up founders.

Why Ruby?, if you still need some help choosing between Ruby and another language.

A week off the grid, I read this advice in the [“Do More Faster”:http://amzn.to/gyJuDb] book, and I’m waiting for my first experimentation. I found Barry write up on his experience very informative.

Your blog is a project, something I tend for forgot on the past.

Gmail gem, A Rubyesque interface to Gmail, with all the tools you’ll need. No need to say more, fantastic gem.

Hero Scale, Automatically scales your Heroku apps. Sounds fantastic on the paper. I’ll give it a go on my next project.

Time-Saving and Educational Resources for Web Designers, a compilation of very useful resources, even if, like me, you’re not a designer you should find some valuable apps.

Ruby There, all 2011 majors Ruby conferences in one page.

Agile in flash, interesting concept off Agile reference cards instead of a book.

That’s all for this week, you now can close your browser and return to a normal activity.

5am Wake Up. Is It So Crazy to Wake Up Early?

I don’t remember the exact date I started, but around a year ago I started a “new experimentation”: Being an early bird.

My sleeping/working background pattern

As a lot of developers, I used to be a night owl. Coding/hacking/writing on personal projects during the night, then struggling to wake up every single morning.

I always had a strange sleep pattern, coding lately for 2 or 3 nights in a row, and then going to bed at 9pm on the fourth day, then again 3 days of late code and 9pm sleep.

I would wake up around 7am or 8am. When I say I would wake up, it was more Nathalie waking me up, pushing me out of bed every single morning.

When I was single it was even worst, I was living with my roommate, and he had the same waking up issues, so we had 4 alarm clock in our tiny apartment. One in every room, so we could be sure of getting up. Not quite effective.

I knew this sleep pattern could not stay for long now for multiple reason:

  • First, my brain didn’t like the non scheduled type of things. Sometimes staying up late, sometimes going to bed early, caffeine all night, it’s not the best way to treat your brain and body.
  • Secondly, I was now in a couple. Being in a couple means doing concessions, you can’t continue to hack all night long every night. So at first we tried to agree on a hack day schedule, hacking X days + Saturday and the rest is unwired. It was working on the first weeks, then all fall apart one day or another. Then I came across some blogs talking about this “waking up early” idea. I decided to give it a go.

At the time, I didn’t know how long I was going to keep it, neither than there was going to be 3 stages on this new habit.

First stage, making it a habit

I’m not sure it would be acceptable for your body to go from 8am to 5am in one morning.

I had to make it a habit. I decided to go for 1 month at first, but 1 month where I would wake up early every single morning, even on the weekend. The idea was to make it a habit.

I was going to wake up earlier each week. I started waking up at 6.30am for one week, then 6am for another week, then 5.30am and 5.15am on the last week. Obviously I would go to bed early, and I found it easier to fall asleep. Strangely I found it also easier to wake up at those early hours.

I started around spring here, and I was rising up with the sun. I would wake up, power on the computer and go to make a cup of coffee, all listening to the silence and feel the light entering the place. It’s a nice feeling.

So it took me around one month to make it a habit, but it took no time to start feeling the positive effect on my life.

Now I’m waking up early, my schedule changed. I can hack on personal projects in the morning, then breakfast, and start working for my clients around 8.30am or 9am. I would probably put an extra hour to personal work around 5pm to 6pm. When Nathalie arrives at 6pm, I can close the computer, and enjoy the rest of the evening entirely dedicated to Nathalie or at least other activities than wired ones.

It took me around 2 months to move from 5.15am to 5am. Doing it by transitions. I’m now going to bed around 9pm, and fall asleep around 10pm probably. Sometimes a bit before.

I try to make sure I have every day at least 7 hours of sleep. It appears to be the time I need.

From silence to rush

After at least 6 or 7 month of this schedule, I was a happy bunny. My productivity was rocketing, waking up with the sun and the birds song was lovely. Evening with my fiancee were great, and it was a nice feeling not to feel guilty of not working in the evening.

Then Nathalie decided to take some courses at the Open University, and we took a gym membership. So that was more activities to add on our schedule.

We decided that we would go to the gym as soon as Nathalie would come back from work, in the evening, and Nathalie decided to give a go to the early rise.

It changed everything for me. The morning silence transformed itself into a morning rush for the first weeks. We would wake up, then take breakfast together, then Nathalie would go to the shower then myself, then, I would finally reach my computer. Even if my client work productivity didn’t change, my morning productive was in a deep down fall. It has been hard, for me, to adapt this new schedule.

Finally it’s just a new habit

So, after a few weeks, I realised it was just another habit. I needed to change my habit one more time. I had the same activities than before (personal work, breakfast, shower, personal work) but in a different order (breakfast, shower, personal work). Starting pomodoro helped me a lot to make it a habit, and to stick with my daily goals.

In a nutshell

So, if you want to start the 5am waking up call, here are my tips:

  • Make it a habit: Start for one month, no cheating, wake up early every single day. Even during the week end. That will help your body to make it a habit. Try to always have the same go to bed time as well, so your body can learn from it.
  • Do it progressively: If you want to wake up more than 1 hour earlier, doing it progressively will help your body make the transition. Go by 30 minutes steps.
  • Have a paper/list ready: I found it easier to have a list of 2 or 3 actions ready near the bed or the desk. So when I wake up, I know what I have to do.

As I said, it has been nearly a year now, and I can see pros and cons on the technique.

PRO

  • Makes you highly productive.
  • If you’re a freelance, it’s easier to manage the balance between personal and working life.
  • Gives a strict pattern to your body.
  • Even in the week end, your body is use to the pattern and you wake up earlier than usual.
  • Spring/Summer wake up is awesome! Sun rising, birds singing …

CONS

  • Evening events are harder to make. I now decided that, the morning after an evening event, I would not wake up at 5am, but use the sleep time + 7 hours pattern. But you’re still tired before everyone else at the event.
  • Autumn/Winter wake up is shit! Dark, rain and cold, makes it harder.

Edit: I think I missed the explanation on why I started the 5am thing. As said on Hacker News, you can achieve the same productivity if you dedicate yourself some time frame in the evening (say 10pm to 1am). But I found it hard to manage private life and work life when working in the evening. I prefer the early rise in the morning to hack and spend quality time with my fiancee every evening. Before that it was more an internal fight between “Well, I need to work/hack/write” and “Hum, I’m having a good time now, I don’t want call it off”.

That was my felling around my early wake up experiment. What about you, early birds or night owl? Do you have some tips to share?

Weekly Roundup 2

Creating and distributing presentations on the web, a useful article on Smashing Magazine. Sure it’ll be useful to people attending the #brug.

Vim Recipes, nice ebook for Vim beginner or medium users of Vim. I found some useful tricks in it.

Google starts charging for prediction API, a must to try.

How to make your shopping cart suck less, once again The oatmeal has it all right.

Oh my zsh, super mega useful collection of templates and functions for starting with zsh.

Rush, Ruby unix shell, I’ve just moved to zsh, don’t make me change again :D.

Programming innocence, how can you regain your programming innocence once it has been lost?

Firebug compatible with Firefox 4b beta, if you’re running the last beta of Firefox 4, you’ll be please to learn the there is a compatible firebug branch!

That’s all for this week, you now can close your browser and return to a normal activity.

Weekly Roundup 1

First week for the weekly roundup, a good mix between technical and business posts:

10 TED talks for entrepreneurs, I truly appreciated the talks selection on this list. To me, that was a good way to start the year!

Gary Vaynerchuk talks, well, talking about motivation, is anyone better than Gary Vaynerchuk to motivate you? I enjoyed watching Gary RailsConf 2010 Talk and his web 2.0 expo talk.

Why I feel like a fraud, this one I found it in my last Hacker Monthly. This is something I’ve been talking with friends for a few months now, and it has been a revelation to spot that I wasn’t alone. I’ll soon develop this point in a complete post, but this article is definitively a must read.

Ruby on Rails 3 Cheat Sheets, certainly the most up-to-date and attractive Rails Cheat Sheets on the web.

Amazon developer app store is live. I feel like a new “app store” opens every 2 days.

S4.io, S4 is a distributed stream computing platform that was open-sourced by Yahoo! under the Apache 2.0 license. I haven’t played with it yet, but will soon!

Rip hashrocket, a seriously good looking comic blog post about the death of the well known ruby Hashrocket (=>) in favor of the wider used more standard colon in Ruby 1.9.

Heroky TOS changes, the hacker way, how can a company do everything right all the time! Those guys are so amazing that they can make a TOS change attractive!

Font In Use, good looking typography website showing fonts in real use.

Made By One, last but not least, I love the idea behind this blog. Interviewing solo developers, a bit on the same way as usethis target on the gears side of things. I hope Mubashar (creator of Made By One) will continue his post series soon.

That’s all for this week, you now can close your browser and return to a normal activity.

My Twelve Months Review

As always, the 1st week of a new year is a good time to take on personal and professional review. I had a complete disconnection time during 2 weeks, back in France, enjoying family and friends. Now it is time to take serious action to make 2011 my best year ever.

2010 Review

2010 as been a remarkably good year. Intensive, with a lot of work, a wide board of projects, including freelancing for 2 differents startups and managing a complete project from A to Z. On the personal side, it has been great as well, I found a way to manage properly professional and personal life to, and I can fell the benefits on my couple.

On the downside, even if I’ve got no problems being productive for my clients, I struggled to stop working and start creating for myself. Luckily, working for OAHU helped me to discover some new technologies that I wanted to play with, minimasing some of the technical debt accumulating when you don’t take the time to produce for myself.

On the networking side of things, I meet some interesting people, but I completely neglected this blog (see as above, be productive for myself). I struggled finding time, or idea for articles.

I’ll soon expand those subjects, on a separate post, as I went to a very strong introspection during the last 3 month of 2010.

What do I want for 2011?

On the personal side of things, I’m going to get married in May this year. We are also going to rent a house with a buying option in the next years. As you can imagine, after the wedding will certainly come a new addition to the family. So this year might be the last year I can try different things and afford to get it wrong, afterwards if going to be a bit trickier as the responsibilities grow.

So this year, I’m going to be over productive, but to achieve something I need goals:

Develop and promote at least 1 personnal project. Last year I created howgoodismyfood.com in 24 hours, with the help of Theo. Unfortunately we never get our hands on make it evolve, and it stays as it for the moment. This year challenge will be creating a side business from a personal project. It is planned to happen on February.

Promote myself, even if I do not struggle to find work for the moment, tend do not promote myself properly, probably due to the fact that I did not know where to market me. Am I a Ruby/Rails developer? or am I a Freelance website developer? a Freelance web application developer? should I take on complete projects or look to integrate a team? … Hard to market yourself when you can’t even answer to those simple questions.

Organising a workshop/conference. Last year, with Jamie and Steve, we created the Bristol Ruby User Group (#brug). The group meet every month, and we organize talk and geek chat around food and beers. This year, we’ve got some interesting goals for the #brug, but organising a proper event is something I always wanted to do. And why not this year! Thankfully I’ll be helped by some friends and Nathalie on this adventure.

Improve my business skills. I like business side of things when you are freelancing. I like looking for new opportunities, I like closing deals, I truly like a lot of the business side of things. I’ll do my best to improve that a lot this year.

Regain this blog, this one, I said it at numerous occasions. Again, instead of letting the flow go, and use this blog as a personal blog, I felt into the trap of “I need to write a blog post to attract an audience”. But you never find something good enough and then another excuse later, your blog is a dead space on then web. So I took it that way. I’m running a web development business, everyday I solve coding problems, I read a lot, I experience a lot, so let just share it, is it not what a blog is for at the beginning?

Happy new year

So, Happy New Year to everyone, I hope you will work your way so 2011 will give you everything you wanted. As for me it is pretty clear that this is going to be an interesting and crazy year, certainly the best year ever!

GTD With Free Action List Behance Replica

Yesterday I came accross Behance products and I specialy liked the action pad.

$8.00 per pad is not to bad, so I went to buy a pack of 2, but the shipping to UK was more than $30! No way I’d pay twice the product price just in shipping, for some paper pad.

So I just open Inkscape and created few SVG that would match my needs in terms of space and number of action per page.

And I have to say, I quite like them, they looks really nice on my desk

My desk with my replica

The page is a list of 20 actions, with on the left a large pixel dotted freezone.
On the top you have some space for some text + reference and date of the page.
It’s available in 3 colors, just help yourself.

Ho, I would suggest that you save the svg file to your disk and open it with Inkscape or similar to print it. I’ve tried to print directly from the browser and the result is not that good.

Click on the image to access the svg or right click, save as …

Blue version

Blue version

Blue version

Tutorhub

Tutorhub is a web application I’ve been working on during a few month as part of the Jiva Technology team, when I was contracting with them.
The public version has been release a few weeks back, and is now gaining in popularity among tutors and children.

What is it?

Tutorhub position itself between the private face to face tutoring and the classic forum where you would go asking for questions when stuck during your homework.
Problem with private session is you’ll need to wait the tutor to be available for you, and you’ll have to pay a certain fee. Problem with forums is that your question can stay here without any answers for ages, or even worst beeing answer incorrectly.
So the Jiva guys came with this “in between” solution, where:

  1. You ask your question online
  2. Tutorhub presents to you a selection of online available tutors
  3. You pick the one you want
  4. It fires a one to one chat session with a experienced tutor, ready to answer.

The work that the Jiva Technology team did is amazing, the result is a really slick and user friendly app, easy to use, and I have no doubt that success is round the corner!

Some videos

If you want to have an introduction of what is tutorhub, they’ve realeased 2 videos for you:

The student version

The tutor version