Data Engineer (Software Developer 2)
The Tolias Lab in the Department of Ophthalmology in the School of Medicine is seeking a Data Engineer (Software Developer 2) to build and maintain the data platform supporting Enigma’s experimental workflows. You will partner with scientists and engineers to turn evolving experimental requirements into clear interfaces, observable pipelines, and dependable tools. You will develop reliable systems that move raw data from data acquisition systems through ETL/ELT transformation into downstream data and metadata stores. This role will involve data lakehouse and schema design and administration, data governance and observability, and performance optimization.
The ideal candidate enjoys owning systems end to end while working in a highly collaborative research environment.
About Enigma
Enigma is building the experimental and computational infrastructure needed to understand intelligence through large-scale neuroscience. Our teams work across experimental development, neurophysiology, data engineering, and machine learning to turn complex biological data into reliable, accessible scientific resources.
Within Enigma, the Experimental Development (xDev) team designs and supports neurophysiology and behavioral experiments. xDev develops the systems that connect experimental hardware and acquisition software with data processing and downstream analysis—working closely with our data infrastructure engineering and our scientific data analysis and modeling teams.
Responsibilities:
- Design, build, and operate ETL/ELT and high-throughput ingestion pipelines connecting acquisition software, processing code, metadata registries, object storage, and databases
- Own the data layer end-to-end: schema design, indexing, query optimization, migrations, backups, and durable data models that hold up over years of scientific work
- Improve reliability, scalability, observability, and performance across the data stack, and lead troubleshooting/incident response when things break
- Build tools with and to help researchers and our in-house AI agents discover datasets, inspect processing state, and safely diagnose or rerun failed jobs
- Productionize research code — testing, packaging, deployment, monitoring, documentation
- Partner with data acquisition, infrastructure engineering, scientific analysis and AI modeling teams.
Preferred Qualifications:
- Strong proficiency in Python and SQL
- Experience with relational and NoSQL databases, as well as object storage (e.g., S3, MinIO, Ceph)
- Experience designing, building, and operating production ETL/ELT pipelines
- Experience designing durable data models and schemas for complex, evolving datasets
- Experience building high-throughput ingestion systems and optimizing data movement across storage, compute, and network boundaries
- Experience with Docker and container orchestration platforms such as Kubernetes
- Strong communication skills and experience working in cross-functional teams
- Experience designing APIs or service interfaces used by multiple teams
- Experience with scientific computing and large-scale neuroscience or other scientific data
- Workflow orchestration experience with Airflow, Dagster, Prefect, or similar tools
- Experience in building pipelines with and for autonomous, agentic AI systems
- Experience with performance-critical compiled or systems languages (C, C++, or Rust)
- Familiarity with data provenance and lineage tracking, metadata catalogs, or dataset versioning
As part of your application, please submit the following two separate attachments:
Cover Letter - Please provide a cover letter describing your interest in joining our lab and the position.
Technical Experience Responses - In a separate document, please answer each of the questions below in a few sentences. Please upload your responses as a single, separate attachment to your application.
Please describe your experience working with SQL and NoSQL databases.
Please describe you experience operating ETL/ELT data pipelines.
Please describe your experience with orchestration tooling such as Kubernetes and Ray.
You’ll Thrive in This Role If You:
- Are excited by a fast-paced, production-focused research environment that often requires switching between many hats
- Can move quickly without sacrificing rigor
- Care about making complex workflows reliable and easy to use
- Enjoy translating ambiguous research needs into pragmatic technical systems
- Take ownership across design, implementation, deployment, and operations
- Enjoy collaborative design and working closely across team boundaries
- Are energized by working as part of a cohesive team pursuing ambitious, long-term neuroscientific and AI goals
What We Offer:
- A highly collaborative environment across neuroscience, engineering, and AI
- Opportunity to contribute to a next-generation neurotechnology platform
- Competitive salary and benefits
- Strong mentoring and career development support
Core Duties:
Conceptualize design, implement, and develop solutions for complex systems/programs.
Work with a variety of users to gain information, and develop intra-system tradeoffs between different users, as necessary; interact with a diverse client base and outside vendor contacts.
Document system builds and application configurations; maintain and update documentation as needed.
Provide technical analysis, design, development, conversion, and implementation work.
Work as a project leader, as needed, for projects of moderate complexity.
Serve as a technical resource for applications.
Compare, evaluate, and implement new features and technologies, and integrate them into the computing environment.
Follow team software development methodology.
Mentor junior software developers.
Minimum Education and Experience:
Bachelor's degree and five years of relevant experience, or a combination of education and relevant experience.
Knowledge, Skills and Abilities:
Expertise in designing, developing, testing, and deploying applications.
Proficiency with application design and data modeling.
Ability to define and solve logical problems for highly technical applications.
Effective communication skills with both technical and non-technical clients.
Ability to lead activities on structured team development projects.
Ability to select, adapt, and effectively use a variety of programming methods.
Knowledge of application domain.