Archive for December, 2007

Things Every Software Development Contractor Should Know

After recently moving to Cairns, Australia, I’ve noticed that most of the software development houses here contract their development work out rather than hire full-time employees. It is more cost effective for these places to contract than to deal with paperwork and a human resources department, especially since most business comes in the form of building websites for small tourism and hospitality companies.

I’ve never been a contractor in my life, but have been very interested in the prospect since I first heard of other people doing it. The dream of living on some remote tropical island while coding away (compare that to the life to Ian Fleming, who wrote most of the the James Bond novels in Jamaica!) has no doubt crossed my mind many times. However, there are some realities to doing contract work, as I’ve been finding out. Here are some of the major pointers to keep in mind as a software development contractor:

  • Know what you are worth as a contractor. Remember that you aren’t getting your pay divvied up into medical insurance, flexible spending accounts or a retirement plan anymore if you were previously working as a full-time employee, so ask for a little more than you would as a full-time employee because you will now have to pay for these expenses yourself.
  • Get everything in writing, and make sure they start paying you once they agree to hire you for your services. Know exactly how and when you’ll be paid before you start your work. Some companies just want to troll for information on how to plan a project, then lure contractors in with their requests for detailed quotes, only to shaft them once they learn how to do it themselves based on the quote! Keep your mouth shut on the details of how to do a project, that’s why they’re paying you!
  • Read the contract thoroughly, and make sure you answer any questions that you have ahead of time so that you aren’t wasting time later wondering about it. If there are tasks involved that you think you can’t get done in the given time, make sure that you let the hiring company know about this. You have to begin what you start once you sign a contract, so make sure you are only agreeing to do things that you can actually do and are not being a cowboy.
  • Come up with new ideas for more work. During every contract, always try and keep an eye on the next one. Identify areas of their business that could use custom developed solutions and present those ideas to those that hired you.
  • Don’t fall into the rolling contract trap, where you are utilized as simply an extra resource to fix a temporarily permanent shortage. These types of contracts have seen perfectly good developers stay on Fortran projects for 15 years, and see them miss out on the opportunity to acquire new skills like .NET and Java as a result. Enough said!
  • You typically have to supply your own tools. Remember that MSDN subscription that your former company let you play around with while you were employed as a full-time employee? Well now you have to pay for it, unless your contractee is generous and specifies that they want you to use their tools.
  • You can sub-contract your work to other people if you can’t do it yourself, or if you are lazy, or have other projects and want to manage more work for others and move into a business analyst role.
  • Use a consulting/contracting firm if you want peace of mind. These guys get paid to look for jobs for you. They will also take a good cut of your pay, but if its a good contract, then it shouldn’t matter too much. If you get the job done, then they will keep looking for work for you, and all you have to do is stay in touch with them. I personally prefer contracting firms like Robert Half Technology as opposed to looking for contract work myself, just because contracting firms are full time smoothers, and I am a full time programmer with less personable skills! Reality bites, but you can make comfortable compromise if you’re willing to.
  • Remember that depending on the contract, you will be taxed as a contract worker and not as a company employee during the contract period, so take into account withholdings and manage your money like a regular human resources department would – put some into retirement, some into savings, some into a decent health plan, etc.

In Australia, you can get certain tax breaks provided you pass the “Results Test” or 80% of your business comes from more than 1 client.  The Results Test is simply answering “yes” to the three questions:

  • Under your contract or arrangement, is the personal services income paid to achieve a specified result or outcome?
  • Do you have to provide the tools or equipment necessary (if any) to do your work? (If no tools or equipment are required, answer YES.)
  • Are you liable for rectifying defects in your work?

