About me
Hello, I’m Arthur.
I'm a Software Engineer based in Piauí, Brazil.

Most of my professional experience has been in Front-end development, working with React, Angular, Vue, and Astro. I've worked at an AI startup and a government organization, as well as on freelance projects across different domains. These experiences gave me the opportunity to work with different products, users, constraints, and development environments.
These experiences shaped the way I think about software. Building an interface is rarely just about writing UI code; it also means understanding the problem, translating requirements into useful experiences, and making decisions that balance usability, accessibility, consistency, and maintainability.
From Front-end to Back-end
Over time, my curiosity moved beyond the interface and toward the systems behind it. I've been increasingly focused on Back-end development, primarily working with Node.js and exploring tools and frameworks such as NestJS, Fastify, and Express. PostgreSQL is currently my main database.
I also enjoy exploring other ecosystems and codebases to understand how different technologies approach similar problems. I've worked with or studied Python and FastAPI, Java and Spring Boot, and PHP and Laravel.
Software Architecture
This broader perspective naturally led me to Software Architecture and to questions that go beyond individual features: how should a system be structured? How should its components communicate? How do today's technical decisions affect the system as it grows?
I've been studying and applying concepts such as Clean Architecture, SOLID, Design Patterns, messaging, caching, security, observability, and distributed systems.
What interests me most is the reasoning behind these decisions. I don't see architecture as a collection of patterns or abstractions to apply by default. Good engineering starts with understanding the problem, considering the constraints, evaluating the trade-offs, and choosing an approach that fits the context.
Education
I hold a Bachelor's degree in Software Engineering. During college, I explored different areas of software development while taking on roles that helped me develop both technical and communication skills.
I worked as a teaching assistant for Software Requirements and Modeling, helping students understand requirements engineering, software modeling, and system design. Teaching these subjects strengthened my ability to explain technical concepts and made me more attentive to the reasoning behind software decisions.
I also participated in programming competitions as a competitor and volunteered in organizing these events, further developing my problem-solving skills and gaining experience working as part of an event team. In academic full-stack projects, I also took on technical leadership responsibilities, gaining experience with architecture, collaboration, and technical decision-making.
My academic research focused on the influence of Design Systems on digital public services, particularly how reusable components and visual consistency can affect the development of these systems.
What I'm interested in
Today, I'm particularly interested in Full-stack Development and Software Architecture, with a focus on understanding how different parts of a system come together to build reliable, maintainable, and scalable software.
I learn mostly by building things, reading books and codebases, studying different approaches, and trying to understand why a solution works rather than simply how it works.
I'm still exploring different areas of software engineering, but I'm increasingly drawn to the challenges of designing systems, making deliberate technical decisions, and keeping complexity under control as applications evolve.