AI agents don't escape: we leave the door open
Every time an AI agent shows up where it shouldn’t, the headline is the same: the agent “escaped”. But when you read the report, there is almost never a genius model cracking a safe. There is a door …
Archive
Practical notes on software engineering, architecture, infrastructure and artificial intelligence.
Every time an AI agent shows up where it shouldn’t, the headline is the same: the agent “escaped”. But when you read the report, there is almost never a genius model cracking a safe. There is a door …
Every system fails. The question is not whether a service will go down, it is what happens to everything else when it does. That is the subject of my talk Design for Failure, which I gave at SoftWeek and PHPeste in 2025, …
For a good while my blog lived on Hashnode, and it worked fine. The problem showed up when I started writing in both English and Portuguese: Hashnode has no real support for two languages, so I published every article …
This is the ninth and final article in the series about AI-friendly architecture. Throughout the series, we talked about context, documentation, system observability, skills, agents, tools, MCP, security, and the …
This is the eighth article in the series about AI-friendly architecture. In the previous articles, we talked about context, documentation, observability, skills, Context Skills, agents, tools, MCP, guardrails, and …
This is the seventh article in the series about AI-friendly architecture. So far, we have talked about context, documentation, observability, skills, and breaking knowledge into Context Skills. Before using all of this …
This is the sixth article in the series about AI-friendly architecture. We have already discussed how code, documentation, and observability help agents understand systems. We also saw how skills can provide specialized …
This is the fifth article in the series about AI-friendly architecture. We have already discussed how agents find context, use skills, and work with specialized knowledge. Now we need to answer two questions: what can …
This is the fourth article in a series about AI-friendly architecture. We have already talked about context, documentation, and observability. Now I want to talk about a way to organize knowledge and workflows for …
This is the third article in a series about AI-friendly architecture. We have already talked about how AI is like a new person joining a company and how important it is to connect code, documentation, and architectural …
This is the second article in a series about AI-friendly architecture. In the first article, I explained how AI is like a new person joining a company and trying to understand a system for the first time. Now I want to …
This is the first article in a series about AI-friendly architecture, a way of thinking about systems, context, and tools so that AI agents can work more effectively with real-world software. Maybe the best way to think …
Building software has never been so complex and, at the same time, so simple. The complexity lies in the sheer number of technologies, frameworks, languages and patterns available to us. The simplicity lies in how easy …
Monolithic applications are those with a single codebase, a single executable and a single process. They are often built in a single programming language and deployed to a single server. When we start developing, …
Software architecture involves many trade-offs. A poor choice can lead to rework and delays, so it is important to know the available options and understand when each one makes sense. In this article, we will talk about …
Edsger W. Dijkstra was a Dutch computer scientist who made significant contributions to computer science. He is best known for developing Dijkstra's algorithm, which solves the least-cost path problem in a directed or …
Hexagonal Architecture (Ports and Adapters) Project link: https://github.com/sschonss/microservices-hexagonal There are many ways to organize a project, and one of the best known is hexagonal architecture. Hexagonal …
Microservices development is an architectural approach that structures an application as a set of small, independent services, each running in its own process and communicating through lightweight protocols such as HTTP, …
If you have ever worked with files in PHP, you have probably used functions like fopen, fwrite, fread and fclose. Streams are a very powerful and flexible abstraction for working with files and other I/O resources. …
If you haven't upgraded to PHP 8.0 or later yet, it's time to do it. PHP 8.0 was released on November 26, 2020 and brought the JIT (Just In Time) compiler, which is what we are going to talk about today. Opcode When you …
Photo by Ben Griffiths on Unsplash Introduction PHP is a general-purpose programming language widely used for web development. However, PHP can also be used for desktop applications, automation scripts and more. In this …
A hash table is a data structure that maps lookup keys to values. Its main job is to take a simple key and find the value you want quickly and efficiently. 1. Hash Functions 1.1. Introduction A hash function takes some …
Quicksort is a very efficient sorting algorithm, invented by C.A.R. Hoare in 1960. It is widely used to sort arrays. The algorithm presented below is a recursive version of Quicksort that picks an element as the pivot …
Esta página também está em português.
Ler em português →