Common Prefix is seeking a Senior Software Engineer with Blockchain Experience.
About us
Common Prefix is a blockchain consulting company. Blockchain technologies will empower a planetary-wide economic collaboration with efficient resource allocation in the near future, tracking capital, land, stock, government decisions, business and governmental contracts. In the path towards this mainstream adoption of a "world wide ledger", our mission is to solve the foundational scientific and engineering problems that stand in the way, in particular in the areas of interoperability, scalability, and usability. We are idealistic cryptographers who prove protocols secure using mathematics, and pragmatic engineers who implement protocols and take them to production, and we culminate the synergy between the two. We're a small team of 22 people, half scientists, half engineers, working with blockchain-first companies only, from L1 to L2 and DeFi protocols, among others Axelar, Espresso Systems, Mysten Labs, Celestia, Babylon, Flashbots, and Flare Networks among our customers, and multiple research grants from Ethereum Foundation. Beyond consulting, our engineering team is building core and foundational open source libraries and tooling to power the blockchain systems of tomorrow for the betterment of the community, focusing on Ethereum, Cosmos, and Bitcoin; and our research team is openly publishing papers in A* peer-reviewed scientific conferences and journals on all the foundational topics in the space, with the goal of getting performant protocols proven secure, cited, appreciated, implemented and deployed.
You can learn more about our company here.
Description
This is a full-time position for a Senior Software Engineer with a strong background in blockchain technology. You will play a pivotal role in creating and implementing blockchain protocols and addressing security protocol fixes for our consulting projects.
Responsibilities
In this role, you will split your time between the following responsibilities as needed:
- End-to-end implementation of blockchain software
- Develop code in a variety of programming languages including Go, Rust, JavaScript, TypeScript, Solidity, and Python
- Write end-to-end and integration tests ensuring the reliability of financial systems
- Identify and fix bugs and security issues on your software and others’ software
- Conduct code reviews for your colleagues within and outside the team
- Work with auditors in ensuring the correctness of mission-critical software
- Software lifecycle management and devops
- Design and architecture software prototypes to demo to clients in early phases
- Turn prototypes into production-grade software
- Manage the deployment of your software into testnets and mainnets
- Ensure the system remains live and safe as it is handling millions of dollars in total value locked
- Ensure the correctness of mission-critical software by writing monitoring tools, diversifying infrastructure, and removing human single points of failure
- Scientific communication
- Regularly discuss with the scientific team to understand the security requirements of protocols
- Learn from the scientific team on a regular basis by attending lectures, courses, or reading relevant academic papers
- Keep the scientific team informed by teaching them about the engineering details so that they can stay abreast with the development process
- Remain available for consulting the scientific team when they have engineering-specific questions for other projects
- Product and software communication
- Communicate with project stakeholders to align on business requirements
- Be the face of the company when communicating with clients on relevant calls when it comes to technical details, with support from the business and the science teams
- Write blogs and tweets in collaboration with the marketing team to showcase our achievements as a company in a public manner
- Regularly communicate with the rest of your team and your project lead to understand changing requirements
- Remain available for client consulting on calls on an as-needed basis in coordination with the rest of your project team to provide expertise in blockchain technology
- After sufficient onboarding, occasionally take a leadership role and take ownership of projects to ensure the timely delivery to clients
- Miscellaneous software engineering
- Develop internal software for the company as needed to support our consulting business (financial tools, client management, availability management, client dashboards)
- Develop open-source software for the blockchain community
Requirements
The requirements for this position are:
- Multi-year software engineering experience
- Experience in designing large-scale software spanning hundreds of thousands of lines of code
- Experience in network programming (sockets, APIs)
The following skills are appreciated but not required:
- Some proven track record in blockchain technology such as the deployment of Solidity smart contracts on Ethereum, Bitcoin Script on Bitcoin, Cardano, Algorand, or other blockchains