Ask Slashdot: Making Side-Money As a Programmer?
earlzdotnet writes "I've been programming for a few years now, and I have a full time job. I'm one of those lucky souls that actually enjoy programming, so I commonly work on my own open source projects on weekends. However, I wouldn't mind working on a short-term projects (i.e. not more than ~2 months) every once in a while on weekends. I've looked at freelancing before, and I could probably make more money by working at McDonald's on weekends than that. I've also looked into making web sites for small businesses, but it requires a bit too much commitment and support for me, especially since I'm terrible at graphics design. I've tried my hand at writing reusable components to sell to other programmers, but that was pretty pointless (I made one $20 sale). I've seen teaching suggested, but I'm self-taught and probably not experienced enough to responsibly teach people. Are there any other options to make a bit of cash as a programmer? Is programming just one of those things that requires complete dedication, or what?"
I have good news and bad news: you can totally get little contract jobs on the side for extra cash as a developer, but you have to put time and effort into drumming up clients, list as if you were doing contract development full time. You have to convince each new client that you're worth their money. I've had some luck doing contract work for previous employers that already know I'm trustworthy, but I can't just turn it on and off like a money faucet.
Your other option is to make something and sell it yourself, which is even more of an up-front investment of time with less guarantee of a return. You'll be spending even more time doing marketing and business management.
So, the short version is you're not likely to get easy money without putting more effort into it, unless you've already built up numerous business relationships. Sorry! I wish I could just write useful code and get paid for it too, but it turns out I have to keep convincing someone to give me money for my work.
A couple of years ago I tried this myself, although I didn't start out with the intention to make any money. I was working on some mobile apps for BlackBerry's PlayBook tablet. They were offering a free tablet to people who made an app, and I'm a real sucker for "free" electronics.
I discovered it was fun making mobile apps, so I have kept at it, spending perhaps 500 hours of time over the last two years. For the first 6 months or so income totalled about $3,000, which was enough to make it fun/rewarding, but not lucrative. But eventually, I made an app that did really well, and it only took 8 hours to make version 1. In the last 16 months or so I have earned about $190,000, and sales on BlackBerry 10 are already more than they were on PlayBook.
If you enjoy C++ development, I'd recommend the BB10 platform. I wrote this up last spring on my "secrets of success":
https://docs.google.com/document/pub?id=1Bnts26oxfhXACMYf_leCZvFENk2mqEV55f8UIaOrcpA
Find a small business focused erp/crm platform (SalesForce, ASPDotNetStorefront, Epicor, NetSuite, etc.) and become an expert in one part of it. Post forum and blog articles on it, run your own sample site/store/system, and build a reputation. People who want to do the things you post about (something like replacing a default menu or search screen) will pay you to do it for them for a real wage.
Depending on the customer, I charge anywhere from $80 to $250 an hour for my time, and work about 10 hours a month on average outside my full-time job (in an unrelated field to my consulting).
One thing I learned, don't be afraid to let your customers know that you do this part time. Many would much rather have a real person to ask question of who won't nickle and dime them. And the companies that would rather work with an 'established partner' will drive you crazy with process and requirements, so letting them know you are just a person doing this part time lets them know you are not the right person for them.
The full set of task include:
-developing clients
-obtaining a project
-specifying the project
-writing tests for the specification
-writing the code
-testing the code yourself EXTENSIVELY
-documenting the code
-teaching the program to the client
-storing the code in a versioned database
-fixing bugs (for months or years)
-documenting bugs/enhancements in a database in case they return again
-marketing the code to secondary customers if allowed
-downtime between projects
-learning/obtaining new hardware and software
If you freelance, you do these all yourself. Maybe a quarter of your time will be spend coding. There are many open-source/online aids to help you with some of these tasks. Newbies and college kids think a programmer spend 90% of their time programming. Hah!
If you work for as developer for a software company many of these tasks will be off-loaded to specialists. Then you might code as much as half your time.
But unless you're from a third world country, you will make more working at McDonalds than getting any job from freelancer.com...