Positions are available for talented and passionate software engineers in the Decentralized and Distributed Systems (DEDIS) lab at EPFL led by Prof. Bryan Ford in Lausanne, Switzerland. The DEDIS lab focuses on building secure, scalable, and privacy-preserving decentralized systems, including next-generation blockchain or distributed ledger technology.
The ideal candidate is ready to scale their code from proof-of-concept to production, likes to build real software for real people to use, and believes their code can change the world for the better. A deep understanding of distributed systems, networking, and applied cryptography is a major bonus.
Major Duties and Responsibilities
The software engineers will join the existing DEDIS software-development team and collaborate with PhD students and other researchers in the DEDIS lab to design, implement, document, and deploy highly usable, open-source, security- and privacy-enhancing tools and infrastructure. The engineers will work on subjects such as:
- Next-generation blockchain and distributed ledger and smart contract technologies with applications to cryptocurrencies, collaboration, and digital democracy.
- New privacy-preserving approaches to identity management, decentralized organization membership and management, and Sybil-attack protection.
- Abuse-resistant anonymous communication protocols and messaging applications.
- Systematic defenses against side-channel and traffic analysis attacks.
You will have the opportunity to act as an advisor to talented EPFL bachelors and masters students working on semester projects, and to interns visiting from other institutions.
Skills and Experience
Although the primary hiring criterion is proven raw talent and passion for programming, prior experience in the following areas is a plus:
- Systems programming languages such as C, C++, Go, and/or Rust.
- Network protocols and programming (Ethernet, IP, TCP, UDP, SSL/TLS).
- Mobile programming in Android and/or iOS.
- Distributed systems programming and algorithms (replication/consistency, Paxos/BFT, DHTs, peer-to-peer protocols, blockchains and cryptocurrencies, etc.).
- Applied cryptography (ciphers, elliptic curves, lattice crypto, zero-knowledge proofs).
- Team-based code and project management using revision control (e.g., Git), open-source workflows (e.g., GitHub), unit tests, and continuous integration.
We prefer candidates who have strong communication and writing skills in English, an ability to build maintainable and well-documented software, and a desire to self-evaluate and refine their tools and skills regularly.
Typical candidates will have at least a bachelor’s degree in computer science or comparable skills and experience. A scientific research background is welcome but not required.
Candidates should have the right to work in Switzerland.