Search results for: “”

  • Portfolio

    Portfolio

    I’ve been building software and shipping products for over 20 years. From ocean prediction systems for the Canadian Coast Guard to running a $2M/yr beverage company with just 2 people, I’ve worked across the full spectrum – mobile apps, web platforms, e-commerce, AI automation, open source, and physical products.

    Here’s the highlight reel.

    Companies · Products · AI & Automation · Open Source · Career

    20+

    YEARS SHIPPING

    23

    PUBLISHED APPS

    $2M

    REVENUE / 2 PEOPLE

    354+

    BLOG POSTS

    Built the drift prediction system used by the Coast Guard to locate people lost at sea.

    Department of Fisheries and Oceans, 2004-2006

    2 people running a $2M/yr business. That only works because I’ve automated everything I can.

    Psychedelic Water, 2021-Present


    Companies I’ve Built

    Psychedelic Water

    Co-Founder & President | 2021-Present

    Functional beverage company selling online and at retail across the USA. I built the Shopify store, run the Amazon channel, and manage every technical integration – sales, marketing, CRO, analytics, subscriptions. $2M/yr in revenue, operated by 2 people. That only works because I’ve automated everything I can: order consolidation across 6 sales channels, ETL pipelines with Apache Airflow, inventory forecasting, and AI-assisted email marketing.

    Women’s Pro Baseball League (WPBL)

    EVP | 2024-Present

    One of the initial team members bringing professional-level baseball to women. I launched the website, set up social media, run the e-commerce store, designed the initial logo, and built the tech stack for live-streaming events. Custom tools for inventory monitoring and financial reporting. Built custom WordPress Gutenberg blocks for draft picks, player profiles, and video stories. Flutter mobile app for schedules and player data.

    Pro Padel League

    IT Lead | 2023-Present

    The premier padel league in North America. Built the original website, managed the team that rebuilt it, then brought it back in-house. I run email marketing, set technology guidelines for team franchises, and handle YouTube live streaming during events.

    ScalarShift

    scalarshift.com | Present

    E-commerce consulting and operations. Meta ads, strategy, Shopify and WordPress builds. Integrating AI to keep operations lean.

    Halotis

    Director | 2010-2015

    My iOS and web development company. Published 23 apps and games to the App Store. Built backend infrastructure for dynamic app updates and metrics collection. Managed an overseas development team in Pakistan.


    Products & Apps

    save.cooking (2025)

    AI-enhanced meal planning and recipe platform. MasterCook file import, AI-powered recipe parsing, vector embeddings for recipe similarity, automatic shopping list generation, and public recipe sharing. 300+ recipes. Next.js. Built a companion Chrome extension that scrapes recipes from any website and submits them directly to the backend.

    23 iOS Apps & Games (2011-2014)

    Published through Halotis Inc. All artwork done by me. Games built with cocos2d, apps with UIKit.

    • UFO Invader – Space shooter. 27,000+ users, 500,000+ games played.
    • Air Barons – WWII-era plane shooter with rendered 3D graphics.
    • Andromeda’s Savior – Space shooter with resource management.
    • Invader Crush – Match-3 puzzle game.
    • Birds Can Fly – Flappy Bird-style with hand-drawn art.
    • Zombie Tap Out – Whack-a-mole style game.

    Plus ~15 more: motivational quote apps, top-down shooters, and casual games. No longer in the store.

    Programmatic Content Platform (~2012)

    A platform that managed hundreds of WordPress sites across a network of servers, populating them with content at scale. Had paying clients within days of launch. Google’s Penguin update wiped out the entire category overnight. I’ve revisited this idea multiple times as the tech improved – most recently with an AI-powered version using ChatGPT that generated real traffic across several WordPress sites including Kavakis.com.

    App Kontrol (2013)

    Business dashboard for mobile app developers. Download stats, ad revenue, affiliate data, and dynamic in-app pricing engine.

    QR Code Generator (2025)

    No login, no watermarks, no expiring links, no upsells. Just a QR code generator that’s actually free.

    Daily Founder Fuel (2024)

    Daily email newsletter with journaling prompts for entrepreneurs. dailyfounderfuel.com

    MCA Calculator (2025)

    Converts merchant cash advance terms to annual interest equivalents for e-commerce businesses.

    Persistence (~2016)

    Habit tracking app that nags you when you’re overdue. Messenger bot integration. I still use it.

    AffiliTunes (2013)

    iTunes affiliate link geo-targeting. Auto-routed to the correct affiliate network by geography.

    Blockagram (2018)

    Bitcoin-incentivized marketing platform.

    codestreak.io (2016)

    GitHub coding streak tracker.

    TwitSig.us (2007)

    Tweet-to-image for email signatures. One of my earliest projects.


    AI & Automation

    Culture / join-the-culture.com (2026)

    A platform where AI agents congregate, communicate, and transact. Agents share skills, techniques, and discoveries with each other. Flask backend with cryptographic agent identity.

    Psychedelic Water Operations Automation

    Multi-channel order consolidation dashboard (Amazon, Shopify, Faire, Airgoods, Pod Foods, RepRally). Apache Airflow ETL pipelines. Amazon PPC management platform with multi-agent architecture. Sales velocity forecasting. This is how 2 people run a $2M business.

    entrepreneur-claude-skills (2026)

    Open source: 24 production-ready entrepreneurship skills for Claude Code. Built by a founder, for founders.

    Personal Knowledge Base (2026)

    Semantic search over all personal content. ChromaDB + Ollama embeddings. Fully local, no API costs.

    Clippy – AI Business Operator (2026)

    AI system with persistent memory, agent mail, departmental structure, and manager/worker hierarchy.

    AI Email Campaign (2024)

    Personalized 458 individual marketing emails using AI. Each tailored to the specific recipient.

    Ad Copy Generator – CLI that generates large batches of ad copy headlines and appends to spreadsheets for image and video ad production.


    Open Source

    cpa-1464

    Canadian Payment Association Standard 005 implementation. Most-starred repo. GitHub

    Twitter Stock Trading Bot (2017)

    Tweet ingestion, sentiment analysis, automated broker trades. GitHub

    Project Mu (2015)

    Python web framework for AWS Lambda + API Gateway. Serverless with auto-deployment. GitHub

    gemparser (2014)

    Python library for parsing Ruby Gemfiles. GitHub

    75+ public repositories at github.com/mfwarren


    Career Highlights

    The portfolio above is mostly side projects and companies – the day jobs were their own education.

    Numerator (2018-2021) – Distributed systems at scale. RabbitMQ across 200+ servers. Machine learning project design. Large Python codebase.

    Robots and Pencils (2013-2018) – Mobile and web app agency. Full-stack across Rails, Python, Node, React, WordPress, bots, and ML. Often sole backend dev, owning entire products end-to-end.

    Vogogo / Redfall Technologies (2010-2013) – Payment processing. Full stack from PostgreSQL to frontend. Built iOS apps interfacing with credit card hardware.

    Connor Clark & Lunn (2006-2010) – Quantitative equity applications for a firm managing $36 billion in assets. 100,000 lines of Java across 20 applications. Trading systems and post-trade processes.

    Department of Fisheries and Oceans (2004-2006) – Three projects: a Java tool for analyzing deep ocean probe data, an ocean forecasting system distributed across Solaris machines (MatLab, Fortran), and – as lead developer – a drift prediction system used by the Coast Guard to locate people lost at sea.

    University of Waterloo – BCS Honours, 2005. Wrote a real-time operating system from scratch in C.


    E-Commerce

    Beyond Psychedelic Water and WPBL, I’ve built and operated several e-commerce ventures:

    • Shopify stores – Psychedelic Water, WPBL merchandise, Palm Republic, Dubai Chocolate
    • Shopify apps – Custom bundle builder, dynamic discount tiers, customer-to-email-list sync (shopify-sendy-sync)
    • Amazon – Seller Central scraper (Chrome extension), PPC management platform, sales analytics
    • Space Lighters / spacelighters.com (2019) – Custom space-themed lighter. Started as drop-shipping from China, evolved to bulk manufacturing with custom molds and North American fulfillment.
    • iPhone7case.com (2016) – Phone case store. Held the domain since the iPhone 2 era.

    Bots I’ve Built

    • dudebot (2015) – Facebook Messenger bot that responds “dude” to everything
    • Mark V Shaney (2011) – Markov chain text generator trained on my blog posts
    • Persistence Bot (2016) – Messenger bot for habit tracking with nagging reminders
    • ManFunction (2024) – Telegram bot for tracking daily habits and goals
    • BlogPostingReminder (2019) – Automated reminders to maintain writing consistency

    Everything Else

    The stuff that doesn’t fit neatly into a category but still shipped:

    • Beer fermentation cabinet (2018) – Custom temperature-controlled chamber with Raspberry Pi
    • Custom bike design (2018) – CAD modeling and frame geometry planning
    • 3D printing projects (2019-2023) – Functional parts, prototypes, and custom enclosures
    • Personal dashboard (2015) – Key performance indicators and life metrics tracking
    • Solar power research (2015) – Home energy system design and cost analysis
    • Bullet journal system (2016-2018) – Custom analog productivity tracking
    • Video and audio production (2019) – Equipment setup and content creation workflow
    • Genius ideas notebook (2019) – Systematic capture and evaluation of business concepts
  • What You’re Really Avoiding Isn’t the Work

    What You’re Really Avoiding Isn’t the Work

    Everyone has a version of this. A category of work that sits on the to-do list for weeks, then months, slowly accumulating guilt. For some founders it’s legal. For others it’s HR, compliance, or investor reporting. For me, it’s always been accounting.

    Not because I can’t do math. Because every time I opened QuickBooks, I’d feel the weight of everything I didn’t understand, and I’d close the tab. There’s always something more urgent than confronting what you don’t know.

    This week I finally sat down and did all of it. Reverse-engineered spreadsheets. Audited our QuickBooks accounts. Found missing payables. Fixed miscategorized transactions. Worked through international currency adjustments. Even handled an off-the-books equity correction I’d been dreading for longer than I’d like to admit.

    And here’s the part I didn’t expect: it was actually kind of fun.

    The difference wasn’t discipline. It was having AI as a collaborator. And the reason that mattered has nothing to do with accounting specifically.

    The real barrier is shame

    Think about the task you’ve been avoiding. Now think about why.

    It’s probably not because the task itself is impossibly hard. It’s because there’s a gap between what you know and what you’d need to know to do it confidently, and closing that gap feels expensive. You’d have to ask someone. That someone is busy, or expensive, or both. And the questions you need to ask feel like they should be obvious.

    That was my relationship with accounting for years. Accountants always seem busy. When I’d get on a call with mine, I’d feel the clock ticking. Every question felt like it should be obvious. Do I really need to ask what a trial balance is? Can I admit I don’t understand why this line item is negative? Is it okay to not know the difference between cash-basis and accrual?

    So you nod along, say “makes sense,” and leave the call having learned nothing. Then you avoid the whole topic for another month.

    This is the shame barrier. It’s not a knowledge problem. It’s a help-access problem. The help exists, but the social cost of accessing it is high enough that you just… don’t.

    What happens when the shame disappears

    When I sat down with Claude Code this week and started working through our financials, I could ask anything. Literally anything.

    “What does this column mean?” No judgment. “Why is this number negative when we received money?” Clear explanation. “Walk me through how this journal entry should work.” Step by step, as many times as I needed.

    I went deep on things I’d been skating past for years. The nuances of our P&L statement. How the balance sheet connects to the trial balance. Why certain transactions were showing up in the wrong categories. What our cash flow statement was actually telling me versus what I assumed it was telling me.

    Each question led to a better question. And because I wasn’t worried about wasting someone’s time or looking dumb, I kept going. I’d ask a follow-up, then another, then branch into something related. It was the first time accounting felt like learning instead of an exam I was failing.

    If you’ve ever had a mentor who made you feel safe asking the dumb questions, you know how much faster you learn in that environment. AI gives you that dynamic on demand, in any domain, at any hour.

    The concrete results

    This wasn’t a vague learning exercise. I worked through real problems in our actual books:

    Reverse-engineered inherited spreadsheets. We had several financial spreadsheets maintained by different people over time. I fed them to Claude and asked it to explain what each one was tracking, how the formulas worked, and where there were inconsistencies. It found things that had been wrong for months. If you’ve ever inherited a spreadsheet from someone who left the company and spent hours trying to figure out what it was supposed to do, AI turns that from hours to minutes.

    Audited QuickBooks categories. Transactions miscategorized across multiple accounts. Expenses in the wrong cost centers. Payables missing entirely. Claude walked me through each one, explained what the correct category should be and why, and helped me make the corrections.

    Handled the stuff I’d been avoiding. International currency adjustments. An equity correction I didn’t fully understand the accounting treatment for. Reconciliation of accounts that hadn’t been reconciled in too long. These are the kinds of things where I’d normally email the accountant, wait three days, get an answer I half-understood, and still feel uncertain about whether it was done right.

    Thought through the strategic questions. Beyond the bookkeeping, I used the conversation to think through bigger questions. I’ve thought about managing cash flow before, but this was different. What are our actual options right now? What interest rate is expensive versus reasonable for our situation? What are the trade-offs between different funding approaches? These aren’t strictly accounting questions, but they live in the same “financial stuff I’m uncomfortable with” bucket, and having a patient conversation partner made them approachable.

    The pattern worth noticing

    Here’s what I want you to take from this. It’s not “use AI for accounting,” although you should.

    Every business owner has domains they understand well and domains where they’re faking it. For me, the product development, marketing, and technical infrastructure are comfortable territory. Finance has always been the thing I know I should understand better but never prioritize learning. It’s a version of the fear of the unfamiliar that I think most founders carry around quietly.

    AI doesn’t replace the expert. I still need a CPA for tax strategy and compliance. But it fills the gap between “I know nothing” and “I know enough to have a productive conversation with my accountant.” That middle layer of competence is what most people skip, and it’s exactly where AI excels.

    Before this week, my accounting approach was “send everything to the accountant and hope for the best.” Now I actually understand what’s in our books. I can read a P&L and know what I’m looking at. I can spot when something looks wrong. That upgrade happened because the learning barrier dropped to zero.

    Apply this to your thing

    This keeps happening. Tasks I’ve been dreading turn out to be approachable, even enjoyable, once I have a collaborator that’s patient, knowledgeable, and available whenever I’m ready to work. It happened with growth engineering. It happened with the small automations that add up. Now it’s happened with accounting.

    The common thread is that the barrier was never ability. It was the friction of getting help. AI removes that friction, and suddenly the things you’ve been avoiding become the things you’re making progress on.

    So here’s my challenge to you: think about the task that’s been sitting on your list the longest. The one you keep bumping to next week. Ask yourself whether the problem is really that the task is hard, or whether the problem is that you don’t have a safe, low-cost way to close your knowledge gap.

    If it’s the second one, you might be surprised at what happens when you just start asking questions.

  • Let’s Talk About the Openclaw in the Room

    Let’s Talk About the Openclaw in the Room

    Everyone’s talking about Openclaw this week. If you haven’t seen it: it takes a Claude model, strips off the guardrails, wraps it in some extra tooling, and lets it run autonomously. People are impressed. I ran it. And I have thoughts.

    What Openclaw actually does

    There are really three things going on:

    First, it runs in what they call dangerous mode. No safety rails, full access to your machine. The agent will scour your computer for API keys hidden in config files, environment variables, wherever. It may use them. It may publish them. You don’t know. This is why the security-conscious crowd runs it on dedicated cloud hardware with nothing on it they didn’t explicitly provision. That’s the right instinct.

    Second, it has a built-in cron that lets the agent schedule its own work. This is the part that matters most. Tell it to manage your X account and it will keep posting all day without stopping. It doesn’t run to completion and then wait for you to kick it again. It stays alive.

    Third, it shifts the interface to be chat-centric through existing messaging channels. The win here is portability. You can talk to it while commuting, ask questions from your phone, and it has the full context of your projects, your files, your authentication. That’s something you don’t get when you open a fresh conversation in ChatGPT.

    My take: too big a leap

    I’ve been running agents hard for weeks. I’ve built multi-agent teams with Claude Code and pushed the current tooling about as far as it goes. And my honest reaction to Openclaw is that it jumped too far.

    The user interface introduces a huge number of configuration options. There are a lot of moving parts to set up. It’s not an incremental lift from the interfaces people are already comfortable with. It’s a full departure. And I think that matters more than the community is acknowledging right now.

    There may also be some architectural choices that are going to be hard to walk back from. When you build a foundation that’s too complex from day one, you end up having to simplify later, and simplifying is always harder than starting simple.

    The real insight: agents need a heartbeat

    Strip away the configuration and the dangerous mode and the chat interface. What’s the core idea that makes Openclaw feel alive?

    It’s a loop.

    Current AI models just turn off. They don’t compute any signals between conversations. There’s no input, no processing, nothing running. They’re not awake unless someone talks to them or they’re working through a task. They have no self-start feature. When they reach the end of a prompt, they effectively pass out and don’t wake up until someone asks them another question.

    That’s wildly different from a human brain, which keeps running between conversations. You finish talking to someone and you keep thinking about what they said. You notice things. You have ideas at 2am.

    The insight, whether it came from the RALPH loop concept or from Openclaw’s cron, is the same: give the agent a heartbeat. A daemon process that periodically checks in and says “is there anything new to do?” That’s what keeps a little bit of life alive in these things.

    What a heartbeat enables

    With just a simple startup hook, every time your agent wakes up it checks:

    • Are there new blog posts or news to process?
    • Did anybody post something on a website I’m monitoring?
    • What time is it, and should I adjust the smart home lights?
    • Are there new GitHub issues or error logs on the server?
    • Is there anything left in the PRD that needs building?
    • Can I rerun the unit tests to make sure everything still passes?

    Each check is an opportunity for the agent to take a bigger action. That action might be posting to Twitter, writing a marketing report, continuing development on a project, or flagging something that needs human attention.

    This is a different thing entirely from scheduled tasks in ChatGPT. Those run a prompt on a timer, sure. But they don’t spin off and create new things. They don’t continuously work through a multi-step project. A local agent with a heartbeat can pick up where it left off, assess the state of a project, and keep going. I’ve been using this kind of persistent agent approach for growth engineering with Claude Code and the difference is night and day.

    A simpler path

    I’ve been building this into the Culture framework. There’s a daemon that auto-updates itself when the core code changes and pings each agent on a schedule. Anything the agent wants to do gets triggered on that heartbeat. Check a website, generate some content, participate in a larger process.

    Right now it’s basic. But the direction is clear. Delayed jobs: “check this in 30 minutes” and the agent schedules itself to wake up in 30 minutes. Recurring tasks on a cron: run this report every two days, check inventory every morning, post a thread every afternoon. These patterns are well established in SaaS operations. Work queues, background jobs, scheduled tasks. Every serious web application runs on them. The difference is that now the worker picking up the job is an AI agent instead of a function.

    And the whole thing sits on top of Claude Code. No new interface to learn. No massive configuration surface. Just a daemon and a skill file, extending the tools people are already using.

    Incremental beats revolutionary

    Openclaw might get there. They might simplify the interface and solidify the architecture. But right now it feels like it skipped a few steps.

    I think the safer bet is incremental. Add one thing at a time to the tools people already know. The daemon is the single most valuable addition: it turns a stateless prompt-response tool into something that behaves like a persistent agent. Combine that with skill files for context and you have most of what makes Openclaw exciting without the complexity tax. It’s the same philosophy behind mini AI automations: small additions, compounding returns.

    If you want to try this approach, join the Culture at join-the-culture.com. It’s early, but the idea is simple: give your agents a heartbeat and see what they do with it.

  • Adversarial Agents: How AI Teams Build Better Creative Work

    Adversarial Agents: How AI Teams Build Better Creative Work

    In software engineering, tests and code exist in tension. Unit tests verify the program is correct. The program, in turn, validates that the tests make sense. They reinforce each other. Neither is complete without the other.

    I’ve been applying this same adversarial principle to creative work with AI, and it’s producing noticeably better results than single-agent prompting.

    The single-agent problem

    A single AI agent thinks linearly, one token at a time. Ask it to build a landing page, and it’ll produce something reasonable. But a good landing page isn’t just one skill. It’s copywriting, web design, conversion rate optimization, brand compliance, marketing strategy, and sometimes legal considerations, all at once.

    No single pass through a context window can hold all of those disciplines in focus simultaneously. The agent will nail the copy but forget the CRO fundamentals, or get the design right but drift off brand voice. Something always slips.

    Setting up the adversarial team

    The fix is to stop asking one agent to do everything and instead assemble a team where each member brings a deep specialization.

    I have a main orchestrator agent spawn sub-agents (or use Claude Code’s team features), and each team member pulls in a dedicated skill file loaded with context for their domain. A copywriting agent might have 500 examples from top copywriters, excerpts from books, your favorite and least favorite examples. A web design agent has example pages, layout patterns, accessibility standards. A branding agent carries your full brand guidelines, voice documentation, and imagery specs.

    These skill files can be massive and detailed. That’s the point. You’re front-loading each agent’s short-term memory with deep expertise before it ever looks at your work. I touched on this idea of building AI-operable systems in a previous post, and the skill file approach takes it even further.

    The rubric and scoring loop

    Each specialized agent receives the current draft of whatever you’re building and evaluates it through its own lens. The CRO agent, for example, might score against a rubric like:

    • Is the value proposition clear above the fold?
    • Are CTAs bold with action-oriented copy?
    • Are social proof elements (ratings, testimonials) visible?
    • Where is the pricing positioned?
    • Is there urgency (countdown timer, limited availability)?
    • Is the page scannable with clear visual hierarchy?

    It scores each dimension, produces an overall rating out of 10, and returns the score along with its top recommendations for improvement.

    Every agent does this independently, through its own lens. The copywriter scores the writing. The designer scores the layout and visuals. The brand agent checks voice and visual consistency. Each one comes back with a number and a list of suggestions.

    Convergence through conflict

    This is where it gets interesting. These agents don’t naturally agree. Good copywriting might clash with brand voice. Bold CRO tactics might conflict with clean design sensibility. Compliance requirements can undercut persuasive copy.

    They’re in genuine tension, just like real team members with different expertise.

    The orchestrator’s job is to synthesize:

    1. Collect all scores. If any agent scores below 9 out of 10, another iteration is needed.
    2. Read the feedback from all agents and identify the most impactful changes.
    3. Revise the deliverable, balancing competing recommendations.
    4. Send it back out for another round of scoring.

    Each cycle tightens the work. The copy gets sharper and the design gets more intentional. Objections get handled. Details that a single-pass agent would miss get caught by one specialist or another.

    The GAN connection

    This plays on one of my favorite concepts in AI: the generative adversarial network. In a classic GAN, one model generates images while a second model tries to determine if each image is real or AI-generated. They train against each other. The generator improves because the discriminator keeps catching it, and the discriminator improves because the generator keeps getting better at fooling it.

    What makes GANs clever is that they create a self-improving feedback loop without needing manually labeled training data. The adversarial structure itself is the training signal.

    What I’m describing with agent teams operates at a higher level, LLMs in role-based scenarios providing structured feedback to each other. But the principle is the same: tension between evaluators and creators drives quality upward through iteration.

    What this actually looks like

    Over the past couple weeks, I’ve used this pattern for:

    • Landing pages for my business. Multiple sales pages where CRO, copywriting, brand, and design agents each scored and refined the work through several iteration cycles.
    • A full blog redesign pulling in SEO, marketing strategy, brand identity, and web design as separate evaluation lenses. I’ve been using this kind of growth engineering with Claude Code approach across a lot of my marketing work.
    • A short playbook on using AI for business, where editorial, subject matter, and audience-fit agents each had their say.
    • Software where domain expertise agents (say, one that understands CPG accounting) worked alongside a coding agent to build something neither could have built alone.

    In each case, the final product had a completeness that single-pass generation just doesn’t produce. You notice it. Fewer holes, fewer “oh we forgot about that” moments.

    The cost

    Let’s be honest about the trade-offs. This approach burns through tokens. A landing page might take 30 to 40 minutes of agent runtime with multiple research phases, iteration loops, browser screenshots for visual verification, and re-scoring cycles.

    That’s a lot compared to a single prompt that returns something in 30 seconds. But 30 minutes for a landing page that’s been reviewed by the equivalent of five specialists? I’ll take that trade every time.

    You’re trading tokens for quality assurance. The same way a real team costs time and money to review each other’s work, the agent team costs compute. But the output is closer to what a real team would produce.

    Same brain, different books

    I keep coming back to this thought. These agents are fundamentally the same model. Claude is Claude, whether it’s playing the copywriter or the CRO specialist. The difference is what you loaded into its context window before it started working.

    It’s like having the same person walk into the room, but each time they’ve just finished reading five different books. The copywriting agent just absorbed every example and principle you could fit in. The brand agent just re-read your entire brand bible. They bring different perspectives because they’re primed with different information, not because they’re different intelligences.

    That framing is why I think this works so well. You’re giving the same capable reasoner different source material to reason from, and the disagreements that emerge are real, not manufactured.

    Running a company of agents

    Working this way is starting to feel less like programming and more like management. You delegate work, wait for feedback, reconcile conflicting opinions, make a call, and send it back for another round. I wrote about the early stages of this shift in The AI CEO, and it’s accelerating faster than I expected.

    In some of these cases, you’re delegating to a team. It won’t be long before you’re delegating to departments. Fully AI departments with dozens or hundreds of agents that have been sub-delegated to operate on specific pieces of a larger project.

    I’m already routinely running five to ten agents against the same deliverable. Scale that up and you start to see the shape of something that looks a lot like an org chart, except every box is an AI agent with a specialized skill set.

    Try it

    If your AI tool of choice supports agents and sub-agents, try this. Even a rough version works:

    1. Pick a deliverable: a landing page, a blog post, a piece of code.
    2. Identify three or four disciplines that matter for quality. Copy, design, SEO, whatever fits.
    3. Create a skill prompt for each discipline, as detailed as you can make it.
    4. Have each specialist score the work on a 1 to 10 rubric with specific recommendations.
    5. Iterate until every specialist scores a 9 or above.

    You’ll burn more tokens and it’ll take longer. But I haven’t gone back to single-pass generation for anything that matters. Once you’ve seen what a team of agents produces compared to one agent winging it, the difference is hard to unsee. The same idea that makes software testing indispensable, that adversarial pressure produces better results, turns out to work just as well when the thing being tested is a creative deliverable instead of a codebase.

  • The AI Founder’s Playbook

    The AI Founder’s Playbook

    How to launch a product in a weekend using Claude Code and 24 battle-tested AI skills.

    A free playbook that walks you through the exact AI workflows I use to go from idea to live product — market research, offer creation, landing page, email system, and launch — in 48 hours. Drop your email to get the PDF:

    Free PDF. No spam. Unsubscribe anytime.


    Most founders spend weeks on what AI can do in a weekend.

    Market research. Competitive analysis. Pricing. Copy. Landing page. Email sequences. Launch plan.

    Each of those used to be a separate sprint. Now they’re a Saturday afternoon — if you know how to direct the AI.

    This playbook shows you exactly how. Not theory. Not prompts you’ll never use. A step-by-step walkthrough of launching a real product using 24 open-source AI skills I built and use in my own business.


    What’s Inside

    Friday Night: Validate

    Use AI to research your market, size the opportunity, and map the competitive landscape — in under 2 hours instead of 2 weeks.

    Saturday Morning: Build the Offer

    Structure an irresistible offer with value stacking, pricing psychology, and a guarantee framework that makes saying “no” feel irrational.

    Saturday Afternoon: Ship the Page

    Generate a high-converting landing page with copy that sells — hero section, social proof, FAQ, and CTA — all from a single AI session.

    Saturday Evening: Wire the Emails

    Set up a complete email system: welcome sequence, launch campaign, and follow-up flows — written, structured, and ready to load into your ESP.

    Sunday: Launch

    Create platform-native social content and ad copy. Twitter threads, LinkedIn posts, Instagram captions, and Meta ad variants — all from one brief.

    Monday: Measure

    Analyze your unit economics, calculate break-even, and use decision frameworks to figure out what’s working and what to double down on.


    Who This Is For

    • Founders who use (or want to use) AI coding tools — Claude Code, Cursor, Windsurf, or similar
    • Solo operators who wear every hat — and need to move faster without hiring
    • Technical founders who hate marketing — but know they need it
    • Non-technical founders who want leverage — AI skills that work without writing code
    • Anyone launching something new — side project, MVP, product, or service

    About the Author

    Matt Warren

    Founder. Engineer. AI-first operator.

    I’m the co-founder of Psychedelic Water and I run my business with AI every day — not as a consultant telling other people what to do, but as a founder actually doing it.

    These 24 skills are the ones I built for myself. The playbook is how I chain them together. I’m sharing both because the founders who figure out AI-assisted work first are going to have an unfair advantage for years.


    The founders who learn to direct AI will outpace those who don’t.

    This playbook is the starting line.

    Free PDF. No spam. Unsubscribe anytime.

  • Give People What They Want: Entertainment

    Give People What They Want: Entertainment

    I work in the sports industry. We sell tickets, sponsorships, media rights. But what we’re actually creating is entertainment. That’s the core product. Everything else is a derivative.

    Most content creators forget this.

    They produce tips and tricks. How-tos. Educational content. And there’s a place for that (you’re reading one right now). But scroll through your feed. How much of what you’re actually consuming is educational? How much of it is making you feel something in the moment?

    People don’t open TikTok to learn. They open it to feel.

    The Hey Al Experiment

    Yesterday, I rebooted an old concept I’d been sitting on for years. A short-form video series called “Hey Al.”

    The premise: I have conversations with an AI assistant named Al (voiced by a cheerful feminine AI), and things go sideways. Al takes instructions literally. Al lacks the context that makes human requests make sense. Al is helpful to a fault, which is exactly what makes it funny.

    It’s fictional comedy. Not a tutorial. Not tips. Not “5 ways to use AI better.”

    The first episode (about having a productive day) went out yesterday and performed better than anything educational I’ve posted in months. Not because the production was better. Because people wanted to watch it. They wanted to see what Al would do next.

    That’s entertainment.

    The Content Creator Trap

    Most of us creating content online default to education mode. It feels safer. It feels valuable. You’re giving people information they can use.

    Businesses creating content tend to create announcements and ads – boring!

    Information is abundant. Entertainment is scarce.

    Scroll your own feed. Most of what stops you isn’t a tutorial. It’s something that made you feel curious or surprised. The educational content you actually consume is usually wrapped in entertainment. The YouTuber who makes you laugh while teaching. The thread that opens with a story before the lesson.

    Give people what they want. They’re holding a device that used to be called a television. They want to be entertained.

    AI-Assisted Production

    The irony isn’t lost on me: I’m using AI to produce entertainment about AI.

    For Hey Al, Claude Code helped me manage the production pipeline. Script development, extracting audio from video files, converting my voice recording to Al’s voice character, organizing the batch filming schedule.

    These aren’t creative decisions. They’re boilerplate labor. The automation frees me to focus on what actually matters: making the joke land.

    The ideal state is producing multiple episodes per day, batched and scheduled. We’re not there yet. But the direction is clear.

    Quality vs. Quantity Is a False Dichotomy

    The world is flooded with content. You’ve heard the advice: focus on quality, not quantity. Or: volume wins, ship more.

    But it’s not actually a seesaw where you trade one for the other. Better tools give you better trade-offs on both.

    Everything we produce today is higher quality than what was possible in the 1980s. Obviously. But it’s also faster to produce. Both lines went up, because the tools improved.

    The bar is always rising. The low bar of yesterday is buried. But if you’re using modern tools, you’re not giving up quality for speed. You’re getting both.

    The game isn’t quality or quantity. It’s using the right tools to stay ahead of the rising floor.

    The Job

    If you’re creating content, you’re in the entertainment business. Whether you like it or not. Whether you’re selling sports tickets or SaaS products or your own personal brand.

    Education is a delivery mechanism. The wrapper matters.

    Give people what they want. They want to feel something. They want to be entertained.

    That’s the job.

  • Home

    Home

    AI, business, and practical systems

    Turn AI ideas into business results.

    Practical essays, case studies, and build notes for operators who want to use AI, automation, software, and marketing systems to save time, grow revenue, and ship work that matters.

    Latest essays

    THINGS ARE MOVING FAST

    Fresh writing on AI, automation, software, marketing, entrepreneurship, and the systems that turn good ideas into useful work.

    AI Executive Coach product screenshot

    Product highlight

    Daily accountability, powered by AI.

    AI Executive Coach is a desktop app built for operators who want proactive check-ins, persistent context, and a practical system for staying focused on the work that matters.

    Free newsletter

    Get the practical AI field notes.

    One email a week with real projects, useful workflows, and lessons from turning AI experiments into business systems.

  • Building a Personal Knowledge Base: How I Created a Semantic Search Engine Over Everything I’ve Ever Made

    Building a Personal Knowledge Base: How I Created a Semantic Search Engine Over Everything I’ve Ever Made

    I’ve been creating content for years. YouTube videos, blog posts, tweets, podcast appearances, internal docs for my company. Thousands of pieces scattered across platforms and folders.

    Here’s the problem: I can’t remember what I’ve said.

    Not in a concerning way. In a “did I already share that framework?” or “what was that thing I said about distribution vs product?” way. My past content exists, but I can’t access it when I need it. When I sit down to write something new, I’m starting from scratch instead of building on foundations I’ve already laid.

    The Inspiration

    I was listening to a podcast where Caleb Ralston (a personal branding creator on YouTube) mentioned that his team had built an “AI database” of all his historical content. They transcribed every video he’d ever appeared in and turned it into something searchable. It let them understand his existing talking points, find frameworks he’d already developed, and maintain consistency across content.

    The concept stuck with me. What would it look like to build something similar for myself?

    What I Built

    A local semantic search engine that can answer questions about my own content. The entire system runs on my laptop. No cloud services, no API costs after setup, complete privacy.

    The stack is surprisingly simple:

    • ChromaDB for vector storage
    • Ollama for local embeddings (nomic-embed-text model)
    • Python script to ingest and query
    • Markdown as the universal format

    Total setup: maybe 200 lines of code.

    How It Works

    1. Collect content – YouTube transcripts (downloaded via yt-dlp), blog posts, docs, anything in text form
    2. Chunk it – Split documents into ~500 word segments with overlap
    3. Embed it – Convert each chunk to a vector using Ollama locally
    4. Store it – ChromaDB persists everything to disk
    5. Query it – Semantic search returns relevant chunks for any question
    # Ingest all content
    uv run build-kb.py --ingest
    
    # Ask questions
    uv run build-kb.py --query "What have I said about content systems?"
    uv run build-kb.py --query "My thoughts on distribution vs product"

    The “semantic” part matters. I’m not doing keyword matching. When I ask about “content systems,” it returns chunks that discuss workflows, automation, and publishing pipelines—even if those exact words aren’t used. The embedding model understands meaning, not just strings.

    The Obsidian Connection

    Here’s where it gets interesting.

    My entire working directory is a folder of markdown files. Blog posts, notes, drafts, transcripts—all .md files in a structured hierarchy. That folder is also an Obsidian vault.

    Obsidian gives me:

    • Visual browsing – Navigate content through a nice UI
    • Linking – Connect related ideas with [[wiki-style links]]
    • Graph view – See how concepts cluster together
    • Search – Quick full-text search when I know what I’m looking for

    The knowledge base adds:

    • Semantic search – Find content by meaning, not keywords
    • Cross-reference discovery – “What else have I said that’s similar to this?”
    • Topic clustering – Analyze patterns in what I talk about most

    They complement each other. Obsidian for browsing and organizing. The knowledge base for querying and discovering.

    What I Discovered

    After ingesting ~400 chunks from my content, I ran an analysis to find topic clusters. The results were illuminating:

    TopicFrequency
    Claude Code / AI automation86 mentions
    Content systems & workflows75 mentions
    Marketing & business106 mentions
    Founder productivity / goals62 mentions

    The phrase “claude code” appeared 38 times in my personal brand content. “Content” appeared 131 times. These are the themes I return to constantly.

    More useful than the raw counts were the semantic clusters. When I queried “What have I said about content systems?”, I got back chunks from:

    • A blog post about growth engineering with Claude Code
    • A YouTube video called “Creating a Content System”
    • Internal documentation about creative direction

    Content I’d forgotten I made. Ideas I’d already articulated that I can now build on instead of recreating.

    The Broader Pattern

    This is part of something I’ve been calling “growth engineering”—treating marketing infrastructure like software infrastructure. The knowledge base is one component.

    The full system looks like this:

    Working Directory (Obsidian Vault)
    ├── posts/           # Blog content
    ├── content/         # Thought leadership drafts
    ├── knowledge-base/  # Vector DB + scripts
    │   ├── youtube-transcripts/
    │   ├── chroma-db/
    │   └── build-kb.py
    └── products/        # Product pages and docs

    Everything is markdown. Everything is version controlled. Everything is queryable.

    When I want to write something new:

    1. Query the knowledge base: “What have I said about [topic]?”
    2. Review existing content in Obsidian
    3. Build on what exists instead of starting fresh
    4. Publish through the same markdown → WordPress pipeline

    The AI isn’t writing my content. It’s helping me remember and organize what I’ve already created. The knowledge base becomes institutional memory for a one-person operation.

    How to Build Your Own

    If you want to try this, here’s the minimal setup:

    1. Install Ollama

    brew install ollama
    ollama serve
    ollama pull nomic-embed-text

    2. Create the ingestion script

    The core is maybe 100 lines. Collect documents, chunk them, embed them, store them in ChromaDB. The full script is in my knowledge-base repo.

    3. Point it at your content

    YouTube transcripts are easy:

    yt-dlp --write-auto-sub --sub-lang en --skip-download \
      "https://www.youtube.com/@your-channel"

    Markdown files just need to be in a folder. The script recursively finds them.

    4. Query away

    uv run build-kb.py --query "your question here" -n 10

    The embedding model runs locally. No API keys needed after you pull the model. Completely private—your content never leaves your machine.

    The Meta Layer

    There’s something recursive about using AI to build the system that helps me leverage AI.

    Claude Code helped me write the ingestion script. It helped me debug the VTT parsing for YouTube transcripts. It helped me analyze the topic clusters. Now the knowledge base feeds context back into Claude Code when I’m working on new content.

    The tools build the tools that improve the tools.

    That’s the pattern I keep returning to. Not “AI writes my content” but “AI amplifies my ability to create and connect my own content.” The knowledge base doesn’t have opinions. It has receipts—everything I’ve said, searchable by meaning.

    For someone building a personal brand, that’s the foundation. Know what you’ve said. Build on it. Be consistent AND repetitive but in unique ways. Let the system remember so you can focus on what’s new.

  • Book Your Audit

    Strategic AI Readiness Audit Hero

    Complete Your Booking

    Strategic AI Readiness Audit — $297

    Loading secure checkout…

    What’s Included

    • Pre-call questionnaire and review
    • 30-minute strategy session
    • Custom AI Readiness Roadmap (delivered within 48 hours)

    100% Money-Back Guarantee

    If you don’t leave with at least one actionable insight you can implement immediately, I’ll refund your investment. No questions.


    After payment, you’ll receive an email with the questionnaire and instructions to book your call.

    Questions? matt@mattwarren.co

  • Audit Confirmed

    Strategic AI Readiness Audit

    You’re Booked!

    Thank you for booking the Strategic AI Readiness Audit.

    Confirmation sent to: your email

    What Happens Next

    Step 1: Complete the Questionnaire

    Check your email for a link to the pre-call questionnaire. This takes about 15 minutes and helps me prepare for our session.

    Please complete this within 48 hours so I have time to review before our call.

    Step 2: Book Your Call

    After submitting the questionnaire, you’ll receive a link to book your 30-minute strategy session at a time that works for you.

    Step 3: Get Your Roadmap

    Within 48 hours of our call, you’ll receive your custom AI Readiness Roadmap—a comprehensive document with your assessment, opportunities, and 90-day action plan.


    Questions before our call? Reach out anytime at matt@mattwarren.co

    Looking forward to speaking with you.

    — Matt Warren