failloudly
AVAILABLE

I build systems that tell you when they break.

CRM architecture, databases and integrations — plus the alerting that makes them honest. Most automation fails quietly: an API runs out of credits, a snapshot job doubles up, a backfill kills the live feed and nobody notices for days. Mine says so.

events · production live
A sample of what these systems emit. No client data here.
Tickets closed
446
Standing queue, one consultancy
Contracts
51
US, UK, NL, AU
Hours billed
6,762
Six years freelance
Job success
100%
Top Rated on Upwork

What I'm hired for

three tracks
build

A system you don't have yet

CRM architecture in Zoho One or SmartSuite, a Postgres database behind an outbound team, a workflow where each stage opens the next. Built around how your business runs, not around the demo config.

connect

Systems that don't talk

Two tools holding the same records and disagreeing. A spreadsheet doing a database's job at 20,000 rows. Contracts retyped into three documents. I build the layer between them so nobody retypes anything.

repair

Automation that already broke

An API out of credits, a sync that stopped silently, two rules overwriting each other, duplicate records multiplying nightly. I audit it, fix it, and make the next failure arrive as a warning.

Work log

10 built · 2 repaired · client names withheld

Every entry is real work for a real client, described without naming them. Builds show what was asked for and what shipped; repairs show the symptom, the cause, and the fix.

build01 · community nonprofit · zoho crm
A fundraising system that chases its own pledges
shipped›
Brief

Donations were tracked differently depending on who entered them, and pledges sat at 90% forever because the follow-up date lived in someone's head.

Approach

One pipeline was doing three jobs. There was no stage meaning “promised but unpaid”, so nothing could chase itself and every forecast was wrong.

Result

Three linked pipelines that hand records to each other. Committing to a pledge creates the donation record with donor, family, campaign and solicitor carried across; it chases itself a week before the due date and marks itself lapsed after thirty days unpaid. Zoho Books issues the receipt.

Zoho CRMZoho BooksBlueprintsPipeline design
repair02 · roofing contractor · smartsuite
A scheduling job creating a duplicate every night
was criticalfixed›
Symptom

Records multiplying nightly. Automations referencing fields that no longer existed. Two rules writing the same field in an order nobody controlled.

Diagnosis

Years of additions with no audit. The record-creating automations had no lookup in front of them, so every re-run made another copy.

Fix

Audited every automation across three solutions, removed the broken and the redundant, made creation idempotent — update if it exists, create if it doesn't — and documented what remained in a register the client can read.

SmartSuiteAutomation auditIdempotencyDocumentation
repair03 · device fleet operator · bi pipeline
A backfill that silently stopped the live feed
fixed›
Symptom

A dashboard tracking device activity stopped updating for two days. Separately, the same device was recording several “last seen” timestamps per day when the design allowed one.

Diagnosis

Two faults. Historical data had been loaded without updating the script handling current data, and the daily snapshot job was running more than once, duplicating rows per device.

Fix

Restored the live feed by reinstating the missing trigger, changed the snapshot to run once daily and screen historical rows, then reconciled the report pages so one is authoritative rather than three disagreeing.

Looker StudioScheduled jobsDeduplicationData warehouse
build04 · interior design studio · apps script
A CRM inside the spreadsheet she already used
shipped›
Brief

Every new client meant manually creating a Drive folder, copying a contract template, retyping their details into it and remembering to send an intake form.

Approach

Not a tooling gap — a preference. She was never going to adopt a CRM, and saying so was advice she would never take.

Result

Built the CRM inside the spreadsheet. A dashboard is the only sheet she touches; a button emails a pre-filled intake form, and the submission provisions the Drive folder, merges the contract, writes the link back and advances the record. Contract signed then creates the customer and draft invoice in QuickBooks.

Google Apps ScriptDrive / Docs APIZapierQuickBooks
build05 · roofing contractor · reporting
Reporting rebuilt around fixed periods
shipped›
Brief

The numbers existed but every figure was rolling, so nobody could answer whether this week beat last — and so nobody used them.

Approach

A dashboard that can't be compared to anything is decoration. The metrics also weren't decisions: they measured activity rather than what the business steers on.

Result

One snapshot tab per department and one company trend view, on metrics that are decisions: quoting turnaround in days, quote-to-job conversion, percentage of enquiries followed up, revenue per team day attended, and invoices aging past thirty days.

