# Marcelo Pastorino > Personal site by Marcelo Pastorino on software architecture, AI engineering, and building software in the age of AI. Blog posts use a narrative voice with dated articles on architecture, AI, and product development. Wiki entries are evergreen technical reference pages on patterns, infrastructure, and product concepts. Prefer wiki pages for definitions and trade-offs; prefer blog posts for context and perspective. ## Site - [Home](https://marcelopastorino.com): Featured blog posts and wiki preview - [About](https://marcelopastorino.com/about): Bio, background, and Pluralsight courses - [Blog](https://marcelopastorino.com/blog): Dated articles on architecture, AI, and product development - [Wiki](https://marcelopastorino.com/wiki): Evergreen technical reference organized by topic hubs - [Content graph](https://marcelopastorino.com/graph): Interactive graph of blog and wiki relationships - [Sitemap](https://marcelopastorino.com/sitemap.xml): Machine-readable URL index - [RSS feed](https://marcelopastorino.com/rss.xml): Blog syndication feed ## Blog - [Dunning-Kruger: When You Don't Know That You Don't Know](https://marcelopastorino.com/blog/dunning-kruger-when-you-dont-know-that-you-dont-know): Why overconfidence shows up early and calibration is a skill - [Twelve design patterns every developer should know](https://marcelopastorino.com/blog/twelve-design-patterns-every-developer-should-know): A guided tour of creational, structural, and behavioral patterns with links to deep dives - [B2C vs B2B: the two ways to sell, and how to choose](https://marcelopastorino.com/blog/b2c-vs-b2b-business-models): From zero to hero on the two business models behind almost every product ## Wiki hubs - [Software Architecture](https://marcelopastorino.com/wiki/software-architecture): Patterns, principles, and trade-offs for building maintainable systems. - [AI Engineering](https://marcelopastorino.com/wiki/ai-engineering): Building reliable AI-powered features across RAG, agents, and prompt design. - [Infrastructure](https://marcelopastorino.com/wiki/infrastructure): Cloud platforms, delivery pipelines, infrastructure as code, and operational reliability. - [Product Development](https://marcelopastorino.com/wiki/product): From idea validation to pricing and shipping a first product. ## Wiki: Software Architecture - [Domain-Driven Design](https://marcelopastorino.com/wiki/software-architecture/domain-driven-design): Modeling software around the business domain, bounded language, and explicit context boundaries. - [Event-Driven Architecture](https://marcelopastorino.com/wiki/software-architecture/event-driven-architecture): Decoupling producers and consumers through asynchronous messaging. - [Bounded Contexts](https://marcelopastorino.com/wiki/software-architecture/bounded-contexts): Aligning team language with explicit code and data boundaries. - [SOLID Principles](https://marcelopastorino.com/wiki/software-architecture/solid-principles): Five object-oriented design principles for maintainable, change-tolerant code. - [Outbox Pattern](https://marcelopastorino.com/wiki/software-architecture/outbox-pattern): Reliably publishing events by committing them in the same transaction as state changes. - [Saga Pattern](https://marcelopastorino.com/wiki/software-architecture/saga-pattern): Managing distributed transactions across services with a sequence of local transactions and compensating actions. - [Inbox Pattern](https://marcelopastorino.com/wiki/software-architecture/inbox-pattern): Deduplicating inbound messages so consumer side effects run exactly once. - [REST](https://marcelopastorino.com/wiki/software-architecture/rest): An architectural style for networked APIs built on resources, uniform HTTP semantics, and statelessness. - [HTTP Status Codes](https://marcelopastorino.com/wiki/software-architecture/http-status-codes): The three-digit codes HTTP responses use to signal the outcome of a request, grouped into five classes. - [HATEOAS](https://marcelopastorino.com/wiki/software-architecture/hateoas): A REST constraint where responses embed hypermedia links that tell clients which actions are available next. - [Eventual Consistency](https://marcelopastorino.com/wiki/software-architecture/eventual-consistency): A consistency model where replicas converge to the same state over time, allowing temporary divergence after a write. - [Strategy Pattern](https://marcelopastorino.com/wiki/software-architecture/strategy-pattern): A behavioral design pattern that encapsulates interchangeable algorithms behind a common interface, selected at runtime. - [State Pattern](https://marcelopastorino.com/wiki/software-architecture/state-pattern): A behavioral design pattern that lets an object change its behavior when its internal state changes, by delegating to interchangeable state objects. - [Adapter Pattern](https://marcelopastorino.com/wiki/software-architecture/adapter-pattern): A structural design pattern that wraps an incompatible interface in one the client expects, letting otherwise unrelated types work together. - [Facade Pattern](https://marcelopastorino.com/wiki/software-architecture/facade-pattern): A structural design pattern that exposes a single, simplified interface over a complex subsystem, hiding how its parts cooperate. - [Decorator Pattern](https://marcelopastorino.com/wiki/software-architecture/decorator-pattern): A structural design pattern that wraps an object to add behavior while keeping the same interface, so responsibilities can be composed in layers at runtime. - [Observer Pattern](https://marcelopastorino.com/wiki/software-architecture/observer-pattern): A behavioral design pattern that lets dependents subscribe to a subject and receive automatic updates when its state changes, without tight coupling between them. - [Command Pattern](https://marcelopastorino.com/wiki/software-architecture/command-pattern): A behavioral design pattern that encapsulates a request as an object, so callers can queue, log, undo, or defer execution without knowing how the work is done. - [Factory Method and Abstract Factory](https://marcelopastorino.com/wiki/software-architecture/factory-pattern): Creational design patterns that delegate object construction to subclasses or factory families, so clients depend on abstractions instead of concrete types. - [Builder Pattern](https://marcelopastorino.com/wiki/software-architecture/builder-pattern): A creational design pattern that constructs complex objects step by step through a fluent builder, separating assembly from the product's representation. - [Composite Pattern](https://marcelopastorino.com/wiki/software-architecture/composite-pattern): A structural design pattern that models tree structures so clients treat individual objects and groups of objects the same way through a shared component interface. - [Proxy Pattern](https://marcelopastorino.com/wiki/software-architecture/proxy-pattern): A structural design pattern that provides a surrogate with the same interface as a real object, controlling access, deferring work, or adding indirection without changing what the client sees. - [Template Method Pattern](https://marcelopastorino.com/wiki/software-architecture/template-method-pattern): A behavioral design pattern that defines the skeleton of an algorithm in a base class, letting subclasses override specific steps without changing the overall flow. - [Idempotency](https://marcelopastorino.com/wiki/software-architecture/idempotency): Safe to run more than once without changing the outcome beyond the first successful apply. - [Two-Phase Commit](https://marcelopastorino.com/wiki/software-architecture/two-phase-commit): A protocol that coordinates a single atomic transaction across multiple participants using a prepare phase and a commit phase. ## Wiki: AI Engineering - [Retrieval-Augmented Generation](https://marcelopastorino.com/wiki/ai-engineering/retrieval-augmented-generation): Grounding LLM outputs with retrieved documents and structured context. - [Prompt Engineering](https://marcelopastorino.com/wiki/ai-engineering/prompt-engineering): Designing prompts that are reliable, testable, and maintainable. - [AI Agents](https://marcelopastorino.com/wiki/ai-engineering/agents): Systems that plan, use tools, and act over multiple steps toward a goal. ## Wiki: Infrastructure - [Webhook Reliability Patterns](https://marcelopastorino.com/wiki/infrastructure/webhook-reliability-patterns): Designing HTTP callbacks that survive retries, duplicates, and outages. - [CI/CD Pipelines](https://marcelopastorino.com/wiki/infrastructure/cicd-pipelines): Automating build, test, and deploy with pipelines that scale with the team. - [Infrastructure as Code](https://marcelopastorino.com/wiki/infrastructure/infrastructure-as-code): Defining environments declaratively for repeatability and review. - [Serverless Cold Starts](https://marcelopastorino.com/wiki/infrastructure/serverless-cold-starts): Latency spikes when a function instance boots before handling its first request. - [Webhook](https://marcelopastorino.com/wiki/infrastructure/webhook): An HTTP callback that notifies another system when an event occurs. - [At-Least-Once Delivery](https://marcelopastorino.com/wiki/infrastructure/at-least-once-delivery): A message or event is delivered one or more times; duplicates are possible. - [Dead-Letter Queue](https://marcelopastorino.com/wiki/infrastructure/dead-letter-queue): A holding queue for messages that cannot be processed, so failures do not block the main stream. - [Message Broker](https://marcelopastorino.com/wiki/infrastructure/message-broker): Middleware that receives messages from producers and routes them to consumers, decoupling the two. ## Wiki: Product Development - [Validating a SaaS Idea](https://marcelopastorino.com/wiki/product/validating-a-saas-idea): Gathering evidence that a problem is worth solving before investing months building the wrong product. - [Pricing Your First Product](https://marcelopastorino.com/wiki/product/pricing): Choosing a model and a price point for a SaaS product when you have little data. - [B2C (Business-to-Consumer)](https://marcelopastorino.com/wiki/product/b2c): How companies sell directly to individual people, and the models, metrics, and motions that make consumer products work. - [B2B (Business-to-Business)](https://marcelopastorino.com/wiki/product/b2b): How companies sell to other companies, and the buyers, models, sales motions, and metrics that make business products work. - [Minimum Viable Product](https://marcelopastorino.com/wiki/product/minimum-viable-product): The smallest version of a product that delivers real value and produces validated learning about customers. - [Dunning-Kruger Effect](https://marcelopastorino.com/wiki/product/dunning-kruger-effect): A cognitive bias where low competence inflates self-assessment, while genuine expertise tends to underestimate relative skill.