How Newfront Ships Faster with AI-Driven Development
Technology

How Newfront Ships Faster with AI-Driven Development

AI agents are revolutionizing software development workflows. Cursor blasted to $500m+ in revenue in less than 2 years (faster than any other company), and 90% of the code powering Anthropic’s Claude chatbot is now built with AI.

Kevin Wiskow and Gabriel Schmitt gave a tech talk on how we’re using AI at Newfront to speed up development cycles and get more done. They walked through the best practices with Cursor, Claude Code, and the workflows that are actually helping the team.

I feel lucky to get to work with such rockstar engineers who are embracing this rapidly improving technology. Here are my top biggest takeaways from the talk.

Pick a Model in Cursor and Give it the Right Tools

Cursor ships with a smart default that rotates lower-cost models. Every developer finds this behavior lacking. Iterating on models and testing with different prompts is key. Today, Claude Sonnet 4 seems to be the consensus winner. Claude Sonnet 3.7 was too aggressive at turning small edits into massive changes. Gemini Pro 2.5 is decent but has higher latency and sometimes stalls out.

Developers reserve “Max mode” for design work. This is a longer-running mode where the model can use more context and tool calls. It’s too slow for everyday use, but can be handy when planning out a larger change. It’s also billed at API pricin,g which is quite expensive.

Model Context Protocol (MCP) is an open standard that enables the models to access external tools. This could be anything from browsing through a Figma design file to interacting with a Postgres database.

Prompt the LLM like it’s a Junior Hire, Not a Search Box

Gabriel framed the technique as “Imagine you’re delegating to a new engineer who just joined the team. If the prompt is too generic, the LLM fails.” Here’s a prompt checklist:

  • Goal first: “Hide the benefits plan coverage details when migrating.” This way, the LLM immediately knows what you’re trying to achieve.

  • Context is king: “Edit app/services/coverage_service.ts lines 120-140.” The Cursor agent will browse the project and grep different files, but being more specific gives it a leg up. You can drag code samples or use @ file references.

  • Clear acceptance testing: “Use TDD to show that the change works. Run tests by cd-ing into the service folder and doing yarn $TEST.” Again, this guides the agent to follow the best path and not get distracted by other parts of the codebase.

  • Style rules: Be explicit about patterns you want the agent to follow. Larger codebases can have different (sometimes conflicting) patterns, so it’s best to give examples.

Claude Code Works as an Autonomous Dev with Full Access to the CLI

While Cursor is an integrated development environment (IDE) with an embedded agent, Claude Code is an agent that lives in the command line interface (CLI). Developers can get the best of both worlds by using the Claude Code plugin within Cursor.

The OpenSearch Example

Here’s the mind-blown 🤯 moment that Kevin walked us through. Kevin typically focuses on data engineering challenges at Newfront but this example shows how he was able to quickly diagnose and fix an infrastructure problem

  1. Problem: Newfront uses OpenSearch to power the search within our product (e.g., looking up a policy by policy number across millions of files). Local OpenSearch was throwing an error when making bulk edits.

  2. Prompt: Kevin wrote the following prompt to explain the issue to Claude Code and guide the agent on how to fix it.
    I’m not quite sure how we deploy OpenSearch, but it’s having issues with bulk data changes. Here are some logs about an index error: <paste>. Add tests to catch this and fix it.

  3. Agent steps: Claude Code made 45 tool calls. It conveniently logs its work so it’s easy to follow, and the steps looked something like this:

    • docker ps → locate container

    • curl localhost:9200/_cluster/health → red status

    • Edit docker-compose.yml (note: there are 30+ in our backend monorepo)

    • Bump JVM heap

    • docker restart opensearch-node1

    • Rerun pytest suite.

The agent gave Kevin a superpower that he didn’t have before. I like to think of it like the scene in the Matrix where Neo wakes up and realizes he knows kung fu.

Claude Code as Review Bot

Claude Code can do anything you can at the command line. For example, it can use the GitHub CLI tool gh to check out branches and comment on a pull request (PR). Kevin built a custom slash command to review PRs with a consistent style and common gotchas from our code base:

Since it has access to the branch locally, it is prompted to create a test plan and run SQL to validate the development models vs. expected results. Here’s an example where the agent analyzes the results of a dbt model change:

Please Don’t Blow Up My Hard Drive

One of the common challenges with Claude Code is that it can potentially make dangerous, non-reversible changes to your machine. Locally, we don’t want Claude to execute unsafe commands without user permission, and we’ve started rolling out remote development containers, with appropriate isolation to allow the AI to work autonomously without significant risk.

This is a gotcha across the team when embracing AI agents. For example, a developer once OK-ed the agent force pushing to the main branch of the repo, and others mentioned local changes accidentally getting thrown away. Continuous Integration/Continuous Delivery (CI/CD) best practices and frequent git commits can help, but developers need to be cautious and verify potentially harmful commands.

Project Plans with TODO Lists Keep Long-Running Agents Sane

Gabriel walked through an example of a larger change with Claude Code. Our Newfront Mobile app helps employees track their benefits, access healthcare ID cards, and chat with Benji (our helpful employee benefits assistant). The app also helps employees find a provider who accepts their insurance, and Gabriel wanted to port this feature to our Newfront Web experience.

He used Claude Code to map out a detailed project plan. It came up with something like this:

Claude Code then ran through the project plan and checked off each TODO item. The change took 3 minutes and built something 80% functional:

The Future of AI-Driven Development and What it Means for Newfront

AI-driven development is revolutionizing the way Newfront ships products. By leveraging the latest tools and models, developers can easily navigate the entire stack, flag unexpected issues when reviewing code, and ship high-quality products faster.

Gordon Wintrob
The Author
Gordon Wintrob

Co-founder & CTO

Gordon Wintrob is the Co-founder and CTO of Newfront, where he leads the development of Newfront's platform and operating system. Gordon attended MIT and worked at Morgan Stanley, Blackstone, and Goldman Sachs during his time there. Prior to Newfront, Gordon founded StackLead, a company that built automated technology to research sales leads. He sold that company to LinkedIn and it became LinkedIn's jobs product, aggregating millions of postings across the web.

Connect with Gordon on LinkedIn
The information provided here is of a general nature only and is not intended to provide advice. For more detail about how this information may be treated, see our General Terms of Use.