I am a professional coder. I think after long time I have found a right place to work. I feel like I am in a team manged by a person who knows to code, who had coded in the past and may be codes even today. I feel like I work under a person who understands programmers brain, and protects us. Yet sometimes I feel like I open up a tea and bonda shop and quit coding.

Modern software is a complex system. We use Ruby in which we can accomplish a lot with few lines code, say compared to say C++ or Java, yet the systems I code have tens and thousands of lines. These days we believe that if we name our functions and variables right we can avoid comments altogether, and we still have a system where we need to deliver code in fixed time. These things though seen separately looks very innocent, but when combined breaks things.

Recently I had to code a feature, I was trying to read code and understand it, I was looking at deadline and I understood and gave a pull request, and I was confident. Turns out my understanding was wrong. Though variables were named and functions were named in a good way, when trying to read it in a given time it did not convey the entire information. I tapped into a API, but I should have tapped into deeper and low level API’s. I understood all these after a call.

One might ask why not discuss with others before coding a thing. It’s like this we coders do not disturb others unnecessarily. Thinking is costly and drains energy. If thought is disturbed, it takes time to bring it back in, it takes time to match it with trail of code you were following. So we don’t disturb others, and in that process we don’t want our trail of thought to be disturbed too.

Everything is unique when you take up a new issue in programming, it’s like you are writing new poetry, or imagining a new picture to draw every time. That too you are doing it to match the thought of your customer, who apparently places time restriction to finish it. Errors do happen. Fortunately the place where I work, its seems to be tolerated more, but believe me, compared to this place, I have worked in places enriched with politics, corporatism, and places filled with people who do not know a thing about coding and control us. Its hell compared to my present client.

But when deadline slips, no matter how tolerant your client is or not, it hurts. It’s then when I think of having a tea and bonda shop somewhere. The recipe for tea, bonda, samosa doesn’t change. Rather than a dozen comments for one pull request, maybe you will have one guy in a hundred complaining about your tea, bonda, samosa or vadai. If I own the shop, I am legally answerable to none. But ya I live in Tamilnadu, India where rowdies can rampage my shop, police could ask bribes and I won’t be able to say ‘no’, and must go to bed with some guilt after paying bribes. But at least every situation is not new, unique, that should be studied and understood and should be derived on tine estimate that none seems to get right in the history of programming.