I can answer “yes” to these quesitons, and therefore am not affected by the New Business Tax System Act of 2000.  This gives me more items to make tax deductions on while doing business (see http://www.ato.gov.au/businesses/content.asp?doc=/content/15900.htm&page=13&H13)

Alternative Careers for Software Engineers

Let’s face it, software engineers sometimes burn out. An old electrical engineer once told me that on average, software engineers last about 5 years before they make a career change. I’m not sure if that is true, but I’ve witnessed several software professionals make career changes over the past few years due to the strain and long hours of the job. Working in a job using primarily your brain and fingers can only lead to fatigue sooner or later for many people; it is inevitable.

I took the Princeton Review’s Career Test to find other careers that someone like myself could enter into, and the results of my test are below. I believe these careers are good alternatives for ex-software engineers, since they involve patience and critical thinking:

Manager: Get an MBA and develop leadership skills and business savvy, maybe even start your own business.
Teacher: For those that enjoy educating others, this is a high respect/ low pay alternative.
Scientist: You may have to invest some time into learning science theory if you only have IT qualifications or experience.
Business Analyst: If you can handle dealing with clients and the business end of software, this is a great new job.
Technical Writer: Blogging addicts take note – technical writing still pays well!
Author: Being an author is hard work, since it’s very competitive because everyone enjoys doing it. I’d expect a pay decrease with this one.
Accountant/Auditor: With the mathematical skills and attention to detail software development brings, this seems doable.
Actuary: See Accountant.
Astronomer: Very competitive and low paying, unless you’re really really smart.
Bookkeeper: See Accountant.
Court Reporter: Can you type fast? Good! You’re hired!
Dental Lab Technician: In fact, any lab technical work is suitable for ex software people.
Economist: I know one software engineer that is in love with this topic. Bill Gates even digs this job! Go on, ask him for yourself!
Financial Aid Officer: [no info]
Financial Analyst: See Accountant.
Foreign Exchange Trader See Investor.
Health Care Administrator Admin work requires more people skills. Can you put on a happy face?
Office Manager See Manager.
Sommelier: aka Wine Steward. Can you act posh?
Surveyor: If you long for the outdoors and want to rub shoulders with construction workers, this seems like the ticket.
Corporate Lawyer: You’ll need to go back to University and do a bar exam. But you’ll be richer!
Business Valuator: Not sure about this one.
Financial Planner: See Accountant.
Internet/Intranet Technologies Manager: Instead of writing the code, you can manage it… maybe?
Geneticist: Another science-heavy commitment.
Hospital Administrator: See Health Care Administrator.
Quality Assurance Engineer: If you’re stick of building software, then you can test it instead.
Research Technician: This would be really fun if you like exploring records,documents,etc.
Small Business Owner: Find something that people need, and supply it. Simple, really!
Systems Administrator: Do an MCSE certification, or a systems admin diploma at Uni.
Systems Analyst: This seems like you’d need a deeper understanding of computer systems in order to be successful.
Venture Capitalist/ Investor: Choose the right stocks and cross your fingers.
Auditor: See Accountant.
Consultant: Make sure you know your stuff.
Food Service Manager: See Manager.

The Search for Unlimited High Speed Internet in Cairns

I recently moved back to Cairns, Australia, about a month ago, after living in the USA for the last 10 years. It’s been humid and windy since I got back, with random heavy showers and thunderstorms every few days. Quite a change from the mild chill and warmth of the San Francisco Bay area, and the dry heat of Phoenix!

After being spoilt with unlimited high speed cable broadband internet service while living in the States, it was quite a shock to arrive in Cairns and discover that all of the internet service providers in the Cairns put huge download limitations on their customers, on top of offering slower internet connections in general. For the last few weeks I have been ripping my hair out trying to get a service similar to the high speed cable internet I got from Comcast and Cox in the USA, but to now avail. It seems like most people here are still using ADSL with bandwidth/download/speed limitations here.

I feel like I have technologically devolved. No more speedy downloads of trial software, all nighters watching YouTube, online gaming binges or speedy Skype conversations! Oh Kevin Rudd’s new Broadband minister, where are thou?

Use the Right Power Supply for PC Parts Purchased Overseas

I learned a valuable lesson while building a new PC with parts from both the USA and Australia the other day – always make sure you use a transformable power supply that can step down or step up to the right voltage that your motherboard needs! A lot of newer power supplies sold in Australia are the 500W types that only supply 240v as input and do not have the ability to step down to 110v input for US motherboards, so check the specs before you buy a power supply. I almost burned out my motherboard by using a power supply that couldn’t transform between the US standard 110v input and the standard Australian 240v input!

If you hear a high-pitched “squeal” being emitted when you first turn on a newly built system, then you should shut off the power immediately. More than likely, the sound is being emitted from the capacitors on the motherboard freaking out because they are being overloaded with too much voltage. Another sure-fire sign is onboard motherboard cooling mounts heating up abnormally.