Job Description
About the role
Dedalus Labs builds persistent computers for AI agents. Our flagship product, Dedalus Machines, gives agents an isolated environment where they can run software, keep files and state, and work over time.
We're looking for a design engineer who's bothered when an interface makes someone stop and work out what the system is doing. You notice the awkward interaction, the slow first load, the status that becomes misleading after a request fails. You want to understand the user's task, build a better path, and keep refining it after people use it.
You'll work across interaction design, visual design, and frontend engineering. We want someone who can take a product problem from a conversation or rough sketch to a responsive, accessible interface connected to real backend behavior.
What you'll work on
Make compute understandable. Build interfaces for creating, inspecting, and managing persistent computers. Make loading, progress, cancellation, failure, and recovery states accurate. A person should be able to tell what happened and what they can do next.
Own the interaction through implementation. Design the flow, build the React and TypeScript components, connect the APIs, and test keyboard navigation, focus, small screens, slow networks, and interrupted requests. Work with backend engineers when a confusing interface reveals an unclear API contract.
Make the product feel fast. Investigate rendering, data fetching, bundle size, and browser behavior. Measure before changing the implementation. Use motion deliberately to explain a transition or preserve context, and account for reduced-motion preferences.
Learn from people using the work. Watch where developers hesitate, get stuck, or misunderstand the product. Ship a focused improvement and check whether it helped. If you claim an onboarding or adoption improvement, explain the behavior measured and your contribution to the change.
What we look for
You have strong React and TypeScript skills and can show a working interface where you personally owned both design decisions and implementation. You can explain the details: component boundaries, state, responsive layout, accessibility, error handling, and performance.
You know what good looks like and can explain why an interaction serves the user's task. You can also cut scope, finish a coherent version, and improve it from feedback. Tell us about a design you revised after watching someone use it.
Next.js, Vite, Remix, Tailwind CSS, streaming interfaces, and modern CSS are relevant. Motion, GSAP, View Transitions, Canvas, WebGL, Three.js, or WebGPU can be useful for particular problems. Show us the reason for a tool choice and the result you achieved with it.
You work independently and make your reasoning available to the team. When the first explanation fails, you read the implementation, reduce the problem, collect better evidence, or ask a precise question. You change your approach when the evidence calls for it and keep responsibility for the outcome.
You can explain a design, engage with a substantive objection, and help another engineer become effective in the system. You use AI coding tools where they help and take responsibility for understanding, testing, and maintaining the resulting code.
This role may be a poor fit if
You want to hand off designs without implementing and maintaining the interface.
You consider the work complete at a polished screenshot, before it handles real data, failures, accessibility, and user feedback.
You keep adding visual effects after they make the user's task slower or harder to understand.
Logistics
In person in San Francisco.
Remote considered case by case for exceptional applicants.
We sponsor visas.
Show us your work
Use your application to show us one thing you built and one difficult problem you investigated. They can come from the same project. Choose work you already have. We are not asking you to build a new project for this application.
Work: Show the code, demo, design, or result. Explain what you personally owned, what you reused, and one decision that made the result better or simpler.
Investigation: Describe the symptom, your first explanation, the evidence that changed your thinking, and how you established the result. Include the workload or users involved and any important limitations.
Writing: Share one piece of your best writing as a separate, required sample. Simple and succinct is welcome. Choose work that shows your thinking and your voice in a professional or similarly thoughtful context: a strong README, design note, blog post, postmortem, proposal, or essay. A serious, self-contained Reddit post is fine. Tweets, Twitter/X threads, and short social posts do not count. Link it or paste a redacted excerpt. Tell us the intended audience, what you wrote, why you chose it, and any coauthors or AI assistance.
Work from employment, open source, research, coursework, or independent projects is welcome. Public source code is optional. A redacted excerpt or a concrete account of private work is fine. Keep confidential information out of your application.
Tell us which problem in this role you want to own and why. If your strongest evidence is easy to miss on a resume, point us to it. An existing demo or short screen recording is welcome, and video is optional.
For this role, include an interface we can inspect or a short walkthrough of private work. Explain the user's problem, show your implementation, and describe what changed after feedback. A portfolio case study can provide the work, analysis, and writing together.