(Fullstack) AI Engineers
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 are getting better. Model APIs are getting better. Open-source models are getting better. 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. Others build protocols and applications like Uniswap on top of them.
In robotics, some engineers build actuators, motors and robots like Unitree. 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. New capabilities arrive constantly. A problem that requires custom model work today may disappear with the next generation of models.
Fine-tuning too early can lock a team into yesterday’s model and yesterday’s understanding of the problem.
Fine-tuning makes sense when the use case is understood, evals are trustworthy, and you are optimizing something specific like cost, latency or reliability.
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 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 on Vercel.
It also works particularly well with monorepos. Agents can reason across the product, reuse types and schemas, and make coordinated changes across the stack. We talk about that elsewhere.
Python is useful. Sometimes it is 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 to know every library we use, but you should understand the underlying concepts and be able to become productive quickly.
Learn-on-demand skills are different. We do not expect every engineer to carry deep expertise in them at all times. We expect engineers to learn them when the product requires them.
The distinction matters because the frontier changes too quickly to hire against a static checklist.
The baseline moves slowly. The things we learn on demand change 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 pick up 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, model 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.