For contractors running the work

One question to ask any software vendor selling to your trade

Ask them: “Have you ever pulled a permit?”

Not “do you understand our industry.” Everyone says yes to that. Ask whether they have personally stood in a permit office, been failed by an inspector, had to explain a change order to someone whose kitchen is in pieces, or eaten the cost of a mistake that was theirs.

Watch what happens. You will usually get a story about a customer who does that, which is a different thing entirely, and you will have learned what you needed to know about who designed the workflow you are about to run your business on.

I hold CBC059592, Certified Building Contractor, and CCC1327217, Certified Roofing Contractor. Forty-six years. Both numbers are public in the Florida DBPR search and I would rather you checked them now than took the sentence on trust.

I also wrote the software my own company runs on. Not commissioned it — wrote it. That combination is unusual enough to be worth explaining, and it is the entire reason this page exists.

Why most contractor software feels like it was designed by someone watching from the road

Think about the last system somebody sold you. How much of your week does it actually save, honestly measured, against how much time your office spends feeding it?

The tell is usually the same. The software models the job the way an accountant sees it — a quote, an invoice, a payment — and treats everything in between as an inconvenience. But everything in between is the job. The decking you did not know was rotten until the tear-off. The inspector who wants a detail the plan does not show. The customer who changes their mind on tile after the order is placed. The crew that finishes early and could start the next one today if anybody knew which one.

Systems written from outside handle the happy path beautifully and collapse at exactly the point where your margin is decided. So the office builds a spreadsheet alongside it. Then a second spreadsheet. Then someone keeps the real schedule in their head, and the expensive system becomes a place you type things after the fact so a report will look right.

Ask yourself what your team actually trusts. If the answer is the whiteboard and not the software, the software is a filing cabinet you are paying a subscription for.

I built mine because I had that problem, not because I saw a market. That is a smaller and more honest claim than most vendors make, and it is the one that predicts whether the thing will survive contact with a real week.

The exposure you probably have and have not priced

Here is the part of this page that will matter most to you in five years, and almost nobody selling you software will raise it.

Every time your business calls, texts or emails a person who did not clearly ask you to — every lead list, every follow-up sequence, every “just checking in” from a dialler — you are operating inside the TCPA, and in Florida inside the FTSA as well. Florida's rules are stricter than the federal ones, and the state gives the person you called a private right of action.

Now ask yourself, honestly: if someone demanded proof tomorrow that a specific person consented to be called, could you produce it? Not “we have their form submission.” Could you produce what words they agreed to, when, and from what device — and show that nothing in your system quietly upgraded an email-only enquiry into permission to dial?

Most contractors cannot. Not through negligence — because the systems they bought record the lead and not the consent, and nobody told them those are different objects. The form said the right thing on screen. The database kept the name and the phone number.

What that costs is not a fine you can plan for. It is a per-contact exposure attached to a list you have been building for years, and the people best placed to notice are the ones who did not want your call.

Fail-closed, and what that word actually has to mean

Every outbound contact path in my platform routes through a compliance gate that fails closed. That sentence is easy to write and most systems do not mean it, so here is the test.

Fail-open means: if the check is unavailable, the message goes anyway. It is the default almost everywhere, because it is what you get when nobody decided. The dialler does not stop because a service did not answer — it dials, and you find out later.

Fail-closed means: if the gate cannot confirm the contact is permitted, nothing goes out. Not a warning, not a queue for review that someone clears in bulk on Friday. It does not send.

The uncomfortable consequence, and the reason most vendors do not build it: a fail-closed gate will sometimes refuse a contact you were entitled to make. It will block a call you had every right to place, because at that moment it could not prove it. That is the cost, it is real, and it is the correct trade — a refused call you were owed costs you one call, and an unlawful call you cannot evidence costs you the whole list.

The second thing it has to mean: consent is captured as evidence, not as a boolean. The exact disclosure text, hashed. The version of that text. The timestamp. Whether the person ticked a box or merely submitted a form — those are different legal postures and a system that records both as “true” has destroyed the distinction. If someone did not consent to calls, that must be impossible to upgrade later by a campaign that wants a bigger audience.

