Coding, is? Fun!

Friday, April 24, 2009

Being Self-Employed in IT

I have been self-employed doing freelancing programming work for the past 6 months. Let me describe how I got into it and a few administrative details.
Taking the plunge
There is a difference between being self-employed and running a business. If you plan to run a business, you can face exponential growth or risky shutdown. Freelancing is not the same thing, even though there is pressure for you to expand. (Note: Do NOT freelance if you plan to get loans. Banks do not give out loans to freelancers)
If you are in the USA and planning to come back to India, or if you are already in India but have enough contacts in the USA, freelancing may be a good idea for you. Let your contacts know that you plan to freelance. Your contacts will need some credentials to justify hiring you. For that purpose, register a domain and have a basic website - if only with html. Put your resume outline in that resume and highlight your work. If you can write well (with grammar and good content), then link your blog articles in the website. Have a set of email addresses registered under your domain. My own website is here:
Freelancing works well if you have a stable contact who trusts you and vice versa. Companies may not trust just an unknown freelancer in another country. You need a champion at the client. It would be ideal if he/she can coordinate payments and also help you get set up for starting. The gain the companies have is, of course, lower rates.
So, I would advice you to cultivate potential clients if you are abroad and planning to come back. If you are already in India, do not hesitate to contact your friends abroad.
Technically, you will generally need a VPN connection to the client. You will need a high speed internet connection.
You will also need to be self-motivated to work by yourself. I maintain a timesheet even if the client does not ask for it. I have regular calls and status updates sent to them - and that keeps my work planned.

Infrastructure and Administration
Freelancing, of course, needs the following infrastructural and administrative elements:
1. You need your own computer, preferably a laptop. Make sure you have a warranty.
2. Get an UPS for electricity failures.
3. You may not need an office space, if you have enough space at home. Otherwise, get a small enough office space, close to home. Don't plan a long commute or spend too much money on decorating the office.
4. Get a webcam.
5. Open a Skype account with SkypeOut (ability to call international phones). Start with a $10 SkypeOut credit. For the SkypeOut payment, get an online receipt printed for your tax purpose.
6. Get a good set of headphone with a microphone.
7. Get atleast two physical file folders. Label one of them for your business account in the bank and the other for your taxes. (I will come to banking and taxes later)
8. Since you will spend time at home, make sure you have a decent broadband internet connection. Atleast 512kbps will be needed.
9. Get a good computer table and chair. Make sure your working location has good airconditioning. This is important, because if you are at work, the AC is takend care of by a company. If you only have AC at bedroom at home (as most middle class households do), then you will find yourself trying to work from the bedroom all the time. That is not a very good place to work from. Plan for a second AC room.
10. Buy an external hard disk with atleast 160GB for backup. Have a bunch of DVDs for storing your important files. Have a USB flash drive with 4-8GB capacity. If possible, sign up with a service like Windows folder share or SugarSync for an online backup of your programming work.
11. Backups are VERY important. Take a full system backup atleast once a month. If your client uses source control, check in your files regularly.
12. Get a copy of Norton Anti Virus with Internet Security. Run LiveUpdate once a week. Keep running Windows Update every week or have it run automatically. Keep your computer well patched and do not have any anonymous shares. If you use Vista, run under the UAC (User Access Control) mode all the time. You cannot afford a virus infection.
13. Get a laser printer; they are not that costly now and will help you out.
14. For ALL of the above purchases, whether online or not, get a receipt. You will need it for tax purposes.

