Posts

My 4th book is out: Diego Pacheco's Software Architecture Library (SAL)

Image
I wrote my 4th book! Diego Pacheco's Software Architecture Library (SAL). This book is free; it's me giving back. I hope you like it. It's my first git book. Architecture is one of my passions; this book will help you in your journey. If you are not an architect, this could be a good starting point. If you are already an architect, it could be a chance to learn something new. You don't need to be an architect in order to do architecture. So even if you are an engineer or an engineering manager, this book might give you food for thought. This book is Free.

Testing Mocks

Image
One common mistake engineers make is to test mocks. However, would you know what the right principles are and how to spot good or bad tests according to these principles?  IF you don't have first principles, you are very likely shooting into the dark.  In Brazil, we have this metaphor that if you play chess with a pigeon (I will use a chicken in this post), you will very likely lose because the pigeon does not know what it is doing and probably will be upset with you for whatever you say. People say if you truly know, you know how to explain. Well, I will go further and say IF you truly know you extract first principles and explain with those principles, so your explanation is short, concise, and direct. Otherwise, you are a chicken on a chessboard just doing random things you don't fully understand.

It's All About Attention

Image
No. This is not a blog post about AI. However, this title could be easily confused with a famous AI paper about transformers, Attention is All You Need ( https://arxiv.org/abs/1706.03762 ). Perhaps the machines know something we dont. In all seriousness, attention or focus is really a prerequisite for engineers. In order to understand complex tasks, make sense of complicated systems full of technical debt and anti-patterns, and reason on vague Jira tickets, engineers need focus. Without focus, basically, it's impossible to do engineering. Time drags you down, and what should be 1-2 days turns into weeks or even months. It's possible to get things done without really understanding what's going on. Software is about layers and layers of abstraction; nobody understands all the things in the universe. However, engineers think it's fine to move forward without solid foundations, and that's a huge mistake. IMHO, it's an attention issue. Imagine you are driving, you d...

AI Output

Image
AI Agents and vibing are growing in popularity. It's time for us to think about what use cases make sense to use them and what use cases it would be a mistake to use them. AI is changing how people work, learn, and behave. Should I vibe or not vibe? Vibing can be useful when AI Agents have limits. Vibe coding has several drawbacks, including security challenges, hallucinations, and incorrect facts. However, there are a couple of use cases where vibing can be useful, when: It's not a priority : Imagine there is code that you would never write, tools you would never create, simply because you have bigger priorities and would never spend weeks or months on such tasks. It's not your specialty : Let's say you would never learn C# to make a Windows extension of your application, but with AI Agents or even with vibing, you can get that done without much effort. Limited Resources : You either lack the time or the funds to undertake such a task. AI agents/vibing can allow you to...

Quality and Performance

Image
If you ask any engineer or manager, they will tell you they want quality. No one would say they do not wish to have higher quality. The reality as human beings is that we always want the best. Now, what does quality means? How do we determine if something is of quality or not? How can we learn how to see problems and how can we make things better? Hopefully I will be able to address all these questions in this blog post. In the 1980s there was big quality movement driven by Lean and other methods. Today quality is often misunderstood and took into the the wrong lenses. If you don't understand what quality is, and how good looks like vs how bad looks like, you don't know what's going on, and you certainly cannot make it better. Perspective and vision are everything. This post is not about QA. Having QA also does not guarantee quality. Like security quality is everybody's job. 

AI Agent Patterns

Image
Previously, I was blogging about AI Abstractions and the various levels of abstraction. Now, I want to delve deeper into some patterns we can leverage while writing software using LLMs/APIs and building AI Agents. Many people still question the value of Gen AI, and I understand that, scams, delusional objectives and expectations, FUD, and many other incidents . However, for engineering, it's clear that there is value, and engineering as we know it may never be the same again. Agents are interesting because we can tweak how much autonomy we give to them; they could be bound to a straightforward and repetitive task like bumping the minor version of log4j, or could be used for complex tasks like booking a complete week of vacation with car, hotel, plane tickets, experiences, and plans. So imagine there is a dial that we can tune up or down, and how much autonomy we want to give to agents. Besides open-source models like DeepSeek or Llama , the cost remains complicated. However, clou...

AI Abstractions

Image
Today, we see the reality of "AI" being sprinkled everywhere. That's a magic icon, now has dozens of variations . I recall a time, not far away, when the "stories" were popping up everywhere. Hopefully, this moment will pass and move on to more interesting features that utilize proper AI abstractions. AI is increasingly blending with engineering, and that's likely how we will make it useful instead of a fad. We have seen things move very fast over the last two years. Specifically, we don't know if we will continue to evolve at the same pace, but we don't need perfect technology to create value and disruption. AI might look like and feel like magic when it works, but it is not magic . Artificial intelligence (AI) is disrupting and transforming the way we learn. We might not realize it, but learning has already changed and is yet to change much more.