softwaredevelopment

Cherry-Picking in Git: A Solution for Pull Request Discrepancies

Cherry-Picking in Git: A Solution for Pull Request Discrepancies

In the world of professional software development, teams rely on Git to manage their version control systems. However, not all processes go smoothly. At times, discrepancies arise between pull requests and the remote branch, leading to situations where merging the branch into production is not feasible. This is where cherry-picking comes to the rescue. This article explores cherry-picking, its significance, real-life scenarios that warrant its use, and the commands and steps to implement it effectively. What is Cherry-Picking? Cherry-picking in Git refers to the process of selecting specific commits from one branch and applying them to another branch. Unlike merging…
Read More
Patching the Cracks

Patching the Cracks

Over time, I have found that building an app is like constructing a house. You need to ensure a strong foundation and infrastructure, but you also want to decorate and furnish it to make it feel alive. As developers, we’re often caught in this balancing act: pushing out features quickly versus ensuring the app is stable and reliable through testing. It’s easy to get caught up in the excitement of adding new functionality or planning the next feature, but neglecting tests can lead to a crumbling foundation that will eventually cost more time and money to repair. The red-green-refactor paradigm…
Read More
Multithreading Concepts Part 3 : Deadlock

Multithreading Concepts Part 3 : Deadlock

Welcome to Part 3 of our multithreading series! In Part 1, we explored Atomicity and Immutability. In Part 2, we discussed Starvation. In this part, we’ll dive into the mechanics of Deadlock in multithreading. What causes it, How to identify and preventive strategies you can use to avoid turning your code into a gridlocked intersection. Application grinds to a halt, often without any visible errors, leaving developers puzzled and systems frozen. Navigating the Complex Tracks of Concurrency A useful analogy to understand deadlock is to imagine a railway network with multiple trains on intersecting tracks. Since each train is waiting…
Read More
8 System Design Couress to learn Distributed System Architecture (2025)

8 System Design Couress to learn Distributed System Architecture (2025)

Disclosure: This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article. credit - exponent Hello friends, if you want to learn Software Architecture and System design in 2025 and are looking for the best resources then you will be happy to know that  I will share the 8 best Udemy courses to learn System Design and Distributed System Architecture for 2025. If you are preparing for technical interviews for a Software Engineering job, you may be aware of Software or System design. It is one of the…
Read More
Geo Viewer in IntelliJ Idea is cool

Geo Viewer in IntelliJ Idea is cool

Hello old friend Thanks to Poznań Java User Group randomly selecting me during a meetup to get a JetBrains IntelliJ Idea Ultimate license, I started using it daily. It's not entirely new software for me. I've been using Android Studio for almost a decade now, occasionally working on side projects in the Community Edition of IntelliJ. Recently at work, I've been using VS Code and NeoVim. Quite a different IDE philosophy with the latter. I happen to work on the backend currently, and IntelliJ is an absolute beast with built-in tools for everything you can imagine. Next to the usual…
Read More
Understanding SOLID Principles in C#

Understanding SOLID Principles in C#

As developers, we often come across the term "SOLID" principles, which are a set of five design principles that help us write maintainable, scalable, and efficient code. However, understanding and applying these concepts in real-life projects can sometimes be tricky. To make it simpler, let's break down each principle with practical, relatable examples and code snippets that any developer can understand. 1. Single Responsibility Principle (SRP) Real-Life Example: Imagine you’re organizing a community event, and Alex, your friend, tries to handle everything—from setting up the venue, to promoting the event, to managing food. With so many responsibilities, things often slip…
Read More
Boas Práticas de Dash de Monitoramento para Observabilidade: Um Guia Simples

Boas Práticas de Dash de Monitoramento para Observabilidade: Um Guia Simples

Hoje em dia em sistemas distribuídos, a observabilidade se tornou uma prática essencial. Mais do que apenas saber que há um problema, o real objetivo é descobrir por que ele está acontecendo e, claro, como corrigi-lo. Dashboards de monitoramento são ferramentas muito poderosas que ajudam a transformar a enxurrada de dados de logs, métricas e traces em insights úteis. O que é Observabilidade e por que importa? A observabilidade é definida como a capacidade de entender o que está acontecendo dentro de um sistema a partir de suas saídas. Para sistemas complexos, como microsserviços e arquitetura serverless, essas saídas vêm…
Read More
Understanding InvalidOperationException in C#

Understanding InvalidOperationException in C#

What Does "InvalidOperationException" Mean? In layman's terms, an InvalidOperationException occurs when you try to perform an action that is not allowed in the current state of an object. It's like trying to drive a car without starting the engine first—you're trying to do something that isn't possible given the car's current state. Real-Life AnalogyImagine you're at a swimming pool, and there's a sign that says, "No diving in the shallow end." If you try to dive into the shallow end, a lifeguard will stop you and say, "You can't dive here; it's not safe." This is similar to what happens…
Read More
Make writing documentation part of your pull request

Make writing documentation part of your pull request

We are all guilty of this one! We changed something, and we forgot to update the documentation. Even if you have the best intentions to do your best, it’s way too easy not to do it. Why is it so easy to skip? Assume you changed something, created a pull request, and followed all the defined processes before you can merge the change. When is the best time to update the documentation in this process? If you update the documentation while the pull request is open, the documentation is ahead. It refers to a state that might not be true…
Read More
10 Software Design and Programming Best Practices for Developers

10 Software Design and Programming Best Practices for Developers

Disclosure: This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article. image_credit - ByteByteGo Hello friends, Software design and System Design a critical aspects of the development process that can significantly impact the success and maintainability of a project. While mastering software design takes time and experience, there are key best practices that developers can quickly learn to enhance the quality of their code. Earlier, I have explained key system design concepts like API Gateway vs load balancer, Forward Proxy vs Reverse Proxy as well common System…
Read More
No widgets found. Go to Widget page and add the widget in Offcanvas Sidebar Widget Area.