(Fullstack) AI Engineer

Every engineer at Durable should be able to build AI-native products across web, mobile and desktop at high velocity and with a high degree of independence.

Our bet is that the best AI engineers for application-layer companies look much more like exceptional fullstack product engineers than traditional machine learning engineers.

The hard problems are increasingly application engineering problems. Models, model APIs and open-source models keep improving. Building great products with them requires streaming, real-time interfaces, tool use, context management, memory, evals, observability, multimodality and thoughtful interaction design.

Those are application concerns.

AI engineering is application engineering

Frontier technologies tend to develop in layers. In crypto, some engineers build blockchains like Ethereum while others build protocols and applications like Uniswap on top of them.

Robotics works similarly. Some engineers build actuators, motors and general-purpose robots while others build the coordination layer and applications that turn those machines into useful products.

AI is no different. There are researchers and infrastructure engineers building models, training systems and inference infrastructure. We build products on top of them.

Our engineers need to understand models deeply enough to use them well, but their job is not to train the next foundation model. Their job is to turn intelligence into a great product.

Bet on the models

For most application-layer startups, the frontier moves faster than your fine-tune. General-purpose and open-source models keep improving, and a problem that requires custom model work today may disappear with the next generation of models.

Fine-tuning makes sense when the use case is understood, evals are trustworthy and you know exactly what you are optimizing. That might be cost, latency, reliability or more consistent behavior.

Until then, we would rather improve the product, context, tools, data and evals around the model.

TypeScript all the way down

We bet heavily on TypeScript. Modern web primitives like streaming responses, Server-Sent Events, WebSockets and WebRTC make it possible to build rich AI experiences directly into applications.

A TypeScript stack also means the same engineer can move from the interface to the API to an agent loop without crossing language boundaries. That fits neatly with our managed infrastructure strategy and our use of a shared monorepo.

Python is useful and sometimes necessary, but it is not a prerequisite for building excellent AI products.

The bar

There are two parts to the bar.

Baseline skills are things every engineer should be able to use independently in production. You do not need experience with every library we use, but you should understand the underlying concepts and be able to become productive quickly.

Learn-on-demand skills are capabilities we expect engineers to pick up when the product requires them. We do not expect everyone to carry deep expertise in every part of the frontier at all times.

The distinction matters because the frontier changes too quickly to hire against a static checklist. The baseline moves slowly. The learn-on-demand layer changes constantly.

Behavioral

  1. Ownership: Take end-to-end responsibility for tasks and projects. Solve problems you see.
  2. Curiosity and continuous learning: Stay close to the frontier. Tools, models and patterns change constantly.
  3. Collaborative problem-solving: Work openly and effectively with the rest of the team.
  4. High-velocity mindset: Ship, learn and iterate quickly.
  5. Show and tell: Talk is cheap. Prototypes are cheaper. Show instead of proposing.
  6. User obsessed: Use technology to make the experience more natural, useful and seamless.
  7. Detail focused: Exceptional products come from exceptional attention to every interaction and every pixel.

Technical baseline

LanguagesTypeScript, SQL, Bash, HTML5, CSS3
ApplicationReact, Next.js, TanStack Query, Zustand, React Native, Expo, TailwindCSS, Radix UI, Node.js
DataPostgres, pgvector, JSON, object stores, embeddings, vector search
APIs and real-timeHTTP, streaming, Server-Sent Events, WebSockets, WebRTC
ToolingTurborepo, ESLint, Prettier, NPM/PNPM, Git, AI codegen
InfrastructureVercel, Cloudflare, Docker, Inngest, Trigger.dev, Render, OpenTelemetry
AI modelsLanguage, reasoning, vision, image, video, speech and multimodal models
AI engineeringContext engineering, structured outputs, tool calling, agents, memory, evals, observability, guardrails, citations, streaming, real-time interfaces, generative UI
Retrieval and knowledgeRAG, embeddings, vector databases, query routing, preprocessing unstructured data
Agent systemsAgent loops, MCP, computer use, human-in-the-loop workflows

Learn on demand

These are capabilities we expect engineers to learn when the problem calls for them, not prerequisites for every project or every hire.

Model developmentPython, PyTorch, fine-tuning, SFT, RL, DPO, GRPO, RLHF
Data and trainingSynthetic data, dataset construction, specialized evaluation pipelines
Advanced retrievalKnowledge graphs, advanced routing and retrieval architectures
Model infrastructureHugging Face, Together.ai, Replicate, serving open-source and multimodal models
Advanced agentsMulti-agent systems, specialized agent architectures
Generative modelsDiffusion models and other modality-specific architectures

The exact tools will change. The profile should not.

We want engineers who can take whatever intelligence the frontier gives them, learn whatever is missing and turn it into a product people love.