At Sifchain we are in the process of launching an Omnichain Decentralized Exchange. This is a unique technical undertaking that continues to attract interest and excitement from a multitude of well known investors in the blockchain sphere. In fact, the private sale round was oversubscribed within two days of its announcement. Investors recognize that our offering has unique benefits over both CEXes and existing DEXes, and has the potential to fundamentally change the DeFi ecosystem. The team is led by a blockchain architect from Thorchain, which raised its liquid market cap from $1M to over $150M in two years.
The blockchain engineering team at Sifchain is looking for a talented test engineer to implement processes to test the functionality, security, performance, and scalability of Sifchain. The test engineer will ensure Sifchain has clear, complete test coverage that other engineers can easily read and understand. Before we create features, we should execute walkthroughs of our architecture to discuss testing strategy and leave with a clear test plan that addresses the points below.
The test plan should cover unit testing of objects and integration testing of functions. For completion, our integration tests should cover every branch of code, and we should add them in increments corresponding to the addition of a function so that we are always testing quickly after we add functional code.
Our software will be used intensively by many users. The test plan will need to load test our deployments so that we’re sure they perform well under heavy usage. We also consider developers users and want to make sure Sifchain runs well and new developers can start using it very quickly.
We will want to test its security thoroughly. The Sifchain will be used to secure billions of dollars and will connect to other blockchains also securing billions of dollars. It is important that the platform’s nodes be safe from intruders. Sifchain will include penetration testing in its test plans to observe attempts to compromise its network from both within and without.
For the parts of our software that interface with web or mobile apps, we should do end to end testing of the GUI. This may involve doing UI testing for 3rd party apps that we do not control or even reviewing the open source code of 3rd party apps to debug. We should also randomly conduct ad-hoc testing and use the product for personal reasons to empathize with the customer and identify issues from their perspective.
The test engineer should, with the help of a site reliability engineer, identify the metrics that users will care most about, and monitor our performance. We will routinely conduct performance tests and should have systematic alerts whenever a metric dips below a benchmark. When we research the cause of the metric dip, we should be able to quickly debug to find the source of the error because of our thorough and comprehensive testing.
The test engineer should familiarize themselves with incentivized testnets, slow cap raise launches, and other forms of beta testing commonly used in the cryptocurrency industry. These should be considered marquee moments or milestones where we will receive an influx of end-user behavior on the live application and the test engineer should be prepared to take on new, unforeseen issues.
This testing will be primarily focused on blockchain nodes (called validators) running on Kubernetes. Your tests will help us maintain our validators' reliability, security, and availability while connecting to peer validators run by members of other teams to collectively support a distributed, community owned network (the blockchain). This network includes low latency, real-time microservices that support data relay from one validator to each other, or to external API services where users can monitor the network health and other telemetric data.
As a Sifchain team member, you would be responsible for maintaining the health and performance of world-class cryptocurrency software with a team of senior engineers. You would be collaborating with some of the most diligent minds in the cryptocurrency industry on product direction, both on the core Sifchain team and among its partners, investors, and advisors. As an early team member, you must feel comfortable working in a fast-paced environment where the solutions aren’t already predefined.
Prior experience with blockchain projects is helpful but we are primarily interested in capacity to grow into the role. You should have prior experience in taking part in supporting high-quality backend architecture. You should be willing to test the technical architecture of entirely new blockchain protocols.
We are looking for individuals who are passionate about being at the forefront of a new technological paradigm and can lead the design and development of scalable applications.
- Use and evangelize sound testing and debugging practices
- Develop detailed, comprehensive, and well-structured test plans and test cases
- Prioritize and plan a myriad type of testing activities
- Design, develop, and execute automated tests with a continuous integration / continuous deployment (CI/CD) infrastructure
- Identify and report issues found, then verify that issues are resolved
- Test a live running distributed system and microservices architecture that is collectively a blockchain
- Collaborate with developers on all parts of the stack internally
- Participate in open source development
- Proven work experience in software testing or quality assurance
- Strong knowledge of software testing methodologies, tools, and processes
- Hands-on experience with automated testing tools
- Keen eye for detail and a commitment to excellence
- Be willing to help your teammates, share your knowledge with them, and learn from them
- Be open to receiving constructive feedback and turning it into process improvements
- Fluency in a systems-level programming language (Golang preferred).
- Experience with testing complex software systems with substantial data volumes or millions of users with production quality deployment, monitoring and reliability.
- Ability to think about protocol design, network design, and systems design from first principles
- A keen aptitude for sharp feedback and structured communication
- You want to work on building things the “right” way to make sure our technical foundation is solid as we build on top of it over the coming years
- Independent and self-driven
- 2+ years of test engineering experience
- Strong familiarity with distributed programming models
- Deep understanding of BIOS management
- Experience with large-scale distributed storage and database systems (SQL or NoSQL, e.g. MySQL, Cassandra)
- Major contribution to prominent and related open-source projects
- Working with edge deployments (low-latency and heavily distributed)
- Background in cryptography or networking
- Familiarity with Cosmos, Tendermint, or Thorchain
- Familiarity with the GoLang programming language
- Familiarity with Ethereum development tools like Drizzle, Truffle, and Infura
- Familiarity with Terraform, AWS, Docker and Kubernetes
- Familiarity with GraphQL and OpenAPI/Swagger
- Experience building up test framework or infrastructure.
- Experience in small startup environments
- Experience with a distributed team / remote work
How to Apply
Please email your resume to [email protected].