C#

Quirky Arrays in C#

I have been coding in C# on and off since the end of 2013. You might be wondering why I mentioned that here though. The reason is that, a large part of that time especially between 2015 to 2021, I was pretty much managing a team, rather than coding full-time. Now, does that make a difference? Of course, it does. Being primarily in a managerial role meant that I had less time to code and more time to do non coding tasks. ...

January 14, 2021 · 8 min · 1559 words · eakangk
Hashsets in C#

HashSet in C#

Software engineers are generally familiar with Sets as something that they learn in mathematics at university. They may also have learned about HashTables, a data structure that stores keys and values where keys are unique and values are stored at a location in memory that is the Hash of the key. I recently discovered that C# has a datastructure called HashSet. It is a datastructure that stores unique or distinct elements like a Set, but probably named a HashSet as under the hood it is implemented like a HashMap or a HashTable. ...

January 10, 2021 · 3 min · 634 words · eakangk
Windows Terminal

Windows Terminal and customisations

I began my software development career on Linux. I am and have always been very comfortable with the command line and do not really care if I have to open up the command line on Windows. However, in the Windows world, command line used to suck. I think that is a polite way to put it. It truly sucked so bad that developers from a Linux background, often wondered how windows even got this far. It had a weird window size limitation and used to open only halfway through your wide screen! ...

December 31, 2020 · 3 min · 565 words · eakangk
Engineering leadership

What did I learn as a software engineering manager

The opportunity You are at the peak of your software engineering career. Or at least that’s what you thought at the time. You have done it all. New development, maintaining legacy applications, refactoring code, performance improvements, different kinds of database technologies, from proprietary to mainstream distributed systems. You have even tried your hand at web development and improved web app load times, things that as a backend engineer you never knew about! You are about to wonder what next to get yourself to the solutions architect or a software architect role. Then suddenly out of nowhere comes an opportunity to take on a managerial role. ...

December 22, 2020 · 10 min · 1953 words · eakangk
Application Insights and .NET Core

Application Insights in .Net Core App

If you work on .NET applications on Azure, you probably might be thinking of how and where you would log information about your application, like telemetry information. I shared this link to the youtube video that gives a good set of instructions to set this up yourself. There are some things that the video doesn’t cover. ...

December 20, 2020 · 3 min · 497 words · eakangk
Semantic Versioning

Semantic versioning - Semver - An introduction - node package manager syntax and quirks

Featured image from https://devopedia.org/semantic-versioning When I started web development a long time ago, I heard about Semver (semantic versioning) as if it was some complicated jargon. But gradually I learned what it was and understood how relevant it was in web development, especially, when you rely on packages from a global package repository. I recently got asked by one my junior devs to explain it. I couldn’t explain it elegantly. So I decided to write a post. ...

December 6, 2020 · 6 min · 1220 words · eakangk
NodeJs

Node - Get started

What is it? For a really simple introduction, check out my earlier post on an Introduction to Node and npm. Node is a javascript runtime environment outside your browser. It is a program that embeds Chrome’s V8 engine into a command line executable that lets you run javascript. You can download and install it from Nodejs.Org So what? Node comes with a package manager - npm, node package manager. that allows you to publish and download packages from npmjs.com, a web portal that allows developers to share their re-usable javascript modules. It has inherent support for both CommonJS and ECMAScript modules. When you download and install node, you’ll get node executable and also the node package manager. ...

December 6, 2020 · 4 min · 766 words · eakangk
NodeJs

Node and npm: The intro I wish, I got when I began web development

There are times in life, when you begin doing something without fully understanding it, simply because, at that point, you didn’t have the luxury to dig deeper, go further and be in a position where you could explain to a 5 year old, what it is really like to do what you were doing. I have been in this position several times. A lot of times, software development for me has been a journey of reverse engineering, or figuring things backwards. Do it first, based on snippets read here and there online and then connecting the dots gradually as you spend more time doing similar things. Sounds familiar? Probably, the life of every other software engineer on the planet working on a target deadline. ...

December 6, 2020 · 4 min · 709 words · eakangk
Application Insights in DotNetCore

Application Insights, SeriLog and .NET Core

I realised recently that I have always taken application logging for granted. In my previous firm, which was a pretty large company, over a few thousand employees, we had a centralised logging platform and some lovely packages for each language and a team to configure the logging instance for our application and all that luxury. Developers, did just application development. For everything else, there was always somebody you could lean on. So the good thing was, you could spend all your time, polishing your code, applying all sorts of clean-code principles and achieve some coding nirvana and focus on just the business logic and the core problem. ...

November 28, 2020 · 13 min · 2733 words · eakangk

Feature Toggles

How many times have you as a software engineer worked on a large feature, in an isolated branch that only got merged to the mainline branch when it is time to actually release the feature and then struggled for hours and sometimes days with the merge conflicts, simply because many other changes were contributed to the main branch in the meanwhile? If your answer is many times, then you really might benefit from this. ...

November 8, 2020 · 2 min · 288 words · eakangk