Senior Product Engineer, Discourse Graphs
Astera Institute
Get hot jobs first on Telegram
New positions appear faster in our channel
- Location
- Remote
- Job Type
- full-time
- Work Format
- 🌍 Remote Worldwide
- Salary
- $120K – $215K
- Posted
- November 8, 2026
Job Description
We are looking for a senior product engineer to join the Discourse Graphs team, in a fully remote, fixed-term role of 12 to 14 months, paying $120,000 to $215,000 a year depending on experience and location.
Discourse Graphs is an open-source project that helps research teams write down, link and share their questions, claims and evidence, through plugins for Roam Research and Obsidian backed by a shared database. It is philanthropically funded and built by a small team across North America, Europe and India, together with the labs who pilot the tools with us. Its data format has grown into MIRA, an open standard that other tools and AI agents can read.
What you'll be doing
You'll join a small and friendly distributed team of engineers, designers and researchers who are designing, building and testing new ways of doing collaborative science. We do most of our work in writing, across many time zones, and there are no managers: engineers pull their own work from a shared queue, and we judge progress by what researchers do with the tools.
Many researchers now do their thinking in a coding agent such as Claude Code, and we want Discourse Graphs to be useful there too. Your first projects will likely come from three uses researchers have started asking for:
-
A way for researchers and their coding agents to read and write claims and evidence as the research happens, with the team's whiteboard in view.
-
An overlay for manuscripts that shows the claims a draft makes and how well the evidence supports each one.
-
A knowledge base for a research institute, built from its publications, notebooks and meeting notes, that a team can question when planning its next steps.
You'll put early versions in front of researchers, and their interest will settle which ones grow. You'll also help make the plugins far easier to start with, so that a new user gets something useful back within minutes of installing one.
You'll work closely with our designer and with a product manager we are hiring at the same time, who keeps one ordered queue of work with the team. You'll turn the most promising ideas on it into prototypes people can try, and carry the ones that earn their place through to something the team can maintain. Technical choices that are cheap to reverse are yours to make, and you'll talk the expensive ones through with our tech lead. We write TypeScript, with a Supabase (Postgres) database, an MCP server and a canvas built on tldraw.
About you
You are drawn to the problem of how research gets documented, connected and built upon, and you have built software that people chose to use. You like going from a conversation with a user to something they can click on within days, with enough design sense to make it pleasant without waiting for a mockup. You use AI coding tools every day and take responsibility for what lands in the repo. You're likely to do well in this role if you have:
-
A record of shipping user-facing products from early prototype to something people rely on
-
Fluency in TypeScript and a modern front-end stack, and comfort moving between the interface, the data layer and the APIs that join them
-
Experience building with large language models, such as agent tools, MCP servers or retrieval over structured data
-
A habit of talking with users, and of working alongside designers and other engineers rather than handing work over
Experience with knowledge graphs, research software or a scientific field will help, though none of it is required.
Our offer
The post is full-time for 12 to 14 months, either as a temporary employee of the Astera Institute or on contract at the same annual rate. It is fixed-term because our funding is, and we will be open about where the funding stands for as long as you are with us. It is fully remote, with some overlap with North American working hours, and you can also work in person at Astera in Emeryville, California. Everything you build is open source. We'd like you to start as soon as you can. Pay is $120,000 to $215,000 a year, depending on location and experience. We also offer:
-
A flexible approach to working hours and remote working
-
Astera-sponsored health, vision and dental benefits for employees
-
Onboarding help from peer product teams
We are an equal opportunity employer and are invested in fostering a culture where everyone can thrive. We are committed to equity and inclusion, and we encourage women, people of color, LGBTQIA individuals, people with disabilities, members of ethnic minorities, foreign-born residents, older members of society, and others from minority communities and diverse backgrounds to apply.
How we hire
We start with a 30-minute call to get to know each other, with the last ten minutes for your questions. Next is a working session of up to 90 minutes with two of us, building on a real piece of our product, in place of a take-home task. After that you'll talk with the founders about which of the new uses you would build first and how you'd know it was working, and finally we'll ask for two references, from an engineer and from a designer or product manager you have worked with.
To apply
Please apply through the form below. Along with your CV, we'll ask for a short note about something you built that changed after you watched people use it, a description of your previous work in this area, and a link to something you built that we can try or read, such as a repository, a prototype or a short demo video. We'll also ask about your availability, and whether you would prefer employment or a contract. We will start reviewing applications on Nov 16. If you have questions about the role, write to discoursegraphs@homeworld.bio.
Apply for this J
🎯 Who is this job for?
Suitable level: Senior Product Engineer.
The ideal candidate has strong TypeScript and modern front-end experience, can work across UI, APIs, and Supabase/Postgres data layers, and is experienced with LLM applications, agent tools, MCP servers, or retrieval over structured data.
They should be comfortable shipping user-facing products from prototype to production, interviewing users, collaborating with designers and researchers, rapidly building and testing prototypes, improving onboarding, and maintaining open-source tools; knowledge graphs, research software, or scientific workflows is beneficial but not required.
💬 Potential Interview Questions
How would you model claims, evidence, and relationships between them in a Supabase PostgreSQL database?
I would use normalized tables for claims, evidence items, sources, and typed relationships, with stable IDs and timestamps for traceability. PostgreSQL constraints, indexes, JSONB metadata, and row-level security could support integrity, flexible schema evolution, and collaborative access.
How would you design a TypeScript API that lets coding agents read and write research claims safely?
I would define strongly typed operations with runtime validation, explicit authorization, idempotency keys, and clear error responses. Writes should preserve provenance, validate graph relationships, and support dry-run or confirmation modes for potentially destructive actions.
What is the Model Context Protocol, and how would you use it in Discourse Graphs?
MCP provides a standard way for AI agents to discover and invoke tools or retrieve contextual resources. I would expose focused tools for searching claims, fetching evidence, creating links, and proposing updates while enforcing permissions and returning structured, provenance-rich results.
How would you implement retrieval over a structured knowledge graph for an AI research assistant?
I would combine full-text or semantic search with graph traversal, filtering by source, project, author, and time. The response should include relevant claims, supporting evidence, relationship paths, and citations so the agent can distinguish retrieved facts from generated conclusions.
How would you prevent an LLM-powered feature from presenting unsupported research claims as fact?
Every generated claim should be linked to retrieved evidence and display its provenance, confidence, and support status. The system should clearly label missing or conflicting evidence and allow users to inspect, correct, or reject the generated result before it becomes part of the graph.
How would you build a manuscript overlay that shows how well each claim is supported?
I would parse or annotate manuscript passages into claim entities, then match them against linked evidence and evaluate support using explicit relationship types and possibly human-reviewed model suggestions. The interface should show coverage, conflicting evidence, and unsupported claims without implying more certainty than the data provides.
How would you design real-time collaboration for a tldraw-based research canvas?
I would separate canvas state from graph entities while maintaining stable references between them. Updates could be synchronized through a collaborative state mechanism or database-backed events, with conflict handling, optimistic UI updates, and persistence that preserves user intent and graph consistency.
What TypeScript practices would you use to keep a rapidly evolving product maintainable?
I would use strict TypeScript settings, shared domain types, runtime schemas at API boundaries, and small composable modules. Automated tests for critical graph operations, typed database access, and clear separation between UI, application, and persistence layers would reduce regressions.
How would you improve the onboarding experience so a new plugin user gets value within minutes?
I would instrument the initial journey, identify the shortest path to a meaningful result, and provide sample data or a guided first workflow. The plugin should verify configuration early, explain permissions clearly, and make the first successful search or saved claim immediately visible.
How would you evaluate whether a prototype for researchers is worth taking into production?
I would combine observed user behavior with qualitative interviews and measures such as time to first useful result, repeated usage, successful evidence linking, and correction rates. A prototype should progress only when it solves a recurring problem, users can understand it without extensive assistance, and the technical cost is sustainable.
📋 Job Summary
Astera Institute is seeking a Senior Product Engineer to build open-source tools that help researchers connect questions, claims, and evidence through Discourse Graphs. You’ll prototype and ship user-facing features across TypeScript, Supabase/Postgres, MCP, LLM-powered workflows, and a tldraw canvas, while collaborating closely with researchers, designers, and engineers. This is a fully remote, full-time fixed-term role for 12–14 months, with some North American time-zone overlap, paying $120,000–$215,000 per year. It’s a compelling opportunity to shape the future of collaborative science, work autonomously on meaningful products, and see your code adopted by research teams worldwide.
Required Skills
Never miss a JavaScript opportunity
Subscribe to get similar jobs and weekly insights delivered to your inbox
Hiring JavaScript developers?
Post your job to 10,100+ registered developers. Starting free.
See PricingRelated jobs
Is this your listing? Claim or request removal