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...
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,...
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...
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...
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...
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...
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....
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...
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,...
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...
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.