Moving away from a manual (semi-automated), repetitive, error-prone process.

Over the last few years with Agoda, I have been working with the SEO team of our Frontend Department. The SEO team is responsible for building APIs & libraries that are used by other teams and many small to medium sized services that talk to each other.

With so many existing projects and new ones coming up all the time, we ended up having multiple ways of versioning and releasing them. Eventually more than often we found ourselves unable to answer the following questions

  • Did we pick the right version number for our new release?
  • Did we git tag correctly…

After being introduced to Conventional Commits by my colleague at Agoda, I have never gone back to my old ways of writing commit messages, and for good. In this post, I would like to walkthrough —

  1. What are Conventional Commits
  2. How to use Git Hooks to enforce it
  3. How to automate this enforcement for .NET based projects.

1. What are Conventional Commits?

The Conventional Commits specification is a lightweight convention on top of commit messages. It provides an easy set of rules for creating an explicit commit history; which makes it easier to write automated tools on top of.

For example, here is how a…


It’s been more than 3 years that my wife and I have moved to Bangkok. So far, I have been conveniently avoiding this place called Khao Yai — a little town about 3 hours drive from Bangkok. It is also a place my wife’s been planning for as long as I can remember now. This month we had a long weekend with a postponed Songkran holiday (blame covid19 for that) and we finally had our go at it.

Getting to Khao Yai from Bangkok

There are public buses running between Bangkok and Khao Yai, but unless you have a car waiting for you in Khao Yai…


I have always been one of those developers that have dreaded using Git CLI. So over the years I have used all kind of Git UI Clients, such as SourceTree, GitKraken, Git Extension (the one I use the most) to name a few. Recently I took out time to learn all about Git at Udemy to get my basics right, and got to know about this cool feature called — Git Alias which I am writing about today.

Git Alias

To simply put, Git Aliases are shorthand’s for your git commands.

Where should we use Git Alias?

Consider the following version of git log command, which returns a…


To add some more fun at work, we have made it a tradition at Agoda to host a collaborative drawing board in the last week of the year.

So this time when I saw this message in our team chat, I quickly tried to find the piece of code I’d written the last time using Chrome Puppeteer.


The Problem

Last week, I worked on updating integration tests in one of our projects. What these tests mainly did was —

  1. Insert data into some tables
  2. Run a process/function/application that processes this data and writes to another table X.
  3. And expect some data in table X, which is then asserted using select queries.

These tables, however, have an identity column, so we have to disable the constraint and then make our insert.

All this had been working fine, but after my change suddenly it stopped working and started throwing this error — (Which was unusual, since I already set the IDENTITY_INSERT…


In the past few weeks, I have had a chance to work more extensively with SSMS, creating stored procedures, views and mostly running ad-hoc queries to check and analyze the data. Over the course of time, I learned and set up a few shortcuts that helped me get things done faster, and in this post, I will try to summarize and list them.

1. Setting up query shortcuts

In addition, to the list of shortcuts supported by SSMS. SSMS also provides you an option to set up “query shortcuts”. …


Having moved to use Rider for .NET development, I have found Jetbrain’s trademark feature “Search Everything” to be very handy.


I have been experimenting with different cloud hosting recently — Azure, DigitalOcean and now AWS, of the 3 I am very impressed with how simple & convenient it was with AWS.

AWS Amplify


I have been using Jetbrains Rider for a few months back and I have to say I am pretty impressed! It’s rich, fast and everything is shortcut based. It kind of encourages you to use shortcuts.

Every section in Rider is screaming out the hotkey for the associated actions, which is great! But this can quickly get overwhelming, to learn so many shortcuts in a short while.

One of my friend who has been working on the JetBrains ecosystem for a while recommended me to try this plugin — Key Promoter X

Yasser Shaikh

Lead @ Agoda.com — Frontend Engineering. Gamer, Footballer, Bollywood Buff, Software Engineer, and @stackoverflow contributor. Mumbaikar.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store