# EPF Dev Update 1
## Introduction
Hi, I'm Sid. I'm a dev. I started studying the Ethereum protocol when the EPF study group started. I also contribute to the EPF wiki. While I mainly concentrated on studying the execution layer, as time goes on, I also intend to deepen my understanding of the consensus layer.
## Week 0
I began examining the Nethermind codebase in week 0 in order to make a wiki page that maps the code base to the specifications. However, I wasn't sure at that point what project I wanted to work on during the EPF. I had begun learning C# and making notes about things like where the block level STF is invoked and following the code from there down the call chain, which helped me create a mental map of the code base, albeit a partial one. As I had already been examining the code base, I also looked for EPF project proposals that included Nethermind. I was interested in a proposal from the previous cohort to work on a super optimized EVM in C#. Even though I do not have the experience necessary to write highly optimized code, I think I could gain the necessary skills and work on this project in the long run.
## Week 1
When @bastin expressed interest in EVM optimization during this week's office hours call with Tim Beiko, Tim responded that this is a very significant class of problems that requires many people working on it. At this point I began to feel more certain that this is the path I wanted to take.
### Tasks done this week
1. Started reading the closed and open [IL-EVM issues](https://github.com/NethermindEth/IL-EVM/issues)
2. Started reading and understanding the code in the [feature/IL-EVM branch](https://github.com/NethermindEth/nethermind/tree/feature/il-evm) branch.
3. Looked at some IL code: built the Nethermind repo, built [AvaloniaILSpy](https://github.com/icsharpcode/AvaloniaILSpy), opened the built EVM dll in the artifacts directory to inspect the virtual machine code, particularly the IL code for the EVM instructions present there.
4. Started reading the code of the underlying library, Sigil, that is being used to generate the IL code. The biggest pain point here is getting the language server to work, the oldest dotnet currently available either through nix-shell or snap is 3.1 whereas Sigil uses 3.0-preview9. Currently just grepping the Sigil code base on a need to no basis.
5. Gathering and reading references that will help me level up in the long run for EVM and c# optimization tasks
### Plan for next week
Keep doing the above, and then map the issues with the code in the IL-EVM branch to see where things stand and how I can contribute.