Home » Software Development

Software Development

Exiting the Swirling Void

Before you build some software you’re often faced with the swirling void of possibilities. This can lead to: Options paralysisImagining a huge systemThe erroneous desire to build a frameworkA lot of effort going in, but no progress or results coming out As a wise leader once said to me: The hallmark of a great software developer is their ability to ...

Read More »

Compose Cats, Reactor, ZIO, … Effects

This is the third in a series of articles looking at the type system for Inversion of Coupling Control to provide composition. The previous articles covered: First-Class Procedure type systemFirst-Class Module This article will look at taking the theory into practice.  It will use the concepts to build an application composing Effects from various Effect libraries. Note that the Effects ...

Read More »

Patching Null++

Here’s a curiosity. In my current project we’re looking at making HTTP PATCH requests. If we’re strictly following the REST standards, we might do things differently, but in our use case, a PATCH is a partial update, caused by discovering some fields of our object to have changed. Imagine the object: { "id": 123, "status": "ACTIVE", "isInternational": false, "customer": { ...

Read More »

Solving Problems Properly Is Often Not Viable

How many times you, as a software expert, saw some software or process and thought “damn, this can be done so much better”. Yes, a lot. But why, since large organizations spend a lot of money on IT? Is it because software is too complex, is it because of organizational issues, is it legacy software, or just the way things ...

Read More »

How to test drive a Content Delivery Network

How not to break the internet. Introduction A Content Delivery Network (CDN) is a cache that sits between your website and the user. This is useful when your site becomes popular and you don’t want to have to keep scaling up your webserver to handle the load. This avoids the ‘breaks the internet’ moment when a website fails due to ...

Read More »

So You’re Going to Make a Framework?

Don’t. Seriously don’t just make a framework. Here’s why your framework will fail: You don’t know what the future requirements are, so you’ll provide too littleYou don’t know what the future requirements are, so you’ll provide too muchYou’ve not encountered the general case of what you’re trying to make, so you’ll end up too specificYou’ve not focused on your specific ...

Read More »

Istio as an Example of When Not to Do Microservices

I’ve been pretty invested in helping organizations with their cloud-native journeys for the last five years. Modernizing and improving a team (and eventually an organization’s) velocity to deliver software-based technology is heavily influenced by it’s people, process and eventual technology decisions. A microservices approach may be appropriate when the culmination of an application’s architecture has become a bottleneck (as a ...

Read More »