logo
article

Unit testing 10 best practices

It has been more than a decade that unit testing has become a mainstream practice in the software industry. But “mainstream” does not mean It has become universal. Plenty of software developers who claim themselves “Full Stack Developer”, still don’t know how to write testable code and unit tests, though they write good code.

avatar
Ariful Islam
29 August 2023
article

Top 10 Advantages of Using Interfaces in Software Development

There are many reasons why interfaces are widely used in software development. Here are the top 10 reasons, along with examples to illustrate each use case

avatar
Ariful Islam
20 July 2023
article

Implementing Domain Driven Design (DDD) in Clean Architecture - Part 2

Assume that you are using Entity Framework Core with a relational database. If you are willing to make your application switchable to MongoDB later. Similarly we may have multiple front-end frameworks for Web and Mobile applications and it could be changed later.

avatar
Ariful Islam
18 July 2023
article

Exploring the Power of Interface in Modular Systems

In the world of software engineering, interfaces are commonly used to define method signatures and facilitate dependency injection by injecting dependencies into class constructors. However, interfaces have a broader application beyond these traditional uses. One such application is plugin architecture, where interfaces play a pivotal role in enabling developers to visualize and harness the potential of diverse use cases.

avatar
Ariful Islam
16 July 2023
article

C# Tips: Refactor code with Open-Closed Principle

How can you apply the Open-Closed Principle to support new types of discounts without modifying existing code?

avatar
Ariful Islam
12 July 2023
article

Implementing Domain Driven Design (DDD) in Clean Architecture - Part 1

DDD is suitable for complex domains and large-scale applications rather than simple CRUD applications. It focuses on the core domain logic rather than the infrastructure details. It helps to build a flexible, modular and maintainable code base.

avatar
Ariful Islam
10 July 2023
article

10 tips for Scalable Application in .NET

Building scalable applications in .NET requires careful planning and implementation. Here are 10 tips to help you create scalable applications in .NET

avatar
Ariful Islam
18 May 2023
article

How to double your career growth as a Software Engineer- Part 05: Take risks

There is a saying, “The biggest risk is not taking any risk”. Most of the software engineers can not reach the position they want to be in just because they are scared of taking risks. They want to change their life by having a startup or doing something new, but they love their comfort zone. They do not want to go through all the difficulties to make a successful startup and fail eventually. This is why risk-taking tendency and patience are the most valuable things that a Software Engineer can have to be more successful in their career.

avatar
Ariful Islam
27 October 2020
article

How to write testable code

There are lots of best practices for writing testable code. The main goal for us is to create a robust solution that will be maintainable for everyone. Even if you don’t plan to write unit tests, you need to use this guide because it will help you to improve the quality of the code and the architecture in general. It takes additional time, but it’s worth it.

avatar
Ariful Islam
22 October 2020
article

How to double your career growth as a Software Engineer- Part 04: Professional conduct

Software engineers should value long term reputation more than short-time money. They should be honest and helpful towards the people they work with. Successful software engineers do not show arrogance or pride just because they solved some HackeRrank problem or own 50% share of a freelance company. They are humble towards people. This is what true professionalism is and it helps them to be successful in the long run.

avatar
Ariful Islam
14 October 2020
article

How to double your career growth as a Software Engineer- Part 03: Maintain work ethics

Software Engineers should be value-focused, not working hour focused. Yes, you should have a work and life balance, but working just 40 hours a week without creating any value is useless. You may work fewer hours, but your output should be countable and it should make an impact on the company you are working for. It’s also true for your clients.

avatar
Ariful Islam
07 October 2020
article

How to double your career growth as a Software Engineer- Part 02: Show proactive attitude

Most people are reactive in nature. They do whatever they see others doing. But the people with proactive attitude are entirely different. They love to take challenges and lead a life out of comfort zone. If you can be such a person as a software engineer it will enhance your chance of making more money.

avatar
Ariful Islam
21 September 2020
article

How to double your career growth as a Software Engineer- Part 01: Develop communication skill

Many software engineers think they earn less money because of the low labor cost in their country. It is true that the labor cost is low in many countries, but the question is why?

avatar
Ariful Islam
14 September 2020