Interacting with GenAI Models

The evolving landscape of AI features a growing interconnectivity between GenAI models and frontend tools. Companies are rapidly developing both open-source and proprietary models, challenging the dominance of established players like OpenAI. While backend models are costly to create, both them and frontends may become commoditised, leading to innovative collaboration through APIs and agents.

Adventures in Vibe Coding

Recently, I’ve been playing around with GenAI tools. Yes, I know I’m late at this point, but these days coding is not as big a part of my day-to-day as it used to (though I still do it regularly), and I have never been too interested in autocomplete tools, which has been the way most of the GenAI for programming has been labelled. The integration also with my regular workflow is not as straightforward. Most of the tools are more based on an IDE, most of what I’ve seen has been mainly… Read More

The Many Challenges of a (Software) Architect

Software Architecture is a fascinating subject. The objective of a solid architecture for a system is to generate an underlying structure that is separates components in a meaningful way, but at the same time, is flexible to allow the system to grow in capacities and functionalities. That it’s performant, reliable and scalable within the required parameters, but it’s as easy to work with as possible. Even worse than that, the work is to do that at the same time that a myriad of other competing priorities are being done, new functionalities are… Read More

Do not spawn processes on users requests

I’ve been playing recently an online game that has recently launched, that uses the following idea. When a user starts a match, it spawns a process in the server that acts as the opponent, generating the actions against the user. The game had a rough launch, with a lot of problems due it being played by a lot of people. And, IMHO, a lot of the problems can be traced to that idea. I see it’s a seductive one. If a user generates an interaction with the service that takes time (for example, a match for… Read More

Compendium of Wondrous Links vol VIII

More great reads! About code creation It seemed like a good idea at the time. How tech decisions done at some point in time can have a big impact much much later. Unfortunately, this is unavoidable, developing software is based in dealing with imperfect information all the time. Fear Driven Development. Dealing with different languages is difficult in programs (and otherwise). Seven Laws of Sane Personal Computing. Great compilation of Python libraries that deserve to be widely used. Debug like Sherlock Holmes. One of my favourite ways of thinking on debug is: “Once you eliminate the… Read More

Compendium of Wondrous Links vol VII

Here we go again… This time I’m loosely grouping them, it has been a while and there are so many things! The best programming advice I ever got, which actually is about the worst advice, being reverted. The social dynamics of code review. While code review is very useful, is also important to put the stress on the proper parts. As feedback in general, it needs to be constructive and tactful. The Future of Programming. This is an incredible way of giving a presentation, and the best of all, the form adds a lot to… Read More

Respect Driven Development

I think that one of the most overlooked components on any sane company culture is Respect. That’s probably true also for any relationship, also outside work environment, but I think is usually forgotten when nice places to work are described. When I look back about the things that bothered me the most, most of them are related to disrespect, even in relatively minor form. It can be personal disrespect or not respecting the work itself or even the customers. Probably because is something engraved, it’s easy to take for granted when it exists, and… Read More

Agile important bits

There is a lot of Agile talking and I think it has reached a point where it is, if not standard, at least a common way of doing software. But, even if there is a lot talking about Agile methodologies, and companies telling that the are doing Agile, are they really doing it? I’m not so sure. When relating to Agile, I always come back to the source, which is the Agile manifesto. I really like its simplicity. Let me copy it here We are uncovering better ways of developing software by… Read More

Requests per second. A server load reference

As there seems to be a lot of misconceptions about what Big Data, there are also not really a good baseline to know “how much is high load”, specially from the point of view of people with not that much experience in servers. If you have some experience dealing with servers, you will probably know all this. So, just for the sake of convenience, I am going to do some back-of-the-envelope calculations to try to set a few numbers and explain how to calculate how many requests per second a server can hold…. Read More

Rockstar programmer and Rockstar teams

There has been some discussion about the so-called Rockstar Programmer. You know, that awesome engineer (also called 10x engineer) that can produce what 10 other, average engineers can. This post by Scott Hanselman[1] fueled some discussion on Hacker News. What has been overseen about the original post is that he advocates about 10x teams. That resonates a lot, because I think that we should agree that, while there is people with potential to be ninja programmers, that’s not something that can be achieved without the proper care on the environment. A good… Read More