Skip to content

Instantly share code, notes, and snippets.

@brson

brson/talent-plan-pingcap.md Secret

Last active Jun 20, 2019
Embed
What would you like to do?

Distributed Systems Training in Go and Rust

At PingCAP we love the Go and Rust programming languages. They are the languages with which we write the databases TiDB and TiKV, respectively. They have empowered us to build these fast and reliable distributed systems from the ground up, and iterate on them quickly and confidently.

These languages are the future of systems programming.

We expect a lot from ourselves — our engineers need to be, or to quickly become, experts on both databases and distributed systems, and to be comfortable expressing that knowledge in these modern languages. The products we develop are on the cutting edge of distributed systems, storage technology, software design, and programming language theory, and yet there are few opportunities for students to gain hands-on experience with this intersection of technologies.

At PingCAP we are committed to mentoring the next generation of systems programmers, those who are beginning their careers in a world that is quickly adopting next-generation systems languages.

To this end, PingCAP is creating a series of training courses on writing distributed systems in Go and Rust. These courses consist of:

  • Practical Networked Applications in Rust. A series of projects that incrementally develop a single Rust project from the ground up into a high-performance, networked, parallel and asynchronous key/value store. Along the way various real-world and practical Rust development subject matter are explored and discussed.

  • Distributed Systems in Rust. Adapted from the MIT 6.824 distributed systems coursework, this course focuses on implementing important distributed algorithms, including the Raft consensus algorithm, and the Percolator distributed transaction protocol.

  • Distributed Systems in Go. A course on implementing implementing algorithms necessary in distributed databases, including map reduce, and parallel query optimization.

Today they are in an early state, but we would appreciate if you give them a look and help us improve them over at our PingCAP Talent Plan.

Distributed Systems Training in Rust and Go

On the TiKV team we love the Rust and Go programming languages. They are the languages in which we write most of our software, with TiKV in Rust, and its sister project, TiDB, in Go. They have empowered us to build these fast and reliable distributed systems from the ground up, and iterate on them quickly and confidently.

These languages are the future of systems programming.

Creating reliable distributed systems like TiKV demands a lot from contributors — they not only need to be experts in storage and distributed systems, but also to be comfortable expressing that knowledge in these modern languages.

The software we develop is on the cutting edge of distributed systems, storage technology, software design, and programming language theory, and yet there are few opportunities for students to gain hands-on experience with this intersection of technologies.

As a CNCF project, we are committed to mentoring the next generation of systems programmers, those who are beginning their careers in a world that is quickly adopting next-generation systems languages.

To this end, PingCAP is creating a series of training courses on writing distributed systems in Rust and Go. These courses consist of:

  • Practical Networked Applications in Rust. A series of projects that incrementally develop a single Rust project from the ground up into a high-performance, networked, parallel and asynchronous key/value store. Along the way various real-world and practical Rust development subject matter are explored and discussed.

  • Distributed Systems in Rust. Adapted from the MIT 6.824 distributed systems coursework, this course focuses on implementing important distributed algorithms, including the Raft consensus algorithm, and the Percolator distributed transaction protocol.

  • Distributed Systems in Go. A course on implementing implementing algorithms necessary in distributed databases, including map reduce, and parallel query optimization.

Today they are in an early state, but we would appreciate if you give them a look and help us improve them over at our PingCAP Talent Plan.

@brson

This comment has been minimized.

Copy link
Owner Author

@brson brson commented Jun 19, 2019

Even though I think the words "Rust and Go" sound better than "Go and Rust", I've used the phrase "Go and Rust" so that they can have the parallel with "TiDB and TiKV". I think it is correct to list TiDB before TiKV since TiDB is the main product.

@brson

This comment has been minimized.

Copy link
Owner Author

@brson brson commented Jun 19, 2019

I use the word "dearth" here, which is appropriate, but difficult even for native english speakers.

@brson

This comment has been minimized.

Copy link
Owner Author

@brson brson commented Jun 19, 2019

Ok i removed "dearth"...

@Hoverbear

This comment has been minimized.

Copy link

@Hoverbear Hoverbear commented Jun 19, 2019

We expect a lot from our engineers -> We expect a lot from ourselves PingCAP is more than just engineers. :)

@Hoverbear

This comment has been minimized.

Copy link

@Hoverbear Hoverbear commented Jun 19, 2019

We do use C++ quite a bit, and other languages. Maybe instead of saying ...careers in a world that is quickly migrating away from previous-generation systems languages we can say ...careers in a world that is quickly adopting next generation systems languages? It's more positive.

@brson

This comment has been minimized.

Copy link
Owner Author

@brson brson commented Jun 19, 2019

I did leave the titles of both as "Distributed Systems Training in ...", but the pingcap.com one could also be something like "Introducing the PingCAP Talent Plan"

@Hoverbear

This comment has been minimized.

Copy link

@Hoverbear Hoverbear commented Jun 19, 2019

- To that end PingCAP is creating a series of training courses on writing distributed systems in Go and Rust. These courses consist of
+ Standing by our commitment, PingCAP is creating a series of training courses on writing distributed systems in Go and Rust. These courses consist of
@Hoverbear

This comment has been minimized.

Copy link

@Hoverbear Hoverbear commented Jun 19, 2019

- ...you will give them a look and offer feedback on our...
+ ...you will give them a look and help us improve them over at our...
@Hoverbear

This comment has been minimized.

Copy link

@Hoverbear Hoverbear commented Jun 19, 2019

- Creating reliable distributed systems like TiKV demands a lot from engineers
+ Creating reliable distributed systems like TiKV demands a lot from contributors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment