I always advice people to go the hard science way if they like computer science, because there is a really big big lack of people being good at both. I should write about it.
I've thought about going into a hard science industry but never did anything about it because 1) I'm not really qualified in the science side, my skills/experience/qualifications are in computer science and 2) I don't really know how to get started.
Please do.
Just off the top of my head you'd need to think about winning each contract, paying taxes, holidays, health cover, professional indemnity, sick leave, misc business expendables (like office, phone, ISP), the list goes on.
Don't get me wrong. It is still good money I'm sure.
its also an amazing learning opportunity (and play. but never take close up photos of your phone. you'll become OCD about clean pretty fast)
Off-topic: what books do you recommend on chemical engineering? What's the equivalent of The Art of Electronics for analog electronics, or HDL Chip Design for digital chip design, or Code Complete or Algorithms in C or CLRS or The Pragmatic Programmer or SICP or TAOCP for software?
1) Perry's Handbook for Chemical Engineers (Perry)
2) Conceptual Design of Chemical Processes (Douglas)
Perry's is the end all be all for technical reference.
Conceptual Design is incredibly useful for learning how to quickly and accurately design an entire process. If anything, it'll teach you the best methods to go about "back of the hand" calculations for sanity checks.
I did a lot of operations-research type programming in grad school, and I thought it would set me apart, but I've found that the jobs that want programming and OR skills don't seem to pay any better than other types of programming. This is jobs, not consulting gigs, though, and I'm only basing this on a few data points.
- I mean, I'm not from a developed country. Is that still possible that I can take advantage of mastering both skills? I'm currently a Medicine student with good programming skills. -
Once we established that it was pretty easy to see how letting his rate float up would help with his workload, he would not only be less overloaded but he would be collecting more of the market value of his work. Since in his case (he's nominally retired) not working at all was just fine, he had a lot of freedom in over shooting the market and then coming back.
I recognize that its not as useful for someone who is wondering where rent money will come from.
Economics you so crazy.
What's wrong with linking a commercial product or course?
This is a discussion about making money on a website with a strong slant towards making money by starting and running businesses.
So, did he set his prices? What happened? What did he charge prior and how much did he change... and most importantly, is he happier?
Do the math.
I mean, if 16 people are willing to pay for an hour of your time on Monday, and you're only going to work 8 hours, how do you decide which lucky 8 people get your services? 1) First come first serve? 2) Pick 8 at random? 3) Pick the 8 who want it most?
#3 is most easily measured in "dollars they will pay," so you raise your price. Of course, it also favors the wealthy, so if you feel badly about that, do some pro bono or find a way to provide tiers of service at different prices.
Funny thing is, my parents (who are both near-retirement service providers in their own professions) won't adopt such a model in either direction (raising their rates or decreasing their rates based on workload).
They also just recently chastised my brother (who is in his mid-20s) for doing an arbitrage play where he could get a plentiful supply of iPad 2's on discount and sell them above market rate on eBay.
Threads like this remind me that I wasn't bought up in a capitalist family.
Most gigs have been with companies where software is the product or an integral part of the offering, so price was not really an issue. Almost always I bill hourly because the work involves existing system where a fix is 5 lines of code. but finding where the 5 lines go may take two days of work.
I got two significant jobs off of Craigslist, but most have come from people that I have worked with.
The last few projects I've gotten average to about $7k each and are about 1-2 months in duration. The highest I've gotten is $10k for a 2 month design and development gig, working very casually over that time (enough time to work on other projects freely). I'm now learning that people are willing to pay for high quality work and consistent/reliable communication.
I work out my hourly rate like this:
There are about 219 work days in a year after leave and entitlements. As a freelancer I'll probably stay billable 3/5 of those and on average I can hope for 6 effective billable hours per day, so there are about 788 billable hours per year.
I then think of my target yearly salary and divide by number of billable hours per year. I actually have some indirect overheads, too so I add a margin on that, but if you're straight up freelance you may not need to.
That's your base rate. So long as your timesheeting, invoicing and accounting systems aren't drastically inefficient (ie. you can raise, issue and track an invoice in under 5 minutes) you can work for 30 minutes, charge for half an hour, issue the invoice and be done with it.
If I get a longer contract, I usually reduce the hourly rate commensurately by increasing the ratio of billable to non-billable hours I'm expecting in that year as a result.
What systems do you recommend? Excel spreadsheet for tracking + invoice template is really inefficient for me.
I do all my timesheeting through an IRC bot which works really well. The bot reads tasks from my task system (I just create pages in my CMS and expose them through the API) so I type things like:
askl start client: job name
where client and job can be partial matches. When I make an entry it goes into the timesheet and I can either use that to generate my invoices directly (in the case of billable hours) or use it to offset a loss against a sales invocie (in the case of a fixed price quote).
So the IRC bot reads from the task system so that you can just type like:
askl: start decal
in order to start working on decal if you're doing some unplanned support or maintenance work, or if you're helping someone else out with their work, basically this is seen as an interruption from what you're scheduled to do.
Otherwise you can do this:
askl start: decal: some release
to timesheet against a sprint (we block off time in google calendar to allocate work). Each "sprint page" has a structured xml component on it (this is like, Decal terminology that won't make sense until you try it - we should have a live demo ready in a few weeks so you can give us your email address by going here if you want to be told when that happens: http://www.decalcms.com/page/Try_it_Out).
This structured XML component is where we put the client name, dates for the sprint and costs basis (either fixed price or amount per hour). This information is then used to make entries in the timesheeting system so we can tell whether to mark time as billable (in the case of per hour) so that it will generate an invoice, or not in the case of a fixed price where I raise an invoice separately and then the profit made on that "sale" is offset by the "loss" made in the development hours.
All of this is very ad-hoc, strung together with duct tape and pixie dust and most of it works most of the time. The most important thing is that all our hours and work are logged, and that's how we work out leave entitlements at the end of the year.
ie. each person is expected to put in 6 billable hours per day for 219 work days per year. So at the end of the year we just sum the hours you worked, and whatever is left over is how much leave you get the following year.
Right. yeah. I should really do a blog post at some point about this :)
Over time, I have become less and less interested in these kinds of side-projects as I have become more focused on owning the upside of my own products. But, its occasionally nice to get paid for my late-night coding adventures.
The concepts for the things I am building now were distilled from several other failed ventures. The choices were based on the projected market sizes.
EDIT: Oh and when you start out, if you're estimating time, double it.
Also, start out on hourly gigs - and then always stay with hourly gigs (time & materials). If you fixed price work you end up having to piss off clients with anal scope management (or you take a bath).
If I find the project very interesting and I can fall in love with building it, the client is going to get a good deal. Boring or otherwise tedious projects engender some stone-cold, take-it-or-leave-it negotiation. I mean, this is my free time.
Edit: Nevermind that extra bit, however true. :)
That's how I go about it and have found it to be the best/only way to ensure I don't overwork myself.
It's a good summary on a several techniques, how to apply them, and how to pick how in depth of a one to do, as well as how to talk with people who try to negotiate with them.
One of my customers, which I greatly admire, is very old guard and don't buy nothing of agile, extreme, scrum, etc. He only accept strict a to b estimates. Working with him, while hard, has made me much better at making estimates.
Another benefit of a requirements doc is if the client later says he expects some additional feature, you can refer to the requirement doc and say that it'll cost extra since it's not listed in there and your original quote didn't include it (or let them know that you're going out of scope for free because you want to help them out which will make them love you [only do this if you're ahead of schedule]).
Also back when I was doing freelance stuff I usually wouldn't even take a gig if I didn't think I would make > $5,000 from it.
What I want to start doing with projects that aren't clearly defined, is to simply do an initial contract to nail down some of these details. Build a prototype, do some tests and write a detailed spec - and then the next contract will be building it for real. (Maybe with some inexpensive outsourcing.)
Prototypes aren't as useful as you would think. Clients see them and are like "hey that's a nice mock up, now make what I want", then you build the actual application and they say "well where's feature X, Y and Z?!?! when you say it wasn't in the prototype they just say "well I thought it wasn't there because it was just a mock up"
Ideally though, you want to charge them for the requirements doc (and get paid for it) before you start the actual project. You can usually tell the client this and tell them they can use the requirements doc to shop around with other developers so they can get the best deal. Clients are usually happy with this and usually don't bother shopping around.
Additionally, this is usually 80%-90% coding. The firm that hires me is usually responsible for all the design comps and photoshop files.
On oDesk I was lucky enough to meet a great client almost immediately. I got an ongoing project with him for ~30 hours/week. I think I'm grossly undercharging him, but it's a steady gig that leaves me able to pick up other projects on the side.
For fixed price projects I generally don't even bother considering anything under $5K. I try to stand out by bidding high rates (by Elance standards). So far it's working fairly well. I hope to develop enough happy customers so that eventually I'll be able to move off of those sites and just get clients by word of mouth.
It does not matter one bit what I or others charge. What matters is WHO IS YOUR IDEAL CLIENT?
If you know that, you know what VALUE you bring to them and you can charge whatever you want to solve a real problem.
Otherwise you are trading time for money. AKA - Job.
Does Rolls Royce consult Honda as to what to charge for their products? No. Two different markets with two different clients and two very different ways of solving a clients/customer's problems.
I started out with $10/hour (in India) and was up to $50/hour which made me some decent money. I usually charged hourly as estimates are fragile (even after a lot of experience). It used to come to around $30000/year (considering some 600 hours of work yearly). Adjusting lifestyle, that is equivalent or more, compared to $100K in the US.
Work areas - Front End Dev., JS, iOS Apps.
Me - http://about.me/dytrivedi http://advancewith.us/stuff/Resume.pdf
PS: Clients pay for quality work/code. Don't hesitate to raise rates if you think you're worth. Can be determined by demand.
Where do you go to find projects?
I took a look at the code and ... you know what happens in japan with that nuclear plant right now? Yeah, the app was the fukushima of code. It only hold together because of luck. Luck didn't last till iOS 4 where Apple seemingly changed something about how cocoa touch retains objects internally and the app exploded. Objects were randomly released and the programmers didn't care about any conventions. They returned objects with retain counts of 1 from a static lib and then released them somewhere later in another static lib. Not a single autorelease was used.
At least there was extensive doxygen generated documentation ... in russian (no joke).
You get what you pay for. And yes you can't compete with the people offering their services on odesk/elance. And you don't want to work for cheap asses that post "need augmented reality app for max $200" jobs.
Some tips for this:
* Make sure your friends know what you do - update your Facebook profile, hand out business cards, start a blog, etc.
* Make sure your friends think/know that you are the best developer that they know and that you are the first person they think of when someone says "I'm going to need a website"
* Use LinkedIn - surprisingly enough, I've had old contacts connect with me via LinkedIn, view my profile and hire me for a project
* Exploit whatever niche you're a part of - if you are active in your church, approach them or another local church to see if they need a site. Apply same strategy for a youth group, social club, etc.
I've bid on only three projects in the past year and been outbid on 2, 1 is pending.
Back in my eLance days, I charged $75/hour for my time and wrote good thoughtful proposals for jobs that sounded interesting. Those two things set me so far apart from the rest of the field that potential clients would essentially have two piles of proposals on their desk:
- Pile A: 100 broken english canned proposals quoting $14/hr and dripping with flakiness
- Pile B: 1 proposal from the expensive guy who sounds like he knows what he's doing
So the thought process then changes to "do I take a risk, or do I spend the money to do the job right". I'd only hear back from 1 in 10 proposals, but the conversation was always the same from there:
"Wow, you really nailed what we're looking for, but, well, you're a bit expensive. Any chance you can give us a break on price?"
"No."
"OK, well we've talked it over and we think we'd like to give it a shot."
Since this all side stuff, after my 9-5 job, I'm very picky on what I take in, since I like to work on products that I have 'real' input in.
"... nearly 90% of all legally distributed pornographic films made in the United States are either filmed in or produced by studios based in the San Fernando Valley"
that's $1600/ hour. Are you kidding me ?
I think many people get hung up on skill though. Clients pay for many, many things. Skill is only one of those things, and it doesn't dominate, either. Clients can also pay for:
criticality of work
urgency of work
guaranteed availability
hard-to-find expertise
communication skills
perceived attentiveness to needs
lower perceived risk
corporate politics
measurable results
warm fuzzy feeling
Of these, if you could only have one, I'd probably go with the ability to give clients the warm fuzzy feeling. You will never go hungry if clients get the warm fuzzy feeling from working with you.Hat tip to tptacek, who taught me the importance of some of the above.
- make your clients look good to their stakeholders
- make someone look good to their manager
- make an exec look good to their board
- make the firm subcontracting to you look good to the end-client
- make your teammates/collaborators look good (and help them save face when they screw up)
I learned a hell of a lot though, not just about coding but also what I could do different in the future not to land myself in such a crap situation.
Eventually, though, that $400 paid dividends: the project was noticed by a company that offered me a full-time position, which I love and meets all my needs and wants financially.
Moral of my story: sometime crap pays off.
I'm glad my first job(s) were shitty so I could grow a thick skin early in my career.
I have been trying doing a lot of freelance gigs that range around $500 - $2000 (5 such gigs)
Plus a lot of small stuff ranging from $50 - $100 (2 each every fortnight)
I pick up work from ODesk, and some other sites like ScriptLance and also know some clients via private contacts.
I'm looking to move into per hour billing from fixed price. Anybody made that exact transition yet? And how do you talk to your existing clients when you want to make the switch?
Need to charge more!
There's a limit on that school of thought, but if have the option of 2 freelancing contacts at X, or 1 at 2x, I prefer to focus on one client at a higher price point.
I figured out my starting freelance rate by taking my per-hour salary from my day job and doubling it. Then, whenever I had too many clients at that price level (generally 2+ back-to-back) I increased my rate by 50% to 100%.
This has worked great for me through multiple iterations. As my portfolio, contacts, and experience grows, so does my rate. I'm left earning a good amount for my freelance work, and have the luxury of turning down work that isn't paying enough or is too much of a hassle to coordinate.
For me this yields the highest dollar per minute spent working and allows for the least amount of stress. Because I work quickly and have accustomed myself to this system, most clients are pleasantly surprised when they receive a product on the same day the project was requested at a higher quality than most other designers they've worked with.
I don't generally do jobs for less than $200 though. It takes times to do research, switch environmental and your head around, but clients sometimes think I'm a typist and should only be paid for time on the keyboard.
Daily rates used in estimations may be more relevant in this case...
We've had trouble finding great infographic designers that don't take a lot of time to manage, and I'm wondering if we should be paying more.
If interested in that or doing UI/UX stuff, check us out http://feefighters.com and drop me a note
EDIT - looks like people are interested! job posting for fulltime UI/UX here : http://feefighters.com/jobs/ui-designer-developer/
and Freelance infographic posting here: http://www.genuinejobs.com/jobs_detail.php?id=5606 (but just drop an email to josh@feefighters.com instead of responding to this one)
For those curious about the workflow, I use:
* Google Docs to create a spreadsheet with all project research/notes that is shared with client
* MockFlow to handle wireframe mockups, as it also allows me to easily share them with the client AND is cheap (I think $70 per year?)
* Photoshop and Illustrator to create the main mockups for each of the major pages/sections of the site
I also tend to shy away from logo design, as for me it is not worth the time and effort for the pay - instead I suggest to my clients that they use a service like 99Designs or Brandstack.
Of course, when the prices are published things change (like if a supermarket sees that another supermarket raised their price for milk), but this type of a forum with sellers chatting about what to charge seems like a grey area.
IANAL, but please be cautious.