Latest Posts

  • Run flink application locally on ubuntu

  • Flink Kubernetes Operator

    Flink Kubernetes Operator

  • Kubernetes NodePort Service

    Kubernetes NodePort Service

  • Kubernetes ClusterIP Service

    Kubernetes ClusterIP Service

  • Kubernetes Deep Dive into its components.

  • Why Java NIO is more performant and what really makes it fast.

  • Performance Analysis in Java Applications: A Flink Deep Dive

    Performance Analysis in Java Applications: A Flink Deep Dive Recently, I’ve been working on a Flink Java application experiencing significant performance issues. This led me down a path of discovering the rich set of diagnostic tools available in the Java ecosystem for identifying and resolving backpressure and performance bottlenecks. The...

  • Non blocking ThreadExecutor Shutdown Api and Blocking awaitTermination Api.

    Non blocking ThreadExecutor Shutdown Api and Blocking awaitTermination Api. I was curious about the Executor.Shutdown method. I thought that this was a blocking method but its not. Its basically flips the switch of the executor to Shutting down. Pretty interesting and someone can easily make a mistake. Below it shows...

  • Apache Flink Custom Data Types for Performance.

    Apache Flink Custom Data Types for Performance. Flink provides a dedicated set of data types located primarily in the org.apache.flink.types package. These are designed to overcome the performance limitations of standard Java types (immutability and heavy serialization). Here are the main categories of types Flink provides for performance: 1. The...

  • Java Garbage Collection

    Java Garbage Collection Garbage collection and the wait times are the some of the most important metrics you need to track to see if you application is running with good performance. For tuning the application you need to watch of the GC Frequency/ GC Cycles GC Time / Time spent...

  • Java threads

    Java threads These are some important conversation details from my Gemini chat which are very critical to become a great developer. Here is the breakdown of the difference between a standard ThreadPool (like FixedThreadPool) and the ForkJoinPool. Think of them as two different types of Project Management styles. 1. The...

  • JConsole and process deep dive

  • Mastering Java

    Switching to Java: A Developer’s Learning Journey

  • Java Titbits

  • Jar files in Java

  • Deploying Apache Flink Applications in Kubernetes

    Deploying Apache Flink Applications in Kubernetes

  • find Linux Command

    find Command Some of the common patterns with the find command

  • tr and tar Linux Command

    tr command

  • SSH

    Key Less SSH logins , use the following commands to create a Public/Private Key and copy the public key to the SSH server.

  • My favourite Visual Studio Shortcuts

    I am listing of the visual studio useful shortcuts that I use frequently.

  • Background Thread Upgrade

    Lot of times in day to day development we need to do some background processing task, for example reading some file and updating the list. For this it makes sense to use a dedicated thread to do the processing. We could have also used a Timer for such processing.

  • Protocol Buffer

  • Diagnosis of High CPU issues in production

  • Environment Variables

    Today going to list some simple commands which should be in every developers toolkit. These are things that you will need to do quite often in your daily job and its best to incorporate these in your muscle memory.

  • MetaProgramming (aka) CodeGeneration

  • RocksDb

  • Http Async Server

    HttpListener provides the functionality to host bare bore Http Service in apps for interprocess communication. In Microservice architecture it is sometimes required that you have to host some service in your application, for this scenario it is critical to create lightweight Http Service.

  • Bash Shortcuts

    Some bash shortcuts I use.

  • Code Analysis Rules to watch out for while coding

    Recently I had to fix a bunch of Code Analysis warning in the code base. I started to wonder these are some of the common mistakes in the code that are made and would be just better to keep in mind before we start coding.

  • MSBuild's cool feature - Directory.Build.props and Directory.Build.targets

    Recently I had to work on enabling the Code Analysis on a project we recently started. We should have ideally done it from the very start but better late than never.

  • Ubuntu Wireless Card

    I installed ubuntu on my MacBook Air a while ago and I was running into wireless connection issues. At that time when I did some digging around and found that lot of people were facing the issue with getting the wireless card setup correctly. So without much thought I came...

  • Fun with Python and Azure Devops

    Recently at work we were running into an issue with Azure DevOps build. Azure Devops by default allows 10GB of space for running the build pipelines, however due to some issue we were constantly going over the 10GB limit and our builds were failing quite often.

  • Framework Development Guidelines

    These days at work I have been involved in developing a framework for application development. The main purpose of this framework is

  • One of the use cases of docker

    Docker is a great tool for deployment and sharing software. I use github pages for my blog and I find it pretty useful since it doesnt come in my way of writing. Authoring the markdown files is all that is needed for pushing a new blog entry.

  • Python Decorators

    Decorators are used extensively in Python and various frameworks like Flask/Django or Logging modules etc

  • Python String Formatting and Printing

    Python has a very easy and nice way of printing text any stream like Stdout/file stream etc. You can easily create some quick nice tabular output and push to file.

  • Python Notebook Tips and Tricks

    Jupyter notebook is a great tool to show/share your work. The tool also provides some ways to easily execute and take some actions on the results obtained. I didnt know about SList before and found it to be very useful to do some quick manipulations on the StdOut and StdError....

  • Tmux

    Tmux is a terminal multiplexer and I use it in my day to day activities. I have installed the Oh-My-Tmux. This gives some great benefits. Oh-My-Tmux maps the CTRL+A as the trigger key. Default is CTRL+B.

  • Docker Command Catalog

  • Linux Command Catalog

    I am writing this blog to help me rememeber the linux commands I use. At home I switched to using my Ubuntu Machine as my main machine. I love my Lenovo T430 which I bought from ebay at a cheap price. Ubuntu works nicely on it. Lot of time on...

  • .Net Core on Linux

    I personally believe that .Net Core is the future of .Net. Learning .Net Core is imperative and very useful for the future. I am playing around with .Net core and want to write some of my findings on linux. Creating .net core apps is so easy from the command line...

  • Programmatic Personalized Notification Design

    Below is the design of Personalized Notification Feature that I am working on in my free time. This design heavily leverages the ChangeFeed feature provided by the Azure CosmosDb and it nicely fits in how notifications can be sent in a programmatic manner.

  • Signalling Thread using ManualResetEvent

    ManualResetEvent and AutoReset Event are some of the most important classes provided by the .Net Framework. These are used for the purpose of singalling threads (start/stop) etc and having a detailed knowledge of the these classes are very important for every developer.

  • Great Quotes

  • Welcome to My Blog

    Welcome to my blog. In my blog I will be mostly writing about my technical learning/projects I do in my personal time. This site is more of a source of reference for me. In the process if it helps others, thats a great benefit.


This site uses Just the Docs, a documentation theme for Jekyll.