We are researching and developing scalable, fault-tolerant and secure distributed and blockchain systems that drive a new generation of financial and digital transactions. We are looking for highly motivated and enthusiastic software engineers and distributed systems researchers to join the Blockchain Security & Applications group at IBM Research – Zurich. You will be expected to contribute to the architecture definition and implementation in our blockchain projects, notably their aspects pertaining to distributed systems. You will be able to contribute directly and make an impact not only on IBM products, but also on the Hyperledger Fabric open-source project. The researchers in the group have deep expertise and knowledge in scalable, fault-tolerant and secure distributed systems. Software to be developed will be included in critical production systems and is expected to be of high quality, modularity, maintainability, scalability, and resilience.
Candidates with a PhD degree and a strong research publication record in the fields of distributed systems/distributed databases, and who are willing to implement real systems, are strongly encouraged to apply. Such exceptional candidates can be considered for a post-doctoral or a Research Staff Member role, depending on experience and career accomplishments.
Candidates are expected to have the following background and interests:
- Degree in Computer Science, Software Engineering, Software Architecture, or equivalent.
- At least three years of experience in software-related positions (building systems within the scope of a graduate degree counts towards these three years).
- Experience in distributed and parallel systems and large software architectures.
- Basic understanding of one or more of the following protocols/systems: Paxos, Raft, ZooKeeper, etcd, Consul.
- Proficient in at least two of the following programming languages: Golang, C, C++, Java.
- Experience with standard engineering and coding practices.
- Pragmatic "get it done" attitude.
- Capable of participating actively in brainstorming sessions in multi-disciplinary teams.
- Ability to propose, defend, and critique ideas.
- Ability to conduct independent work and to work in a team as required by the task at hand; willingness to assume responsibility.
- Excellent verbal English communication skills.
- Eagerness to learn independently about the subject area(s) of the project(s) and underlying distributed systems technologies.
In addition, the following skills are required for post-doctoral / Research Staff Member roles:
- PhD in distributed systems/distributed databases.
- Solid background in security and networking.
- Strong research publication record.
Finally, one or more of the following skills are desirable, but not necessarily required:
- Hands-on knowledge of and experience with Hyperledger Fabric.
- Experience in deploying and evaluating the performance of (large-scale) distributed systems.
- Deep understanding of designing protocols/systems such as Paxos, Raft, ZooKeeper, etcd, Consul, PBFT.
- Experience with modern hardware accelerators such as FPGA and RDMA.
- Background in game theory and economics.
- Knowledge of proof-of-work blockchains (Bitcoin, Ethereum).
- Experience with open-source development.
- Proficiency, familiarity and/or experience with additional programming languages.
IBM is committed to diversity at the workplace. With us you will find an open, multicultural environment. Excellent flexible working arrangements enable all genders to strike the desired balance between their professional development and their personal lives.