New literature blog

I have created a separate blog on literature: મન ની મોજ (joy of mind). I will share some good old poems and short stories that I find really interesting and intuitive. Although contents on this blog will be written in my native language Gujarati, you may find some English and Hindi stories/poems as well. Hope […]

Understanding variance in programming languages

In a statically typed programming language, variance defines the rules for assignment compatibility in subtyping between more complex types or expressions. I’m not going into the details of subtyping but consider an example where the type Car is derived from type Vehicle, then Car should be substitutable wherever Vehicle is used. The variance defines how […]

Refactoring utility classes with Kotlin : Shared Preferences

If you were developing Android apps in Java until now and haven’t started using Kotlin in production yet, you may have some sort of utility classes for many things like File I/O, Connectivity, Cache, Shared Preferences etc. Today, I am going to write only about Shared Prefs and how we can use Kotlin to refactor our […]

Carrot & Stick: that doesn’t work on Programmers!

Carrot & Stick – by definition “a policy of offering a combination of rewards and punishment to induce behavior”, perhaps the oldest methodology for motivation in organisations doesn’t work for tech companies. Any creative craftsmanship just can’t follow this kind of rigid methodology to motivate their employees. Still, we can see many software companies following […]

Random thoughts on modern programming languages and Go

When I started my career as a developer, it was about last year of my graduation. At that time, I was like a Java fanboy. I fell in love with Java while studying it. Honestly, It felt very natural as a programming language. (and don’t get me wrong – I still really like Java) When […]