I'm Sunil Shenoy: a programmer, UI designer and a movie buff. I currently live in Mumbai,India.

Namaste. Be Good.

Code Snippets


DigitalOcean Affiliate Banner

SaaS is the way forward

Software as a Service(SaaS) got a lot of attention in the last 5-6 years, but fewer people seem to talk about it now.

I recently went through the list of tools I relied on and was surprised to see that I pay for eight software services every month. These services save me a lot of time and headache.

Cloudinary for example, helps me resize images on the fly without having to worry about setting up a server, installing ImageMagick or similar software, writing a script to interact with the resize software, ensure that image resizing is always available. Now I can point cloudinary to the image URL and know that it will handle the entire image resize process.

I see myself relying on more SaaS tools going forward.



A friend used to like this quote “I will sleep when I ‘m dead.”

As a society, we seem to celebrate people who sleep less and spend more time at work. People who follow this pattern seemed to get more recognition and promoted within the organisation.

I have always found the opposite to be true. The days I sleep for less than 6 hours, I don’t feel like working the next day. I am not able to concentrate on the task at hand and regularly feel like taking a nap. The days I sleep for at least 8 hours, I am the most productive. Having noticed this pattern, I now ensure that I sleep for at least 8 hours every day.

Considering this, I feel like we need to talk more about the benefits of sleep rather than talk of sleeping less.


Where do you get your news update from?

There are some many news outlets now. Social media apps, news channels, news apps and blogs.

It's tough to keep up with all these news outlets. The fear of missing out is real.

That’s why I have continued to rely on RSS to get all my news updates.

Which RSS reader do I use? NewsBlur.

Every news channel, every blog that I would like to catch up on is part of my newsblur subscription.

I jump into Newsblur every weekend and read as much as possible. If a feed has lot of content, I read the top 5 - 10 articles and mark the feed as read. I leave Newsblur with all feeds marked as read.


Reasons to not use our framework

Why not Expo?

More frameworks need to have a page like this.

Its good to know what your framework does not do compared to other popular alternatives.


Dealing with negative feedback

Its difficult not be angry about negative feedback sent about software that you helped build.

I read through the long list of feedback the customer had shared with us and how line by line she went over parts of the software that she did not like. I cringed after reading every line.

I did agree with most of her feedback. She wanted the software to do the best it could to help her with the task at hand, and in most cases, we were not doing a good job.

How could I have not thought about the page design the way she did? Why did I not add the link there or catch that exception she spoke about? I spent the next hour asking myself these questions and being disappointed about how we went about creating the software.

Software development is hard. It’s even more difficult when you have a small team, with everyone wearing multiple hats. I handle design, frontend/backend development, manage servers, answer supports tickets every day, and I love it. Being involved in every part of the development/support process has been a great learning experience, and I would not have it any other way.

Is this why the software was not doing it’s best? Was everyone in team wearing multiple hats and not giving enough thought to each screen and each feature we work? I took a break from blaming myself and went out for lunch.

Software is also ever evolving. If you think you did your best when coming up with the feature and the design, that's what was in your control then. Not everyone looks at design and feature use case the same way.

Acting on feedback is essential. Read/listen to every feedback someone sends in about your software. Share it with the team. Go back to the drawing board and look at how you can improve the page/feature.


The best way to learn something

Side projects.

It’s important to have side projects, especially if you are trying to learn that new programming language / framework / software that you just discovered.

Reading about it is step one. But the only way to understand and get better at it is to use it in your current project or in a new side project. I was reminded of this today.



I recently took an English test and was pleasantly surprised with my total score of the test.


Of the various section, they scored me for I scored the least in grammar.

I have had this conversation with a few close friends. Everyone who has read this blog has told me that there are a lot of grammar mistakes in all my blog posts.

I came across Grammarly last week and was pleasantly surprised with how well they have integrated the software with browsers and Mac OS.

Yesterday I upgraded from free subscription to premium. I never thought I would end up paying for a software which helps me improve my grammar skills, but this has been an area I want to upgrade.


Change is the only constant

I have read this quote a lot of times over the last few years.

It is so important to come to terms with change being a constant in your life. Coming to terms with this fact has helped me remain confident with the ever-changing life situation.

Wanting to hold on to the best things from past, experience/people/ way life was, is something we all want to do. Why does something/someone change when you don't want it to? After all, you did not change(or you think you did not change), so why did the person/situation on the other end?

I have been wanting to write about this since over a month now, after having had this conversation with a close friend.


React Native

At the beginning of this year when I had to choose a tool to develop cross-platform mobile apps, React native was my choice.

Most cross-platform tools available right now work as a wrapper around the WebView component available on iOS and Android. Having created couple of apps in Ionic before, when I had to make a choice, I wanted to choose a tool which complied to the native language.

Between Titanium and React Native, I chose React Native.

Having worked with React Native the last five months, my biggest complaint has to be something Facebook has been known to do. Move fast and break things.

React native has been improving quite fast. The plugin developers, on the other hand, are not able to keep the same pace. Most plugins developed don't work on the latest version of React native.

I spent the last few weeks wanting to add certain features to the app I am working on. Having found the plugin online, when I tried to integrate the plugin, turned out the author has not worked on the plugin since 0.40.

Downgrading to 0.40 broke a few other components which had upgraded to use apis in the recent version. 🙁

After this experience, I am a bit hesitant to recommend react native to anyone. If you are a small team, I would not recommend using Ionic or Xamarin until React native reaches version 1.0.


Macbook Pro

I finally bought the new MacBook Pro!

After apple's update to Macbook last year, I have wanted to upgrade from my MacBook Air to Pro.

This update from Apple met with a lot of criticism by fans and reviewers. Only a few had good things to say about the laptop. A few even exchanged this model for an older model. Marco Arment went back to using 2015 MacBook Pro.

So why buy this model? I needed an upgrade from my MacBook Air. Having switched to app development, Air has not been able to keep up with the demands of Xcode and Android studio. Apps took as long as 25 mins to compile.

I am yet to open the laptop and give it a try. Will write about my experience soon.