I did not build this because I enjoy compliance. I built it because I could not otherwise answer the question in the previous section about my own business.

Your data stays yours, and the architecture has to enforce it

The platform runs multi-tenant with per-tenant secret storage. In plain terms: your credentials, your customer list, your pricing are isolated at the architecture level rather than by a filter in a query that somebody could get wrong once.

This matters more than it sounds, and here is the scenario that makes it concrete. A platform holds twelve contractors' data behind one set of keys. One integration is misconfigured. Now the blast radius is not one business — it is twelve, and eleven of them did nothing wrong and will never be told.

Ask any vendor where your customer list physically lives, who else's data is in the same store, and what separates them. If the answer is a column with your company id in it, that is a filter, not a boundary. Filters are one forgotten `WHERE` clause from being nothing at all.

The corollary I hold myself to: a platform should never hold a tenant's secrets in a way the tenant cannot revoke. If you leave, you should be able to cut access yourself, that day, without asking me.

What I actually do

Systems consulting. You have tools that do not talk to each other and a person whose job has quietly become carrying data between them. I map what actually happens — not the process on the wall, the one your crew uses — and find the places where the software is fighting the work. Frequently the answer is fewer systems, not another one.

Compliance and process review. The section above, applied to your operation. What does your outbound path do today, what does it record, and what could you actually produce if asked. This is uncomfortable and it is the highest-value thing on this list.

Software. When the honest answer is that nothing off the shelf fits, I build. I would rather talk you out of this than into it — custom software is a commitment, not a purchase, and most contractors who think they need it need two integrations and a decision instead.

What all three have in common: I have run the business you are running. When you say the estimator is the bottleneck, or that jobs stall between sold and scheduled, I do not need it explained. That is the whole value, and it is why I am not going to pretend the scope is bigger than it is.

The three places a contracting business jams, in the order they arrive

In four decades I have watched the same three bottlenecks arrive in the same sequence, and almost nobody buys software for the one they actually have.

First it is the estimate. Work is available, and the constraint is how fast a number can get in front of someone before they call the next guy. Every hour the owner spends not estimating is revenue leaving. Businesses here buy CRMs, which is usually wrong — the constraint is not tracking the lead, it is producing the number. The fix is nearly always a pricing structure that does not require the owner's judgement for the ordinary eighty percent, so only the unusual jobs reach them.

Then it is the handoff. Sold work sits. Not because anyone is idle, but because the information needed to start is in one person's head and that person is estimating. This is where the money actually leaks, and it is invisible on every report, because the job is “sold” and nobody has a field for “sold eleven days ago and nothing has happened.” If you want to know whether you have this one, measure the gap between the signature date and the first day someone was physically on site. Most contractors have never measured it and are surprised by the number.

Then it is closeout. Work is done, the customer is happy, and the invoice is late because the paperwork proving completion is scattered across three phones. Retainage sits. Warranty questions arrive with no record of what was actually installed. This one costs least per incident and most in aggregate, and it is where documentation discipline pays for itself outright.

Why this matters before any software conversation: a tool bought for stage one does nothing for stage two, and a business at stage three does not need a better estimator. Buying for the wrong stage is the most common expensive mistake I see, and vendors do not correct it because all three stages buy the same demo.

Which of the three is yours right now? If you are not sure, it is usually the second, because the second one hides.

What to ask before you sign anything, with anyone

Use these on me too. If I cannot answer them cleanly, that is information.

“If I leave, what do I take?” Not “can I export” — everyone says yes. Ask what format, whether it includes attachments and photographs, whether historical records keep their timestamps, and whether you can do it yourself without asking. An export you have to request is a hostage negotiation with extra steps.

“Who else's data is in the same store as mine, and what separates us?” Listen for whether the answer describes a boundary or a filter.

“What happens when your service is down and my crew needs a work order?” The honest answer is that something degrades. The question is what, and whether it fails safe. A system that silently drops a submission when it cannot reach its backend is worse than one that refuses loudly.

“Show me the consent record for one contact.” Not the lead record — the consent record. What exact wording did they agree to, when, and from where. A vendor who does not understand that those are two different objects should not be operating your outbound.

