Why AI-Assisted Development Matters
The conversation around AI in software development has shifted from "will it replace developers?" to "how do we integrate it effectively?" At Instea, we've spent the last year experimenting with AI tools across our projects — and the results are nuanced.
AI assistance doesn't eliminate the need for experienced engineers. What it does is change the shape of the work: less time on boilerplate, more time on architecture and edge cases.
What We Use Day-to-Day
Our team currently uses a combination of tools depending on the task:
- Cursor / GitHub Copilot — for in-editor autocomplete and refactoring
- Claude — for design discussions, code review, and architecture decisions
- Custom prompting pipelines — for generating typed API clients from OpenAPI specs
The biggest win? Eliminating the tedious parts of strongly-typed TypeScript codebases.
A Concrete Example: Typed API Clients
Before AI tooling, generating a typed client from a backend OpenAPI spec took half a day and inevitably needed hand-corrections. Now we use a two-step pipeline:
// Step 1: Parse the spec with a schema validator
import { z } from "zod";
const EndpointSchema = z.object({
path: z.string(),
method: z.enum(["GET", "POST", "PUT", "DELETE", "PATCH"]),
operationId: z.string(),
parameters: z.array(ParameterSchema).optional(),
requestBody: RequestBodySchema.optional(),
responses: z.record(ResponseSchema),
});
// Step 2: Generate TypeScript from parsed schema
function generateClient(endpoints: Endpoint[]): string {
return endpoints
.map((ep) => {
const params = ep.parameters?.map((p) => `${p.name}: ${p.schema.type}`).join(", ") ?? "";
return `export async function ${ep.operationId}(${params}) { /* ... */ }`;
})
.join("\n\n");
}
An AI assistant generates 80% of this scaffold in seconds. The remaining 20% — error handling, auth injection, retry logic — is where our engineers earn their pay.
Where AI Falls Short
We've also learned where not to rely on AI:
- Domain-specific logic — AI has no context for our clients' business rules. It can write syntactically correct code that is semantically wrong.
- Security-sensitive code — Auth flows, encryption, and token validation require careful human review regardless of who (or what) wrote the first draft.
- Long-term architectural decisions — AI is excellent at tactics, not strategy. It optimizes locally, not globally.
The Human Element
The engineers who thrive with AI tooling share a common trait: they know what they want before they ask for it. AI is a powerful autocomplete engine, not a product manager.
What this means for hiring: we still look for deep TypeScript fluency, systems thinking, and the ability to reason about tradeoffs. AI raises the floor — it doesn't replace the ceiling.
Conclusion
AI-driven development is not a silver bullet, but it is a genuine productivity multiplier for teams who integrate it thoughtfully. At Instea, it has freed our engineers to spend more time on the work that actually requires human judgement — which, it turns out, is most of the interesting parts.
If you're curious about how we approach software development, get in touch or check out our portfolio.
Bonus: React Server Component Demo
This triangle is rendered by a pure React Server Component at build time — no JavaScript is shipped to the browser for it.
Above