QA Lead for p2p distributed systems with blockchain consensus principles.
We automate building multiple versions of distributed systems and running end-to-end tests on whole networks. Networks have states on levels of consensus, embedded smart contracts, traditional smart contracts, cache layers, networking layers and others that can show many exotic faulty behaviors. This is a niche of niches where Stackoverflow won’t help you.
Blockchain nodes are built in Rust language in Substrate framework, that is a cutting edge blockchain software. QA Lead should be able to encompass all the domains around interoperability of distributed systems, dynamic APIs (API definitions need to be created programmatically), bridge-blockchains that make consensus about states of other blockchains or chaos engineering.
The blockchain is a decentralized exchange (DEX), connected to Ethereum and other blockchains through bridge technologies. Overall software is a p2p, open-source, complex landscape of parts built in Rust, Typescript, Solidity, and Go. The result of the work is open-sourced.
The job will be to build and extend testing infrastructure. End-to-end testing is done through a Typescript application that runs network tests, which need to be deduced out of Rust code.
You will be working among professionals with a keen sense of software precision and having autonomy over your decisions. Tools used will be explored to their limits and you will have the opportunity to create novel architectural patterns. You will collaborate closely with the CTO and other engineers. It's welcomed to be interested in other domains of the software, but not necessary. In this position, you will have the opportunity to design and build software that involves a wide variety of considerations including cryptography, security, networking, game theory, economics, finance, political science, and programming language design. Expect a lot of freedom, fun, and responsibility.
With the growth of the company, we like people to grow as well in technical or general leadership.
The ideal person is a senior engineer who has ambition to grow in a QA lead role and learn distributed systems tech. The combination of Rust, Typescript and DevOps tools on blockchain networks is a daring combination, so the person doesn’t need to have a working knowledge of all of them. The ability to learn over time is a must.
Responsibilities
- ensure execution correctness at all times
- actively discover flaws and vulnerabilities
- automate deployment and testing process
- test UI and UX
- create testing strategies
- develop automated e2e tests using typescript
- understand and execute unit tests in rust
- collect the data from grafana, prometheus and custom tools
- report incidents
Requirements:
- javascript, typescript, testing frameworks
- testing automation
- code reading
- gitflow
- agile
Toolset:
- the codebase to test is in Rust and Typescript
- Typescript + node-tap for API tests
- Docker
- Kubernetes for automatization
- contribution to the toolset is appreciated
Personality requirements and skills
We value curiosity - an expanding mindset is a must.
Technology agnosticism - strong opinions, weakly held.
Communication skills: ability to adjust a message to a listener and ability to be a listener.