Position: Blockchain developer
Company: Simplify
Experience required: 5y
Category: Rust
English level: upper
Published: 2023-05-01T00:00:00+03:00

We are looking for a dedicated Blockchain Engineer. Join us and be part of the future of Bitcoin L2 and Stacks. As a pioneer in blockchain technology, we are seeking talented software engineers to help us drive the sBTC, Bitcoin on Stacks, Stacks, and Clarity forward. Don’t miss this chance to contribute to the development of a high-quality, secure, and efficient sBTC ecosystem.

RESPONSIBILITIES:
-Develop Rust-based backend software components to support the Stacks blockchain and associated systems like Bitcoin and the Stacks Blockchain API.
-Collaborate with sBTC Eng Leads to design and execute various testing efforts.
-Develop stress testing suite to identify potential failure points and bottlenecks in the sBTC protocol.
-Design and implement an automated testing framework to ensure stability and functionality during development and deployment.
-Conduct security testing to identify and address vulnerabilities in the sBTC protocol.
-Measure and optimize the performance of the sBTC protocol through comprehensive performance testing.
-Ensure the entire sBTC protocol stack functions correctly through end-to-end testing.
-Conduct regression testing to ensure new updates and features do not break existing functionality.
-Perform usability testing to ensure a user-friendly experience for developers and end-users.
-Conduct load testing to assess the protocol’s ability to handle high transaction volumes and loads.
-Simulate network and node failures through fault injection testing to ensure graceful fault handling.
-Ensure seamless integration of the sBTC protocol with other Stacks protocols and tools through comprehensive integration testing.
-Collaborate on special projects such as automated deployment pipeline, monitoring, and alerting system, protocol flow visualization tool, and peer network health and diagnostic tool.
-Design and build blockchain testing infrastructure and quality assurance systems.
-Create a well-documented testing infrastructure covering various testing stages, security measures, and simplified development processes.
-Identify risks and required resources for future stages of development.

MUST HAVE:
-5+ years of experience developing software for distributed systems using low-level languages such as Rust, C/C++, or Java. Experience with Go is also acceptable.
-Experience with public blockchains, consensus protocols, large-scale distributed systems, network protocols in the OSI model, applied cryptography, compilers, or similar technologies.
-Experience interacting with the OSS development community.
-Ability to recognize bad practices and anti-patterns.
-Strong experience in designing testing infrastructure and QA systems.
-Proficiency in the unit, integration, performance, stress, and security testing.
-Experience with CI/CD pipelines.
-Familiarity with cloud providers.
-Strong software development skills in multiple programming languages.
-Strong problem-solving skills and ability to independently debug and resolve complex issues.
-Excellent communication and collaboration skills.
-Fluency in English (Upper-intermediate or higher).
SOFT SKILLS:
-Excellent leadership and team management abilities.
-Strong communication, presentation, and interpersonal skills.
-Ability to work under pressure and manage multiple priorities.
-Strong problem-solving, decision-making, and analytical capabilities.
-Client-focused and committed to delivering high-quality results.