Hierarchy of opinion

The word opinion has two distinct meanings according to the Oxford Dictionary: A view or judgement formed about something, not necessarily based on fact or knowledge. A statement of advice by an expert on a professional matter. Synonyms to the word opinion are: belief, judgement,...


How to use 'npm link' to develop sharable components

If you are working on a node project there may come a point where your app has a dependency on another custom module you have created. For example, at one of our clients, my colleagues and I are responsible for a shared component called the...


How Applying Theory of Constraints Helped us Optimise our Code

My team have been working on improving the performance our API, and identified a database call as the cause of some problems. The team suggested three ways to tackle this problem: Scale up the database till it can meet our requirements. Introduce some light-weight caching...


Setting up Scala on Android

Scala can be used to build Android applications, as an alternative to Java or Kotlin. Unlike them, setting up an Android project in Scala with SBT is not straightforward, and can give us some headaches to get it right. To show how this can be...


Approaching Outside-in TDD on Android III

In the previous post, we wrote the acceptance test as a first step and started creating the classes on the entry points of our system. In this post, we will finish implementing the system, and will summarize what we have learnt during the process. Inner...


Visualise interruptions on a LEGO Wall

I had the privilege to attend the Certified Scrum Product Owner course at Skills Matter. During the two-day course, I learnt many techniques to deliver value efficiently, and I am going to share a less widely known tool to help teams visualise interruptions. Keeping track...


Database Testing With tSQLt

Evolutionary Database Development, as coined in Martin Fowler’s book Refactoring Databases, is a concept whereby the design of the database is not done upfront, but instead is done in a way that evolves as the software that is relying on the data store does. In...


What I wish I knew when I started as a software developer

Having worked in the software engineering field for 6 years, I sometimes pause and consider how much I have learned since I started my career. One thing that strikes me is how many things I would want to tell just-out-of-college me if I had the...


When a good architecture helps you in your UI design iterations

I’m currently working on an internal app for Codurance, which started as a pet project while I was working with my previous client. I started the project with one simple goal: to make it work. After six or seven months of trying to put it...


Approaching Outside-in TDD on Android II

In the previous post, we introduced the Bank kata. We explained how we are going to implement it in Android, reviewed the different kinds of tests that we use in Outside-in and transformed a user story into a bunch of acceptance criteria. In this second...


Codurance Hiring

We're hiring!

We are hiring Java and .NET Craftspeople in London and Barcelona

Enjoying this article?

Sign up to our monthly newsletter to get content like this in your inbox!

Codurance Logo

Software is our passion.

We are software craftspeople. We build well-crafted software for our clients, we help developers to get better at their craft through training, coaching and mentoring, and we help companies get better at delivering software.

Latest Blogs




Contact Us

15 Northburgh Street
London EC1V 0JR

Phone: +44 207 4902967

Carrer Aragó, 208
08011, Barcelona

Phone: +34 689 723 737

Email: hello@codurance.com