2024 H1 Retrospect

2024 H1 Retrospect
Photo by Unseen Studio / Unsplash

Time has flown by, and itโ€™s already been half a year. Last year, I conducted two retrospectives (2023-H1, and 2023-H2), and now it's time for another one. I initially thought that a six-month cycle was appropriate, but as things get more complex, it seems that without consistent records, insights tend to fade quickly. So next time, I'll aim to do these retrospectives quarterly. ๐Ÿ˜„

A fresh start in my career ๐Ÿ†•

After dedicating a year to frontend development throughout 2023, I took a break and, starting in April this year, embarked on a new career path as a Protocol Engineer. It was something I personally aspired to do, and, fortunately, my company supported my transition, making the onboarding process smooth and successful.

Since joining the protocol pool, Iโ€™ve been involved in various developments within the broad framework of the blockchain mainnet. This includes not only core-level development but also the creation of various tools to support the mainnet. My responsibilities also encompass working with cloud solutions for blockchain node operation and infrastructure for monitoring. Given the wide scope of engineering tasks, Iโ€™m actively contemplating how to carve out my unique edge in this field.

Some notes I jotted down in Notion (KO)

The first challenge I faced after transitioning roles was understanding the code in the current project. I primarily debugged consensus client code written in Go, but because the existing project was so vast, it took quite a while just to grasp the architecture. I set up the debugger, followed the call stack meticulously, and selected specific topics to document in Notion, noting down explanations and the flow of the code to become more familiar with it. Since I was encountering even the most fundamental concepts, such as โ€œHow is a block received and processed?โ€ at the implementation level for the first time, I often found myself lost in a vast sea of code. Personally, I tend to grasp things better when I organize them visually, whether in Notion or diagrams, so I remember copying code into Notion and analyzing it line by line.

Another challenging aspect has been cloud and infrastructure. My only prior experience was using AWS and GitHub Actions for web app deployment during my web development work last year, so many concepts felt entirely new. Since in-house development often relies heavily on cloud solutions, I needed to familiarize myself with them. While our Terraform and Ansible setups are already well-configured, I felt uncomfortable running scripts without fully understanding them. I had only a basic understanding of Docker and Kubernetes, having only heard about them, so I'm currently going through courses to get more comfortable with them.

Things Iโ€™m currently interested in ๐Ÿค”

Improving PoS consensus implementation

Ethereum Deposit Processing | From eth2book

Consensus algorithms are one of the key reasons I became interested in blockchain. Throughout last year, I tackled stakingโ€”the core of PoS blockchainsโ€”at a product level with OverNode. While developing this, I experienced firsthand some of the user-level challenges with Ethereum's consensus approach, which our team currently references. (In transitioning from PoW to PoS, Ethereum's client complexity increased, resulting in a staking process that is inconvenient and time-consuming.) Although we've significantly improved the staking process through UX/UI enhancements, I believe protocol-level improvements could lead to an even better user experience. Our team is actively researching and preparing upgrades in this area.

Monitoring systems and tools

Once mainnet operations begin, a monitoring system becomes essential for quickly assessing the network's current status. We already have some systems connected using a Prometheus + Grafana setup.

My experience in UI development has sparked a strong interest in tools that visualize blockchain data. It also seems that Ethereum developers have put a lot of thought into this area already.

Protocol Wiki
EPF Study Group Wiki

How Ethereum established its monitoring system

ethPandaOps is the DevOps team for Ethereum. In the video, Parithosh, a developer from ethPandaOps, introduces the testing and monitoring tools the team uses, and I found a few tools worth trying out myself. We've already conducted a pilot implementation of the lightweight beacon chain explorer, Dora, adapted to our chain's specs. Dora has proven helpful for debugging and sharing specific states with other team members, and weโ€™re exploring other tools as well.

Cloud & Infrastructure

To gain a comprehensive understanding of cloud technology, Iโ€™m preparing for the AWS Solution Architect Associate certification, which has abundant resources available. I ambitiously set a goal to finish the Udemy course by June, but with overlapping tasks, I couldnโ€™t make as much progress as planned. ๐Ÿ˜ญ My aim is to take the exam in August.

Since Kubernetes seems to be a primary component in the monitoring systems mentioned above, it's also on my list of topics to study.

Miscellaneous ๐Ÿ—‚๏ธ

  • I was selected as a second-round scholarship recipient at Nonce, and since March, Iโ€™ve been residing there. ๐Ÿคฉ
  • I recently completed The Missing Semester course with some colleagues. I was introduced to many CLI tools for the first time, and I'm now using them extensively at work. ๐Ÿ˜ฎ
  • I've been going swimming twice a week in the mornings. I've managed to get to the point where I can follow the butterfly stroke movements. I often skip sessions using tiredness as an excuse (I missed it this week too ๐Ÿ˜ญ), but when I push myself to go, I end up having fun. My goal for the latter half of the year is to reduce the number of absences.