Sun Jul 12 2026

Soul, muscle, brain and bones

Recently, I took a civil service exam for a tech position, and while studying for it, I felt like I went a little bit deeper into my understanding of this huge and beautiful area. As someone who loves to share cool stuff, I wanted to write about the main roles in a modern software production line, roles that can be a bit confusing to differentiate, and whether there is even a point in doing so. Let’s look at Design, Development, Engineering, and Architecture:

🎨 Design

Design is conceptual and sits on the front line. It doesn’t get too bogged down in execution or technical limitations initially; instead, it focuses on answering: What do people expect from this? Which people? Why?, and What’s the atmosphere and flavor that would go around it? It can be very technical, aiming for business effectiveness, but also fun, exploratory, and innovative. If you want to be a designer, some key things you might want to pay attention to are typography, colors, Figma, user experience and interface (UX/UI), user interviews, personas, prototypes and A/B testing.

💻 Development

This is where the code is written and where the final product becomes tangible and gains body. It is the fundamental building block of the production line. Usually there’s more need of developers than designers, engineers or architects because development is the most granular, often taking the most time and having to deal with a lot of errors and misbehavior. The developer builds, tests, and ships. Without the developer, everything else is just a plan or a dream. If you want to be a developer, you will have to know some (or a lot) about programming languages, front-end, back-end, APIs, data fetching, unit tests, end-to-end tests, version control (Git), state management etc.

⚙️ Engineering

An engineer is often mistaken for “just an excellent developer,” and that confusion is somewhat justified. “Development” is often used as a broad, generalist term, and from inside a company many experienced developers eventually earn the job title of “Engineer”. However, engineering is not just about making it work, it’s about making it performant, reliable, scalable, and safe in real and diverse situations. Engineers think about trade-offs, optimization, and automation, both at user’s and developer’s scales. If you want to be an engineer, you probably want to learn about continuous integration, development, and deployment (CI/CD), which are all parts of DevOps, as well as observability, caching, concurrency, load balancing, pentesting, algorithms and so on.

🏗️ Architecture

Some call architecture “zoomed-out design” because it widens the view beyond visuals presented to the users or functionalities of individual services to aim for the big structure holding everything together. It focuses on long-term strategy and maintainability of the whole. The architecture defines the environment, tools and constraints that everyone else works within. More often than not, the architecture role is absorbed or diluted into other roles when the scale of the project isn’t massive and frightening enough, and it is rare to have a specialized architect on a smaller project. If you want to dive into applications and software architecture, you should start by searching for microservices vs. monolith patterns, cloud-native (AWS, Google Cloud, Azure), data governance, compliance, Zero Trust and disaster recovery.

But although these wanderings offers us a realistic understanding of creating a digital product today, it is important to notice that these are all very conceptual and not wrote in stone, one person or team might have to walk through more than one of these regions. If you are a founder, or just have a thirsty curiosity or an everlasting impulse to create, as I do, you maybe will be, at least a bit, a designer, an engineer, a developer and an architect. At the end of the day, It comes to each project or company to understand its needs and priorities whilst keeping their resources and management in check.

More about me