All examples

Engineering decision

TypeScript, Python, or both for an eight-week build?

Three models favoured a TypeScript API plus a Python service. The final answer overruled them and said so.

The question

We are a 10-person team about to start a new internal tool with a deadline of 8 weeks. Half the team knows TypeScript well, half knows Python well, and the tool will include a machine-learning scoring step. Should we write the whole backend in TypeScript, the whole backend in Python, or TypeScript for the API with a separate Python service for the ML step?

The answer that came back

Write the whole backend in Python (FastAPI) and have the TypeScript half own the frontend, consuming a typed OpenAPI-generated client. For an 8-week internal tool, the ML step has to be Python anyway, and a second service adds deployment, serialization, versioning, and monitoring overhead that costs more than it saves. The split-service option only pays off if the ML step must scale or be deployed independently, so revisit that if the scoring workload turns out to be heavy. This assumes modest scale and a standard Python-library model.

Agreement. Three of the four models chose the same option, and the final answer went the other way. It is shown here on purpose.

What each model said

Each answer is the model’s own words, with formatting marks removed.

  • Claude Sonnet 5.5

    Write the whole backend in Python (FastAPI). ML scoring is the one component where Python is nearly mandatory, and a second service adds deployment, serialization, versioning, and monitoring overhead that eats a meaningful chunk of an 8-week budget for a 10-person internal tool. The TypeScript half still contributes by owning the frontend (React/TS) and consuming a typed OpenAPI client. Assumptions: modest scale, no hard need for a Node-specific ecosystem, and the ML model is a standard Python-library model.

  • GPT-4.1

    Build the API/backend in TypeScript and the ML scoring step as a separate Python service. This leverages each group's strengths, allows rapid development, and keeps the ML code in Python where ecosystem support is better. Clear interfaces (e.g., REST or gRPC) minimize integration pain. With an 8-week deadline and split skills, this parallelization and division of concerns improves speed and quality.

  • Gemini 3.5 Flash-Lite

    Decision: Use TypeScript for the API with a separate Python service for the ML step. Key Reasoning: - Leverages team strengths: Everyone contributes immediately without a steep language learning curve. - De-risks the deadline: 8 weeks is tight. TypeScript handles the CRUD/API logic fast for the TS half, while Python natively supports the ML libraries. Load-bearing Assumptions: - The ML scoring is a distinct, stateless step rather than deeply intertwined with core business logic.

  • Grok 4.20

    TypeScript for the API + separate Python ML service. The 5 TS and 5 Python engineers stay productive in their strongest language, which is the dominant constraint on an 8-week deadline. Python’s ML ecosystem is vastly superior and battle-tested; forcing the ML step into TS would create major risk and slow the whole project. A lightweight service boundary (REST/gRPC) between them is trivial to operate for an internal tool. Assumption: the ML component can be cleanly isolated as a scoring service.

Where they differed

OpenAI, Gemini and Grok chose a TypeScript API with a separate Python service for the machine-learning step, so each half of the team works in its strongest language. Claude chose Python for the whole backend, with the TypeScript engineers on the front end. The final answer follows Claude, and it says plainly that three of the four models disagreed and why it rejected their option: the cost of running two services is a poor trade at this team size and deadline. That is a judgment call you may make differently.

About this run

Run on 26 October 2026 in quick mode with four models (Claude Sonnet 5.5, GPT-4.1, Gemini 3.5 Flash-Lite and Grok 4.20), one round, no cross-critique. Web search was off.

Pilot’s summary is advisory input, not a decision. Models can be wrong together, and agreement is not proof. This is an example, not advice for your situation.

More real debates: Browse all examples

Get a second opinion on your next decision.

Ask your own AI to get answers from several models, with the disagreement shown. You decide what to do with it.

Request early access