About the Zcash Company
We're on a mission to give everyone on Earth an open, inclusive financial system, and we need your help.
The Zcash Company is at the forefront of the Internet Money revolution. Fueled by scientific discovery and guided by love for humanity, we are aiming to create a global, open economic fabric which will provide financial inclusion to potentially two billion unbanked people. We feel that we are part of something that is much bigger than ourselves.
Our flagship network, Zcash, launched in the fall of 2016 has quickly grown to be one of the most valued and admired cryptocurrencies/blockchains in the world.
We believe in integrity, inclusivity, and openness. Our work springs out of passion, but we temper our enthusiasm with respect for our co-workers and families. We strive to create an environment for psychological safety, empowerment, sense of purpose, and challenging work for our multifarious team. We have a highly collaborative, ego-less, open, highly diverse, friendly work environment. Decentralization is one of our core values. We want to help bring about the next great paradigm shift characterized by decentralization at a massive scale.
Today the company is distributed and everyone works remotely but since we are growing quite rapidly, we have decided to locate our first physical office in Denver-Boulder area.
Currently the company is mostly comprised of scientists, researchers and software developers who all specialize in software security, privacy and cryptography. We are now expanding our knowledge in other pertinent areas by adding new team members with more diverse experience.
Who We Are Looking For
Our team is the cornerstone of our company's strategy to build a permissionless inclusive global financial platform. Our flagship product, the Zcash reference client, underpins a global permissionless fungible financial platform. The right applicant will cultivate our team and continue our tradition of releasing secure cutting edge cryptographic software.
We believe in emergent team intelligence. We think that a high functioning team is greater than the sum of its parts. We seek people who are “multipliers.” People who create a positive and supportive environment for the people around them. People who demonstrate a high degree of conscientiousness with their team members and in their work. We highly value good sense of humor, humility, selflessness, flexibility, good judgment, calmness, reliability, curiosity, strong desire for mastery, and independent thinking.
We love humble geniuses.
We care a lot about behavioral traits, talent, internal drive and experience, but only if our values and general philosophy match can we create real magic! We are looking for people who are driven by purpose. We believe that great employees are motivated by the mission, the team and challenging problems.
Our Ethos, Logos and Pathos
- Table stakes: Design software that is secure, efficient, consistent, clear, reusable, and extensible.
- Every line of code is a business decision. Understand the nature of the business challenge really well.
- Make haste slowly: Iterate quickly and ship code frequently while maintaining the utmost in quality.
- Maintain system quality using automated QA techniques during development. Write tests first. Cover all code paths. Use the test suite as specification of your code functionality.
- We approach software design with “systems thinking” while keeping in mind that some of the worst failures are systems failures.
- We promote seeing things from the perspective of the whole instead of collections of individual components.
- The biggest pattern we follow is to reduce complexity. A prime objective of systems architecting is to simplify, simplify, simplify. Design for the simple case first.
- Minimize upfront design. Only design what is necessary. Avoid considering future use cases. Write less code.
- When componentizing, choose elements with low external complexity and high internal complexity. Define a clear contract for each component.
- Comment the intent of the code, not what it’s doing. Comment only unobvious, complex code.
- Think long term.
- Write code defensively.
- Siloed knowledge is bad.
- Deal with problems early. Keep technical debt low. Refactor often.
- Don’t optimize too early. Make code correct first, fast second.
- Actively seek criticism.
- A little paranoia goes a long way. As engineers, we have a saying “If engineers feel optimistic, people get hurt.” We temper this caution with self-care and care for each other.
- We also find ourselves saying “if it’s worth doing once, it’s worth automating”. We like to solve problems permanently. We continuously codify the lessons learned and incorporate them into the codebase.
- Build a platform, not a product. Allow others to extend your work.
- The best software engineers are also natural leaders.
Requirements and Expectations
- Experience in professional software engineering best practices for the entire SDLC
- Familiarity with common design patterns
- Experience in mainstream programming languages such as Java/C/C++
- Management of your own projects
- Working with cross functional teams
- Being the technical product owner who works with product management
- Being a technical resource for other team members
- Providing code reviews and pull-request reviews
- Help recruit and assess new candidates
- Being a strong advocate of our culture and example of our principles
- Having fun
Benefits We Offer
- Fun Fridays: Developers work on self-determined projects that can potentially benefit the company in innovative ways
- Learn from highly seasoned team
- Opportunity to work on projects with potential for global transformation
- Strong compensation: Competitive pay + equity
- Excellent health insurance coverage with company paid monthly premiums
Software Developer (multiple)
We are looking for all-around great developers with a broad set of technical skills. You will have the opportunity to learn and apply zk-SNARKS based cryptography. You will work with both Bitcoin and Ethereum derived blockchains and consensus protocols. You will also work on client side projects supporting both desktop and mobile devices.
Software Developer in Test
We are looking for a software engineer who has a strong desire to build internal systems that assure that the code is of high quality and is highly secure, maintainable and performant. You will be responsible for building and implementing a QA strategy that aligns with overall mission of the company. This role comprises of building modern quality assurance practice and associated frameworks and automation. The system will also report on coverage and other quality related metrics.
You will not only work very closely with platform development team, participating in the complete development process, but also work with User Experience and Product roles. You will also have the opportunity to contribute to and benefit from the QA process in upstream Bitcoin community and other related projects.
You will be expected to have a full understanding of the software development methodology.
This very important role will have responsibility for improvement, development and maintenance of the whole supporting infrastructure surrounding Zcash global network and blockchain. You will be using and improving open source and internally developed monitoring, detecting and alerting tools.
Since we are still growing, you will also be responsible for internal systems and infrastructure. Our infrastructure is fully cloud services based and hosted. Internal systems include full automation of SDLC and the company’s operational infrastructure.
You will collaborate with product developers to build automation systems and tools that potentially could be published as open source projects for other cryptocurrencies and decentralization projects.
How to Apply
Please send a resume in text or PDF format and contact info to [email protected]
Information Security Engineer
This vital role involves formulation and maintenance of a common information security strategy for Zcash Company and Zcash Network. This role will also be responsible for managing the prioritization and implementation of projects relating to the information security strategy.
Our ideal candidate will be highly effective at coordinating a top-notch security auditing program and managing security escalations and responses. The ideal candidate also enjoys conducting wide-ranging security research and engages in proof-of-concept development for fun.
Our expectations from this role include:
- Top-level Responsibilities
- Learning about, surveying, developing, and sharing threat modeling and risk assessments for the cryptocurrency application space
- Working with cross-functional teams to design, implement and evolve security measures
- Defining and managing escalation and communication (internal and external) process regarding security events
- Managing security consulting relationships (code audits, pen testing, threat modeling assessments) to achieve best-effort assurances for Zcash users
- Managing bug-bounty programs to identify, reproduce, remediate and test emergent vulnerabilities
- Understanding software principles, threats, attacks, vulnerabilities, and countermeasures regarding information security.
- Designing and overseeing the implementation of automated pentest, fuzzing, hardening, and mutation testing tools for Zcash software
- Defining active security monitoring systems for the Zcash network
- Designing and hardening the Zcash company infrastructure and helping to remove vulnerability to the public network due to reliance on company infrastructure
- Assisting the technology team with making build-vs-buy decisions for security related automation systems and compliance management systems and services
- Research (company encourages up to 20% of employee time for this)
- Developing and presenting novel research into a broad range of interests tangentially related to Zcash's mission
- Leading risk assessment studies