Making time for learning

As software professionals, there is always something to learn. It’s a vast field, with so many different technologies and techniques, within which everyone will have their own particular personal interests. When I come across software developers who are perhaps...

Coupled components

The concepts of coupling and cohesion are key in designing robust software solutions, but are still not understood deeply enough. Introducing things like small deployable components – often under the name of microservices, used incorrectly – can make coupling harder...

JIRA tickets represent conversations

One of the core and most important values in the agile manifesto is “Individuals and interactions over processes and tools”. Tools like JIRA can provide value, but the value they provide comes from facilitating interactions, never from replacing them....

Debugging Async timing

In an application I’ve been looking at recently, I came across a problem with diagnosing and improving performance problems in a .NET process. The application was fairly simple, loading remote data in over a network and transforming it – a perfect use case for...