Research Engineer
Job description
About the role
Teams design and test agentic system architectures to meet evolving enterprise demands. Ongoing assessment of retrieval, code generation, and backend reliability sustains platform objectives for users. Research engineers own the design and empirical validation of components within agentic pipelines, translating architectural hypotheses into measurable experiments. You quantify tradeoffs between retrieval precision and generation correctness, documenting findings for both technical and non-technical audiences. The role requires constructing robust evaluation frameworks that stress test system behavior under realistic enterprise conditions. You collaborate closely with product and engineering partners to align technical investigations with platform objectives. This position demands rigorous experimentation, clear communication of complex ideas, and a bias toward shipping iterative improvements. You own the full lifecycle of exploratory work from problem scoping through deployment of validated solutions.
Key facts
What you'll do
Choices about architectural tradeoffs strengthen retrieval precision, evaluate code generation output, and ensure backend reliability for agentic systems. Identification of platform instabilities and scalability constraints supports large-scale operational demands reliably for the team. Design and run experiments that isolate variables affecting agent performance in production-like environments. Partner with product teams to define success metrics for new retrieval or generation features before implementation. Instrument backend services to capture fine-grained telemetry that informs reliability and performance improvements. Analyze large datasets of execution traces to identify patterns leading to failures or latency spikes. Translate ambiguous product requirements into concrete technical specifications for agentic workflows. Evaluate outputs from code generation models using automated benchmarks and human-in-the-loop assessments. Maintain and evolve the test harnesses that validate core platform capabilities at scale. Contribute to open source tools and internal libraries that raise the standard for engineering practices across Factory.
Requirements
Hands-on experience in AI or ML roles is required following the acquisition of a Bachelor's or Master's degree in Computer Science, Engineering, AI, or a related technical field. Demonstrated proficiency with LLMs comes from a track record of solving complex, unstructured problems within software engineering contexts. Candidates show the ability to navigate ambiguous research projects from conception to impactful deployment. Clear articulation of technical concepts and strategies occurs at all organizational levels across stakeholders. Experience with data-intensive applications and familiarity with the software development lifecycle is highly desirable for effective contribution. The team goes into the office five days a week in San Francisco, within walking distance of Caltrain, and this requirement is confirmed.
Practical notes
Typical interview steps
Hiring for engineering roles usually starts with a recruiter screen, followed by one or two technical rounds. Candidates often solve a coding problem, discuss past projects, and answer system design questions. Some loops include a take-home task. Final rounds typically cover team fit and give candidates a chance to ask questions. Interviewers look for how you break down an unfamiliar problem, not just whether you reach the answer. Practicing a few problems aloud and reviewing your own past projects are the best preparation.
Good to know
Research engineers build systems that learn from data and automate decision-making, often using mathematical models and statistical methods. Professionals in this field collaborate across disciplines to align technology capabilities with business goals. Tools for modeling and software delivery evolve quickly, so continuous learning is essential. Roles in this domain require comfort with uncertainty and strong problem decomposition skills.
Questions to ask
Useful questions for the interview: what a typical week looks like, how work is assigned, what tools the team uses, and how feedback works. Asking how the role has changed recently and what the team wishes it had known when joining is also reasonable. Questions about the manager's priorities are especially valued.
Career growth
Engineering careers usually progress from individual contributor to senior, staff, and principal levels. Some engineers move into management and lead teams of five to twenty people. Others stay on the technical track. Growth follows demonstrated impact, not tenure alone. A typical engineering ladder has clear levels with defined expectations for scope, quality, and mentorship. Moving up usually requires owning outcomes end to end rather than completing assigned tickets.
About the company
Our mission is to bring autonomy to software engineering. We build software development agents that accelerate the world's largest enterprise engineering teams.