2nd September 2019

Application Events and Domain Events

In this post we’re going to provide a short introduction to what are Application Events and Domain Events, and what are their similarities and differences. Spoiler: except fot the name, they are really different. Application events All developers probably meet the Observer pattern in some of its variations many times during their career, and possibly very early. In fact, most […]
9th July 2019

Why you should add test to increase your velocity

As you approach the whole idea of adding automated tests to your code, you will see the benefit of safety but may wonder how much additional time you’re going to need to get that safety. If you ask some senior devs, they will smirk a bit (they usually do) and then tell you that any time invested now in writing […]
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: […]
We are hiring!