Software Engineer (Indexer Focus)
Founded in 2015 by Charles Hoskinson and Jeremy Wood, IOHK is one of the world's pre-eminent blockchain infrastructure research and engineering companies. We are a fully decentralized remote working organisation committed to the highest principles of academic rigour and evidence-based software development. The company builds high-assurance blockchain infrastructure solutions for public, private sector and government clients. It is also the driving force behind the decentralized and smart contract platform, Cardano.
About Input Output
Founded in 2015 by Charles Hoskinson and Jeremy Wood, IOHK (Input Output) is a research and development company and one of the world's pre-eminent blockchain infrastructure research and engineering companies. As a fully decentralized remote organization, it is committed to the highest principles of academic rigor and evidence-based software development to build accessible financial services for all. The company builds high-assurance blockchain infrastructure solutions for public, private sector, and government clients. IOHK is the driving force behind the research and development of the Cardano blockchain and is contracted to design, build, and maintain the platform. They also work on other products such as wallets (Daedalus, Lace) and digital identity solutions (Atala Prism), while fostering a large community of developers, stake pool operators, and enthusiasts.
Skills
About the Role
You will take ownership of the Midnight Indexer, the Rust service that streams blockchain data from Midnight nodes to wallets and end-user applications through a high-performance GraphQL API. You will design, build, and operate the chain indexer, wallet indexer, SPO indexer, and GraphQL API, keeping the architecture modular and maintainable. You will build and maintain the data pipeline that fetches blocks and transactions from the Midnight node via subxt, handle finalized-block tracking, gap backfilling, and continuous real-time indexing. You will design efficient schemas and queries across PostgreSQL and SQLite, and keep latency and throughput healthy as the chain grows. You will evolve the GraphQL API with queries, mutations, and real-time subscriptions over WebSockets, taking care with secure sessions and correct handling of shielded data. You will write and maintain unit, integration, and end-to-end tests, treating reliability and correctness as first-class concerns. You will own operational quality for the service including observability, containerised deployment with Docker, and incident response. You will participate in code reviews and technical design discussions, and collaborate closely with the node, ledger, wallet, and security teams as you grow into adjacent components.
Requirements
- At least 3 years of experience in software development, with at least 2 years in Rust
- Strong idiomatic Rust including async/await (tokio) and concurrency
- Backend / data-systems experience building and operating high-performance services or data pipelines in production
- Practical experience with PostgreSQL and/or SQLite including schema design and query optimisation
- API design experience, with GraphQL experience a big plus
- Sound computer-science fundamentals including data structures, algorithms, and concurrency
- Experience with rigorous testing, code review, and clear technical communication
- Effective remote collaboration across time zones
- Experience with blockchain technology is a plus
- Experience working in scale-ups
Responsibilities
- Design, build, and operate the Indexer's components in Rust including the chain indexer, wallet indexer, SPO indexer, and GraphQL API
- Build and maintain the data pipeline that fetches blocks and transactions from the Midnight node via subxt
- Handle finalized-block tracking, gap backfilling, and continuous real-time indexing
- Design efficient schemas and queries across PostgreSQL and SQLite
- Evolve the GraphQL API with queries mutations and real-time subscriptions over WebSockets
- Write and maintain unit integration and end-to-end tests
- Own operational quality including observability containerised deployment and incident response
- Participate in code reviews and technical design discussions
- Collaborate with node ledger wallet and security teams
- Keep current with developments in Rust and blockchain technology
