Hi, I am pretty sure I have thought about writing about overthinking a million times. And yes, after all those thinking, I ended up with this as my first paragraph. What a shame.

Overthinking simply means thinking about something for too much for too long. It’s a mental state where someone takes everything into account, even for the simplest of things.

Game! After deciding on how I would write this, I simply decided to list the pros and cons of over thinking that I have personally experienced, mostly from my profession and some from other real life experiences.


First, I think the best benefit of overthinking is being able to come up with the best decision I am capable of. Perhaps not the right one, definitely not the wrong one, but it is the best one for me. It means it is the best decision applicable for all the possible scenarios that my brain was able to come up with, given from all the variables on that set amount of time provided. For example, from my first blog…

Should I read the same topic from other bloggers?
Should I criticise how they format their content?
How do they form their sentences?
How do they keep the reader reading?
Should I put images?

…and a thousand more thoughts that would lead to a penultimate resolution for the course of action. All of the other pros listed below actually contribute in order to make the best decision.

Second, being able to prepare to what’s coming, the near future, the far future, and the after-life. For example, if I am going to write this blog at 4am,

Can I still finish the freelance job that I am doing?
If I can’t, will they still hire me for the next project?
If I won’t be hired, will I be able to find a new project?
And if I did, am I going to go full-time? For how long? Where?
What if I already have a family, should I switch to an office-style job then?
Will I be able to contribute to humanity before I die?

…and thousands more, all in preparation and accounting for the future events to come.

Third, catching that one-damn-scenario that can ruin everything. Aha! You thought you already have the best decision? Why don’t you think for 5 more seconds? And there it is! That one damn scenario that can ruin everything and it almost slipped away, unnoticed. This one is very common in project planning, designing databases, and programming. For example, when I am refactoring bunches of code, I mostly separate them into functions. My initial thinking then would be:

What parameters do I put in?
Is it going to be asynchronous?
Do I support multiple form of arguments?
Do I put it in the helper file?
…after 5 more seconds…
Wait! This library can do all of these in two lines.

Fourth, since I am an introvert, it feels good being able to create my own world, talk to myself, laugh with myself, and debate with myself. I enjoy it every time when someone thinks he is talking to me but I am actually talking to myself. I will just randomly smile, smirk, frown, look confused, stare blankly, and the one I’m talking to will think that it is because of what he said. Actually, it is, but not entirely. It is because of the million things that spawned when he said one simple thing that caught my attention. And I really love this capability. Haha! For example,

Random bro: “I want to go to a beach”
Do I go with him?
Do I invite my girlfriend?
Will I be able to look at pretty girls if she’s there? haha
Do I bring my camera?
I don’t have slippers anymore.
My rash guard does not fit me anymore. I’m fat. F*ck! Sad.
How about this weekend?
Somewhere south? an island?
… …


First, overthinking takes a lot of time. I planned this blog as soon as I finish my website. I finished it last Dec 30, but since I can’t really decide, I just kept saying “next time”. Whenever I talk to my boss. I literally take a full minute of silence before replying. Although he knows that I am thinking deep inside my world, it is still not appropriate. Another real-life example would be on technical meetings. Everyone will think that I am not participating but in actuality I’m just not done thinking all the possibilities of the first topic of the meeting.

Second, it is so hard to stop, especially when I am about to sleep. There are nights where I have to force myself to focus on something just to put a break on the train of thought.

Third, it’s mentally exhausting. You will feel very tired that you will always want to lie down, prevent your body from moving, eat a lot.

Fourth, looking like I am rushing things but in reality, I already thought about it a hundred times for an ample amount of time. And this is the reason for my decisiveness. For example, when I resigned on my job, of course I overthought about it. I simulated all the things that I think they will say, everything that I think can happen. When I had the talk with my boss, he was so baffled on why I was so decisive and thought that I rushed my decision. I had to tell him everything. How long I have been thinking about it. My next plans. All of it just to prove my decision.

Fifth, the fact that I can not stop simulating the worst scenario. I just can’t help to feel all the sadness and to worry about the whole thing. It can be the scene where I will be left alone, or ignored by everyone, laughed at by everyone, for to fail and regret the whole decision. But it’s thanks to my self-confidence that most of the time, I am able to shrug all of this off.


I do not overthink every single thing and even though I overthink about something, the decision I come up is not always the best. Remember, that one-damn-scenario can still be lurking unnoticed. There are a lot more pros and cons but I do not want this to be very long.

That’s all. Thanks for reading!

Bonus! Here are some of the things that go through my mind when I code:

If I were a new graduate, will I be able to understand this code easily?
After 5 years, will I still be able to understand this code easily?
Am I going to be proud of this code?
Did I catch all the cases?
Is this testable?
Are all the constant values properly declared?
Can it run on all environments?
When humans read my code, is it easy? or do they have to scroll up and down?
Is my function name sufficient? 
Does the code look cluttered?
Can I differentiate the different type of functions easily?
Is this the right term for this thing?
Is it fast on few data? how about plenty of data?
Is it the best that I can write?
If Emperor Akihito were to review this, is he going to approve?

Thanks to my grammar nazi friends for helping me on my first blog. :)