Leadership with passive subjects

Leadership with passive subjects Most leadership advice (that I have read) assumes all the team members are motivated and want to improve themselves. However, what about the opposite? What can happen when a developer is not interested in improve their skills and is dragging down the team? Along this post we will delve on the subject of what to do when you have to lead over different types of developers. [Read More]

CV Driven Development

CV Driven Development CV Driven Development or Resume Driven Development consist on taken strategic decisions based on how they improve the CV of the developers that work on that project. Introduction Most of the project management methodologies have a focus on improving the satisfaction of the clients and users. Most of the time by removing friction between them and the development process, or by reducing waste. CV Driven Development has as one of the non-functional requirements learning something new. [Read More]

War stories

War stories When talking about software documentation we usually describe the what and how, but explaining the reason (why) is it left out. Giving a background about why the team took some decisions can help developers understand better why the software is the way it is. Documentation is a foundational part of software I would say that nobody doubts that a piece os software without documentation is not useful. Software can have a big complexity and maintaining it and extend it can be hard if there is no guide. [Read More]

The runtime type-checking operator in TypeScript

The runtime type-checking operator in TypeScript I have been working with TypeScript for a while but for sure I am not an expert in the language (I feel more comfortable with Python). I like the idea of type-safe but limiting the static type checking process can make you confident about what you are getting from outside sources, and if you do not trust those sources (you should NOT), you would need to include a lot of repetitive checks any time we read data from the outside. [Read More]

Don't use singletons

Don’t use singletons The Singleton pattern is one of the patterns that appeared in the Design Patterns book by Erich Gamma et al.. What is a singleton? The singleton is one design patter to share a resource in a controlled manner in a code base. That resource could be a configuration, a connection or any other global state that should be unique. How to implement it? There are several ways to implement this, but in Python (for example) you can implement it by making use of the Python metaclasses. [Read More]

My experience in a Platform team

My experience in a platform team This post is going to summarize the main points of my experience while working in a Platform/Productivity team for two years. I also worked as platform engineer many years ago and I have always been eager to create tools that help other engineers. Giving support is a hard task Developers do not care about the platform their sofware runs, they intend to developed features that product teams require, I mean that is what they should do as developers need to provide value to the company (no question on that). [Read More]

The long silence

The long silence It has been some months since I wrote here for the last time. Why have I been silent all this time? I could say that life matters have made me pretty busy (and that is true), but apart from that, what things have I been working on? Things I worked with Deno Deno, the next-generation JavaScript runtime created by Ryan Dahl, the Node.js creator. It think it is a great idea but it has some rough edges, let’s hope that with the coming of Deno 2 and the full support for commonJS modules and other new features it can achieve the status it deserves. [Read More]

Troubleshooting guides

Troubleshooting guides Usually software is considered only to be code that is executable, sometimes the documentation is also considered part of software, but are the troubleshooting guides part of software? Are these rulebooks useful for the team that uses, maintains, develop or support the software? What is a troubleshooting guide? A troubleshooting guide is a rulebook or more explained a collection of items that should help the users navigate through the issues that could happen. [Read More]

New Year's resolutions

New Year’s resolutions This new year has just started (well 27 days ago), but I have been thinking about what I would like to learn and change during this 2024. Here are my personal thoughts on the matter. I hope they could inspire you to do a similar list. What I would like to learn Tech Domain Driven Design Code bases I have worked on in my career tend to have some tech debt, and the code structure is very different depending on the developer that created the code. [Read More]

Do what the community does

Do what the community does The other day I had a conversation with a team mate about how to implement different patterns to solve a common issue in a interpreted programming language. He was sugesting using a pattern not used at all by the community that indeed was a cool, interesting, and we could argue that it was a more correct one. I was against that. Humans are gregarious and tend to form communities … even programming language communitites! [Read More]