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
- Ownership: Take end-to-end responsibility for tasks and projects. Solve problems you see.
- Curiosity and continuous learning: Stay close to the frontier. Tools, models and patterns change constantly.
- Collaborative problem-solving: Work openly and effectively with the rest of the team.
- High-velocity mindset: Ship, learn and iterate quickly.
- Show and tell: Talk is cheap. Prototypes are cheaper. Show instead of proposing.
- User obsessed: Use technology to make the experience more natural, useful and seamless.
- Detail focused: Exceptional products come from exceptional attention to every interaction and every pixel.
Technical baseline
| Languages | TypeScript, SQL, Bash, HTML5, CSS3 |
| Application | React, Next.js, TanStack Query, Zustand, React Native, Expo, TailwindCSS, Radix UI, Node.js |
| Data | Postgres, pgvector, JSON, object stores, embeddings, vector search |
| APIs and real-time | HTTP, streaming, Server-Sent Events, WebSockets, WebRTC |
| Tooling | Turborepo, ESLint, Prettier, NPM/PNPM, Git, AI codegen |
| Infrastructure | Vercel, Cloudflare, Docker, Inngest, Trigger.dev, Render, OpenTelemetry |
| AI models | Language, reasoning, vision, image, video, speech and multimodal models |
| AI engineering | Context engineering, structured outputs, tool calling, agents, memory, evals, observability, guardrails, citations, streaming, real-time interfaces, generative UI |
| Retrieval and knowledge | RAG, embeddings, vector databases, query routing, preprocessing unstructured data |
| Agent systems | Agent 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 development | Python, PyTorch, fine-tuning, SFT, RL, DPO, GRPO, RLHF |
| Data and training | Synthetic data, dataset construction, specialized evaluation pipelines |
| Advanced retrieval | Knowledge graphs, advanced routing and retrieval architectures |
| Model infrastructure | Hugging Face, Together.ai, Replicate, serving open-source and multimodal models |
| Advanced agents | Multi-agent systems, specialized agent architectures |
| Generative models | Diffusion 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.