Git

Git, Case Sensitivity and Github actions

Git is easy I have used git for quite a long time. I have also been coding in .NET for fairly some time now. I have created plenty of dotnet project repositories in Github and integrated some basic CI features to it using Github actions. It has all gone fairly well, until it didn’t, today. The documentation is pretty solid and I know a lot of it on top of my head. But today, I ran into something that got me totally by surprise and wasted a lot of my time on it. ...

May 15, 2021 · 5 min · 961 words
Structured Design

Cohesion and Coupling - two important concepts to understand when building good software

When building applications, it is fundamental to think about design first. This process of designing first helps visualize some of the key areas that you are going to tackle. How are the different elements or components going to interact with one another? What are the various components going to be? What are the responsibilities of each of these components? Software Engineering is a pretty young field, compared to other engineering domains. And over the last 60 years or so, has made tremendous amount of progress. This has led to the rise of several different blueprints for solving common problems, often called design patterns or architectural patterns. These are great tools to use when developing your solution, provided you understand what they solve and when best to use them. ...

May 9, 2021 · 6 min · 1184 words
Problem Details

Using ProblemDetails in .NET Core 3.1 with C#

What is Problem Details? When you are an API developer, you often need to convey errors to the client or consumer of the API. It is not always a happy path when it comes to using an API. Things do go wrong sometimes. Networks fail. Databases encounter issues. Your application could encounter an unhandled exception due to another service downstream that failed to respond correctly! When developing distributed applications, one must design for failure, as there are many points of failure. And when there are failures that we cannot immediately rectify, we must be able to let our consumers know what to do. ...

May 8, 2021 · 15 min · 2992 words
Dotnet logo

.NET (dotnet) Framework and Core and things

ASP.NET Core I have used ASP.NET core a lot. But I wonder how I would describe it to someone who has never used it before. So I decided to give it a shot at describing in simple words what it really is. What is it? ASP.NET Core is a cross-platform, open-source framework for building modern internet connected apps that can be deployed on premises or in the cloud. Cross-platform - an asp.net core app can run on linux, macos and windows, so long as you have installed the dotnet runtime in there Open-source - yes, microsoft did make it all open source. You can read the code on https://github.com/dotnet/aspnetcore ...

May 7, 2021 · 6 min · 1224 words
Search

Client Side Search for your Hugo Blog with Fuse.js

Featured Image is “Search!” by Jeffrey Beall is licensed with CC BY-ND 2.0. To view a copy of this license, visit https://creativecommons.org/licenses/by-nd/2.0/ In an earlier post about migrating from wordpress to self hosted on Azure, I took you through some steps to host a blog on Hugo. But I don’t know if you realised the blog didn’t have a search function. I couldn’t really search for articles! That I felt was a step back from my wordpress blog where I had the ability to search. Not just me, but you know, if anyone ever wants to search for a particular content in my blog, they really didn’t have a way to do that, unless google let them search. ...

May 1, 2021 · 8 min · 1620 words
Event Storming

Event Storming

Featured image from 3dots Event storming by Alberto Brandolini is a great way to gather information and understanding about a domain. What is it? It is a workshop based method to find out what is happening in the domain of a software program. It is extremely lightweight and intentionally requires no support by a computer. The business process is stormed out as a series of domain events which are denoted as orange stickies and other elements on stickies of different colours on a wall. The idea is to bring domain experts and software experts into a room and discuss how the business works in terms of events that are important to the business, thereby helping the both the software team and the domain team to learn from each other. ...

April 25, 2021 · 8 min · 1595 words
Domain Driven Design

Why Domain Driven Design

Feature Image by Overview of Domain-Driven Design. Source The DDD Community 2019, pp 6. This is my understanding of the importance of DDD having read books and articles and attended courses on it and also having how projects can get really complex over time and unmaintainable with little knowledge of the domain from personal experience. How does software development look like? Software development is a very unique profession. You almost always create software to solve a real world problem in a very specific domain. More often than not, these problems mightnot have anything to do with software engineering until a solution is implemented. ...

April 8, 2021 · 12 min · 2403 words · eakangk
Goodbye

Good Bye Wordpress. Hello Hugo on Azure Storage

In May 2020, having realised that my role at work had stabilised a bit, I decided to get back to blogging again. I had learned so much over the years and had not really made an effort to share any of it. Not that I have a million followers waiting to read what I share. But for me, it meant, having to think about what I learned again and explain it in a way that another person can understand. An excercise in communication. ...

April 4, 2021 · 12 min · 2519 words · eakangk
Versioning

Web API Versioning

Back-end developers quite often find themselves thinking about making breaking changes to their API. A change that could break the client application consuming the API. We quite often forget how easy it is to cause havoc for our clients by breaking the contract we agreed between front-end and back-end. All sorts of unintentional consequences could arise from this. We recently had a similar conversation at my workplace about how we wanted to deal with the release of a feature we had been working on in the last sprint. ...

March 12, 2021 · 1 min · 206 words · eakangk
Manager

Managing a team

Featured Image by Austin Distel on Unsplash The title of this post is a bit vague. I agree it doesn’t give away much. Having managed teams since 2015ish, I have finally come to realise that as managers, one must make sure that their team members have an environment to thrive. A place where they can grow, be stretched just enough to feel proud of their achievement and not too much where they feel, work is taking over their life. It is not just about getting something done or achieving a target, but it is more about how you get there in a way that your team is committed to it rather than forced to it. ...

March 3, 2021 · 5 min · 1008 words · eakangk