SmartSuiteFormula fieldsDashboardsLooker Studio
build06 · community nonprofit · zoho crm
Relationship history as a first-class record
shipped›
Brief

Case managers were tracking years of relationship in task notes. Closing the task lost the history.

Approach

Tasks were being used for two incompatible things at once — what to do next, and what already happened.

Result

A separate module for things that actually happened — a meal, a call, an event, a class — linked to the person, household, case manager and event. Each manager got a caseload view of their own people and a next-seven-days list. Tasks went back to being future actions.

Zoho CRMCustom modulesRole-based views
build07 · millwork shop · smartsuite
Production stages that hand work along
shipped›
Brief

Sales closed in one system, production tracked in another, and each shop stage recorded wherever it happened to land.

Approach

There were no handoffs. Every stage transition depended on a person remembering to make it.

Result

Each stage now opens the next. A won sale opens a project carrying scope, drawings and install dates; ready-for-finishing opens a finishing record with its inspection checklist; completing it advances the parent and opens assembly, touch-ups, then photography.

SmartSuiteLinked recordsStatus handoffsChecklists
build08 · community nonprofit · zoho forms
One registration form, four linked records
shipped›
Brief

Family registration arrived as a form and left as retyping — a household, a parent, one record per child and an enrolment, all keyed by hand.

Approach

The form created blindly. With no identity field, nothing could recognise a family that had registered before, so returners duplicated.

Result

A single submission mapped onto all four records, matched on email so returning families update instead of duplicating. The enrolment can't advance to registered until every child attached to it has verified forms — one child or five, same rule.

Zoho FormsZoho CRMDeduplicationData migration
build09 · healthcare staffing saas · zoho sign
Contracts and billing that stop being retyped
shipped›
Brief

Signing a new facility meant typing the same entity details into an order form, an exhibit and an invoice — three chances to get it wrong.

Approach

The documents were disconnected from the records that already held the data.

Result

Signature documents mapped back to CRM fields — parent entity, state, address and signer on the order form; each facility's trading name, entity and monthly fee on the exhibit — with tiered subscription products behind them. Contract signed provisions the customer and a draft invoice, link written back.

Zoho SignZoho CRMQuickBooksSubscription billing
build10 · roofing contractor · lifecycle
Dead quotes leave the pipeline on a clock
shipped›
Brief

Quotes that had gone quiet months earlier still counted as open, making every conversion figure a fiction.

Approach

No exit condition. Nothing ever left the pipeline unless a person decided it was dead.

Result

Time-based exits — 24 hours after follow-ups complete, 72 at terms-sent — copy the record into a nurture board with a link back and remove it from the pipeline. The board tracks last visit, call and seasonal email, and calculates who is due next.

SmartSuiteTime-based triggersLifecycle routing
build11 · marketing agency · freshsales + xero
Deal and invoice signals pushed to where the team works
shipped›
Brief

An agency wanted to know when deals moved and when invoices went overdue, without anyone opening the CRM or the accounting system to check.

Approach

The data existed in two systems nobody watched. Notifications also needed enough context to be actionable — a name alone tells you nothing.

Result

Won-deal alerts pushed into Slack carrying employee size, business type, city, state and products, then the same pattern inverted for lost deals with the reason attached. Overdue invoices from the accounting system raised automatically as tasks in the team's project tool.

FreshsalesXeroSlack APIClickUpZapier
build12 · outbound sales team · supabase
A contact database built from APIs, not bought lists
shipped›
Brief

An outbound team working from purchased lists with no way to tell which accounts resembled the ones that actually closed.

Approach

Bought data goes stale and can't be reasoned about. The useful version is built from enrichment APIs and kept current, with identity resolved so the same person doesn't appear three times.

Result

A Postgres database assembled from enrichment APIs — profiles deduplicated, firmographics attached, lookalike sets derived by query from closed accounts, and total-addressable-market analysis run off the same tables. Job-change detection enrolls a contact into the right sequence within days of them moving.

SupabasePostgreSQLTypeScript / DenoHubSpot APIApollo

Pricing

published · fixed where it can be

Most of this work has a known shape, so it has a known price. Scoped calls and fixed-price builds are listed below. Anything larger gets a written scope with a fixed number before I start — you should never get an invoice you haven't already seen.

Scoped call

$45–10030–60 min

