Thinking in Abstractions

Recent issues of the Clojure Gazette have been discussing abstractions, and it's got me thinking. I am wary of needless abstractions and have seen many codebases, some of them I contributed to, that are essentially a mindless mess of half-backed abstractions. Here’s what I’m thinking...


Mastering TDD

Two weeks ago I went to Paul Stringer's course "Mastering TDD/BDD in iOS". After the two days, I was exhausted... During the course, we looked at all the theory, completed some exercises. Paul gave us lots of links and books to read and, quite frankly,...


Configuring Amazon Web Services (AWS) for using Lambda

During the Software Craftsmanship and Testing conference UK, Mash run a session on AWS Lambda, with examples written in Java and python. Some other people also tried to do it in NodeJS. This session is here The first part, mostly accidental complexity, is how to...


Why SoCraTes UK is not just a conference for Software Craftsmen.

Last Friday, I attended the international Software Craftsmanship and Testing conference at the enchanting Wotton House, in Dorking. I was the only Designer among about 100 Developers. Honestly, I was feeling a little bit out of my element when I arrived, but I knew that...


Unit vs Integration Akka Testing

This is the sixth post in the series about integrating sync clients with async systems (1, 2, 3, 4, 5). Here we'll see how to test Akka actors with different testing styles. Unit vs Integration Testing Nowadays everybody agrees with the famous testing pyramid: Harder...


Coordination in Akka

This is the fifth post in the series about integrating sync clients with async systems (1, 2, 3, 4). Here we'll see how to manage the actor's lifecycle, so our service can use the available resources efficiently. Lifecycle Actors, threads, objects, resources... All of them...


AWS Lambda with API Gateway

In a previous post I showed you how to create and deploy an AWS Lambda. We will continue that work and look at updating just the code for that lambda. We will also add a REST endpoint to the AWS Lambda using AWS API Gateway....


A simple TDD environment in Haskell

I recently implemented the bowling kata in Haskell. In the process, I found out how set up my environment to comfortably do Test Driven Development. Hopefully, others might find this post helpful to begin their journey with the language. I used the following components: Haskell...


Publish-subscribe model in Kafka

This is the fourth post in the series about integrating sync clients with async systems (1, 2, 3). Here we'll try to understand how Kafka works in order to correctly leverage its publish-subscribe implementation. Kafka concepts According to the official documentation: Kafka is a distributed,...


Bowling Kata in Clojure, F# and Scala

In one of our evening apprenticeship meetings, a pair was doing the Bowling Kata in Java. After reviewing their code, I thought that it would be a good idea to do it myself. Every craftsman at Codurance is a polyglot developer and, although we have...


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