Tips and advice on being a freelance in Information Technology
Posted on Tue 14 February 2017 in IT
What follows is Javier Silva's interview to me. The interview is mostly focused on how what it is like to be a freelance in the IT field and how to start as a programmer (and how that may evolve into a business). It was first published on his blog in Spanish. He also did a small review of my Post Pay Counter plugin.
Please, Introduce yourself!
I'm Stefano from Italy. I study mathematics, but there are very few things I am not interested into. I am a web developer, a walker, a reader, and an amateur photographer. Those are just the things that take most of my time, but don't believe I don't do anything else!
You work as web developer... where did you study it? or how did you learn it?
I've never taken any classes on web developing or on any IT subject. I have just always been into computers and technology, and by reading/replying on forums, experimenting and lots of tutorials I have learnt all that I know. When I was 12, at school we were covering divisors, prime numbers, factorization, and the like, and… you know, homework was boring as hell! I was just tired of having to figure out whether a number was prime, or what its divisors were, so I wrote a little script that did it for me. That evolved in writing more complex software and slowly learning to write decent-quality code.
Homework was boring as hell! I was just tired of having to figure out whether a number was prime, or what its divisors were, so I wrote a little script that did it for me.
There are a lot of resources out there for people willing to learn. I believe the key is to play around and experiment. And, as always, a lot of practice is important.
What is your point of view about the "programming career"? Is it a competitive profession?
I believe it definitely is. Unless you aim at working within your own city, meeting customers face to face, you really face a lot of competition. If I am hiring someone to develop something for me, and I don't require they live in my same city, then I can pick anyone from all over the world. And good luck to convince me that you are the best developer, and that I really want you
In the end, freelancing (at least in programming) has a lot to do with cultivating relationships and caring for your customers, or they will just find someone else to do your work. However, if you do work well, the word will spread and you may thus earn more work. It is a fact that building your network takes time, though. It's not like opening a shop and waiting until passers-by stop and get in, it's completely different.
Let us know about your career... Are you a full-time freelance or do you have a current job?
I am neither: I am a less-than-part-time freelance. As I said, I'm a student, and for that reason I tend to spend most of my time studying. Of course, that is what I should be doing, but it often happens that a critical bug needs to be addressed, or that I have a deadline for a paid project, or whatnot, and I put aside university for a while and care about my software developing and my customers.
Practical skills are only learnt through doing, and the sooner you start screwing things up the sooner you will get experienced enough.
As I said, building your network takes time (and with time, I mean years!). I do not believe it is wise to go through university without doing any work, and then expect that customers, good ideas and success will rain down the sky. Practical skills are only learnt through doing, and the sooner you start screwing things up (because you will, of course you will!), the sooner you will get experienced enough to at least avoid the worst mistakes.
And what do you think about Freelance?
I believe it is very hard. For this time, let's put aside the talks about discipline (although it is certainly important). The good thing about freelancing, obviously, is that you get all the money your customer will pay, as opposed to being employed. Money aside, the best thing about freelancing is the freedom. I can pick the projects I want to work on, and if you are a really bad customer, I can just turn you down and save me tons of anger and frustration.
However, you also get a harsh thing: you have to find your work by yourself. Nobody provides you stuff to work on which you will get paid regardless of its success. If you spend one year developing a product no-one wants… then you have lost a full year! Of course you may have learnt a lot from it, but it's still a lot of wasted time, when it comes to money.
On the other hand, if you don't sell any products but just develop software on demand, then it's even harder to build your network and find your work. How are people supposed to know you exist and provide quality services if they are not linked to you in any way? I get several requests from people who would like me to develop their plugin or platform or whatever, and they all come from people who use my plugins, either free or paid ones. The usually say: "We really like your plugin and its quality, and we'd like you to build our own", and it's not difficult to believe that they wouldn't even know I existed if they didn't use my plugins.
You have some products (WordPress plugins) on sell by yourself. How is it going? Are they fulfilling your expectations?
My plugins have all been free for a long time. Just a couple years ago, when I really put a lot of effort and time in re-writing from scratch the Post Pay Counter plugin, I believed the product was finally sound enough to be worth people's money. Since it was my first paid product, I wasn't really expecting anything, I was quite open. I was still in my last year of high school and I did not even thought about not going to university, so I did not feel the pressure of being successful with the product. I guess not feeling the stress of having to earn a salary certainly helps at the beginning: flunking will not be pleasing, but it will not be such a big deal. In my case, I was going through the routine go-to-university-then-find-a-job routine anyway.
Today, Post Pay Counter addons provide me a consistent revenue, customers are satisfied and I can think about the next product I would like to build. So I guess it is going pretty well!
What is the best and worst part of developing a plugin?
For me, the best is user feedback and reviews. Every time a user or a customer takes the time to publicly write an appreciation of my plugin, I am happy. I like that because it means I have done something useful and well done.
As for the worst, this is probably highly subjective, but for me it's the marketing part. I am the only man behind all my plugins, including the website design and management, tutorials writing, and everything. Sometimes I just wish someone else would take care of the marketing part on my behalf.
What can you tell us about the plugin process development? Time, design, issues, etc?
My personal experience is that developing the very first release of a plugin takes a lot of time, but really a lot. It may take several months before you have a decent product you can safely release publicly. Post Pay Counter took me almost a year. I did even release a beta version (and I had to look for beta testers) and of course there were lots of things that needed improvement, some that did not work at all, and some features users really felt the need for and were not in the plugin already. So it's likely that when you think you are done, you are kind of halfway through actually.
If you just skip the whole process of designing your product, you are likely to get to a point where improving your product is not possible any more.
However, as with all digital products, this initial stage is crucial. If you just skip the whole process of designing your product, you are likely to get to a point where improving your product is not possible any more because the choices you made at the beginning were bad, or hurried.
I believe this is best understood with a real example. When Post Pay Counter was first released, it allowed you to pay authors with 4 different criteria (such as per word and per visit). Of course, adding more payment criteria was technically possible, but every time I wanted to do that, especially in a separate addon, it was a nightmare. I had to write a lot of code, most of which was just copied from other payment criteria (which is really a bad thing to do). It was very easy for me to forget about some little piece of code, or when a bug showed up in that code, I had to fix it several times, one for each addon. When I decided it was too much, I had to re-write the whole part that handles payment criteria in the plugin, which took me around a month, and I then had to update all addons with the changes. Developing an addon now takes me way less time, but I would have saved even a lot more time had I been more careful in the first place.
However, once you have a plugin that works fine, your work is nearly done. Of course you will have to spend some time fixing bugs, or implementing new features, but in terms of time this does not even compare with the first development process. Providing support to users is likely to be the most time-consuming thing, but I can tell you the very steep path is developing the first release, then it's all downhill.
The truth about the myth! Can you live doing plugins, themes or support?
I do believe so. There are several people doing that, with quite some success. I am thinking about Pippin Williamson, for example. However, the competition is so fierce out there, that is not easy to be noticed and have success. It requires the right product at the right time, and even then it will take a couple years before your product become renown. Most people who develop plugins also do consulting jobs and customization, which is another good source of income.
What usually clients say or request to you?
They usually tell me they have a brilliant idea for a plugin, or for a specific feature to be added to my plugins, which is surely going to be helpful to other people. Most often it is just something very specific for their own setup, that probably nobody else would benefit from. I guess they just hope I would do a paid work for free. It is just like going to IKEA, seeing a piece of furniture that is kind of what you need but not exactly, and tell the salesman if they could just make it more like this and that, surely a lot more people would buy it. Of course, sometimes the idea is a good one, but most of the time you would just reply "go and pay a carpenter".
Fortunately, I do also get the same requests from people who are human and reasonable enough to offer to pay for my time and services.
You maybe know about Marketplaces... What do you think about this new way of commerce?
I guess it's a way for customers to know they have their back covered. If you purchase a plugin from a private website, and it was a scam, then you are 99% to have lost your money. But if you purchase on CodeCanyon and I don't reply to emails, then you can tell CodeCanyon about it, and they will probably refund you.
Are you involved in any marketplace?
No, not for now at least. CodeCanyon is the only worthy marketplace for paid WordPress plugins, but they take at least around 25% of your income, which I believe is just so unfair! I understand they are putting in the brand and allowing me an exposure I wouldn't gain otherwise, but that's not equivalent to a forth of my work!
How do you see the future of marketplaces? (We know the Wordpress Plugin Repository is a kind of Marketplace and you are there).
It is clear to me that every successful platform of the latest years has been such thanks to its marketplace. Look at Android, iOS, WordPress… even Linux, to an extent. On the other hand, Windows Phone doesn't have a flourishing app store, and what's its market share?
If we consider marketplaces even free ones, then it looks clear to me that any platform wanting to have success should care about having an active and huge one.
Any advice for new guys trying to get into the Web Developer World?
Start early. And it does not mean that you should already be working at 18 and stop caring about everything else you like, hell no! Take all the time you want, study whatever interests you, even if it's not developing-related, but commit to little projects here and there whenever you can. This is sure to repay you in the future.
You will make mistakes, nobody does not. But, you know, if you make them when you are 15, who cares? But then, at 22 you will not make the same mistakes (hopefully), and there will be much more at stake at that age (the success of your product and whether you get fired or not, maybe!)
Thats enough about profession... let know us the person behind! What do you do in your free-time?
I really like walking. On sunny sundays I often go hiking somewhere. And then I read, I read a lot (both fiction and essays).
What hobbies do you like to practice?
I play table tennis and practice yoga. I do also love light and try to capture it through photography.
A book? and why...
This is always the toughest question… I'd say Surely you're joking, Mr. Feynman, by Richard Feynman. Nowadays, very few people really understand what science is about, and what a scientist really is: Feynman is the best person to show us (spoiler: being a scientist is not about knowing scientific facts).
A movie? and why...
Harvey is probably the best non-popular movie I can recommend. We should never impose our beliefs unto other people, and there is no warranty that our beliefs are better than other people's ones. If you look carefully, Harvey will teach you that. Apply that in your life, and I believe all your relationships will improve.
You don't have to prove anything to anyone. Just do what you believe is good, and always be open to questions.
A song? and why...
Eclipse, by Pink Floyd. It may already be well known, but both the music and the lyrics are perfect in a way I have never yet found again.
A country would you like to visit?
Sweden, or any of the Scandinavian ones. I'd also really like to go to Australia and to the poles, one day.
A person would you like to meet? and a question would you like to ask...
Shaun Tan. I would never have the courage, but I'd ask him if he wanted to draw my children stories.
What cartoon or superhero would you like to be in a parallel world?
Iron Man, because I could ask Jarvis stuff.
That my small Italian not-for-profit which helps kids explore and learn about science in a fun and entertaining way would become my full-time future.
A memory you will never forget?
I was helping a little kid building some sort of origami. When we started out, he didn't want to tell me his name, nor would he reply to questions or remarks. He was like mute. He had his own toy-bulldozer and wouldn't let it go. After he finished building his origami, he still wouldn't talk nor tell me his name or let go of his bulldozer, hell no! But he accepted to give me a high-five, which really made my day.
Finally, do you want say something else... regards, a message or phrase!
You don't have to prove anything to anyone. Just do what you believe is good, and always be open to questions.