1. Agile - Sprint retrospective

    Introduction Every two weeks, after the sprint concludes, the team comes together for a one-hour retrospective meeting in a casual and relaxed atmosphere. The purpose of this gathering is to reflect on the recently completed sprint and offers the team a opportunity for driving continuous improvements and allows every member to celebrate achievements, voice concerns and frustrations, and, most importantly, present new experimental ideas. The meeting is attended by all team members, and a member of the team takes on the role of facilitating the proceedings. The facilitator can be any team member. …


  2. Agile - Daily stand up

    Introduction The Daily Stand-up plays a vital role as one of the key ceremonies in the agile process. The daily stand-up is a time-boxed meeting and lasts between 15 to 30 minutes. Its purpose is to discuss the progress made by team members and identify any blockers or obstacles. The meeting is attended by all team members, and a member of the team takes on the role of facilitating the proceedings. The facilitator can be any team member. It is essential that the facilitator conducting the stand-up and the team members sharing updates adhere to the following guidelines: …


  3. Understanding Habits: How to build and maintain them

    Many years ago, I had the pleasure of reading "Atomic Habits" by James Clear, and it made a significant impact on me. Recently, I came across a blog post 'Embracing Atomic Habits for Career Growth in the Tech Industry' by Arnold Gamboa that summarizes the book's four core principles. I have applied these principles in my life for years, and recently, I used the book's teachings as the foundation for a presentation. I'm sharing this below in the hope of inspiring you as well. …


  4. Services - NodeJS Microservice with AWS Lambda

    Introduction In this article, I want to walk you through my experience of going "serverless" and building an API "microservice" using AWS Lambda and API Gateway. Think of it as a practical guide to help you navigate creating your own microservices with these tools. This article will focus on running serverless on local machine. …


  5. Services - Backward compatibility

    Introduction This article explains how to design REST API services that maintain backward compatibility. An API is backward compatible between releases if the clients are able to work with a new version of the API seamlessly. It allows clients to continue using the existing REST API and migrate their applications to the newer API version when they are ready. …


  6. SQL Analytics Functions - Windowing Clause Default Rows Behaviour (with FIRST_VALUE, LAST_VALUE example)

    Windowing clause of analytical function provide more fine-grained access to the data. It uses ROWS/RANGE that limits the rows within the partition by specifying start and end points within the partitio. …


  7. SQL Analytics Functions - ORDER BY Clause (with ROW_NUMBER example)

    ORDER BY clause imposes ordering on incoming data. It is required by some analytics functions (ROW_NUMBER(), LEAD(), LAG(),FIRST_VALUE()…) but does not make sense on other (COUNT(), MIN()). …


  8. SQL Analytics Functions (also known as Window Functions)

    Analytic functions are used to calculate an aggregate value based on a group of rows. While aggregate functions return a single value for each group, analytic functions can return multiple rows for each group. They are particularly useful for computing moving averages, running totals, percentages, or top-N results within a group. By using analytic functions, you can gain insights into the distribution and patterns of data within a group, and make more informed decisions based on the results. …


  9. Streaming data with Kafka Apache - Design

    If you are considering setting up a secondary data source for reporting or other purposes, Kafka can assist in streaming data from the primary data source to the secondary data source. The following steps outline how to transfer data from a SQL Server to Elastic: …


  10. Delete stale branches in Azure DevOps

    Introduction In my experience, there are two main reasons stale branches exist in Azure DevOps (or any source code repo): Branches are not deleted after completing pull request. Although Azure DevOps gives you option to delete branch after merging given the right permissions are applied. But this option is not used most of the time Developers create temp branches for proof of concepts, resolve merging conflicts or any other reason and then forget to delete them In this exercise, we will delete all the branches left as result of two cases. …


  11. Snowflake - Ingest and transform pipeline - Design

    If you’re planning to establish a data transformation pipeline that processes raw data and generates analytics-ready data for consumers, the following steps depict the data flow from source to destination.: …


  12. How to incorporate unplanned changes in agile sprint

    In an Agile sprint, unplanned changes can disrupt the team’s focus and timeline. The team may need to reassess their priorities and allocate more resources to accommodate the change. This can cause delays, increased costs, and decreased quality. Additionally, unplanned changes can lead to confusion and decreased collaboration among team members, as they adjust to the new situation. …


  13. Mind & Body - Personal Power

    Recently, I examined the lives of successful individuals in both personal and business domains, searching for the key to their achievements. I wondered whether their success could be attributed to their knowledge, but soon realized that many knowledgeable people don’t reach the pinnacle of success. I also considered whether their success was due to their hard work, but discovered that there are many hardworking individuals who don’t achieve success either. …


  14. Migration flow for moving applications to cloud

    If you're looking to transition your current applications from on-premises to the cloud, or from one cloud to another, there are certain steps you can take to ensure a seamless migration. In this blog post, we'll go over these concrete steps to help you plan and execute your migration with minimal disruptions. …


  15. React App Template

    I have utilized this template as a starting point for several projects. It consists solely of a front-end interface, utilizing a mock API as the back-end. The template allows for the basic CRUD operations and provides a user-friendly interface for editing and displaying data. It can be adapted to fit any application that requires data management. …


  16. Services - Observability/Logging in AWS

    Within the AWS environment, observability is supported through various integrated services provided by AWS. AWS Lambda and Amazon API Gateway enable seamless integration with these services. …


  17. Deploying Dotnet Core on AWS Linux

    In this post, I will be sharing in detail my experience of hosting Asp.Net Core Web Api on AWS EC2 Linux instance. Some of the steps are detailed and you might want to skip those steps. …


  18. Services - Design

    When designing services, it is recommended to use a Domain Driven Design (DDD) approach, which is a software engineering method used to solve complex domain models. …


  19. Angular 4 with Ngrx

    I have utilized this template as a starting point for several projects. It consists solely of a front-end interface using Angular and Redux. …


  20. Observables Learnings

    Async Type Comparsions Callbacks Promises Observables Number of results 0 to Infinite 0 or 1 0 to Infinite States Depends on arguments resolved with optional value rejected with error next() with value error() with error completed() Can be cancelled No Not yet* Yes When is work (e.g. network request) done? As soon as callback is registered (“eager”) As soon as promise is created (“eager”) Only once subscribed to (“lazy”) for cold observables. Composable? Not at all Somewhat Very! …