pseudoyu

pseudoyu

Blockchain | Programming | Photography | Boyi
github
twitter
telegram
mastodon
bilibili
jike

Weekly Report #02 - Work, Anxiety, and Growth

Preface#

raspberry_pi

It has been a year since I started working in Beijing since my internship.

I have always been someone who attaches great importance to certain milestones. At these points, I often reflect on my thoughts, experiences, and anxieties over the past year. I often wonder, what did the nervous and expectant version of myself from a year ago hope to achieve in the following year?

So, in this article, I will talk about work, anxiety, and growth.

About Work#

Onboarding#

I wasn't someone who took job hunting very seriously. Perhaps it was because there weren't many blockchain companies to choose from, even in Beijing. During my quarantine in a hotel in Shenzhen after returning from Hong Kong, I only attended about five or six interviews. However, some of them left a deep impression on me.

One company had an unconventional process. In the first round, I shared my screen with an American interviewer and spent two hours writing, testing, and deploying an ERC20 Token smart contract. The second round involved writing a system-level scheduled task using a Shell script. Another company asked many questions about optimizing the underlying architecture of the EVM and how to avoid infinite loops in contracts.

The company I ultimately chose had two technical leaders. One asked me some questions about the Go programming language, while the other asked many questions about Hyperledger Fabric and Ethereum (I later found out that he used to work for the IBM Fabric team). We also discussed many topics related to future development directions. The interview lasted for about one and a half hours, followed by a half-hour algorithm written test.

I actually enjoyed and cherished the opportunity to learn engineering-related knowledge that I had never encountered before during interviews. It also allowed me to quickly learn and gain some direction.

After arriving in Beijing, I had an HR interview and officially started my first technical internship.

Internship#

As a newcomer to the technical field, I felt more anxious than excited at the beginning. I didn't have much confidence in transitioning from theoretical learning in school to practical engineering in a company. I had only learned Go for a few months to prepare for interviews, and I had never participated in the development of a production application.

As a CRUD Boy who had just entered the industry, I started by familiarizing myself with writing business interfaces under the guidance of my team leader, Cheng Ge. It was mainly the development of a BaaS platform. I spent two weeks writing seven interfaces, testing and optimizing complex SQL queries. I also experienced the process of using Git for code submission, code reviews, and merging. It was a fun process. My code was running in a production project, and the knowledge I had learned could be quickly applied to work, providing real-time feedback. It was a team effort to move forward towards a common goal and milestones.

After completing the main development work for this project, I wanted to do some development related to blockchain. So I applied to participate in a self-developed chain smart contract execution engine performance optimization project in another team. However, since I was not familiar with Java, I could only study and research the theory while attempting to write some tests. I documented my findings in a blog post during that time, "Ethereum MPT (Merkle Patricia Tries) Explained." It was during this period that I realized how quickly I could apply the dry algorithm principles I learned while practicing LeetCode.

Perhaps because it was an internship, the work pace was not very fast, and I had a lot of time to explore areas or technologies that interested me. I wrote the following blog posts to record my learnings:

  1. Introduction and Architecture of Blockchain as a Service (BaaS) Platform
  2. Distributed Systems and Blockchain Consensus Mechanisms
  3. Principles and Practices of Cross-Chain Technology
  4. BitXHub Cross-Chain Plugin (Fabric) Source Code Analysis

Interestingly, because there was no content publishing platform within the company, I often contributed to a blockchain technology blog platform run by our friendly competitors and received feedback from their technical core team. I benefited a lot from the cross-chain area and felt the openness of the technology.

At this time, I hadn't decided whether to stay or not and had some contact with other companies I was interested in. However, I then joined another cross-chain project with another leader, Tao Ge. As I interacted with him more and more, I saw his enthusiasm and the infinite possibilities of a technical person. We both loved exploring various new tools and technologies and often shared with each other. He knew that I often worried about my lack of engineering experience and skills, so he let me participate in various project practices. Sometimes, we even did Pair Programming on weekends.

He was a core developer of Hyperledger Cello and encouraged me to get involved in open source. I still remember a sentence he said, which had a deep impact on me. He said that as a technical person, besides completing work tasks, we always need to have a few labels in our technical career, such as "core contributor to a certain open-source project." I also need to constantly strive to find my own labels. This had a profound influence on me, and in my subsequent work and learning, I started to pay attention to the open-source community and gradually participate in it.

The presence of an exceptional leader played a significant role in influencing my decision, so I didn't hesitate much and decided to stay.

Work#

I then participated in my first complete project, which was a cross-chain project that lasted for most of my first year of work.

Perhaps due to my previous learning and understanding of cross-chain technology, I inexplicably became the project leader when I transitioned from an intern to a full-time employee. I participated in technical discussions, initial system design, development and transformation of the underlying chain, standardization of the development process, use of DevOps environments, presentation and demonstration, and documentation and communication related to project delivery. This brought me pressure and anxiety that I had never anticipated at the beginning of my work, but it also brought rapid growth.

Meetings during the day would take up most of the time, and I could only focus on writing a few lines of code in the evening. Staying up late or even pulling all-nighters became the norm in order to meet project milestones. Some technical challenges could take several days to overcome, while also juggling the progress of other development tasks. Alongside this, there was a lot of emotional suppression and a loss of control over my daily life.

However, when my team and I finally delivered the project, I experienced a sense of joy and accomplishment that I had never felt before. This meant a lot to me, especially considering my journey from studying English in undergraduate school to switching to computer science during my study abroad. I often faced setbacks during my studies, and there were times when I questioned whether I could continue on this path. Although this project had its ups and downs, we ultimately succeeded, which gave me great confidence.

Interactions#

It is worth mentioning the way people interacted with each other after starting work. I seemed to have retained a student-like demeanor when communicating with leaders, colleagues, and project partners. Whether it was my team members taking on more responsibilities when my personal life went through some changes in May, a client representative of a recently completed project spending three to four hours on the phone comforting me, or the project leader of an ongoing project helping me apply for a business trip to ease my mood. Work was not as dull as those anxiety-inducing tweets described. I always believed that relationships and interactions are mutual, and treating others sincerely can also earn trust and genuine connections.

Achievements, Challenges, and Changes#

dev_guide

A year has passed, and the second project is about to end. I have learned a lot in this year and wanted to leave something for the department in my own way. So I decided to write a technical guide. In addition to development standards, it also includes my learning records in the blockchain field over the years and some practical experiences I gained from work. These were what I hoped to learn when I first started this job, and I also wanted to share them with new team members.

dev_guide_content

Although only a year has passed since I started working, there is still much room for improvement and growth in terms of technology and experience. However, I feel somewhat lost in terms of direction. I want to delve into the underlying technology of blockchain, polish the company's or personal products, and participate more in open-source development. But in the midst of work, I often struggle to meet project deadlines, making it difficult to find dedicated time for learning and research. This is a challenge I need to overcome and adjust in my future career.

Fortunately, another leader, Kai Ge, pays great attention to open source and the underlying technology. Our occasional exchanges have also pointed me in some directions. There is still much to learn and improve. The road of technology is long and arduous.

Conclusion#

The above is a summary of my work at this particular point in time. I am gradually enjoying the process of organizing and recording my life, work, and state of mind in this way. I hope that when I look back on this year in the next year, I will see more changes and growth in myself. Let's encourage each other.

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.