Chaincode Residency
January 29th - February 23rd 2018

Applications are now closed

NOTICE: The application period for the residency has now closed!

About

Chaincode Labs is hosting a Bitcoin residency program in January-February 2018 in our offices in Chelsea, New York City.

There are two sessions, each lasting two weeks:

Security and Adversarial Thinking

For developers with high-level knowledge of Bitcoin who want an opportunity to dive deep into security concerns, adversarial thinking, and approaches to Bitcoin protocol design.

Becoming a Bitcoin Core Contributor

For developers with an interest in Bitcoin technologies who have not yet contributed to Bitcoin projects and want to dive in head-first.

Sessions

We are hosting two residency sessions. Applicants may apply to one or both of the sessions.

Expect both sessions to be very hands-on. We’ll spend about half the time on talks covering various topics, not to mention great conversation over lunch. Primarily, though, you’ll learn by doing - either by carrying out independent research and investigating systems you find interesting in the space, or by contributing to Bitcoin Core or related projects while collaborating with established Bitcoin Core developers. There may also be guest speakers over the 4 weeks.


Session A - Security Concerns and Adversarial Thinking

January 29th - February 9th 2018

Session coordinator: Matt Corallo

This session is appropriate for software developers who have experience with Bitcoin applications and who want an opportunity to dive deep into protocol design, adversarial thinking, threat concerns and security considerations with established Bitcoin Core developers. We will also discuss Bitcoin’s most pressing challenges: scaling, fungibility and privacy. This session is less hands-on and more exploratory in nature. Topics covered:

  • Categorization of threat models: centralization pressures, consensus issues, user protection, privacy and fungibility
  • Mining pools: history, pools, mining centralization pressures, mining games
  • Soft forks: approaches and history
  • Hard forks: history, current research, consensus and network considerations
  • Consensus approaches: proof-of-work and other models
  • Fungibility and scalability: trade-offs for different approaches
  • Second Layer Systems, Smart Contracts and Building Trustless Systems

Session B - Becoming a Bitcoin Core Contributor

February 12th - February 23rd 2018

Session coordinator: John Newbery

This session is appropriate for software developers with an interest in Bitcoin technologies and who want to contribute to Bitcoin projects but have not yet done so. This session will includes lots of hands-on development work on Bitcoin Core and Bitcoin protocol development. We will cover aspects such as:

  • The history and philosophy of Bitcoin and the Bitcoin Core project
  • The process of contributing to Bitcoin Core
  • The architecture of Bitcoin Core
  • Bitcoin consensus, transactions and blocks
  • The P2P network
  • A history of chain forks and failures
  • SegWit: rationale, history, design, activation
  • Payment channels and lightning

What we're looking for

Chaincode is committed to creating an inclusive environment for people from different backgrounds.

The residency program is not a taught course and is not suitable for Bitcoin beginners. We're looking for candidates who:

  • Are already established developers. There are no particular language requirements for Session A. Session B is focussed on contributing to the Bitcoin Core project so candidates should be comfortable with C++ and/or Python.
  • Have a strong base knowledge of Bitcoin. Candidates for Session A should have experience either contributing to a Bitcoin project or working in the Bitcoin industry. Candidates for Session B should be comfortable with all the material in Mastering Bitcoin.
  • Have a basic idea of what projects they would like to work on. Session A will involve carrying out independent research and investigating systems you find interesting in the space. Session B will involve contriubting to Bitcoin Core or related open-source projects.

Residency mentors

Matt Corallo

John Newbery

Russ Yanofsky

Alex Morcos

Suhas Daftuar

Apply

NOTICE: The deadline for applications is November 17th. Please submit your application before that date if you wish to be considered for the residency.

If you’ve wanted to contribute to Bitcoin Core but found the idea daunting, or want to spend more time designing protocols based on Bitcoin, thinking about edge cases and security models with established Bitcoin developers, this is an excellent opportunity.

Travel and lodging stipends are available to make this opportunity more accessible to a wide range of people.

To apply to the program, please send a general overview of your background and interest in Bitcoin to 2018residency@chaincode.com stating which of the two sessions you'd like to apply to (or both). If you have previous work or writing on Bitcoin, please include a link to it in your email.

Wednesday Night Meetups

Not everyone is in a position to dedicate two or four weeks to attending a Residency program, so we're offering a second program for those in the New York area. On Wednesday evenings in the weeks leading up to the Residency we'll open our doors to a small number of participants. We’ll go over some of the material from the Residency program and be on hand to help with your Bitcoin Core PR or related project.

If you’ve wanted to contribute to Bitcoin Core or are working on an open-source Bitcoin project and want some guidance from established Bitcoin Core contributors in an informal setting, this is a great opportunity.

We're looking for participants who:

  • Have a strong developer background, either in Python or C++ if you want to contribute to the Bitcoin Core project or in other technologies if you want to work on a related project.
  • Have a strong understanding of Bitcoin principals. This is not a taught course and is not suitable for beginners. If you're in the New York area and want to start learning about Bitcoin, we'd strongly recommend attending the BitDevs meetups .
  • Have an idea for a project that you'd like to work on. This could be a Pull Request for Bitcoin Core, work on a related project like Lightning or Tumblebit, or some other Bitcoin-related open-source project.
  • Are able to commit to attending the meetup sessions regularly.

If this sounds interesting to you, please send us a note at meetups@chaincode.com explaining your background and what you want to work on.