“What does it cost to keep alive?” Custom software has an ongoing cost whether or not anyone charges you for it. Someone has to maintain it, and if the answer is vague the real answer is that the cost arrives later, all at once, when something breaks and whoever wrote it has moved on.

“What will you talk me out of?” Anyone with nothing to talk you out of is selling, not advising. It is the most useful question on this list and the one nobody asks.

Not for you if. This is you if.

Not for you if you want a system that makes people work a way they do not. Software cannot impose a process the crew has already rejected; it can only make a working process cheaper to follow. If the real problem is that nobody agrees how the job runs, that is a conversation, not a build.

Not for you if you want lead volume. I do not sell leads and I will not promise you any. Anyone quoting you a number of leads per month has told you something about their sales process and nothing about your business.

Not for you if you need it next week. I am one person and I would rather decline than under-serve.

This is you if you are past the point where more hours fix it. If you are the bottleneck — every quote, every problem, every decision routed through you — and the software you bought made that worse by giving you another inbox. If you have grown past the tools you started with and every option looks like it was designed for somebody selling software rather than roofs.

And especially this is you if the compliance section made you uncomfortable. That discomfort is information.

How this actually starts

The first conversation costs nothing and is deliberately short. You describe what is breaking; I tell you whether it is a tooling problem, a process problem or a staffing problem. Those three have completely different answers and only one of them is something I sell.

If it is worth going further, the next step is a review rather than a build — a fixed, bounded piece of work where I map what actually happens in your operation and hand you the findings. You own that document whether or not you ever engage me again, and it is deliberately useful to someone else if you take it elsewhere. A review that only makes sense as a sales step for the person who wrote it is not a review.

Anything beyond that is scoped in writing before it starts, with what it costs to run afterwards stated up front rather than discovered later. I will not quote a build from a phone call, for the same reason I will not quote a roof from the driveway: the number would be padded for the worst case or it would change, and you would not know which until it was too late to matter.

Why I am still a contractor

I could have stopped holding licences years ago. Keeping them current costs money and continuing education and the ongoing possibility of being answerable for work.

I keep them because the moment I stop, this page becomes a story about something I used to do. A vendor who once was a contractor is a vendor. The reason the software knows what a change order does to a schedule is that a change order is doing it to my schedule this week.

It is also the honest limit on what I can take on. A contractor still running jobs cannot service unlimited clients, and I would rather that constraint be visible than discover it together in month three.

If any of this describes your week — tell me what is breaking. Not what you think you need built. What is breaking. Those are usually different, and the gap between them is where the useful conversation is.

Use the form below or call. Tell me which of the three bottlenecks sounds like yours, and if none of them do, tell me that instead — it is a more interesting answer.

Common questions

Do you sell leads?

No. I do not sell leads and I will not promise you a volume of them. Anyone quoting you leads per month before understanding your capacity, your trade mix and your close rate is describing their sales process, not your business.

What does "fail-closed" actually mean in practice?

If the compliance gate cannot confirm a contact is permitted, nothing goes out — not a warning, not a bulk-approve queue. The real cost is that it will sometimes refuse a contact you were entitled to make. That is the correct trade: a refused call costs you one call, an unlawful call you cannot evidence costs you the list.

Where does my data live, and who else can see it?

Isolated per tenant with per-tenant secret storage — a boundary at the architecture level, not a company-id column in a shared table. Ask every vendor this question. If the separation is a filter in a query, it is one forgotten clause from being no separation at all.

Can you just build me what I ask for?

I would usually rather talk you out of it. Custom software is a commitment, not a purchase, and most contractors who believe they need it need two integrations and one decision instead. If a build is genuinely right I will say so, and I will tell you what it costs to keep alive afterwards.

How would I know if I have a TCPA or FTSA problem?

Try to produce, for one specific person you contacted, the exact wording they agreed to, when they agreed, and proof that nothing later upgraded an email-only enquiry into permission to call. If you cannot assemble that in an afternoon, you have your answer. Florida's rules are stricter than the federal ones and carry a private right of action.

Are you taking on work right now?

Sometimes. I am one person still running a contracting business, so capacity is real and limited. If I am full I will tell you that rather than take it and under-serve it.

Send it

Get in touch(407) 383-9118