What I do Training Support plans Project portfolio How it works About Book a call
Project portfolio

Real problems.
Working systems.

A closer look at the AI, automation, business software and IT systems I have designed and built. Every project below explains the problem, why it mattered, how the system works and the outcome it delivered.

7 detailed projects4 screens per projectPrivacy-safe capturesClick any screen to expand
01 / Business intelligence

Business Insights, built into the operating platform

A native reporting module with a dashboard library, no-code card builder, shared filters and model-specific freshness.

Business modelsDashboard builderFreshness controlsOperations Hub
Outcome at a glanceThe live app serves 21 permission-controlled dashboards through one governed interface, backed by 8,000+ tests and a 7,000+ row live data cache.

The issue

The old reporting platform was a separate Metabase system. It exposed too much technical complexity, lived outside the main operating platform and made it hard to prove that every number meant the same thing.

Why it mattered

People need a figure they can use in a meeting without first finding the one person who knows the query. Slow or unclear reporting sends teams back to manual exports.

What I built

A native Business Intelligence module with curated models, a dashboard library, card builder, shared filters, freshness reporting, exports and a plain-English starting point for supported questions.

How it works

The user chooses a model, measure, period and breakdown, or starts with a recognised plain-English question. The builder previews the result and reports freshness for the model behind each card.

Outcome

The module is built and available on its direct route. It is intentionally hidden from the main navigation while live ERP connectivity, permissions and reconciliation are completed. Money owed and CRM models can answer from current internal stores; ERP-backed sales still needs the read-only lake connection and verification.

Privacy: Current product UI is shown with a synthetic portfolio dataset. No live customer, company or financial records are included.

02 / Data platform

A reporting copy of the ERP, without touching production

Selected ERP tables are copied on a schedule into Azure SQL for reporting, while the live ERP remains the financial system of record.

Azure SQLERP replicationIncremental syncReporting access
Outcome at a glanceA shared read-only ERP reporting foundation mirrors source tables for reporting without claiming unsupported transformation or self-healing capabilities.

The issue

Operational reporting needed current ERP data without placing report queries against the live production system or rebuilding the same extracts for every reporting tool.

Why it mattered

The live ERP must stay responsive and authoritative. A separate reporting copy gives analysts and dashboards a shared place to query without competing with operational transactions.

What I built

A scheduled raw-data replica using ReadySync, selected ERP tables, Azure SQL, defined sync channels and documented connections for SQL reports and Power BI.

How it works

The first run copies each selected table in full. Later runs transfer changes incrementally into raw AcumaticaOData_* tables, where reporting tools can query them without touching production.

Outcome

The result is a shared read-only ERP reporting foundation. It currently mirrors ERP tables only, not CRM or operational files, and it does not claim an automated transformation or self-healing layer.

03 / Process automation

One verified path for joiners and leavers

Active onboarding and offboarding workflows that create or remove access in a defined order, verify the result and surface manual exceptions.

n8nMicrosoft 365Six systems, one triggerAudit trail
Outcome at a glanceDisposable-account tests verified both joiner and leaver paths across Microsoft 365, Exchange, SharePoint, phone and CRM, while failed runs stay visible.

The issue

A new employee required manual steps across accounts, licences, groups, mailbox, phone and device. Leaver access could stay active because the checklist lived in one person's head.

Why it mattered

New staff could wait for access, while delayed offboarding created a security risk with no dependable record of what had been created, changed or removed.

What I built

An active 79-node onboarding workflow and an active 59-node offboarding workflow, with validation, branching, notifications, shared error handling and a recorded result for each path.

How it works

An approved form supplies the employee details. The workflows handle accounts, licences, groups, mail, files, phone and CRM in order. Offboarding runs at 5 pm on the final workday, and manual-only actions are written into the report.

Outcome

Disposable-account tests verified the end-to-end joiner and leaver paths by reading results back from Microsoft 365, Exchange, SharePoint, the phone system and CRM. Failed runs remain visible rather than being treated as success.

04 / AI operations

One control room for tasks, routines and agent actions

An operations console that brings the task register, scheduled routines, workflow design, execution history and repair proposals into one place.

AI agentsScheduled routinesTask controlEvidence checks
Outcome at a glanceTasks, scheduled routines, agent workflows and reversible repair proposals can be inspected from one control room using privacy-safe fictional records.

The issue

