Remote job
Data Engineer
Job details
About this role
Role overview
This role owns the indexing and data-ingestion layer that supports dashboards, analytics, and monitoring. The work involves building asynchronous Rust services that collect information from RPC providers, logs, traces, and contract events, then transform it into clean and dependable datasets. Correctness is central: blockchain reorganizations, duplicate events, backfills, ordering issues, and incomplete or inconsistent provider responses can silently damage everything downstream.
Responsibilities
- Build Rust services that consume RPC responses, logs, traces, and contract events. - Transform low-level blockchain activity into reliable, structured data for downstream systems. - Handle reorganizations, duplicate events, historical backfills, and other indexing edge cases. - Reason about event ordering when external data arrives late, incompletely, or in an unexpected sequence. - Detect and account for provider responses that conflict with previously observed activity, such as an apparently empty wallet history. - Protect dashboards, analytics, and monitoring from silent corruption caused by ingestion errors.
Requirements
- Strong async Rust development skills. - Careful reasoning about ordering, consistency, and incomplete external data. - Ability to design ingestion services that remain correct during reprocessing and changing source data. - Understanding of the subtle correctness problems created by blockchain indexing.
Nice to have
- Experience building reconciliation systems for financial data or other data where discrepancies must be detected and resolved.