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.