Founding the Company
In India, there are different kind of company structure - proprietorship firm, partnership or private limited. For a beginning freelancer, a proprietorship firm is ideal. It ties to a single bank account and you can use your personal PAN card for filing taxes. (You can still hire people under a proprietorship firm). Other than the bank account, you do not need any other form of registration. Here are the steps for founding a proprietorship firm:
1. First decide on a name. Make sure the name is also unique for starting a website.
2. Make sure you have a individual PAN card. A PAN card in your name is sufficient.
3. Decide on a bank. Contact the bank official and let them know you will be running a current account for your business. They will give you a set of guidelines for opening a current account.
4. You need rubber stamps. 3 stamps at least - a seal called a "For" seal that you will affix with your signature to documents; a seal called the address seal with your company name and address; and a date seal. All these rubber stamps cost around Rs.600-800.
5. You need letter pads and a logo. If you already have a website designed, you may have a logo. Otherwise design a logo, a letter pad and a visiting card. A graphic designer can do this for you. Get a letter pad printed and the visiting card printed. (The visiting card is not essential).
6. Contact an auditor near your location. Let them know you are starting a company. You would go back to them when filing your taxes.
7. After the bank opens your account, they will send you a checkbook.
8. Usually, if you work with clients from abroad, the easiest and fastest way to transfer money (payment for your services) is to wire transfer. But wire transferring has charges - upto $100 for a single transfer. The charge applies to the person doing the transfer ie your client. They may deduct it from your payment. If you do plan wire transfers, then get the wire transfer details document from your bank. Every bank has a slightly different procedure and there are some details to fill in. Send the details to your client.
9. From a stationery shop get a "Cash Voucher" book and a receipt book. They may come in handy when you document expenses.
10. For invoices, get an invoice template online. Every invoice should have a unique number and will have the amount you will be charging your client. (Invoices are the "bill" for your client. They will make payments according to the invoices.)
9. With a bank account, stamps, letter pad, PAN card, invoice template, cash voucher book and (if possible) a website, you are all set to go.

Payments and Taxes
Before you negotiate with your clients, you need to know this: it is better to be on a hourly work basis than on fixed-bid work. If your work is such that the clients engage you for a long term with a steady hourly payment, that situation is ideal. Please note that a commitment for an engagement long term does not mean much - the client can cut you off at any point with payment for services till that point.
So for hourly work, what would be your "take-home"? Let us say you bill $100 every hour (unlikely, but it is easy for calculations. Being in India, you would probably only bill less than half that amount).
There is no service tax for dollar exports in software coding services. So, your taxes would come to 20%-30% (depending on your slab). Let us say you started work in January; If by end of March, you earn less than 5 Lakhs, then your slab would be 20%. But, this is assuming you had no other income from the previous April to December. You are taxed for your entire income from April to March.
So $30 of every $100 you earn would go to the government ideally. But there are a few expenses that you can claim to lessen your tax load.
(Your US client may want to know if he needs to tax you in the USA. Because India and the USA have a dual taxation treaty, your income will NOT be taxed twice. )
The expenses you can claim are:
Capital expenses (all your initial investment such as buying the UPS, printer, headphones, stamps and so on)
Location rent (if you work from home, only 50% of your rent is eligible for deductions. If you have an office, your entire rent is eligible)
Transport (if you commute to work; have a car or two-wheeler)
Phone and broadband
Stationery (not much use in IT)
Entertainment (such as lunch with your client at the Taj)
You are a proprietorship firm - you can hire people. You do NOT have to deduct tax for them. Your payments to them count as expenses.
Your LIC, PPF and other savings still apply.
Keep a receipt of ALL your expenses in a physical file. Auditors advise to keep a note of credits and expenses in a excel file.
You have to pay advance taxes twice a year (March and September) and file returns in June. For advance taxes, you would sit with your auditor and go over all the expenses and income. The advance tax can be paid in a local bank such as SBI or HDFC. Keep the advance tax receipt safe.
When you file returns in June, you will include the advance tax receipt and then adjust your final payment according to actual figures. At that point, you need all the proof of your expenses. The Income Tax office may ask you to come in person and ask you to submit the proofs.
If you receive foreign exchange payment, then do NOT forget to get the receipts from your bank called the FIRC. You need it for submission to the Income Tax office.

How to Plan Future Work
The biggest problem you will face as a freelancer is insecurity. Your contract may end at any time. It is tempting to take additional contracts to stave off this danger, but then you may end up having a hard time managing two contracts and clients. So, you tend to try to hire someone. But then you have to face all the problems that comes with trusting a third party - he/she may not like to work for such a small shop. they may disappear any day. They may ruin your reputation with clients.
So, it is a dilemma. I have avoided this by deciding early on never to hire other full-time people. I also decided that I will not take additional full-time contracts. Sure, my position is risky in that case - I actually lost a couple of contracts because I refused to work full-time for them. But that is fine for me.
One key struggle psychologically is NOT to consider yourself a budding star entrepreneur. It is very tempting, particularly with all the propaganda about entrepreneurs to consider yourself a special sort of human. I remind myself constantly that I am simply self-employed and not running a business. It helps.

Labels: ,