Software Development
-
Mastering Software Engineering: Key Lessons for Growth

In the ever-evolving world of software development, becoming a better software engineer is not just about mastering code. It’s about growing as a problem-solver. It also involves being a collaborator and a lifelong learner. The journey is as much about mindset and habits as it is about technical prowess. Here, I share lessons and strategies Continue reading
AI, business, career growth, Clean Code, coding practices, Collaboration, Continuous Learning, debugging, domain knowledge, growth mindset, Leadership, mentorship, open source, problem solving, self-improvement, side projects, soft skills, Software Development, Software Engineering, software fundamentals, system design, Teamwork, technical skills, technology -
Improving Code Reviews: From LGTM to Excellence

Code reviews are an essential part of software development, yet many of us approach them with an “LGTM” (Looks Good to Me) mindset. While this may seem sufficient on the surface, it often results in missed opportunities to improve code quality, enhance team dynamics, and foster collaboration. Let’s delve into the common pitfalls in code Continue reading
Agile Development, Code Quality, Code Review Tips, Code Reviews, Developer Productivity, development workflow, DevOps, Effective Communication, Programming, Programming Best Practices, Pull Requests, Software Best Practices, Software Development, Software Engineering, Team Collaboration, Team Dynamics, technology -
Agile vs. Agile in Disguise: A Tale of Two Approaches

You know, I’ve seen teams approach projects in all sorts of ways, and it’s always interesting to see how different methods play out in real life. Also most teams claim to be agile, actually they operate more like a traditional waterfall process, just broken down into sprints. I like to think of it as “Agile Continue reading
-
Deciphering Programming Paradigms with C#

Venturing beyond the entertaining yet often superficial ‘language wars’, this blog dives deep into the heart of programming paradigms using C# as our lens. From the organized realms of Object-Oriented Programming to the mathematical rigor of Functional Programming and the step-by-step logic of Procedural Programming, we explore how mastering these paradigms can elevate our coding… Continue reading
-
How to apply SOLID Principles

In this blog post, we explored the power of SOLID principles in improving the design and maintainability of code. By refactoring a complex class in an e-commerce application, we witnessed the transformation from a monolithic and tightly coupled structure to a modular and flexible architecture. Through the Single Responsibility Principle, we learned how to divide… Continue reading
-
Unraveling the Tapestry of Code Complexity: Exploring the Web of Small Things

In the world of software development, code complexity can emerge from numerous small details that interconnect within our codebases. It goes beyond grand architectural designs and intricate algorithms. The countless magic numbers, nested conditionals, poor naming choices, and other seemingly insignificant elements contribute to a web of complexity. In this blog, we unravel these small… Continue reading
-
Pipes and Filters Design Pattern: A Practical Approach

The pipes and filters pattern is a powerful tool for breaking down complex data processing tasks into simple, reusable components. It can help you write maintainable and reusable code that is easy to understand and modify. In this blog post, we have seen how to use the pipes and filters pattern to validate incoming data… Continue reading
-
Dynamic objects in C#

Dynamic objects in C# are objects that can have properties and methods added to them at runtime, as opposed to traditional objects which have a fixed set of properties and methods defined at compile time. There are a few different ways to create dynamic objects in C#, including the dynamic keyword and the ExpandoObject class. Continue reading
-
How to do polymorphic serialization/deserialization in C# System.Text.Json

In this blog post, you’ll see how to serialize and deserialize a hierarchy of objects polymorphically to have a cleaner json. Continue reading

