Redefining the Engineering Workflow Simply purchasing access to frontier AI models does not make a company ship features faster. When Angie Jones took on the task of building an agentic organization at Block, she discovered that 90% of her engineers were already using AI inside their IDEs. Yet, product delivery speeds remained entirely unchanged. Real impact requires moving past simple code generation toward true workflow integration. To bridge this gap, she defined an agentic engineering organization as one where developers do not just write code with AI, but actively direct agents. This operational shift forces engineers to act as managers: decomposing complex problems, delegating tasks, and rigorously reviewing machine-generated output. The Six-Stage Maturity Model To map this transition, the organization adapted a maturity framework inspired by Steve Yegge's observations on "Gastown." This model tracks the shifting relationship between human and machine across six distinct levels: * **Stage 0:** Complete manual coding without AI assistance. * **Stage 1:** Basic auto-complete operations inside the IDE. * **Stage 2:** Chatting with agents without generating pull requests (PRs). * **Stage 3:** Delegating specific tasks to agents and checking the output. * **Stage 4:** Running multiple specialized agents in parallel. * **Stage 5:** Full task delegation where agents produce shippable code autonomously. Most developers naturally stall between stages one and two. Bridging the gap to stage five requires systemic, structural changes to the codebase rather than telling individual developers to work harder. Repository Readiness and the 1% Strategy Instead of forcing 3,500 engineers through a top-down mandate, the initiative focused on a handpicked group of 50 power users representing critical repositories. These "AI champions" spent 30% of their time making codebases AI-ready. They embedded context files like `agents.md` or `claude.md` alongside strict rule files to act as guardrails. This customized approach accommodated diverse repository shapes, ranging from massive Java Virtual Machine (JVM) mono-repos at Square and Cash App to nimbler mobile setups at Tidal. Eliminating Bottlenecks in Parallel Production When agents began working directly inside Slack, Jira, and Linear, PR production skyrocketed. However, this sudden surge created massive bottlenecks. Code reviews stalled, and local laptops choked under the processing load. To stop the bleeding, the team deployed Codex to automate initial code reviews and implemented automated self-healing fix loops. They also transitioned operations to isolated, cloud-based workspaces to let multiple agents run in parallel without crashing local systems. Ultimately, the team built an internal orchestrator called Builder Bot, powered by a 25,000-repository global world map, which allowed any employee to deploy features directly from chat.
Linear
Products
Sep 2024 • 1 videos
High activity month for Linear. Laravel among the most active voices, with 1 videos across 1 sources.
Sep 2025 • 1 videos
High activity month for Linear. The Riding Unicorns Podcast among the most active voices, with 1 videos across 1 sources.
Jan 2026 • 1 videos
High activity month for Linear. Laravel Daily among the most active voices, with 1 videos across 1 sources.
Feb 2026 • 2 videos
High activity month for Linear. AI Coding Daily and Laravel among the most active voices, with 2 videos across 2 sources.
Mar 2026 • 1 videos
High activity month for Linear. 20VC with Harry Stebbings among the most active voices, with 1 videos across 1 sources.
May 2026 • 1 videos
High activity month for Linear. AI Engineer among the most active voices, with 1 videos across 1 sources.
Jun 2026 • 1 videos
High activity month for Linear. AI Engineer among the most active voices, with 1 videos across 1 sources.
- Jun 28, 2026
- May 9, 2026
- Mar 9, 2026
- Feb 21, 2026
- Feb 5, 2026
Beyond the Cave: The Shift from Builder to Businessman Most developers suffer from a dangerous delusion: they believe that if they write enough elegant code, users will magically beat a path to their digital door. In reality, the surge of AI tools in 2026 has made coding the least significant bottleneck in the software lifecycle. We now live in an era where Laravel agents can scaffold complex applications in minutes, leading to a market saturated with products that solve problems no one actually has. To survive, you must abandon the comfort of your IDE and step into the role of a business developer. Success isn't about how many features you ship; it's about how many people understand the value of those features before they even sign up. The Market Research Myth: Validating the Problem, Not the Product A common mistake involves asking friends if they would "use" a product. Use is free; payment is the only metric that matters. Before you write a single migration, you must identify a specific, narrow niche. Broad categories like "developers" are graveyards for startups. Instead, look for Laravel shop owners with fifty-plus employees or junior developers struggling to land their first role. Your research should focus on the existing pain points within these groups. If you are building a CRM for hair salons, don't ask about their dream features. Ask what they hate about their current software and what manual tasks they perform every day. If the problem isn't painful enough to warrant a credit card transaction, the idea is a hobby, not a business. Visual Persuasion: Show, Don't Tell Developers are notoriously bad at documentation and presentation. They fill README files with technical jargon and feature lists while ignoring the first thirty seconds of a visitor's attention. Ian Lansman once noted that the speed of coding was never the issue—selling is. When a potential customer lands on your page, they shouldn't have to turn their brain to maximum power just to decipher what you do. You need a clear tagline that defines who you help and what result you deliver. Visuals are the bridge to emotional buying. Use high-quality GIFs, videos, and before-and-after screenshots. If your product simplifies server deployment, show the messy terminal on the left and your clean dashboard on the right. Humans buy based on emotion and justify with logic later. If your landing page looks like a wall of text, you’ve lost the battle before it began. Distribution and the Power of Video Traditional SEO is dying. With ChatGPT and other AI agents providing direct answers, the days of ranking for long-tail keywords on a blog are numbered. Social media algorithms are equally fickle. The most reliable distribution channel in 2025 and 2026 is video. Whether it's YouTube, TikTok, or LinkedIn, video allows you to build a human connection that text cannot replicate. Don't just sell the tool; teach the solution. Create videos that solve specific problems using your product as the backdrop. If you’ve built a Laravel admin panel, show people how to build a sports league website or a CMS with it. Each video is a lottery ticket. You might need to post thirty times before one goes viral, but each piece of content serves as a permanent salesman for your brand. The Trajectory of the Long Game Marketing is not a single event like a Product Hunt launch. Those spikes are temporary. Real growth is a slow, spiraling upward trajectory. You will have periods of zero traction where you feel like your product is failing. This is the debugging phase of business. If you aren't getting signups, you aren't failing at code—you are failing at the message. Adjust the angle, find a new niche, and keep showing up. The developers who win are those who treat their marketing with the same iterative rigor they apply to their codebases.
Jan 5, 2026The Death of the Seat-Based Revenue Model For two decades, the software-as-a-service (SaaS) industry has lived and died by the per-seat license. It was a simple, predictable metric: more employees meant more revenue. But as Manny Medina, the founder of Outreach and now Paid.ai, warns, this model is hitting an existential wall. The rise of autonomous AI agents—software capable of completing complex tasks without human intervention—means the very link between headcount and productivity is dissolving. When a single AI Agent can perform the work of ten sales development representatives, a company's headcount shrinks while its output expands. Under a traditional pricing model, the software provider is effectively penalized for their own efficiency. They provide more value but capture less revenue because there are fewer "seats" to bill. Medina realized this shift while leading Outreach, noting that when a CEO asks how many fewer people they need to hit their numbers next year, the software provider is essentially building their own contraction event. To survive, the industry must pivot from taxing human presence to monetizing autonomous outcomes. Lessons from the $4 Billion Category Creator Building Outreach from a struggling pivot to a $4 billion powerhouse wasn't a matter of luck; it was a masterclass in aggressive category creation. Medina breaks down the journey into distinct revenue milestones, each requiring a total evolution of the founder's role. The leap from $0 to $2 million in ARR was a street fight, involving door-to-door sales and hiring a VP of Sales on a commission-only basis. The jump to $10 million was where the real strategic work began: defining a new category. Category creation is often misunderstood as a marketing exercise, but it is actually a battle for the customer's mental model. Medina chose to be different rather than just better. Instead of competing with established players like InsideSales.com on their own terms, he framed Outreach as an entirely new entity: a sales engagement platform. This distinction allowed the company to own 100% of its niche. However, he warns that this path is "hard miles" and not for every founder. If you can replace an existing, clunky tool—like Linear did for project management—it is often a faster route to scale than educating a market on a problem they don't yet know they have. Why Durable Growth Beats Fast Growth In the current venture capital climate, there is an obsession with "fast growth" at all costs. Medina argues this is a dangerous distraction. Fast growth is often a byproduct of a temporary market tailwind or an unsustainable customer acquisition strategy. True wealth and enterprise value are built on durable growth. This requires a maniacal focus on the quality of revenue rather than just the quantity. During Outreach's hyper-growth phase, Medina actually banned certain types of "easy" money. He targeted "create and close" revenue—deals that opened and shut within the same quarter—because they were often inefficient and prone to churn. He insisted on adding friction to the sales process to ensure the product solved an existential problem for the buyer. If a customer screams "take my money," a founder's first job isn't to grab the check, but to understand exactly why they are buying. Without that understanding, you have no control over your retention, and the moment the market shifts, your business collapses. Durable growth means becoming a system of record or an essential part of an operation that the business cannot function without. The Financial Stack for the Agentic Era With Paid.ai, Medina is building the infrastructure he wished he had at Outreach. The problem with current billing systems like Stripe or Salesforce Billing is that they are built for SKUs and human users. They struggle to handle the high variability of AI agent operations, where costs are tied to token consumption and value is tied to specific outcomes like booked meetings or closed tickets. Paid.ai aims to consolidate what is currently a fragmented mess of 20 different tools—CPQ, quote-to-cash, billing, margin management, and API tracking—into a single record. For agent builders, the pain point is usually a "pricing pretzel." They start with a basic subscription, but then a customer wants to pay by outcome, and another by task complexity. Paid.ai allows these builders to instrument their agents once and then monetize them in any way the customer demands. This flexibility is the difference between a profitable AI business and one that sells a dollar of compute for fifty cents of revenue. The Strategic Advantage of Small Teams Returning to the early stage after running a massive organization has forced Medina to unlearn his "scale-up" habits. One of his most provocative strategies is the deliberate use of physical constraints, such as keeping an office that only fits 17 people. This isn't about saving on rent; it’s about forcing prioritization. In a large company, you can place three or four bets simultaneously. In a small, constrained team, you have to pick one winner. This lean approach extends to product development and market entry. Medina recently discovered that the quickest sales cycle for Paid.ai isn't through technical teams, but through commercial leaders who are struggling to monetize their new AI products. By narrowing the focus to this specific persona, he can drive predictable sales cycles rather than chasing every possible lead. Founders often fear that saying "no" to opportunities will stunt growth, but in the early days, focus is the only thing that generates the efficiency needed to survive until the next funding round. Fundraising as a Staging of Risk Medina's advice to first-time founders on fundraising is blunt: stop trying to raise the bare minimum. While some advocate for extreme capital efficiency, he views venture capital as a tool to chip away at specific risks. Raising too little money is a death sentence because it doesn't give the founder enough runway to survive the inevitable "gestation period" of a new market. If your timing is slightly off—as it often is with category-defining tech—you need the balance sheet to wait for the tide to turn. When he pitched EQT Ventures and Sequoia Capital for Paid.ai, he didn't use a polished deck. He presented a "catalog of problems" he had validated by calling dozens of agentic companies. This approach shifts the conversation from speculative dreams to concrete solutions. For an investor, backing a seasoned founder who is obsessed with a problem is a different equation than backing a newcomer with a nice slide deck. The goal of the first round isn't just to stay alive; it's to eliminate technical and market-fit risks so that by the time you reach the next round, all that's left is distribution risk.
Sep 17, 2025Overview of the Pest 3.0 Evolution Testing in the PHP ecosystem transformed when Pest PHP first arrived, bringing a functional, human-readable syntax to a world dominated by verbose object-oriented boilerplate. With the release of version 3.0, the framework moves beyond mere test execution and into the realm of full-spectrum development workflow. Created by Nuno Maduro, Pest 3.0 addresses the psychological and practical gaps in the testing process: managing unfinished work, maintaining architectural integrity across teams, and verifying that tests actually provide the security they claim to offer. These features aren't just aesthetic upgrades; they represent a shift toward making the test suite the central source of truth for a project's health and roadmap. Prerequisites To get the most out of this tutorial, you should have a solid grasp of the following: * **PHP 8.2+**: Modern PHP features are central to the framework's performance. * **Basic Testing Concepts**: Familiarity with assertions, mocks, and the red-green-refactor cycle. * **Laravel Framework**: While Pest works with any PHP project, its integration with Laravel is seamless and highly optimized. * **Composer**: Knowledge of package management to handle updates and dependencies. Key Libraries & Tools * Pest PHP: The core testing framework focused on developer experience. * **Linear**: A task management tool often used alongside Pest for tracking project progress. * **Sublime Text**: The editor used for demonstration, though VS Code or PhpStorm are equally supported. * **PHPUnit**: The engine under the hood that Pest abstracts into a more elegant syntax. Integrated Task Management One of the most friction-heavy parts of development is the context switch between a code editor and a project management tool like Linear or GitHub Issues. Pest 3.0 bridges this gap by turning your test suite into a task manager. Previously, developers used the `todo()` method to mark a test for future implementation. Now, you can assign these tasks directly to team members and link them to specific issue IDs. Implementation Walkthrough You can chain methods to define the owner and the reference point for any pending test. This keeps the technical debt visible right where the code lives. ```php it('allows users to edit their profile') ->todo(assignee: 'Nuno Maduro', issue: 11); ``` When you have several related tasks, you can avoid repetition by grouping them within a `describe` block. By chaining `todo` to the block itself, every test within that scope inherits the status. ```php describe('User Management', function () { it('can create a user'); it('can delete a user'); })->todo(assignee: 'Taylor Otwell', issue: 22); ``` When a feature is complete, simply swap `todo()` for `done()`. This keeps the metadata—who built it and why—intact within the codebase. If the test fails months later, the original context is instantly available to whoever is debugging. Architectural Presets for Code Consistency Architectural testing ensures that your project's structure remains consistent, preventing "leaky abstractions" or improper dependencies. Pest 3.0 introduces **Presets**, which allow you to apply hundreds of industry-standard rules with a single line of code. This is a massive improvement over manually writing granular rules for every new project. Using the Presets Instead of writing individual expectations, you call the `arch()->preset()` method. For example, the `php` preset ensures you aren't using dangerous functions like `eval()` or leaking environment details via `phpinfo()`. ```php // tests/ArchTest.php arch()->preset()->php(); arch()->preset()->security(); ``` For Laravel developers, the `laravel` preset is particularly powerful. It enforces resourceful controller naming conventions and ensures that exceptions correctly implement `Throwable`. ```php arch()->preset()->laravel(); ``` Pest also caters to different coding philosophies with `strict` and `relaxed` presets. The `strict` preset might demand `final` classes and private methods, while `relaxed` allows for more flexibility, ensuring that whichever style you choose remains consistent across the entire application. Mutation Testing: The Truth About Coverage Traditional code coverage is often a deceptive metric. It tells you which lines of code were *executed* during a test, but it doesn't prove that your tests would actually catch a bug if those lines were changed. **Mutation Testing** solves this by intentionally breaking your code (creating "mutants") and seeing if your tests fail. If the code changes but the tests still pass, the mutant has "escaped," and your test quality is poor. Running a Mutation Test To run mutation testing, use the `--mutate` flag in your terminal. Pest will analyze your source code, apply mutations (like changing a `public` method to `protected` or removing a database save call), and rerun the tests. ```bash ./vendor/bin/pest --mutate ``` If Pest removes a critical line—such as `$user->save()`—and your tests still pass, the output will show a diff of the mutation. This highlights exactly where you need to add more meaningful assertions rather than just "hitting" the line to satisfy a coverage percentage. Syntax Notes & Best Practices * **Higher-Order Assertions**: Pest encourages chaining methods like `->expect()->toBe()` for readability. * **Parallel Execution**: When running mutation testing, always use the `--parallel` flag. Mutation testing is computationally expensive because it reruns the suite many times; parallelization keeps the feedback loop fast. * **Context over Coverage**: Don't aim for 100% code coverage; aim for a high mutation score. The latter proves that your assertions are actually verifying logic. Tips & Gotchas * **Zero Breaking Changes**: Upgrading from Pest 2.0 to 3.0 is a simple `composer update`. The team prioritized backward compatibility despite the major version bump. * **Filtering**: When debugging mutation failures, use filters to run mutations against a specific file to save time: `pest --mutate --filter=PasswordController`. * **Avoid Over-assignment**: While Task Management is powerful, don't let your test suite become a dumping ground for every minor idea. Use it for tasks that require a specific technical implementation.
Sep 3, 2024