Dependency injection questions are very often during a job interview. In the best case, you should be able to answer why do we use DI container, what is Inversion of Control, and to be familiar with some concrete DI container. Before .NET Core, we were used to working with some third-party libraries. I preferred Autofac (and I still use it for many none .NET Core projects). With the .NET Core release, the framework came with an integrated DI container. One of the most asked questions during .NET Core job interview is “What are the scopes of DI container in .NET…

I have spent half of my career having remote work from home. Working from home has many positive sides, but also some problems. I am writing this article now because the topic is more actual than ever. So, let’s see what we lose when we win. Bonding with colleagues Social interactions are very important. Only getting close with your colleagues you can build a strong and well-performing team. Sadly, this is way harder when the work is decentralized. Many tools and applications make us productive in our business processes but don’t do much much in helping us creating strong teams.…

Every year I read at least a dozen books about software development, computer science, etc. In 2019, I read a book I can easily classify as one of the best books written on software development topics. The book is about developing distributed systems in the right way. The full name of the book is “Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems” by Dr. Martin Kleppmann (links are not affiliated links). I liked the book because every topic is presented in-depth but also in a simple way of understanding. The author starts with the very basic…

Last week I had to check a slow executing report. It was an SSRS 2016 report. I am not that familiar with the system so I took the task as a challenge. The execution time of the report was around 35 seconds. This time was very unrealistic based on the volume of the used dataset. My first task was to start removing queries one by one (and running the report) so I can catch a bad optimized one. Surprisingly there was no such a query. The queries were not perfectly optimized but not badly written. Also, it was interesting that…

A while ago, an ex-colleague of mine shared with me he had been given a task to refactor an enormous legacy MS SQL stored procedure. It was interesting to me how enthusiastic and happy he was without realizing the upcoming pain… Well, two weeks later the “refactor” was not even close to the final goal and management gave him another task because they had realized that this one is a lost cause. Is he a bad developer? Not at all! Only the approach for that refactoring was wrong. Let us recall what does “refactoring” mean? Refactoring is the change of the internal structures…

If we look into Wikipedia for code refactoring, we are going to see the following: “Code refactoring is the process of restructuring existing computer code—changing the factoring—without changing its external behavior. Refactoring is intended to improve the design, structure, and/or implementation of the software (its non-functional attributes) while preserving the functionality of the software.” Why code refactoring? Why do we care about improving the design, structure, and/or implementation of software? From the project manager’s point of view, the goal is to reduce the cost of support and future development. That is fine, but what makes the regular developer do refactoring?…

A very catchy title for the first article on this blog, but I am sure you have not heard this term in a software development context. In the following paragraphs, I will try to explain what I mean and how you can avoid falling into this unpleasant situation. In short, “hot potato syndrome” is а specific type of interaction during burnout (or highly stressful situations leading to burnout). It occurs mainly with inexperienced software developers under stress, and it is detrimental to their performance. The main roles in such situations are (but not limited to) a software developer and a QA. The…