Check out the contractor thoroughly. Do not simply accept his referrals because he will only give you names of people that he wants you to call. Ask about his last 5 or 6 jobs and see if there is a gap which may be the person that had a bad experience. Check the BBB and the local licensing board to confirm all licenses and see if there are any complaints. Check with the Secretary of State to see if the owner has been involved with many companies as they sometimes simply close one down and start another one. Ask if he does the work or if he uses subs and get the names of the subs to see if they have had issues getting paid. Get several estimates so you know if the price is realistic. if it is too low, that is a red flag
Get a Written Agreement
Always get an agreement in writing which details the exact scope of work. What are the terms of payment (Never give an advance). If they do not have the money to buy materials then that is a red flag. If the job is extensive and payment is based on when work is done, consider a consultant to help you evaluate whether the work is done and whether the contractor should be paid. You can put this in the contract. How are change orders handled. When should the work be completed, set a firm time frame. Make sure you get lien waivers for all payments and call the subs and suppliers to make sure they have been paid, do not just accept the contractors word that he is paying his bills.
Many homeowners avoid getting a permit as it may increase the cost of the job or cause higher taxes later on. Consider the fact that if you get a permit the work is inspected by the city or county as an extra level of protection. Also if you have an incident and have to make an insurance claim, the insurance company may deny the claim if the work was not permitted. You may also have to reveal this when you sell the house.