---
# System prepended metadata

title: EPF cohort 4 Week 3 update

---

Hey, I am Joel Rousseau and this is my update for the week 3 of the cohort 4.

My primary goal for this third week was to prepare myself for contributing to the code base of Reth.

I quickly realized that there were barely any "first good issues" available that were not already claimed and that if I wanted to tackle more serious issues, I would need to improve my overall knowledge of the project as well as my Rust skills as I encountered some unfamiliar concepts while going through the code base.

### **Learning**
I usually use Rust for casual setups, such as writing a quick client or a bot. However, delving into the Reth codebase made me realize that in order to achieve good composition, I also need to be familiar with more advanced concepts, including:
- [Advanced Traits](https://doc.rust-lang.org/book/ch19-03-advanced-traits.html)
- [Traits Defining Shared Behaviour](https://doc.rust-lang.org/book/ch10-02-traits.html)
- [Generic Types, Traits, and Lifetimes](https://doc.rust-lang.org/book/ch10-01-syntax.html)
- Anything related to performance as well such as [improving IO](https://doc.rust-lang.org/book/ch13-03-improving-our-io-project.html)
- Traits vs Generics

I also got a good refresh on Threads / Concurrency with standard libs and Tokio by coding small projects and played around with the above concepts.

All in all, the time I spent refreshing my Rust coding skills was well worth it, and I believe it will help me greatly as I start contributing to the project.


Also, as I was going through the code base and understand some advanced concepts implemented in reth such as:
- [Erigon Stage Sync and Control Flows](https://erigon.substack.com/p/erigon-stage-sync-and-control-flows)
- [Reth Design Database](https://github.com/paradigmxyz/reth/blob/main/docs/design/database.md#table-design)
- [Crate DB](https://github.com/paradigmxyz/reth/blob/main/docs/crates/db.md)


### **Project**

Finally, I contacted one of the developers (Roman Krasiuk) who attended the gathering in Paris to discuss a project that would suit me. Initially, I asked him about the conversation he had with me and one of my colleagues, Emmanuel, regarding the merge of Lighthouse and Reth into a single binary. I asked if this could be a project that I could work on. Unfortunately, it didn't seem possible. He said that the conversation between the two teams regarding this topic is still ongoing and that he wouldn't recommend me working on it.

In the end, we had a chat about which areas I would be most interested in and he told me that he would come back to me with some ideas after talking to the team. I will get in touch with him this week and hopefully provide an update regarding my project very soon.

In the meantime I will try to take on some issues.