
Articles by Pedro Cunha

Spreadsheet, off-the-shelf ERP or custom software: the answer is almost always more than one
A spreadsheet, an off-the-shelf ERP and custom software are not competing for the same spot: they sit in different layers of the same operation, and almost every healthy company runs all three at once. The expensive mistake is not picking the wrong one, it is changing layers when you did not have to: at a five-location gym chain the off-the-shelf ERP stayed as the source of every sale, and the custom system simply started reading from it every five minutes. The spreadsheet, in turn, stops working for three objective reasons, and none of them is size.
13 min read
13 min read

The rule that changes every week does not belong in your code
Any change request that needs a deploy to swap a number, a deadline or a limit is an architecture decision that was made wrong earlier. In SheepGen, genetic interpretation became 1,103 rules registered as data, and a new marker recalculates all 735 flock reports in 4 minutes, with no developer in the loop. But parameterizing without a way to verify is worse than code: the same engine was validated against an independent implementation, with zero divergence across 55,050 readings.
16 min read
16 min read

What decides the platform for a company website
The platform decision for a company website in 2026 is no longer builder versus custom: it is AI generator versus professional development. We no longer recommend a site builder for any new project, and for a small site with no personal data and no search as a sales channel, an AI generator is enough. The case leaves the generator the day someone becomes accountable for performance, SEO, GEO, AEO, security and data protection.
11 min read
11 min read

How to make AI follow your company's method
Constraining a model to your company's methodology is not writing a better prompt or training your own model — it is taking out of its hands whatever cannot go wrong. Four layers: the method written outside the prompt and read at run time, the arithmetic in code, the banned list along with the vocabulary that replaces it, and a brake that stops the action instead of asking for good behaviour. In the Sistema Cuidar report that means AI writes 5 of the 15 sections and not a single number in the document came from a language model.
15 min read
15 min read

Who owns the App Store account: you or the company building your app
Owning the app is three things decided in three different places: the code, in the contract; the store listing, in the developer account; and the ability to ship the next version, in the signing certificates — and whoever controls the account controls the product. What matters isn't which account the app is born in, but which account it ends up in, whether yours started being opened on day one, and whether the migration is a planned step in the contract. We've run that full cycle: the transfer preserves ratings and your installed base, and it breaks specific things that need to be mapped beforehand.
11 min read
11 min read

Integrating with an ERP: what the other system decides for you
The architecture of an integration is not your choice: it is imposed by what the other system offers. Across three integrations we built — NextFit, Altimus and Controlle — the same question (what changed over there?) had three different answers, because the sources were different. And whatever the source does not provide becomes a limit on your product, not just a line of code.
15 min read
15 min read

What can be salvaged from AI-generated code
What breaks in an AI-built product isn't ugly code: it's the boundary. In the app we audited, all eight server endpoints accepted unauthenticated requests — payment endpoints included — and any user's private data was readable by everyone else. None of it required a rewrite: the client kept shipping with the same AI after the foundation was fixed.
12 min read
12 min read

When a legacy system needs replacing — and when it doesn't
Old, ugly or slow is not a reason to replace: of the nine systems that were already running when we arrived, we replaced two and still maintain five. The signs that actually decide are different ones — nobody can change the system, you lost access to your own product, the team has already built a path around it. And before any of them, an audit of what you already have: in a recent case, three of the client's four requests already existed in the current system, switched off.
22 min read
22 min read

What changes in a system when the app has to work with no signal
Offline-first is not an app feature: it is a decision that changes the database, the server and the product scope — above all, what does not go onto the device. And an app that promises offline and freezes is worse than an honestly online one: the difference between the two lives in details that almost never show up in a proposal.
16 min read
16 min read