You describe the problem, I tell you what's actually wrong and what it takes to fix it. Screen shared, no slides.

  • $45 · 30 min — one specific question: why is this sync failing, is this schema right, can this be automated at all
  • $80 · 60 min — a system walkthrough: your CRM or stack reviewed live, with a written list of what I'd change
  • $100 · 60 min — architecture session: we design the build together and you leave with the plan, whether or not I build it
Fee credited against the project if you book within 14 days.

Integration between two systems

from $300fixed price

One system's records appearing correctly in another, on a schedule, with failures that announce themselves.

  • $300 — one-way sync, one object, field mapping and de-duplication
  • $650 — two-way sync with conflict rules and a reconciliation report
  • $1,400 — multi-object pipeline, historical backfill, retry and alerting
Zoho · SmartSuite · HubSpot · Freshsales · Xero · Shopify · Supabase · Sheets

CRM build or rebuild

from $600fixed price

The system designed around how you actually sell or deliver — stages, roles, permissions, automation, and reporting that reconciles.

  • $600 — pipeline and stage redesign in an existing CRM, with automation for the stages that repeat
  • $1,600 — full build in Zoho One or SmartSuite: modules, layouts, roles, workflows, dashboards
  • $3,200 — migration from spreadsheets or a legacy CRM, including data cleaning and a parallel-run week
Includes a written admin handover so you aren't dependent on me afterwards.

Automation audit & repair

from $250fixed price

Something that used to work stopped, or works but nobody trusts it. I find the cause, fix it, and instrument it so the next failure is loud.

  • $250 — single broken workflow: root cause, fix, and a short write-up of what happened
  • $500 — full audit of one platform: every rule, function and connection mapped, conflicts listed, priorities ranked
  • $1,100 — audit plus rebuild of the failing parts, with monitoring and alerting on each job
Duplicate records, silent syncs, expired API credits, rules overwriting each other.

Database & reporting layer

from $500fixed price

For when a spreadsheet is doing a database's job — 20,000 rows, five people editing, and no version anyone believes.

  • $500 — Postgres or Supabase schema design with import of your existing data
  • $1,200 — schema plus ingestion jobs, de-duplication, and search for your team
  • $2,400 — full reporting pipeline: sources, transforms, snapshots, and dashboards that reconcile to the source
Supabase · Postgres · BigQuery · Apps Script · Python

Ongoing support

$55–60per hour

For teams who have systems running and want someone who already knows them on call. No minimum retainer, no lock-in.

  • Queue-based support — you file it, I work it, you see the status
  • Change requests, new automations, onboarding new tools
  • Monthly health check on every job and integration you run
446 tickets closed on a standing queue for one consultancy over six years.
Hourly
$55–60
Support, changes and undefined scope
Fixed price
Most builds
Agreed in writing before any work starts
Payment
50 / 50
Half on scope agreed, half on delivery

How the work runs

four steps

The same sequence whether it's a $250 repair or a $3,200 migration. The point of it is that you know the number and the shape of the thing before I write anything.

01

You describe it

Through the chat or a scoped call. What you're trying to build, or what's failing, and what it's costing while it's broken.

02

I scope it in writing

What I'll build, what it will and won't do, what I need from you, the fixed price and the date. You approve it before anything begins.

03

I build in the open

Progress where you can see it, in your tools. You test as it goes rather than at the end, so surprises arrive early and cheap.

04

Handover with alarms on

Documentation, admin access, and monitoring on every job. If something fails afterwards, you find out from the system, not from a customer.

Systems I work in

daily
Zoho One
Zoho CRM
SmartSuite
HubSpot
Freshsales
Salesforce
Supabase
PostgreSQL
BigQuery
Apps Script
Python
Node.js
REST & webhooks
Make / Zapier
Xero
Shopify

Tell me what's breaking, or what you need built.

Two ways in. Message me and I'll answer myself — if I'm at my desk it's a live conversation, and if I'm not it reaches me as a ticket and I reply within one working day. Or put a time straight in my calendar.

chat

Message me now

Describe the system you need or the thing that's failing. No form to fill in first — just tell me what's going on and I'll tell you whether it's a $250 fix or a $3,200 build.

calendar

Book 30 minutes

Screen shared, no slides. You walk me through the stack, I tell you what I'd change and what it costs. Live availability, booked the moment you pick a slot.