04map · services

Six ways I take work off your team.

Every service below has a shipped project behind it. Start with the problem you have, not the tool you think you need.

what's slowing you down?

  • for teams doing the same task every day

    Automation with n8n

    Leads chased by hand, data copied between tools, the same message sent fifty times. I build the workflows that do it for you, with logs and alerts so you can trust them.

    • Repeat tasks that run on their own
    • CRM, email and SMS kept in sync
    • Every run logged, every failure flagged to a person
    • n8n
    • Make
    • Zapier
    • GoHighLevel
    • Twilio

    proof → Just Eat UK: rider recruitment automated in 7 months

    1. New leadwebhook · form submitted
    2. Enrich and scoreOpenAI · fit and intent
    3. Route to pipelineGoHighLevel · right owner
    4. Text the leadTwilio · within a minute
  • for products that should be smarter

    AI agents and AI in your product

    Not another chatbot wrapper. OpenAI and Claude inside the product your customers already use: writing help, auto-tagging, smart search, and agents that handle real work.

    • Assistants that write in your brand's voice
    • Content and tickets tagged automatically
    • Chat and voice agents that answer from your data
    • OpenAI
    • Claude
    • LangGraph
    • FastAPI
    • Python

    proof → AI SEO pipeline, sold for $20K+

    • Tag this article for the newsletter
    • Tagged: logistics, EU, compliance. Added to Thursday's issue.via Claude API
    • Find our posts about rider safety
    • Three matches, ranked by meaning, not keywords.semantic search
  • for apps that slow down as they grow

    Laravel and PHP back ends

    Slow queues, fragile jobs and APIs nobody wants to touch. I build and rescue Laravel back ends with clean APIs, background jobs and tests on every push.

    • Documented REST APIs your front ends can rely on
    • Heavy work moved to queues with retries
    • PHPUnit and PHPStan in CI, deployed with Forge
    • Laravel
    • PHPUnit
    • PHPStan
    • Redis
    • RabbitMQ

    proof → WorldFirst · Psytech · Homecoming Photo

    app/Jobs/SyncOrders.php
    class SyncOrders implements ShouldQueue
    {
        use Dispatchable, Queueable;
    
        public $tries = 3;
    
        public function handle(Shop $shop): void
        {
            $shop->orders()->pending()
                ->chunkById(500, fn ($batch) =>
                    $batch->each->sync());
        }
    }
  • for marketing teams running many sites

    Enterprise WordPress

    WordPress at a scale most people say it can't handle: one codebase behind many multilingual sites, custom blocks editors can't break, and headless front ends where you need them.

    • Many sites on one platform and one deploy
    • Custom Gutenberg blocks and MU-plugins to VIP standards
    • Headless builds for Vue and React
    • Bedrock
    • ACF Pro
    • WPML
    • WooCommerce

    proof → 35 sites for Ant Group · BAUM Consult · Pubity

    The BAUM Consult website home page
  • for data that has to move between systems

    Node.js and TypeScript

    Webhooks that drop events, integrations held together with scripts, orders that need syncing in real time. I write the services that keep data moving and tell you when it doesn't.

    • APIs and webhooks with retries and idempotency
    • Marketplace and CRM integrations
    • Typed, tested, observable code
    • Node.js
    • TypeScript
    • Next.js
    • PostgreSQL
    • AWS Lambda

    proof → Just Eat UK · marketplace order automation

    webhooks/rider.ts
    app.post('/webhooks/rider', async (req, res) => {
      const rider = await validate(req.body);
      await queue.add('onboard', rider, {
        attempts: 5,
        jobId: rider.id, // no duplicates
      });
      res.status(202).send({ ok: true });
    });
  • for stores that should talk to the business

    E-commerce and ERP

    Orders typed into the ERP by hand, stock that's never quite right, checkouts that can't handle your pricing. I connect WooCommerce and Magento stores to SAP, Stripe and marketplaces.

    • Stock, orders and invoices synced with your ERP
    • Custom checkouts: seat maps, quantity rules, B2B pricing
    • Payments with Stripe and PayPal
    • Magento 2
    • WooCommerce
    • SAP
    • Stripe

    proof → Aalborg Portland: Magento 2 with full SAP integration

    1. StoreMagento 2 · orders
    2. SAP ERPstock · invoices
    3. Stripepaid · reconciled
    09:14 order #48213 → SAP · ok
    09:14 stock −3 · SKU AP-CEM-25 · synced
    09:15 invoice INV-20931 → Stripe · paid
    09:15 nobody typed anything

how we can work together

Three ways to start.

  • ongoing

    Contract or contract-to-hire

    30+ hours a week inside your team, in your tools and your sprint rhythm.

  • scoped

    A defined project

    A WordPress platform, Laravel app or integration, scoped up front and delivered to a date.

  • fast

    An automation sprint

    One workflow mapped and automated with n8n and AI, so your team gets those hours back.

09trigger · your_project

Thirty minutes, no slides. Tell me what's slowing your team down and I'll tell you honestly if I'm the right fit.