Skip to main content

Interviewing contractors

Since I'm new to this game, I have no idea what something costs. Plumbers, carpenters, electricians are all paid much more than I am as far as hourly rate goes, and in my mind, since I am decently handy, if I didn't have a day job, I could be doing many of the tasks I am having to farm out. I would do it more slowly, perhaps not as well, I would need to buy tools and materials at a premium, but I would get it done.

Things like major plumbing and electrical also require licensing. In some cases this is important, since there are complex codes - some of which make sense in terms of safety - that need to be followed.

Some things, like insulating an attic, are quite doable on your own, especially since there are many instructional videos out there, including recommendations from the federal and state governments.

When I need a contractor for a job, I've been looking up "yelp" for reviews to get clues to how the contractor operates. I then like to ask them questions of how they will do something, having first tried to educate myself on the steps, techniques and materials needed for the job. I especially like to see if the contractor as a plan for certain details of the job (e.g we have a chimney, when you are insulating the attic how will you deal with the chimney).

The contractors I have dealt with are fairly opaque with pricing. They quote a total cost including materials which I don't like but that's how things are. What I like best is hourly rate x hours worked + material cost).

I then try and speak with at least one other contractor. By getting two price quotes I can get an idea of whether one of them is trying to take advantage of my inexperience. The more quotes the better, but there are practical limitations to that.

The spread on the quotes can be surprising. I would have expected a 25% or so difference amongst contractors, but for the two big jobs I have had, my quotes have spanned a 4x range.

There are the usual caveats about going with the lowest bid, but in general, once you speak with more than one contractor you will have a hunch as to what sounds fair and what sounds like being taken for a ride.

Be especially wary of contractors that look for things that are wrong and suggest that something is not code/illegal and must be fixed, or who want to do something in a complicated (and more costly way) than your common sense dictates. If they can't explain exactly why they want to draw a new line or upgrade an old installation, get a second opinion.

One thing to keep in mind: when a contractor responds to you, or you set up a time for a consultation, clarify with the person if they are going to charge you for it. I had an interaction with a contractor (incidentally, the one who gave me a quote 4x the other ones) where I declined to go with them for the job and they sent me an angry email asking for money for the consultation. Some companies explicitly say that they will charge to come over to take a look and sometimes roll the charge into the work if you go with them, which sounds fair.



Comments

Popular posts from this blog

Flowing text in inkscape (Poster making)

You can flow text into arbitrary shapes in inkscape. (From a hint here).

You simply create a text box, type your text into it, create a frame with some drawing tool, select both the text box and the frame (click and shift) and then go to text->flow into frame.

UPDATE:

The omnipresent anonymous asked:
Trying to enter sentence so that text forms the number three...any ideas?
The solution:
Type '3' using the text toolConvert to path using object->pathSize as necessaryRemove fillUngroupType in actual text in new text boxSelect the text and the '3' pathFlow the text

Drawing circles using matplotlib

Use the pylab.Circle command

import pylab #Imports matplotlib and a host of other useful modules cir1 = pylab.Circle((0,0), radius=0.75, fc='y') #Creates a patch that looks like a circle (fc= face color) cir2 = pylab.Circle((.5,.5), radius=0.25, alpha =.2, fc='b') #Repeat (alpha=.2 means make it very translucent) ax = pylab.axes(aspect=1) #Creates empty axes (aspect=1 means scale things so that circles look like circles) ax.add_patch(cir1) #Grab the current axes, add the patch to it ax.add_patch(cir2) #Repeat pylab.show()

Running a task in a separate thread in a Tkinter app.

Use Queues to communicate between main thread and sub-threadUse wm_protocol/protocol to handle quit eventUse Event to pass a message to sub-threadimport Tkinter as tki, threading, Queue, time def thread(q, stop_event): """q is a Queue object, stop_event is an Event. stop_event from http://stackoverflow.com/questions/6524459/stopping-a-thread-python """ while(not stop_event.is_set()): if q.empty(): q.put(time.strftime('%H:%M:%S')) class App(object): def __init__(self): self.root = tki.Tk() self.win = tki.Text(self.root, undo=True, width=10, height=1) self.win.pack(side='left') self.queue = Queue.Queue(maxsize=1) self.poll_thread_stop_event = threading.Event() self.poll_thread = threading.Thread(target=thread, name='Thread', args=(self.queue,self.poll_thread_stop_event)) self.poll_thread.start() self.poll_interval = 250 self.poll() self.root.wm_protocol("WM_DELETE…