Blog




20th May 2019

We deploy on Friday

Recently there was an heated debate on Twitter about deploying on Friday, started by this tweet. It was very interesting to notice how people opinions could be neatly split into either “no you don’t” and “yes you should” parties. The “no you don’t” party can be summed up like this: no matter how small and apparently harmless the change, no […]
27th January 2019

How to approach a refactoring job

We sometimes feel like the Ghostbusters. We get called because a business is haunted by a legacy, badly-written, unmaintanable code, pretty much like an old building may be haunted by an headless ghost. If you ever get in a situation like that (I mean legacy code, not ghosts) there are only a few appropriate ways to react, and they can […]
13th November 2018

Product manager: the unsung hero of any successful software project

Most people in the software industry know what a project manager is, but not so many know what a product manager is, and yet this is one of the most critical figure when building a successul software. These two roles are not equivalent at all and require completely different skills. Let’s review them. A project manager main responsability is to […]
13th October 2018

Tools and boxes and code design

A good metaphor of application design is to think about each piece of your software like a physical tool. You may have just one tool for the current job, or a set of very few tools, in which case it makes sense to keep them all in the same box. But as you add more tools, it becomes more and […]
1st September 2018

Book review: “Refactoring JavaScript” by Evan Burchard

Just finished reading the book Refactoring JavaScript by Evan Burchard and I am extremely happy about it.
29th August 2018
Roles and permissions: the right way

Roles and permission: the right way

Authentication and authorizazion Many applications need an authorization system that allows different users to do different things. There are many ways to implement such system; in this post we’ll describe our preferred strategy. Let’s start by distinguishing authentication and authorization. Authentication is the part that identify users, e.g. checks username and password to make sure the user is valid. Authorization […]
11th July 2018
Develop new features with iterative coding and feature flags

Develop new features with iterative coding and feature flags

A while ago we wrote about iterative coding, which is a way to develop your project in short cycles, each one producing a working and usable artifact. This approach can be used in a fractal fashion and applied each time you develop a new feature on an existing and working project. First thing we do, we identify all supporting changes: […]
20th June 2018

The connector! An import/export story

Sooner or later you’ll get a request to create an import/export system between your application and one or more other applications. This is good: applications that are able to easily interact with the outside world will stand out and have more chance to be successful in the long run. So, you should happily grab the opportunity to make your application […]
21st May 2018

Matching deadlines

There is a sad story I will tell you now, a story which – I guess – most developers have been through at some point in their career. A sad story We are in the middle of developing a project. There was a time, some months ago, when the deadline looked so far away that we coded happily and without […]
We are hiring!