Towards the end of May 2020 I decided to start over, and unfollowed everyone on twitter.
git reset --hard <initial commit hash> for twitter, and re-writing all the code once again.
This idea (like most good ones) wasn’t mine. I had a faint recollection of @anildash doing this couple of years ago.
I unfollowed everybody on Twitter, and it’s very, very calm now. Nothing personal, I just figured it’s nice to reset a bit. Maybe later I’ll ask for suggestions of who to follow. (Dudes, don’t suggest yourself.)— Anil Dash (@anildash) July 4, 2018
I used to spend a great deal of time on this codebase(twitter). Back in the pre-COVID era, when we used to work out of offices, I’d rarely open twitter during the day, given that some or the other person would be staring at my screen. With COVID-19 that was no longer the case, and the duration of my sessions on twitter soared.
Time spent on twitter depends on the volume of content available. This is usually a factor of the number of accounts you follow, and the average number of tweets each account usually posts. At the time I was considering the reset, I was following 883 accounts. LOT of content!
Lately my experience interacting with twitter was largely unpleasant. The only options seem to be - Refactor or Rewrite. I often found myself consuming content that doesn’t resonate with me. Perhaps a past version of me preferred that content. Perhaps he didn’t know better.
Why not refactor?
While debugging and analyzing the root cause is always an option, the fundamental design is in question here. I’m wiser (well, less stupid) than I was 8 years ago, when I created my account. Simply put the code quality is going to be better.
Usually the major concern when doing a complete overhaul is - Time. The new codebase tends to takes substantially more time that originally anticipated. Something I learned the hard way - several times! Well, given that I end up scrolling through my timeline for an obscenely large amount of time anyway, not much to lose 🙃
Also the overall size & complexity of this particular codebase isn’t particularly daunting. Putting aside the code metaphor for a minute, humans & human interactions are far more complex than any codebase I’ve come across (yet). There are people I followed as a naive kid, as a fan boy, as an obligation, out of courtesy, or a combination of the above.
There are people in my list, whom I haven’t interacted in ages, people I’ve long forgotten, people whose values I no longer share. Holding onto remnants of relations that once were, does no good to anyone. Yet another thing I learned the hard way. Sigh.
The above goes for all accounts of organizations as well. Groups I no longer identify with, Bots RTing content I no longer care about, random blasts of suspicious news and whatnot.
What about lost connections?
Given how polarizing twitter can be, it’s highly likely that I’ll find my way back to many of the same accounts I currently interact with. Having said that, I believe it’s important to question your beliefs every so often, to re-evaluate yourself, and re-build yourself. While Darwinism emphasizes on the need for change to survive - I believe drastic changes are necessary in order to thrive.
Given that Change is inevitable - one can either proactively forge their path, or accept the path chosen by circumstances. I have trust issues, and expecting The Universe to act in my best interest, usually ends in disappointment & despair. The Universe doesn’t play fair. Best make your move before it does.
Originally posted as a tweetstorm
Taking a page from @anildash 's book, I'll be unfollowing everyone this weekend, and start over.— Rajat Goyal (@rajat404) May 22, 2020
Basically `git reset --hard <initial commit hash>`, and re-writing all the code once again.