All Articles

996 Work Schedule, Learning To Design, The Futile Attempt To Write Elegant Code

Finally, I’m able to find time to write this newsletter I promised a long time ago.

I was extremely busy in the past month. I assume you guys all know the epidemic 996 work schedule in the Chinese tech industry. For me, 996 is an understatement. I work longer than that. I’ve set my personal record of working for 28 days in a row without rest, starting from 9: 30 A.M. to later than 11 P.M. every single day. I was exhausted that there was not enough energy and willpower left on me to carry out my study plan. I’m afraid this will continue and I have to change my expectation of what I am able to achieve this year.

The temptation of finding alternatives

Needless to say, no one agrees that this kind of intense work is sustainable. First, I’m trading my health and leisure for money. Second, and the most important part, is that I couldn’t find enough time to study and grow my skills. (Of course, I could learn from my day to day work, but that’s not enough)

I’m thinking of working in solo or finding a remote dev job overseas. From the information I collected from some hiring websites, I found that a lot of these jobs require skills of designing, or backend, or native dev expertise. Among these listed skills, I think web design is the most rewarding and related skill to master as a frontend developer. So I’m thinking of learning web design. I’ll have to set aside some other more ambitious goals, such as learning math and TensorFlow. I don’t call it quitting, I call it strategic reorientation.

When technology disagreement becomes a vicious spat

A few days ago, as I was about to browse an online tech community (掘金), I found a hysterically angry comment under one of my posts. The commentator said that I think too much of myself, and I’m far from comparable to him in technology mastery level and education, and he was pissed off by insinuations from someone inferior to him.

The post is about for loops…(facepalm emoji). I was not really thinking about him when I wrote the content. He explained to me later that he said these words because I was “condescending and pedantic”. He wanted me to know how it feels to be looked down upon. I asked him the evidence for my being condescending and pedantic, he ignored my request and repeated the same narrative. I can reasonably infer that his anger came from two of my posts. One is about whether we should use esoteric skills (奇技淫巧) in our business code, the other is about why mocking the statement “a monad is just a monoid in the category of endofunctors” is a strategy of attacking a straw man. It seemed that I was targeting his articles. To be honest, these two articles were inspired by his articles, and I was not specifically targeting him.

It was obvious that he felt insulted to be challenged by a newbie like me. He thought I was trespassing by having the audacity to show disagreement with him.

Once again, I decided to only publish in English platforms from now on. Maybe people are different there.

The futile attempt to write elegant code

There was a fantastic article from the latest issue of JavaScript Weekly. Elegant Error Handling with the ‘Either’ Monad. It explained with great patience why we need Either and what problems it solves. Powerful and elegant this concept is, it will be ignored by most developers nonetheless. You drop the M word and I won’t listen, I’ll continue with what’s already familiar to me.

I said this because of my recent unsuccessful attempt to write reasonably balanced and lightweight functional code in my company project. I was not trying to use Maybe to get rid of the ugly defensive code, or Either to handle errors, I was simply attempting to use pipeline functional composition and some utility functions copied from Ramda to help me writing declarative code. To me, declarative code fits into my thinking model and improves my productivity significantly. I was discouraged to do so by my colleagues, the reason being that no one understands my code. If there were bugs in my code and someone else has to fix them for me, he or she will have a hard time understanding my code.

To some extent, I can accept this reasoning. However, it’s still sad that we never get to try these technologies simply because we don’t have time to learn them. I’m not saying with 100% certainty that functional techniques are superior, I’m just complaining that it’s not fair that these treasures are rejected based on trivial reasons.

Exercise is an elixir for most of my mental problems

If you don’t have a habit of exercise regularly, I really strongly recommend you to do so. For me, exercise is a great way to think about things and to feel refreshed. I don’t go to gyms anymore (Obviously, I don’t have time). I row every other morning. I do intermittent sprint now and then. I walk in the woods and climb a small hill in my neighborhood. I do a lot of bodyweight exercises, like pushups, burpees, high heels, and jumping ropes. I have kettle bells and various other small pieces of equipment.

If you don’t know where to start, try following coachbriannunez on Instagram. He’s published tons of whimsical yet practical bodyweight workout videos.