Astera is a foundation on a mission to help lead humanityβs transition to a scientifically advanced, abundant future.
Obelisk is the AGI research lab at Astera. Obelisk is a team of researchers who are pursuing an exploratory, neuroscience-informed approach to engineering AGI.
Astera enables the Obelisk team to focus on basic research and take a long-term view. Obelisk is unconstrained by the need to secure funding, garner profit, or publish results. The team also has access to significant computational resources.You can read more about Obelisk here.
We are seeking a software engineer to contribute to our machine learning research. This role will span a broad spectrum of activities from purely engineering to open-ended exploratory research. An ideal candidate is first and foremost a fast and clean coder and excellent debugger, but is enthusiastic about doing tasks that are more typical for a data scientist or ML researcher such as training models and analyzing the results of ML experiments.
Some of the major types of work that engineers on the team do:
Start with a prototype-quality implementation, or pseudo-code of a machine learning algorithm and implement it such that it's easier to run large-scale experiments with and build upon. This may involve refactoring it to make it easier to specify hyperparameters in a standard way, performance optimization for GPUs using JAX, or adapting the code to work with different data sets or reinforcement learning environments.
Integrating different modules into a larger machine learning system. E.g., figuring out how to add an exploration module that was designed by one of our research scientists into a DQN-based agent.
Designing and implementing reinforcement learning environments (essentially games meant to test a particular capability) in JAX and C++.
Building tools, libraries and frameworks to enable easy and correct experiments. These tools provide or enable things like logging, debugging, hyperparameter search, distributed training.
Skill in at least one domain of "systems programming". Non-exhaustive example domains that we consider to be "systems programming": compilers, operating systems, databases, game engines, high performance distributed systems, high-performance GPU programming. Basically anything that requires in-depth knowledge and the ability to debug very complex software and hardware systems.
Skill in at least one AOT-compiled, strongly-typed language (e.g. C++, Rust, Java).
Ability to train and debug models on novel data sets using PyTorch or JAX.
Ability to read and comprehend machine learning research.
Experience with reinforcement learning is a plus.
This role is in person in Emeryville, California. Team members may work remotely up to 2 days per week on a regular basis, and as needed for special circumstances.
Please note that as a research non-profit we are willing and able to sponsor visas if needed.
The successful candidate will receive a competitive compensation package, commensurate with their experience. Note that we are a non-profit and cannot offer equity.
At each stage we may advance or reject you. We may not be able to respond if you don't make it past the application review, but beyond that we will of course tell you if you've advanced or not.
You apply.
Application review.
Fit call: 1 hour call to answer your questions and talk about your relevant experience.
Live coding exercise: We'll ask you to write some code to solve a problem relating to data structures, memory management, and concurrency.
At-home machine learning exercise: We'll give you an exercise which involves training a model and ask you to do it on your own time.
Reference checks.
Non-technical interview and Q&A with our founder Jed.
Offer.