Staff-Level Distributed Systems Engineer
To apply, email mike with a link to your GitHub / LinkedIn / personal website or cv.
Principles
Self-reliance
- Don’t ask for permission - we have a constraint culture, not a permission culture.
- Own your work. Establishing your own objectives and timelines.
- Initiative is key; don't wait for tasks to be handed to you or rely solely on predefined roles. If you would like to be managed you should work somewhere else.
- Communicate directly and speak openly.
Focus
- Efficient team - we believe in the effectiveness of small, dynamic teams that can compete with, and even outperform, larger traditional teams.
- Reject waste - guard the company and your colleague's time, rather than wasting it in meetings without clear purpose/focus, or bikeshedding.
Production, speed, and excellence
- Embrace new challenges. You might be asked to do things that you've never done before. If you're not comfortable jumping into something new with no knowledge, you should work somewhere else.
- Prioritize productivity - we are developing fundamental breakthroughs. Timing markets matters which means we need to deliver. Expect to work long hours, including weekends. If you do not want to work long hours, or if you're looking for a nice easy job, this is not for you.
- Situations do not self-resolve. Unresolved problems have asymmetric risk . Focus on the long term even if it makes you unpopular now.
- Excellence. You should have an extraordinary high bar for your work.
- Obsess over the details of your work.
Responsibilities
Core contribution - develop core protocol schema, decentralized registry infrastructure (solidity), server-to-server communication standards, network Node architectures in multiple programming languages (Go, Rust, Typescript), key pair infrastructure, CLIs, and developer tools. Develop and maintain mobile libraries for private key stores.
Research - build and define new cryptographic standards, cryptographic proving systems, game theoretic research, consensus algorithms, and zero knowledge applications.
Code reviews - maintain our high code quality standard
Open source - build in the open with a keen focus on designing, testing, and documenting your code. We intend to build the network in public with users of the protocol.
Write & engage - contribute to technical reports/papers describing the network and the overarching technical standards. Collaborate with academic research partners at leading institutions.
Minimum requirements
-
3+ years of experience solving complex distributed systems problems
-
Live between GMT-8 and GMT-5 (North American timezones)
-
Highly self-motivated with excellent verbal and written communication skills
-
Programming and System Design: Proficiency in programming languages commonly used in system development (such as C++, Rust, Go), and experience in system architecture design.
-
Distributed Systems Knowledge understanding of computational complexity (time, space). Understanding of principles and challenges in distributed computing, such as consensus algorithms, synchronization, distributed data storage, fault tolerance, scalability, and security.
-
Peer-to-Peer Systems: - Familiarity with P2P network architectures, algorithms, and technologies.
-
Operating system fundamentals - preferably Linux, practical experience with network sockets, process life cycle, Unix-like shells and filesystems.
-
Experience in Protocol Development: - Hands-on experience in developing, implementing, and optimizing network protocols.
-
Networking - understanding and troubleshooting experience of most common networking protocols: IP, TCP, UDP, HTTP, WebSockets, gRPC
-
Digital Signatures and cryptography - understanding of HTTP Authorization standards, ECDSA, digital signatures, public private key infrastructure, and cryptography primitives.
-
Comfortable working in an applied research environment - we work with research institutions to commercialize novel internet primitives for the open web.
-
Knowledge of Operating Systems and Virtualization Technologies: Understanding of OS-level concepts, including process and memory management, and familiarity with virtualization technologies like containers and VMs.
Nice to haves
-
Blockchain and Consensus Mechanisms: For roles involving blockchain technology, knowledge of consensus algorithms like Proof of Work (PoW), Proof of Stake (PoS), and Byzantine Fault Tolerance (BFT) algorithms.
-
Knowledge of solidity - experience releasing production apps over multiple releases to (at least) thousands of daily active users. Preferably - experience with expo, redux, RTKQuery, reanimated, and Restyle. Should understand key performance concepts related to component re-renders, memory allocation, state management, and real-time communication protocols.
-
Mathematics - strong background in mathematics
-
Open source work - experience working with large open source codebases - either as maintainer or trusted contributor
-
Node and Typescript : Proficiency in node.js and typescript.