Elicit radically increases the amount of good reasoning in the world
For experts, Elicit pushes the frontier forward
For non-experts, Elicit makes good reasoning more affordable. People who don't have the tools, expertise, time, or mental energy to make well-reasoned decisions on their own can do so with Elicit
Elicit is a scalable ML system based on human-understandable task decompositions, with supervision of process, not outcomes. This expands our collective understanding of safe AGI architectures
Visit our Twitter to learn more about how Elicit is helping researchers and making progress on our mission
What is an "AI Engineer"?
AI engineering is a new category of technical work. Its emergence is linked to the increasing availability of powerful new artificial intelligence tools: notably generative machine learning systems like large language models
The term was suggested by swyx on the Latent Space podcast and we've written about it on our blog before
Elicit predicted the rise of powerful ML systems even before GPT-1 was trained, and has the deepest experience of building trustworthy, capable, and transparent applications using these tools
If you're a software engineer who relishes the more difficult parts of backend code—like concurrency, fault-tolerance, and distributed systems—you could be a great AI engineer
Why we're hiring for this role
Since launching the newest version of Elicit last fall, response has been strong. We introduced Elicit Plus, our monthly subscription plan, and added thousands of paying users in a matter of months as well as hundreds of thousands of new sign-ups. This has been energizing for our team, but we want to ship more useful functionality to our users even faster
We believe that building great AI-powered products requires excellence across multiple parts of the tech stack: from frontend UX to infrastructure. But one of the crux areas is certainly how we prompt, invoke, respond to, and manage the suite of different ML models required to make Elicit work. This is what an AI engineer will be responsible for at Elicit
Backend: Node and Python
Frontend: Next.js and TypeScript (we expect you to be 80+% focussed on backend work, however)
We like static type checking in Python and TypeScript
All infrastructure runs in Kubernetes across a couple of clouds
We use GitHub for code reviews and CI
Am I a good fit?
What's the difference between anyio, trio, and asyncio?
What does the await keyword do in JavaScript?
What is a Kubernetes pod, and how is it different from a container?
How would you manage state when using an LLM to power a conversation?
If you have a solid answer for these—without reference to documentation—then we should chat!
Backend implementation of our "living document"
We believe that user interactions with language models should be much deeper than yet more chatbot interfaces
We wrote about our living document approach which is one way in which users can have much richer LLM-powered product experiences
You would work on, curate, extend, and improve the backend part of that technology. This is fascinating and challenging distributed systems work
Building Elicit into a product researchers can’t live without
We ship useful, exciting features out to users on a weekly basis. Your focus will be on the code which exists between the BFF endpoints and the ML models we use
You will work on a mix of known features / fixes, prototypes to validate ideas, and exploratory projects in between
Our team is small, so we expect you to appreciate the user needs underlying everything you work on. You should be comfortable making decisions and trade-offs that help us fulfill users’ needs best
Keeping Elicit’s bar for quality high
You’ll balance shipping features in the short term with building extensible and maintainable systems
Start building foundational context
Get to know your team, our stack, and the product roadmap
You’ll get to know our company documentation and other supporting resources like Supporting Process, not Outcomes
Make your first contribution to Elicit
By the end of your first week, you’ll have completed your first Linear issue, have a PR merged into our monorepo, gained understanding of our CI/CD pipeline, and learned about our monitoring and logging tools
You’ll complete your first multi-issue project
As you learn the ropes, you’re able to tackle more impactful projects, with input from domain experts where you need it
You’re actively improving the team
You’ll have gotten into the swing of contributing to regular team meetings and hack days, and you’ve demoed something you’ve worked on during a team sync
You’ve added some documentation, how-to guides, diagrams, or other resources meant to help us and new hires in the future
You’ve suggested an improvement to our development process
You’re flying solo
With the context you’ve gained, you’re able to implement changes independently and you’re comfortable making big, impactful decisions in the course of your work
You’ve developed an area of expertise
Our engineering team is just a few people, so each person quickly becomes a go-to resource in some area of the tech. Within your first quarter, we expect that there’s a part of Elicit you’ll become the domain expert for that others reach out to for support when working in this area
You actively research and improve the product
By the end of your first quarter, you’ll have gotten to know Elicit and our users well. We expect that you’ll have thought about and scoped some user-facing improvements to the product as well as identified technical improvements to implement
Location and travel
We have a great office in Oakland, CA, and we'd love to see you there if you're local. That said, we're just as happy for you to work remotely. We do get the whole team together for a quarterly retreat somewhere fun, because in-person time matters to us