Writing library is not cool at all
Tags: wecoded
Published: 2021-06-03 00:54:10

I hadn't built a lot of libraries, only a few. But somehow, a fellow likes to call me "library queen". If you ask me how it feels? I would say it's all sour and tears, but I don't regret what I did. After all, it looks like the glorious honour of a developer.

Several years ago, I built a library under the direction of the tech lead when my teammate and I constantly suffered from our PM and their co-working teams changing their mind about formatting. With the help of a kind PM head, we quickly set up a norm and slowly expanded to the whole company. Our life became much better and less interrupted. I cannot be more proud - I saved a lot of people's life.

After that, I helped another similar library created by a fellow to achieve the same thing. Life couldn't be better at that time. My fascination with abstraction and API design got satisfied and admitted since I become a full-time developer.
But, there is always a "but" in a story. Things changed soon. 

My fellow stopped maintaining the library and focused on pursuing his management path, leaving me alone in the maintenance role. In the meantime, instead of annoying PM, I started to receive questions, requests from my developer co-workers.

From hanging over online chats to reply to questions about usage, I realised my weaknesses in the documentation and its importance the first time. No engineers love to write documents since the first day🤷🏻‍♀️.

Inspired by my co-worker Gao Wei, I started to refactor the library documents actively and contribute to other team documents to enhance intentional practice as my English writing seriously sucks. 

The documenting effort rewarded me with fewer interruptions over time and more fluent English expressions both in writing and speaking😂.

On the other hand, I get upset and disappointed in the community gradually. 

When I joined the company, I worked with a fellow enthusiastic in open-source. When he built something new, he uses various open-source projects that I never heard of. When he found a bug in the project or some enhancements required, he forked and contributed without hesitation. I was entirely amazed by his behaviour and believe, "That is the spirit of the developers in a tech company!" From then, I have rarely witnessed such spirit in so many developers from different countries.

When there was a format change raised from a feature in charge by an excellent and talented fellow, he brought me to the channel without asking me in advance, telling PM and PJ I am the one who needs to make the change. And they started to chase me regardless of my words: "Please kindly submit a merge request, as I am busy on my features."
When a hard to reproduce bug found in a critical feature 1 hour before it released, the fellow hit my table, frustrated and almost yelled at me, why I did not merge his merge request immediately? And I was carefully modifying his change to avoid breaking something else. 

After patient explanations, he finally calmed down and stopped wasting time to let me finish the rest. This was not the happy ending yet. I published a patch version and back to wrapping up my close to my deadline job. He came over again, stood behind and educate me that I should publish a minor version instead. "OK." What should I say? I put every energy of my body to press down my anger.

These are my dear teammates that I treated like family and would like to contribute with my spare time to reduce their frustrations. I realised that I became the housewife, brushing the disgusting toilets nobody like to do without complaining. Everyone appreciated first. Soon, the appreciation fades away and take for granted. 
Not long after that, I handed over to someone in charge of features more relying on the libraries, which I should have let my baby go long ago.

The memories are still so vivid after years. Despite the unhappiness, I do learn a lot from my achievements and mistakes from this interesting experience. I do not regret doing these, but I sincerely hope one day I could see more open-source spirit from the community.