About

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

Namaste. Be Good.

Projects
/now
Code Snippets
Social
Travel

ADVERTISEMENT

DigitalOcean Affiliate Banner

Three two

I look forward to writing this post every year. Spending time thinking about the year that was, two days before the birthday and writing down my thoughts.

Not everything is great all the time. And this held true for me this year. Not everything was great, but the bad outweighed the good and I hope that trend continues.

I had mentioned this in my birthday post last year and I happy that the trend continued. The good did outweigh the bad.

I spent two weeks this year being very sad about losing a good friend. Sunil you will be missed.

Work
If I had to give this year a theme, it would be this.

“The year of learning”.

I spent a major part of this year learning React, React Native, getting better at writing API using PHP and Rails, learning how animations worked in javascript, getting better at making apps run on devices with low specs and getting better at project communication.

I also did end up crying due to work this year. Not because there was too much stress, but because I thought after so many years I would be able to figure code out easily and when I was unable to figure out what was causing the app to not work even after a month, I started to question everything.

Made me realise the importance of patience when learning something new.

I have become much better at React and React Native and will be shipping out a few apps early next year.

Tools I spent the most time with this year:
React, React Native, Node, Rails, Angular, Laravel, Heroku, MySQL and Redis.

Personal
Be in touch with close friends has always been a goal I have tried to maintain. This year though was not that good for this goal. As everyone got busy with their work/family life, I had trouble getting hold of most of them 🙁

Getting to spend time with my niece is something I really thankful for. Its been a great to see her grow up, attend dance lessons, go to school, make friends.

Fitness was a priority this year, and I am happy that I got to exercise regularly. Still not as fit as I would like to be, but I am getting there.

Travel
I spent a month coworking in Bali this year, and that was a highlight. I had wanted to take such a trip since long, and the experience was great.

Travelling alone around Malaysia was also a highlight this year. As I get more comfortable walking up to strangers and talking to them, solo trips have slowly started to be not as dull as they were seven years ago.

Few others places I visited this year:
Goa(twice)
Bali
Nasik
Bangalore
Kabini Wildlife Sanctuary
Malaysia
Chikmagalur
Assam
Meghalaya

I spent the first ten days of December travelling around Assam and Meghalaya with a few friends, and it was great. Road trips with close friends are the best.

Next Year

Goals for 2018:
Continue learning new languages/tools.
Move/stay in another country for some time.
Exercise and swim more often.
Write at least eight blog posts every month.
Launch and maintain one web app and one mobile app.
Travel to at least four new countries.
Make time to date someone seriously(this did not workout well this year)
Spend more time with family and friends.

Hope you all have a great 2018.

::

npm

If you work with javascript frameworks, it's hard to get by these days without using npm. Package management and resolving dependencies is hard, and npm does make it easy.

npm though does not always work as expected and when it does not, you start to question why so many people rely on it.

Last night, I wanted to add a new component to the react native project I am working on.
https://github.com/Andr3wHur5t/react-native-keyboard-spacer

A new component which was just one file, what could wrong? A lot of things went wrong. After I ran the command

npm install --save react-native-keyboard-spacer

the results told me it had installed four packages and removed 345 packages. Uh! What! That does not sound right. I refreshed the emulator, and my fear did come true. That one command had uninstalled all dependencies which did not meet the install criteria. 😣

The next five hours were spent fixing dependencies issues and errors. Nativebase a component I relied on was set to "native-base": “^2.2.0" in package.json, which meant that it had installed the latest version following the npm install command. Thanks to GitHub, the solution was to remove ^ and run "npm update". React-navigation was set to ^1.0.0-beta.11, which meant that it had updated to the latest version, breaking my apps navigation.

Days like these, I wish we relied less on package management solutions and were still downloading individual files/folders to make it part of the project.

P.S: Remember to commit your code often.

::

Remote team

There is a lot of talk about remote teams being the future of how work will be done. I think it is too. I have been working remotely for more than seven years now, and it has been one of the best life decisions.

I did lose some confidence in a remote team though last week. When you don’t know where everyone in the team is, it is tough to plan/launch a product. Remote team only works if everyone in the group is good at communicating their work schedule.

If you are part of a remote team/ teams, please ensure that you keep your team updated with your work schedule and any changes to it.

::

Competition

Software as a service is an extremely competitive market. While talking to a friend the other day, he asked me where I spend most of my time, and when I told him I work on a project management system, he was surprised that I chose to work in a market which has so much competition.

Competition is good though, but only if you don’t spend a lot of time worrying about the competitors. You have got to believe in the product you are working on and continue to do what’s best for your product, and it’s customer. Keep improving your product based on customer feedback and keep making progress every week.

Competition validates the market, and it’s good to be part of an exchange pre-validated by a lot of companies.

::

Night-time emergencies

Night-time emergencies

Image Courtesy The night team

Thanks Pingdom and Scoutapp for ensuring that I wake up during night time emergencies.

::

Product Roadmap

Keep it private or make it public?

I have always leaned towards keeping the product roadmap private.

Why keep it private?
As you continue to work on a product, feedback from customers should shape how you improve your product. A predefined list of features you came up with along with timeline on when those features will be part of the product should not be your guide on how you evolve your product.

That feature list you created five months ago could be missing items which are of more priority now.

It is important though to have a top-level view of features you want to see be part of the product when you initially set out to build the product. Over time you will end up removing features from the list which no longer seem important now.

A product roadmap which is public but always updated. That’s a compromise I am ok with.

::

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.

::

Sleep

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.

::