Senior Software Engineer
Job description
Senior Software Engineer at Category Labs.
About the role
You will research, design, and implement core improvements to the Monad protocol, focusing on distributed algorithms, cryptography, and consensus mechanisms. You will own the architecture and delivery of system components that directly influence the performance, security, and correctness of a live Layer 1 blockchain. You will collaborate closely with a small, high-performing team of engineers and researchers to solve problems of massive scale and impact. Your work will be built in the open and merged into public repositories that the entire ecosystem can inspect and use. You will leverage your instincts for software architecture, memory management, and performance optimization to ship robust and efficient systems. As an early member of this team, you will help shape the engineering culture and set standards for quality and collaboration.
Key facts
What you'll do
- Design and implement core improvements to the consensus mechanism, gossip protocol, state synchronization algorithm, leader election protocol, and other foundational distributed systems components.
- Devise experiments to test worst-case scenarios, and iterate on your design based on empirical results and real-world behavior.
- Design system components while rigorously accounting for the interactions and constraints imposed by other blockchain systems such as rollups, bridges, or staking protocols.
- Build performant system components from scratch in C++ or Rust, ensuring correctness, efficiency, and scalability under demanding conditions.
- Write software that operates within a live, public mainnet environment, where reliability, security, and performance are critical.
- Collaborate with researchers and engineers to translate theoretical ideas into production-grade implementations that can be open-sourced.
- Profile and optimize code using advanced performance analysis and profiling tools to eliminate bottlenecks and reduce resource consumption.
- Participate in code reviews and design discussions, providing clear and constructive feedback to maintain high standards across the codebase.
- Document architectures, trade-offs, and implementation details to support long-term maintainability and knowledge sharing.
- Engage with the broader ecosystem by monitoring public repositories, talks, and publications to stay informed about advancements in blockchain and distributed systems.
Requirements
- You have at least 5 years of software engineering experience in Rust, C++, or C, with a strong track record of shipping production-grade systems.
- You have significant experience building performant systems from scratch, such as databases, device drivers, or embedded systems, where resource constraints and efficiency are critical.
- You have excellent instincts for software architecture, memory management, and performance optimization, and you routinely use profiling tools to validate your designs.
- You hold a Bachelor's, Master's, or PhD in Computer Science, or have equivalent professional experience that demonstrates the required technical depth.
- You value communication and collaboration, and you are able to translate complex technical concepts into clear and concise discussions with both technical and non-technical stakeholders.
- You are comfortable working in a fast-paced environment where priorities can shift based on technical challenges and research insights.
- You are comfortable developing open-source software where your work will be publicly visible and subject to community scrutiny.
- You are authorized to work in the country where the role is based without requiring sponsorship, or you are willing to relocate to New York (Hybrid) if required for the position.
Practical notes
The role is full-time and based in New York with a hybrid work model. You are expected to work from New York periodically in accordance with team agreements. There are no specific visa sponsorship details listed for this position. The position does not have an advertised application deadline, and you are encouraged to apply as soon as possible. This role requires experience with high-performance systems programming in C++ or Rust.