Job Title
Senior Software Engineer (C++)
Job Description
Seeking a seasoned software engineer to lead the development of core infrastructure for the Monad platform. This role involves designing and implementing high-performance, multithreaded stack-based virtual machines (VMs) that serve as the foundation for executing complex computations. The candidate will also contribute to building distributed systems that maintain consensus through Byzantine Fault Tolerant (BFT) mechanisms, ensuring robustness in decentralized environments. Additionally, you will develop VM features that empower developers to create advanced programs on the platform, while optimizing system performance through profiling and design evaluation. Collaboration with cross-functional teams to enhance developer tooling and improve overall system efficiency is essential.
Key Responsibilities
- Architect and develop high-performance, multithreaded stack-based VMs with ancillary components (storage, RPC) to support scalable and secure execution environments.
- Design distributed systems utilizing BFT consensus mechanisms to ensure fault tolerance, data consistency, and seamless synchronization across nodes.
- Implement VM features that enable developers to leverage the Monad platform for building sophisticated, high-performance applications.
- Conduct performance profiling to identify bottlenecks and evaluate architectural decisions to optimize computation flow and system efficiency.
- Collaborate with engineering teams to enhance developer tooling, including debugging utilities (GDB, perf), compiler toolchains (Clang, LLVM), and system utilities (Unix).
- Participate in code reviews, maintain documentation, and ensure adherence to best practices in software development and system design.
- Stay updated on industry trends and emerging technologies to drive innovation in VM architecture and distributed systems.
- Debug and optimize complex systems using advanced tools like gdb and perf, ensuring reliability and performance under high-load scenarios.
- Work closely with stakeholders to define requirements and deliver solutions that align with the platform's long-term vision.
- Contribute to the continuous improvement of the tech stack, including C++, Rust, and Unix-based systems, to enhance system capabilities.
Job Requirements
- Advanced proficiency in C++ and Rust for system-level programming and performance-critical applications.
- Deep understanding of virtual machine architecture, including stack-based execution models and multithreading paradigms.
- Experience with distributed systems design, particularly in implementing consensus algorithms (e.g., BFT) for fault tolerance and synchronization.
- Strong background in performance optimization techniques, including profiling tools (perf, gdb) and analysis of computation bottlenecks.
- Expertise in Unix-based operating systems, shell scripting, and system-level debugging and troubleshooting.
- Hands-on experience with compiler toolchains (Clang, LLVM) and their integration into development workflows.
- Excellent problem-solving skills and ability to design scalable, secure, and efficient software solutions.
- Proficiency in version control systems (Git) and collaborative development practices.
- Ability to work independently and as part of a team to deliver high-quality code and documentation.
- Strong communication skills to collaborate with cross-functional teams and present technical solutions to stakeholders.
- Preferred: Experience with blockchain or distributed ledger technologies, as well as familiarity with developer tooling ecosystems.
- Must have: 5+ years of professional software development experience with a focus on high-performance systems and distributed architectures.