Automation with Purpose

    Building smart systems that save time and reduce friction.

    I love using AI and no-code tools to build workflows that actually work, automating the tedious so teams can focus on what matters.

    Why I love building with AI

    The best automation isn't about replacing humans. It's about removing the grunt work so people can do more meaningful things. I use tools like Lovable, ChatGPT, Claude AI, and custom integrations to build systems that feel almost magical to use.

    Rapid Prototyping

    Go from idea to working solution in hours, not weeks.

    AI-Powered Logic

    Smart workflows that adapt and improve over time.

    Seamless Integration

    Connect tools and data sources that actually talk to each other.

    Time Saved

    Hours of manual work reduced to minutes, even seconds.

    Case Study

    Automated Invoicing at AMMP

    The Challenge

    AMMP needed to invoice customers based on complex usage data from renewable energy installations. The manual process took days each month and was prone to errors.

    The Solution

    I built an automated invoicing system that pulls data from monitoring platforms, calculates usage-based fees, generates professional invoices, and sends them automatically with minimal human oversight. The solution integrates with Xero invoicing, AMMP API, Slack, Webhooks, and SharePoint/OneDrive.

    The Result

    • Monthly invoicing reduced from 1 week to less than 1 hour
    • Zero calculation errors since implementation
    • Team freed to focus on customer success
    AMMP Dashboard - Data view
    AMMP Dashboard - Invoice generation

    Selected Work

    More things I've built

    Internal tools, commercial platforms and marketing sites. Each one built to remove a real bottleneck for a real team.

    AMMP Billing Engine

    A multi-tenant billing platform that turns solar and energy asset telemetry into finished invoices in Xero.

    • Metered billing from live data. Per-asset production is pulled from the AMMP Data API, billable energy is computed per contract type (PPA, fixed lease, variable tariff, on/off-grid) with minimum-consumption floors.
    • Invoice generation and Xero sync with configurable numbering, VAT handling, race-safe server-side sequencing, duplicate guards and per-customer routing to the right Xero organisation.
    • Customer and contract registry, revenue KPIs, and forecast-vs-actual variance with FX-normalised forecasting.
    • Team-scoped data isolation with row-level security and owner/admin/member/viewer roles.

    React, TypeScript, Tailwind, Postgres, edge functions, Xero OAuth

    AMMP marketing site homepage

    AMMP marketing site (ammp.io)

    A production marketing and SEO site for a distributed-energy monitoring platform, prerendered to static HTML.

    • Full product marketing: modules, pricing, 30+ integrations, security and trust, case studies.
    • Interactive demo hub with a chaptered walkthrough video, embedded sample reports and a meeting booker.
    • SEO engine: 18+ competitor comparison pages, blog, JSON-LD, canonicals, sitemap and 301 handling.
    • Trilingual EN/ES/PT across every page, plus US and Brazil market landing pages.

    React, Vite, TypeScript, Tailwind, custom prerender build

    Social CRM

    Turn LinkedIn engagement into pipeline automatically.

    • Extract: syncs company page posts and pulls reactions and comments into a deduped engagers list, on demand or on a schedule.
    • Enrich: Apollo people-match by LinkedIn URL to recover email, title, company and location.
    • Sync: upserts every engager as a HubSpot contact so re-syncs update rather than duplicate.
    • Sequence: multi-step LinkedIn outreach builder with templating, daily caps and working-hour windows.

    React, Postgres with RLS, scheduled jobs, Unipile, Apollo, HubSpot

    Personal Development Review form filled with a peer feedback example

    Personal Development Review Tool

    One form captures self, manager and 360° peer reviews, and files them as formatted Excel records on SharePoint.

    • Reviews organised by period (H1/H2 + year), so everything about one person lands together.
    • Per-employee workbook written via Microsoft Graph: employee, manager and up to three peer columns side by side, plus a central master workbook.
    • Branded Slack bot DMs employee, manager and submitter, with scheduled channel reminders.
    • Password-protected admin area for SharePoint settings, roster (pre-filled from Slack) and reminders.

    React, TanStack Start, Postgres, Microsoft Graph, Slack API

    Tender Radar dashboard listing ranked procurement opportunities

    Tender Radar

    Continuously scans public procurement sources and pushes only the strongest matches into Slack.

    • Six sources in one pipeline (World Bank, TED, ReliefWeb, UNGM, AfDB and GIZ), mixing official APIs with headless scraping, each isolated so one failure never kills the scan.
    • Weighted relevance scoring across ~150 keywords in five languages, with exclusion terms and a top-N cap.
    • One scheduled daily run posts a deduped Slack digest of new above-threshold tenders.
    • Ranked review dashboard with filters, full notice detail and mark-relevant/dismiss actions.

    React, Tailwind, shadcn/ui, TanStack Start, Postgres with RLS, Firecrawl

    AMMP Proposal Studio with a filled-in customer proposal and pricing breakdown

    AMMP Proposal Studio

    Turns a customer's site list into a branded, quotable pricing proposal in minutes.

    • Three ways to describe a portfolio: quick estimate, editable site table, or AI-assisted CSV/XLSX import that maps arbitrary headers to the schema.
    • Live pricing engine with per-MWp module bundles, C&I vs utility-scale tiering and volume, multi-bundle and term discounts.
    • Instant read-out: subscription and setup totals, discount waterfall, MWp-by-country split and pipeline scenarios.
    • One-click Word proposal from the company template, plus a shareable public link.

    TanStack Start, React 19, Tailwind, Recharts, Postgres with RLS

    Let's build something smart

    Got a process that's eating up too much time? A workflow that's held together with spreadsheets and manual effort? Let's talk about automating it.

    Start a conversation