Showing posts from November, 2022


Debugging is fixing bugs, i.e., errors in the code written. It is one of the tasks a developer finds themselves in for hours while working on a project. Sometimes, it seems like a breeze to fix the bug; other times, it takes a herculean effort to correct it. These bugs come in various categories: behavioral or logical, syntactical, run time, etc. One of the categories, called heisenbug, is one of the most difficult to debug. It takes hours to days to get a sense of it. During the past three years in D10X as a developer, I have faced many bugs working on different projects. Therefore, I would like to share my experience in debugging bugs. Bugs are introduced in codebases because of a lack of understanding of the requirements(logic) or how tools you use function. One common ground I found post-analysis of my debugging journey is that I fixed the logic by filling gaps in knowledge.   Over the years, we have built a workflow of debugging at D10X.  Ask a teammate if it takes more than two h

Git Branching Strategy

​ One and a half years ago, one of our clients was experiencing serious deployment problems like on lot of merge conflicts on  every merge , ​ ​ production database scripts and committed scripts are different resulting in wrong data schema, etc We analyzed and concluded that root cause of problems is poor branching strategy. The client asked us to suggest the branching strategy that will work for them. We designed and implemented the updated Git branching strategy and solved the majority of deployment issues. Following are the branching strategies for different development workflows that we implemented for the client. Strategies for CI-CD based development There will be four main branches created for each project and they are as follows, Develop QA Staging  Pre-Production Main / Production Below is the diagram that represents the strategy with the process automation and audiences, Strategy for develop branch: When a developer starts working on a feature, a feature branch will be create