Senior Software Engineer
Dune is on a mission to make crypto data accessible. We’re a collaborative multi-blockchain analytics platform which is used by thousands of developers, analysts, investors and community members to better understand how the crypto ecosystem works.
We’re a fast growing team, working remotely from all across the world. We cherish working on a product that empowers our users to create and do their own research in an open community first manner.
We’re backed by some of the world's best investors. In February 2022, we announced that we’ve raised our Series B funding, led by Coatue to double down on our mission of making crypto data accessible! We’ll use the funds to educate, reward and empower a new generation of on-chain analysts aka Dune Wizards.
We’re now at a crucial stage in our journey as the activity in crypto is exploding, and we need many more talented people to join the team and help us make crypto data accessible.
We reached Unicorn status at only 16 employees, so if you want to have one of the highest impact jobs on the planet come join.
About the role
Dune is a small team building large things. We are generalist engineers who pick up any and all challenges together. We like to think and design before jumping into coding.
As a software engineer in Dune on API you will play a key role in ensuring our data reaches our wizards and that we have the right interfaces for our users' needs. This is a role that involves thinking about how Dune data and users will scale and how our distributed systems should grow and evolve accordingly.
We’re strong believers in:
- All teams will expose their data and functionality through service interfaces.
- Teams must communicate with each other through these interfaces.
- There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.
We are building an API team that
- Creates interfaces to our very large data platform.
- Facilitates the construction of new functionalities on our App or direct user access.
- Facilitates performant data queries across datasets
- Will serve as essential building blocks for many, if not all, future Dune products
In this role you will:
- Design and develop distributed systems in a principled way and take part in high impact architectural decisions
- Engage in stimulating technical challenges in topics such as distributed systems, very large databases, API modeling, SQL processing, or systems performance
- Assume ownership of components within our architecture, such as metering, rate limiting, auth, metadata access, etc.
- Write code mostly in Go, with some Java and Kotlin with a strong emphasis on good design, maintainability and performance
- Collaborate in a respectful team environment that is fully distributed
You might be a great fit for this role if:
- You are a strong generalist with fundamental computer science knowledge. You use this knowledge to easily adapt to new technologies and scenarios, and to find the right solutions for the problems at hand.
- You have an understanding of distributed systems design, or the drive to learn if you’re a more junior engineer. Our work is as much about understanding and designing systems as it is about coding in a particular language.
- You have great collaboration and communication skills. We work on the principle that the best output emerges from effective team work and constructive discussions.
- Coding experience in any strongly typed language (Go, Java, Kotlin preferred), along with a zeal for writing well-designed, testable software.
- Experience working with SQL and relational databases.
Not required but a plus if:
- You have a Master’s or PhD degree in Computer Science, related field, or equivalent experience
- You have experience with RPC technologies such as HTTP/JSON, gRPC, or OpenAPI.
- Experience utilizing diverse distributed systems architectural patterns besides client/server.
- Experience and understanding of the internals of at least one distributed system such as Hadoop, Spark, HBase, Cassandra, Riak, Kafka, etc.
Perks and Benefits
- A competitive salary and equity package
- A remote role with truly flexible working hours within a fully distributed team
- 5 weeks paid vacation + local public holidays
- Regular offsites with the team in various exciting locations
- Stipend for setting up your home office / co-working space