[I made it to 30 today. If you’re above 30, give me your best advice to 40.] (https://twitter.com/Suhail/status/1030224268473163776)
So many good pieces of advice.
[I made it to 30 today. If you’re above 30, give me your best advice to 40.] (https://twitter.com/Suhail/status/1030224268473163776)
So many good pieces of advice.
Have been thinking about this a lot today. When interviewing someone for a job, how do you choose the right candidate considering that.
Everyone has experience in the framework / language you use.
A few candidates have the same years of experience.
You agree that given enough time people get better at writing code, so current code is not a huge factor in deciding the final candidate.
Leaving this here, so that I can come back to it someday
Been working with flexbox more and more these days and am impressed how easy it makes it to build a responsive layout.
Took me a week to migrate all posts over from Kirby to micro.blog for my personal blog. Time to update the DNS this weekend and hopefully get back to writing more.
Slowing moving all old blog posts from Kirby CMS to micro.blog. Having an easy to understand and use API helped a lot.
I recently returned from my second trip to Singapore. I avoid visiting the same international destination, except for when it’s Bali, Bali could easily be my goto place every year.
I have been thinking about my first visit to Singapore and how it was very different from this visit. Travelling alone vs travelling to the same destination with friends.
My first visit to Singapore was spent mainly in the city centre, walking around various malls and a day spent at Sentosa Island. 3-4 days later I was done exploring most parts of the city as suggested by Google. Sure, I missed a few lanes, but being on a budget, I did not want to see places that were far away from the hotel. I took 0 taxi rides the last time, compared to 2 taxi rides each day, this time around. I also did not stop by at little India and Chinatown.
Travelling with friends this time though I think I covered a lot more places and have a lot more memories compared to my first visit. We spent more time in one place, as we went around the city, yet I managed to visit every destination that was on our list. Hong Kong Soya Sauce Chicken Rice and Noodle - Wikipedia has to be the place we kept going back to till we managed to grab a meal.
Trips with friends are the best kind of trips. Having awesome friends to travel is something I am thankful for 🤗
Wanting to create and maintain an open source project has been on my list for a long time. The plans for the project were always grand. A project like textmate or rails, since I have been following these projects for a long time. But thinking of getting to that scale always stopped me from starting. Strange how that works.
Starting small with how I progress problems has been an exciting change for me.
I have been working on an image resize script and decided to try a serverless approach to create an API which would help with the resize and return the thumbnail URL after the image was resized.
My previous approach to how I accomplished this was to run a server which had ImageMagick installed and use PHP to interact with ImageMagick and perform the resize operation. The previous approach was not without problems. Often user’s would upload a specific image which could cause ImageMagick to crash and would fill up the entire disk space with temp images. Pixel flood attack is also an issue I came across.
I have been reading about Lambda since Amazon announced it and after trying Lambda, I was sure serverless approach to solving image resize was the way to go forward. After trying Lambda and Google Cloud functions, I liked how easy the Google Cloud UI was to create and build cloud functions.
Presenting my first open source project: image-resize-googlecloud
If you come across an issue or can think of a better way to handle the resize operation, do send a pull request. Also, I am new to node.js.🤗
Given a choice between spending more time on the User Interface(UI) vs the User Experience(UX) of the app, I would choose UX.
In the last two years, I have started to enjoy apps which might not have the best UI but get the UX right. I always praised good UI before, even if it meant having to go through a few extra steps within the app to perform the task at hand.
I have tried most of the available CI options to create an Android build for my mobile apps. Other than buddybuild, everyone else made me configure my steps before creating the .apk file. With buddybuild, it was easy. I pointed to my Github repo, and it was able to do its magic and return the .apk file. UX done right. 💯
I had a similar experience with LogDNA last week. I have given most of the log management software a try, but no one else was as easy to setup as LogDNA. After setting up the project, they had a 5 line instruction on commands I needed to copy paste and voila! Server logs started pouring into the dashboard. 💯
I wish more companies spent time on UX discussions when creating software. I know I am going to make it a priority going forward.
I have had my grammar corrected quite a lot in the last two years. Every time I go travelling with a Mayur outside India, we talk about how I need to improve my grammar. It has been getting better, but not quite there yet.
English is a second language in India. Although most schools in metro cities across India will advise their students to talk to each other in English, most students prefer the regional language. I don’t have any complaints about students doing this. I like the regional language not losing its place as part of the culture of that particular city.
So what do we Indian’s do when we can’t find a word to describe a particular situation? We think of the closest word which describes the situation in the regional language and match it with the word in english.
While looking for a place to have breakfast with a friend yesterday, we saw this girl reading her kindle in the coffee shop. She was kind enough to give us her table. After she moved to a rocking chair, my friend told her that it’s nice that the coffee shop had such chairs for people who are alone. She was quick to correct us “it is indeed nice of them to keep such chairs for people who are by themselves.”
The words she picked. Alone vs by your self, made me think how important it is for me to continue working on improving my grammar.
Solo developers building a product is not such a good idea I have come to realise. Most developers I talk to are more excited about the tech than the product itself.
I was recently talking to a friend who mentioned that he wanted to build a product using “React/Laravel/GraphQL”. He spent more than 30 mins talking about how he was excited about the tech stack in place and how this will help him scale to a lot of users.
As a developer myself, I get it. Working with new languages/frameworks is exciting. But tech is just 30% of the product. The other 70% is sales, marketing, customer service, the product idea itself.
I hope you are spending as much time obsessing over the other 70% or are partnering with someone who likes all other parts of building a product while you focus on tech.
2018 has been great so far, and the most productive I have ever been. It’s not just this week, the last two weeks have been productive. I have been trying a new work routine “watching random tv shows while working”.
Most people would advise against watching TV when programming, as it takes away your focus from the task at hand. I would think the same till I tried it two weeks ago.
Having a background noise works well for me and since these are TV shows I am not that keen on watching, having a background noise helps me focus on the at hand. I have tried Spotify and coffitivity before, but after a while I stopped enjoying these services.
I have been looking forward to my work days now.
There are a few things I cannot do while the TV shows play in the background:
I am going to continue this experiment for this month.
Hope you all have a great year ahead!
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 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.
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 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. github.com/Andr3wHur…
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.
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.
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.
Image Courtesy The night team
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.
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.
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.
More frameworks need to have a page like this.
Its good to know what your framework does not do compared to other popular alternatives.
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.
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.