Freelancing, half a year in.
alanhollis.com
alanhollis.com
Are you creating patch files and manually merging them (like Linux used to do)?
Or are you just using a shared FTP and keeping a spreadsheet of who is using which file at any particular point?
The amount of discipline and organisation required to use either of these methods would appear to be far higher than that required to sit down for a few hours to learn a basic VCS like Subversion using a graphical tool.
I set up SVN the first day.
No I'm not joking, and yes I know how unbelievably terrible this is, but it does happen.
Mostly because most of the code is owned by a single guy and he does not see the problem with that.
Note the 'ed' at the end of 'work'.
The excuse cited was always that version control was impossible with languages that compile (we were on .Net) - I'm sure there's a response to that, but I didn't know what the response was, and just decided to leave in the end (amongst hundreds of other reasons)
Version control works best on plain text documents, but you can certainly check in binary assets to version control repos. I've done it even with CVS back 12 years ago, although IIRC it was a pain - SVN was somewhat easier, git is simple (re: binary files).
Actually, the simpler response is the .NET ecosystem has their own version control stuff (Team Foundation Server at very least - http://msdn.microsoft.com/en-us/library/vstudio/ms181368.asp...).
Software devs not using version control should set off as many alarm bells as an accountant that tries to keep everything in their head, or doesn't keep receipts. Obviously it set off those alarms for you - it's just sad that the developers themselves didn't see it.
You're right. It did set off alarm bells at the time, but i kept having doubts since i myself am essentially a non-developer and was unsure if perhaps my argument was weak.
Now, especially after having read your response not only am I very relieved, but am realising that I had more admiration for these developers than they deserved.
Phrased another way, if compiled languages were indeed incompatible with source control then that would be a reason for discounting doing serious development in compiled languages altogether.
You can also point out that git was designed specifically for use in a compiled project (the linux kernel).
The next thing I do is explain that I will be spending more time for coding upfront because I will introduce testing into the project.
These are not negotiable.
It helps that I write integration/functional tests almost exclusively (unit tests are imho useful only for algorithms, which is not what I'm usually working on).
I mean, I can either spend 20min writing a test, or 5min clicking around the app every time I change something ...
I have listed all the positive benefits of version control in detail to my clients and still have the idea rejected due to it being an "unnecessary complication"...
Just try it. Not making any promises, but i think you'll have better luck if you do. Sounds like you're either framing things wrong, or allowing certain people to make the decision when it should be yours to make ;-)
The way it is framed seems to suggest that they have an existing (probably solo) developer who is used to not using version control and is frightened by the thought of adding new tools and processes.
If you introduce such a person to version control it will necessitate them spending some time to learn the system which they may be defensive about since they see it as some outsider encroaching on their territory.
In such a case the best bet might be to follow their method until you hit some situation where there is a problem or significant reduction in productivity as a result (shouldn't take long) and then demonstrate the virtues of using source control.
If on the other hand it is a non technical person who is making specific dictates about source control then that might raise another set of red flags.
Your method of using appropriate timing to introduce new tools is also what we employed and works very well.
Other developers can be trickier, but it's very simple to get logical people on the path of version control if you override their changes once or twice. (usually unintentionally)
Actually, the only time I've encountered zero version control, I simply refused to start working until git was introduced into the project.
For example when I have looked at freelance web programming jobs, especially for smaller companies who don't have an in house team they seem to also expect you to do the design work.
Do you have other freelancers that you sub-contract out to, do some yourself or stick to strictly scoped (programming only) projects?
The biggest non programming skill I have, and something that I appear to be okay at, is in face to face meetings. I've not yet walked out of one meeting where I haven't then got a job.
There's probably a few things that have helped here.
1. It's easy to demonstrate my knowledge face to face.
2. I repeat in my head "be confident" throughout the entire meeting.
3. I dress smartly.
I ask mainly because of recent patio11 posts about emphasizing value in terms like "I can increase sign ups by x% by doing Y". This would seem to require a lot of experience and analytical/stats knowledge that a programmer might not necessarily possess however.
At the moment my value add for my clients is my previous experience and my communication skills. I try to reply to emails as fast as I can, that alone sets me apart from most other freelancers.
I would love to be able to sell myself in similar terms to the way patio11 does, but as you rightly state it takes a lot of experience that I for one don't have, yet.
That being said, I've read so much information about on-line conversions techniques, have run successful (profitable) affiliate PPC campaigns, got on the front page of hacker news multiple times and done other things that maybe 99% of other people on the planet have never done.
I'm sure there's something in there that I can sell as a value add.
To save anyone else having to do the math.
Also, yes, your rates are still very low, Mr. Hollis, although I suppose it depends on how many days you worked on billable projects. I would expect to see more like £40k for six months given your CV.
†Not like "won IOI" top, but I imagine Google/Microsoft/FB etc. has a graduate starting salary around that.
I was earning just less than £35k two years after graduating with a 2.1 ( not sure what the equivalent is in American university terms ). And at that point was earning considerably more than anyone else I knew who graduated at the same time.
I think I've mentioned here before, but I know a friend of a friend who supposedly earns £50k a year as a Java developer for a bank, but didn't know what a constructor was.
The mind boggles.
Not a standard salary path I admit, but it is possible to play the market if you are a good technical and business person.
Edit: All salaries are in £ (pounds). Edit: I am based in London: Edit: I am not in banking.
I think some people have a natural "salesmen" inside them and when it comes to salary negotiation always do well. I don't feel I'm as fortunate, but am definitely working on it. :)
As for the jobs advertised on sites like jobserve. Most of these require you to work on site as a contractor which right now isn't something I want to do. Freelancing for me is a lifestyle choice, not necessarily a financial one.
Again this might change in a few years, I'm getting older and want to start a family, and so this lifestyle might not work for me then.
I just hope that my time spent freelancing is seen as a positive on my CV in future, if indeed I do need to make that jump back into full time employment.
It's an interesting, in fact it's a fascinating way of working.
Below are my skills,
Official: I got 5 years of experience in various fields,
1 year as manual tester for a Mainframe/JSP based application.
2 years as an automation test engineer, which is a fancy way of writing scripts to do automatic tests.
2 years as a tools developer for an automation framework, work involves writing java/Oracle based tools to do a specific task.
Non Official: . 2 years learning to code and worked on basic android applications. . 2 years on iOS ranging from games to apps.
Side Projects:
Android:
Personal Finance Calculator (http://bit.ly/STAJ8n) helps you to calculate Loan Interest rate.
Baby Names (http://bit.ly/STAJ8n)Provides List of Baby names and their meaning
Mobile Number Tracker(http://bit.ly/STAIkI) provides caller info based on the mobile number (Only India).
Mobile Number Tracker US (http://bit.ly/PGakKz)
iOS Game:
Juicy Fun (http://bit.ly/Ub7IRv) physics game
Atom Ace (http://bit.ly/UxZ6F9) a different kind of puzzle.
iOS App:
London Tube Map (http://bit.ly/QqAXo7) shows london tube statues.
Movie Theaters (http://bit.ly/SwedyD) shows info about latest movies and movie theaters which plays them.
I am not sure what will I be able to charge clients as I don’t have professional development experience, and also living in India doesn’t help things I guess.
My big question is, will I be a fool to try freelancing at this stage and with my experience?
edit: formatting
you'll never know for sure if you don't try it.
Instead, they'll say 'I want a website to do X' or 'I want an application to do Y'.
A lot of the time, they didn't even care what you use or how you do it.
Your set of published apps in the relatively hot mobile space puts you in a good situation in this regard.
The first step would be to build a portfolio of your work.
No, at least not based on the tech experience - you've done a hell of a lot more than some people I've sub-contracted work out to.
The bigger issue will be your attitude and approach. Treat 'freelancing' as professionally as any other engagement and you'll be fine.
You have an application with more than a million downloads in the Android market. And your Juicy Fun game looks very nice. I'd say you have a fairly solid portfolio.
Do you write all these applications all by yourself?
How do you find freelancing vs ordinary job? Do you have savings for harder times?
The other big difference is that a salaried job means a regular paycheck, no matter how busy you might be in any given month. But there can be a lot of downtime between billable hours freelancing so that's another potential dent in your income.
Personally I prefer to bid a fixed price instead of an hourly rate for a project. This makes it that much more important to consider your initial estimate carefully but it also eliminates a lot of micro-accounting and haggling over how much a single hour is worth.
You also have to be careful not to take on more work than you can handle. Unlike a regular job there's no hard ceiling on how much you can make in a month but it's easy to get in over your head this way.
So far I'm really enjoying the freedom and variety of freelancing but I think a regular job is easier in a lot of ways.
You're very right about the other things though - pension contributions, paid sick leave etc. which freelancing doesn't cover, so it's important to compare them carefully.
When you're employed, both you and your employer pay NI rates. If you're self-employed, you pay £2.65 a week plus 9% on profits over about £8k, which should work out fairly similarly to the rates you pay (out of your gross salary) when employed.
More details on gov.uk.
> Employers advertise pay rates from which the tax is deducted, so in that way they are the same as contracting rates (the tax is deducted from both).
Yes, this is correct for income tax and the employees portion.
> Employers also pay a small National Insurance contribution on top, which doesn't come out of your wages.
The problem is that it's not a small contribution on top, it's 12.8% above a low threshold. For a £35k salary, it's just under £3,800 - see http://www.listentotaxman.com/. And as a contractor, you have to pay that for yourself.
In terms of the lifestyle, I love it. I honest don't feel like I've "worked" in the conventional sense since I've been back.
There are a lot of things you have to deal with which are unexpected. Finishing a project and realising you might not see the people you've worked with again ( especially if they've been great people to work with) is depressing.
There are times when it can also be lonely. I'm fairly lucky in that I'm currently living with my parents and so there's normally someone around.
In the periods between finding work ( where technically you're unemployed ) it is easy to get depressed and wonder whether you're doing the right thing. Having something else to focus on at the same time, be it a side project, or indeed finding more work is a must.
The biggest benefit is the freedom. Yes I might have work to do, but I can ( for most clients ) do it from where ever I want to do it. If I need a break from the parents, no problem I move my office to the girlfriends for a week. If I want a change of scenery, no problem I just pack my laptop up and I'm good to go!
The second benefit is the amount you learn. I now a much greater understanding of business. Tax, VAT, National insurance, invoices, marketing, chasing payments and how companies operate.
Not to mention the technical benefits of freelancing. I've taught myself backbone.js worked with node.js. Played with Symfony, Silex entered ( and come second in ) coding competitions, taught myself some AWS basics. All things I probably wouldn't have had the ability to do if I was working for someone else.
All in all the last six months have definitely been a positive experience in my life!
"If I need a break from the parents"
Make sure your rate is high enough to provide you with independence too.
At the moment I've got my friends alpha testing it, and have got some good feedback. Hopefully I'll be confident enough to post a SHOW HN soon.
(Sorry if the question seems stupid, I haven't heard the term before and it seems a little too general to return meaningful results in Google)
Edit: Thank you benjaminwootton!
They often have more design and campaign work than development, so they will regularly bring on freelance developers to help with projects.