Senior Software Engineer
About Elicit
Elicit is an AI research assistant that uses language models to help researchers figure out what’s true and make better decisions, starting with common research tasks like literature review.
What we're aiming for:
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.
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 want to add another strong senior-level engineer to our team who’ll help us meet the demand for new features and improved performance.
Our tech stack
Backend: Node and Python (probably shifting more to Node over time)
Frontend: Next.js, TypeScript, and Tailwind
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?
Consider these questions:
What are a couple of different ways to write concurrent code in Python?
What are the differences between var, let, and const in JavaScript?
What are a couple of different web technologies to asynchronously send data from a server to a client?
In which situations would you use REST vs. GraphQL vs. RPC?
Strong applicants will find it easy to answer these questions.
What you'll do
You'll own
Building Elicit into a product researchers can’t live without
You’ll fully own shipping useful, exciting features out to users on a weekly basis.
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.
You will be responsible for your features in production: they need to be scalable, resilient, and easy to operate.
You’ll contribute to discussions around UX, system design, and architecture.
Projects you'll contribute to
You can view sample projects here.
Your first week
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.
Your first month
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.
Your first quarter
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.
What you bring to the role
Strong technical aptitude that allows you to move comfortably around our tech stack, both back-end and front-end, with strong computer science fundamentals.
Professional experience contributing to software development teams at a mid-career to senior level. We’re excited for you to unpack your past successes and build off your previous experience at Elicit!
Above-average communication skills. Elicit is a small, highly-collaborative team, so you’ll frequently be tapped to communicate complex engineering topics with stakeholders across the company.
Your past experience or exposure to working with language models. Because of the way language models work, you’re used to writing a lot of asynchronous code and thinking defensively about error handling.
A sense of joy in what you do. One thing we love about our team at Elicit is that everybody’s a craftsperson who cares deeply about their field.
Who you’ll work with
This role will report directly to James, our Head of Engineering, and work very closely with the rest of the engineering team:
You'll also spend a lot of time collaborating with Product Designers, Kevin (Head of Product), and co-founders Jungwon & Andreas.
Compensation, benefits, and perks
In addition to working on important problems as part of a productive and positive team, we also offer great benefits (with some variation based on location):
Flexible work environment: work from our office in Oakland or remotely with time zone overlap (between GMT and GMT-8), as long as you’re comfortable traveling for in-person retreats and coworking events
Fully covered health, dental, vision, and life insurance for you, generous coverage for the rest of your family (FSA/HSA, too)
Flexible vacation policy, with a minimum recommendation of 20 days / year and plenty of company holidays
401K with a 6% employer match
$2,000 device budget to start, with more accumulating for each month of work
$500 / year personal development budget
A team administrative assistant who can help you with personal and work tasks
You can find more reasons to work with us in this thread!
For all roles at Elicit, we use a data-backed compensation framework to keep salaries market-competitive, equitable, and simple to understand.
This role starts between $195-230K + equity, depending on your level. We're optimizing for a hire who can contribute at a L4/senior-level or above.
About the job
Apply for this position
Senior Software Engineer
About Elicit
Elicit is an AI research assistant that uses language models to help researchers figure out what’s true and make better decisions, starting with common research tasks like literature review.
What we're aiming for:
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.
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 want to add another strong senior-level engineer to our team who’ll help us meet the demand for new features and improved performance.
Our tech stack
Backend: Node and Python (probably shifting more to Node over time)
Frontend: Next.js, TypeScript, and Tailwind
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?
Consider these questions:
What are a couple of different ways to write concurrent code in Python?
What are the differences between var, let, and const in JavaScript?
What are a couple of different web technologies to asynchronously send data from a server to a client?
In which situations would you use REST vs. GraphQL vs. RPC?
Strong applicants will find it easy to answer these questions.
What you'll do
You'll own
Building Elicit into a product researchers can’t live without
You’ll fully own shipping useful, exciting features out to users on a weekly basis.
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.
You will be responsible for your features in production: they need to be scalable, resilient, and easy to operate.
You’ll contribute to discussions around UX, system design, and architecture.
Projects you'll contribute to
You can view sample projects here.
Your first week
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.
Your first month
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.
Your first quarter
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.
What you bring to the role
Strong technical aptitude that allows you to move comfortably around our tech stack, both back-end and front-end, with strong computer science fundamentals.
Professional experience contributing to software development teams at a mid-career to senior level. We’re excited for you to unpack your past successes and build off your previous experience at Elicit!
Above-average communication skills. Elicit is a small, highly-collaborative team, so you’ll frequently be tapped to communicate complex engineering topics with stakeholders across the company.
Your past experience or exposure to working with language models. Because of the way language models work, you’re used to writing a lot of asynchronous code and thinking defensively about error handling.
A sense of joy in what you do. One thing we love about our team at Elicit is that everybody’s a craftsperson who cares deeply about their field.
Who you’ll work with
This role will report directly to James, our Head of Engineering, and work very closely with the rest of the engineering team:
You'll also spend a lot of time collaborating with Product Designers, Kevin (Head of Product), and co-founders Jungwon & Andreas.
Compensation, benefits, and perks
In addition to working on important problems as part of a productive and positive team, we also offer great benefits (with some variation based on location):
Flexible work environment: work from our office in Oakland or remotely with time zone overlap (between GMT and GMT-8), as long as you’re comfortable traveling for in-person retreats and coworking events
Fully covered health, dental, vision, and life insurance for you, generous coverage for the rest of your family (FSA/HSA, too)
Flexible vacation policy, with a minimum recommendation of 20 days / year and plenty of company holidays
401K with a 6% employer match
$2,000 device budget to start, with more accumulating for each month of work
$500 / year personal development budget
A team administrative assistant who can help you with personal and work tasks
You can find more reasons to work with us in this thread!
For all roles at Elicit, we use a data-backed compensation framework to keep salaries market-competitive, equitable, and simple to understand.
This role starts between $195-230K + equity, depending on your level. We're optimizing for a hire who can contribute at a L4/senior-level or above.