Unicorn Project - Book Cover

What did I learn from The Unicorn Project?

Background I have been an avid reader since about 2016. A friend of mine at work introduced me into the world of non-fiction books. And I got hooked. Since then I have read more than a 100 books. I mean do have a life and a full time job, so I think it is pretty good that I manage to read at least 10 books a years, but 2018 was probably the year I read a lot more than the others. ...

December 24, 2022 · 6 min · 1174 words
See the work

Invisible Work and how you can tame it in your organisation

What is invisible work? Work that is done by someone or a group of people that is not tracked anywhere is invisible work! This could be something that is an interruption to your day, this could be a side project that you are doing with someone else in your organisation, or anything along these lines, that is not covered as part of your daily stand-up or updates. In fact, no one apart from those involved in the work know that this work is being done and it doesn’t really have many stakeholders apart from the ones doing the work. ...

August 7, 2022 · 9 min · 1745 words
System Design

Azure Service Principal Credential Reset

Featured Image courtesy Miguel Á. Padriñán. I recently ran into a small issue with this blog. The credentials that Github workflows use to deploy the application had expired. As someone who doesn’t login to Azure on a daily basis and whose primary role is not application development on the cloud, I did not see this coming. So my Github action to deploy this blog failed with the following message: AADSTS7000222: The provided client secret keys for app '***' are expired. Visit the Azure portal to create new keys for your app: https://aka.ms/NewClientSecret, or consider using certificate credentials for added security: https://aka.ms/certCreds. Trace ID: bd3c9b5a-5677-4dbf-9136-78883da00700 Correlation ID: cdd461df-0722-4770-9b9a-d97e29181d94 Timestamp: 2022-04-18 18:07:59Z I understood that a credential had expired, which logically meant that I had to reset the credentials for the account/service principal that was being used by the continuous deployment setup for this blog. ...

April 23, 2022 · 4 min · 682 words
Git

What are Git submodules?

What are submodules in git? If you have worked in software development, you have certainly been developing your application using libraries or packages developed by others, whether it is open-source or not. It could be that your project A depends on a project B both of which are from different git repositories in your organisation. What happens when you want to be able to treat the two projects as separate yet still be able to use one from within the other? ...

February 19, 2022 · 3 min · 582 words
Scrum feedback loop

What is Agile Scrum?

Agile ways of working In today’s world, every software company claims to be agile. This post is a condensed version of the official Scrum Guide. I have not changed the intent of the guide but have added context based on my experience and removed details where I felt it was obvious. However it is true that what is obvious to me may not be obvious to another person. So if something in this post doesn’t agree with your understanding of scrum, please read the scrum guide. ...

February 14, 2022 · 13 min · 2587 words
Quality Scrabble

Building software quality from Day 1 using Lean Quality Assurance

In my current role, I manage a very special team of quality engineers who are responsible for setting standards and best practices for quality assurance across the entire organisation and is also responsible for developing any necessary tooling or frameworks that might help product teams reduce toil. This is not a new problem and hence I was looking for inspiration and lessons to learn from other organisations who have embedded quality at the heart of their software development process. I came across this presentation by two Quality Specialists who also happen to be Atlassian partners. Please go ahead and watch it if you haven’t already. ...

January 30, 2022 · 6 min · 1237 words
oh my bash

Customize your Mac or Linux prompt or terminal

Do you have a MacOs laptop? I am not an Apple fan. In fact, I have in the past, bought a Macbook Pro and returned it within the first fourteen days as I felt that what I got was not worth the price. However, as I have mentioned several times in the past in this blog, my career started on Linux and hence I do like and feel really comfortable navigating the command line. As part of my current role though, I am not coding on a daily basis but primarily helping create an environment where my engineers can be more productive every day. ...

January 23, 2022 · 2 min · 299 words
Azure Functions

How to use complex settings in Azure Functions using Options pattern and Dependency injection

I only recently found out about this, so I had to share it immediately. I have been using the Values section in the local.settings.json in a not-recommended way for some time. Application settings in the local.settings.json has some naming restrictions which I have been ignoring as the way I used it seemed to work. The docs said: Values must be strings and not JSON objects or arrays. Setting names can't include a colon (:) or a double underline (__). ...

October 22, 2021 · 2 min · 345 words
Dev Ops Loop from Atlassian

DevOps, Continuous Integration, Delivery and Deployment

A year or so ago, I was looking into ways to improve releases at my current job. We have a whole bunch of small legacy .NET applications that until 3 years ago were manually be deployed into a server that was provided to us by a third party. After migrating things to Azure, the sky was the limit for us. It was time to take control of our releases and make it better. ...

August 29, 2021 · 14 min · 2886 words
Software Architecture

What is Software Architecture and what does a software architect do?

What is Software Architecture Software architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems. What is a Software Architect Some people compare the role of a software architect to that of a town planner. The town planner does not care how a house in a residential block is built. The town planner is responsible for deciding where blocks of residential properties go, think about the commercial complexes, the parks and schools or institutions, how they are laid to make the town easy to navigate and also making sure that essentials like water and electricity supply gets to where it is needed in the most efficient way. They do have to think about where the place would be to keep exits to highways, and if we might need flyovers, traffic signals, roundabouts, etc in certain parts based on how the population evolves. ...

July 24, 2021 · 10 min · 2064 words