Lucas Carvalho · software architecture, backend, and tooling

Software architecture for systems that keep changing.

I write about architecture, APIs, integrations, and developer tooling. This site gathers the ideas, patterns, and trade-offs I've encountered while building software — an open notebook for anyone interested in designing systems that can grow without becoming harder to change.

I write to explore decisions, document lessons learned, and make sense of their trade-offs.

topics

Notes on building software that can change.

Writing and projects around concrete engineering problems: reducing coupling, making contracts explicit, removing operational friction, and creating room for code to keep evolving.

Architecture and evolution

Separating domain, entry points, integration, and infrastructure so the next change does not cut through the entire system.

APIs and integrations

REST contracts, validation, error handling, and external flows with less invisible coupling.

Backend and tooling

Services, automations, internal tools, and routines that remove repetitive work from the path.

Frontend when it matters

TypeScript and React interfaces for products, dashboards, and operations where clarity matters more than decoration.

way of thinking

Pragmatism with technical depth.

Architecture matters only when it improves real maintenance. Everything else is a nice diagram that ages at the first incident.

01

Read the system before proposing shape

Understand couplings, critical paths, friction points, and old decisions that still influence today’s cost.

02

Draw boundaries that fit reality

Good architecture is not the most elaborate one. It makes explicit where rules, data, integration, and interface should live.

03

Evolve through safe cuts

Small, testable, documented changes reduce risk without requiring a heroic rewrite.

04

Automate what should not depend on memory

Environments, checks, commands, code generation, and pipelines need to be reproducible for the team to trust the process.

public repertoire

Small laboratories, visible decisions.

Public projects here work as a record of judgment: reproducible environments, extensibility, ergonomics, and reduction of unnecessary abstraction.

Main personal project architecture · extensibility

Orkestra

An experimental PHP framework and design laboratory for DI, service providers, MVC, and extensibility — more interested in clear boundaries than convention for convention’s sake.

Orkestra layer database · conventions · Orkestra

Sonata

An extra layer on top of Orkestra, adding database work and a more opinionated application surface while keeping the same concern for explicit boundaries.

Reproducible environment tooling · tests · DX

WP Setup

Docker, FrankenPHP, WP-CLI, PHPUnit, Pest, Xdebug, Dev Containers, and Node applied to a WordPress codebase treated as long-term software.

Go experiment http · routing · simplicity

go4web

An exploration of HTTP, routing, and small-framework ergonomics. An exercise in reducing abstraction until it becomes understandable again.