Scroll down, if you’re interested in the latest articles.

You can find all the tags through the top menu or by clicking here.

If you want to know who I am, take a look at the about page or my portfolio site.

The footer lists ways to reach me. Including an RSS feed if you like what you’re reading.

But most importantly, enjoy volunteer_activism

Engineering vs Craftsmanship

Why Should We Master Both?

In the world of software development, two terms often arise when discussing the qualities of experienced professionals: engineering and craftsmanship. While we sometimes use these terms interchangeably, they represent distinct skill sets and mindsets.

Emily Bache and Dave Farley published the video What Is A Software Engineer? | Craftsmanship Movement Was A “Step Backwards”. It inspired me to write this post with a different opinion: combining the two approaches leads to superior software development.

[Read More]

Sustainable Refactoring

Balancing Code Health and Feature Delivery

In the fast-paced world of software development, maintaining code health while delivering new features is a constant challenge. One strategy that has emerged as a crucial practice is refactoring. However, the traditional approach to refactoring can often clash with the demands of project timelines and stakeholder expectations.

In this post, we’ll explore how sustainable refactoring techniques can help strike a balance between code health and feature delivery.

[Read More]

Will Customers Ever Speak Our Language?

How to Close the Communication Gap

Software developers face a constant challenge: the communication gap between them and customers. TLDR: customers will never speak the developers’ language. While both parties strive for the same goal—creating valuable, functional software—their perspectives, priorities, and vocabularies often differ. In this post, we’ll dive into the reasons for this difference, explore the implications, and discuss strategies for bridging the gap.

[Read More]

Replacing Type Code With State/Strategy

When the Type-Code Affects Behavior And It Should Change at Runtime

Previously, we talked about potential issues switch-case can cause, and what to do when the type affects only data, or behavior, too.

Now that we are switch-case ninjas, we can go even further and see how to tackle when the type code and the behavior change dynamically at runtime.

[Read More]

How To Use AI Developer Tools In 2024

How Can We Become More Productive Using AI Tools in 2024

In the previous post, we saw the limitations of AI developer tools. Yes, they are not perfect. However, they are still able to improve our productivity significantly.

This time, we’ll dive into how we can effectively use them to achieve a better development experience, higher-quality output, and faster delivery.

[Read More]

Describing Software Behavior

A Summary of Methods And Their Connections

In the world of software development, understanding software behavior is crucial. It’s not just about writing code; it involves various steps and artifacts. In this post, we’ll dive into the different ways to describe what a software product does, showing how they all connect to depict software behavior.

[Read More]