Recurring operational work was scattered across scripts, reminders and people's memory. A task could fail silently, and nobody had one view of what was running.

Why it mattered

These are the small controls that keep data, reporting and follow-up reliable. When work gets busy, they are the first things dropped and the last failures discovered.

What I built

A task table, board and reports; a scheduled-routine registry and run ledger; an Autopilot activity view; a workflow studio for small agent teams; and a self-healing ledger with gated actions.

How it works

Routine records expose their schedule, last run, next run and outcome. The runner records each fire, timeout and result. Browser-saved workflow designs can launch durable executions whose traces remain on the server.

Outcome

Task state, scheduled work, agent workflows and reversible repair proposals can be inspected from one control room. The portfolio captures use fictional operational records while preserving the real interface and behaviour.

05 / Operating platform

One operating platform instead of separate tools

The Operations Hub brings CRM, structured work, customer account workflows and support into one authenticated, mobile-ready system.

React and TypeScriptSupabaseERP integrationStructured workCRM
Outcome at a glanceCRM, account plans, structured work and customer account workflows now share one consistent desktop and mobile experience.

The issue

Staff moved between separate tools for CRM, structured work, support, receivables and account applications, each with different navigation, permissions and records.

Why it mattered

Repeated sign-ins and disconnected records made simple work slower and left no single place to see what needed attention today.

What I built

A shared operating platform with permission-filtered navigation and modules for CRM, account plans, structured goals and work, forms, support, applications, receivables, credit-limit increases and credit reviews.

How it works

Modules use one authenticated app shell, view-level permissions, global search and notifications. The ERP remains the system of record for financial data and is surfaced rather than replaced.

Outcome

The current navigation puts CRM, account plans, structured work and customer account workflows into one consistent desktop and mobile experience. Business Insights exists on a direct route but is intentionally not exposed in the main navigation yet.

Privacy: Every CRM row, company, person, date, stage and value shown here is fictional. The capture contains no blurred or live customer records.

06 / Mobile PWA

KirCob keeps a household in sync

A private shared household app for projects, tasks, shopping, meals, calendars, photos and notifications, designed around phone use.

Progressive web appGoogle CalendarRetailer linksNotifications
Outcome at a glanceOne installable, phone-first surface now coordinates household tasks, projects, shopping and calendars, with paired-browser trolley support kept optional.

The issue

Household plans were spread across notes, messages, calendar events and memory. Nobody had one current view of what was due, owned or already done.

Why it mattered

Small domestic tasks create constant coordination overhead when they live in different places. A shared system only works if it is quick enough to use from a phone.

What I built

A private installable PWA combining projects, repeating tasks, shared shopping, meal planning, photos, notifications and a two-way Google Calendar connection.

How it works

Both people see the same current state. Tasks carry ownership and timing, shopping items stay shared, and calendar changes move both ways. The hosted shopping view groups items by aisle and opens retailer links; it does not provide live prices.

Outcome

The app provides one installable, phone-first surface for household coordination. Optional retailer trolley support depends on a paired browser session and is not treated as a guaranteed hosted feature.

Clear captures: These are full, unblurred mobile screens from the app's demonstration dataset.

07 / Private AI app

Reflect remembers the thread

A private, mobile-first journal that combines guided check-ins, immediate support, long-term memory and careful pattern review.

AI memorySupabase RLSOffline PWAGuided reflection
Outcome at a glanceOne private mobile interface covers immediate support, nightly reflection, history and longer-term review with an explicit evidence threshold for patterns.

The issue

Journal entries and check-ins were fragmented, while generic wellbeing tools treated each conversation as if nothing had happened before.

Why it mattered

Reflection is more useful when it can carry context forward without sacrificing privacy or turning a few difficult days into an unsupported claim.

What I built

An owner-only journal with row-level security, short and long nightly flows, a one-call Right Now path, vector memory, structured entries, 30-day summaries, monthly reviews, a K10 check-in and offline PWA support.

How it works

Check-ins and entries stay private to the owner. Chat and reflection functions can retrieve relevant past context, while the Patterns view refuses to make a claim until at least 14 rated nights exist.

Outcome

One mobile interface now covers immediate support, nightly reflection, history and longer-term review, with owner-only data access, continuity across sessions and an explicit evidence threshold for patterns.

Clear captures: The name, dates, scores and reflection shown here are fabricated for the portfolio and do not come from a real journal.

Have a system that should work better?

Book a free first call