Effective Negotiation and Influence

Effective Negotiation and Influence (Photo Credit: negotiations.com) I participated in a day-long workshop titled “Effective Negotiation and Influence” with Ejazur Rahman organized by bAcademy. I would love to share the insights and my learning from this workshop. So let’s start
 About b-academy: b-academy is a program run by the HR department of bKash Ltd. for its full time-employees only. It offers several technical, non-technical, hard skill, and soft skill learning workshops for bKash employees. ...

September 3, 2025 Â· 4 min Â· Saiful Islam Rasel

Innovation and Design Thinking

Innovation and Design Thinking (Photo Credit: welingkarexed) I participated in a day-long workshop titled “Innovation and Design Thinking” with Suren Saini organized by b-Academy, and the learning partner was Talent Elevators. I would love to share my learnings and takeaways from this workshop. So let’s start
 About b-academy: b-academy is a program run by the HR department of bKash Ltd. for its full time-employees only. It offers several technical, non-technical, hard skill, and soft skill learning workshops for bKash employees. ...

September 2, 2025 Â· 4 min Â· Saiful Islam Rasel

Sliding Window and Two Pointer Technique

Sliding Window and Two Pointer Technique (Photo Credit: Google Image) Story There is a school called ABC School, which frequently arranges extracurricular activities like games, dancing competitions, art competitions, etc. for their students. Today it arranged 2 interesting games called sliding window and rope pulling. The rules for the sliding window game are: first, make 2 teams; second, each team takes their position, and then, based on some condition, they slide their window 1 or more units until the window reaches the end position. ...

September 1, 2025 Â· 5 min Â· Saiful Islam Rasel

Searching Algorithm (Linear Search and Binary Search)

Linear and Binary Search (Photo Credit: Crio.Do) Story Let’s say students of the CSE department of University XYZ are going on a study tour in a tourist place. They are staying in a hotel, and surprisingly, they booked rooms on different floors, not the same, with one student per floor. And students get their room according to their rank/roll. This means students with the highest rank are staying on the topmost floor, and those with the lowest are staying on the lower floor. So the 1st rank lives at the top, and the last rank lives in the low, let’s say the 1st floor. ...

August 31, 2025 Â· 4 min Â· Saiful Islam Rasel

Book Review and Takeaways: (Refactoring - Improving the Design of Existing Code)

Detailed Refactoring Series: Part 1: Refactoring - Part 1 (Principle, What It Is & Is Not, Identify the Smells First) Refactoring Book Book introduction Martin Fowler’s “Refactoring: Improving the Design of Existing Code” is a classic book that teaches developers how to improve the structure of existing code without changing what it does. Refactoring makes code easier to read, maintain and expand, helping teams write better software over time. ...

August 29, 2025 Â· 3 min Â· Saiful Islam Rasel

Refactoring - Part 2 (Techniques for Cleaning Up the Smells)

Other Parts of This Series: Part 1: Refactoring - Part 1 (Principle, What It Is & Is Not, Identify the Smells First) Refactoring Techniques In our previous part, we talked about what is refactoring and what is not, the motivation behind this, and identifying the common code smells we generally found in our codebase. In this part we are going to explore some well-known techniques that can help us to clean up the code smells. So let’s start
 ...

August 28, 2025 Â· 8 min Â· Saiful Islam Rasel

Refactoring - Part 1 (Principle, What It Is & Is Not, Identify the Smells First)

Other Parts of This Series: Part 2: Refactoring - Part 2 (Techniques for Cleaning Up the Smells) Refactoring Principles Main Principle of Refactoring The main motivation of refactoring is the Boy Scout rule, which is “Keep the camp ground cleaner than you found it.” In our words, “Keep the codebase cleaner and more readable than you found it.” Definition Refactoring is the process of restructuring existing code to improve its quality (like readability or performance) without altering its external or existing behavior. ...

August 27, 2025 Â· 5 min Â· Saiful Islam Rasel

Book Review and Takeaways: (The Pragmatic Programmer - Your Journey To Mastery)

Detailed Pragmatic Programmer Tips Series: Part 1: Becoming a Pragmatic (Better) Programmer - Part 1 (Intro, Team Player) Pragmatic Programmer Book Book introduction “The Pragmatic Programmer: Your Journey To Mastery” by David Thomas and Andrew Hunt is a classical book published in 1999 and is a book about how to become a pragmatic programmer. Which really means a ‘Good Programmer.’ Yes, it was published about 20 years ago. But this book still provides many insights that are very relevant to programmers or software engineers, as some people might call them these days. ...

August 26, 2025 Â· 3 min Â· Saiful Islam Rasel

Becoming a Pragmatic (Better) Programmer - Part 3 (Decouple, Concurrent Coding, Project & Team)

Other Parts of This Series: Part 2: Becoming a Pragmatic (Better) Programmer - Part 2 (Design, Implement, Debug) Pragmatic Programmer (Photo Credit: Unsplash) Story Remember the guy Ismael from the previous part? He was good at broad-level thinking while coding and efficiently designing software. Today he shares some tips and tricks for making code decoupled and concurrent. Decouple and Concurrent Coding Tips Maintain SRP (single responsibility principle) and reduce inter-component dependency, because decoupled code is easier to change. Depend on internal state, not external, which means call some component, and this will tell something. But don’t ask external components for internal decision-making. Don’t chain method calls to do something; instead, create a pipeline based on data. Avoid global data; if it’s extremely important, then wrap global data into an API. Use well-designed patterns and programming paradigms according to business needs. Don’t pay inheritance tax, which means avoid inheritance as much as possible. Use interfaces to achieve polymorphism. Prefer composition over inheritance, meaning create Has-A relationships, not Is-A, whenever possible. Frequently changed values should be parameterized using an external configuration service. Analyze workflow to improve concurrency. Use an activity diagram for better understanding of concurrent workflow. Be very aware of the shared states, and remember random failures are often concurrency issues. Use blackboards and pen and paper for high-level analysis of workflow. Story Osama is an experienced software developer currently playing the team lead role. But despite being a team lead, he is actively coding regularly. Because he loves coding. He has a very good track record of following good coding practices and is also known as a “pro-coder” in his colleagues’ circle. ...

August 25, 2025 Â· 4 min Â· Saiful Islam Rasel

Becoming a Pragmatic (Better) Programmer - Part 2 (Design, Implement, Debug)

Other Parts of This Series: Part 1: Becoming a Pragmatic (Better) Programmer - Part 1 (Intro, Team Player) Part 3: Becoming a Pragmatic (Better) Programmer - Part 3 (Decouple, Concurrent Coding, Project & Team) Pragmatic Programmer (Photo Credit: Unsplash) Story Ismael gets hired by an established IT company as a senior software developer. He has worked on several projects and in various business fields throughout the years, gaining expertise and experience. Based on his skills and experience, he keeps a respectable approach when designing or programming a system. ...

August 24, 2025 Â· 4 min Â· Saiful Islam Rasel

We use cookies and technologies like Google Analytics and Microsoft Clarity to understand how users interact with our site and improve your experience.