AgusLogs logoAgusLogs
Vault
  • Notes
  • Exercises
  • Sign in
  • Create account
AgusLogs logoAgusLogs

All notes

92 notes · 13 topics · 270 tags

CtrlK
The World of Software Engineering

What software is, what software engineering is, the types of software that exist, expertise areas, team roles, and where the field is heading with AI engineering and agents.

Software Engineering
Software
Artificial Intelligence
+3
Techniques
Git Worktrees for Parallel AI Agents

A practical guide to using Git worktrees so multiple AI agents can work in parallel on one machine, covering creation, runtime-state isolation, merging, cleanup, and a lifecycle automation script.

git
worktrees
ai-agents
+3
Software Architecture
Spec-Driven Development (SDD)

AI Spec-Driven Development enhances traditional Spec-Driven Development by integrating AI tools to automate and improve the specification process, increasing efficiency and reducing errors while ensuring clarity and alignment with user needs.

sdd
software-development
specifications
+2
Backend
tRPC (TypeScript Remote Procedure Call)

This blog discusses tRPC, a solution for building end-to-end type-safe APIs with TypeScript. It details the advantages and disadvantages of tRPC, as well as its integration with monorepos and introduces the tRPC Panel as a helpful tool for developers.

backend
typescript
type-safety
Software Architecture
Introduction to Software Architecture

An overview of software architecture — what it is, why it matters, the main architectural styles, and how to document and evolve it over time.

software
architecture
development
+2
Databases
Database ORM (Object-Relational Mapper)

This article explores the concept of Database Object-Relational Mappers (ORMs), outlining their benefits, drawbacks, and popular tools used in modern software development.

database
orm
object-relational-mapping
+1
Artificial Intelligence
Best Practices for Agentic Coding

A practical guide to agentic coding: what it actually means to delegate work to autonomous coding agents, and how to be effective at it through strong context, spec-and-plan workflows, rigorous verification, parallel agents with git worktrees, MCP integrations, and tool-agnostic habits.

agentic
coding
ai
+3
Techniques
Working with Dates

This article explores the complexities of working with dates in software engineering, covering formats, time zones, best practices, and useful libraries.

dates
time
software engineering
+1
Software Architecture
Microservices Architecture

A practical overview of microservices architecture: its defining characteristics, the benefits of independent deployment and scaling, the distributed-systems trade-offs, and best practices for adopting it without falling into the distributed-monolith trap.

architecture
backend
design
+3
Techniques
Containerisation with Docker

A practical guide to working with Docker: defining images with Dockerfiles, orchestrating multi-service apps with Docker Compose, hosting images in registries, scaling containers horizontally, and the everyday commands for managing containers.

docker
containers
devops
+2
Methodologies
CI/CD (Continuous Integration and Continuous Deployment)

A practical guide to Continuous Integration and Continuous Delivery/Deployment, covering what these practices mean, why they matter, the stages of a typical pipeline, and how to adopt them incrementally.

ci
cd
devops
+3
Techniques
Linters

Linters are static analysis tools that catch errors, enforce consistent style, and improve collaboration. This article explains what they are, why they matter, the most common options, and how to integrate them into your workflow.

linters
static-analysis
code-quality
+2
Software Architecture
CQRS (Command-Query Responsibility Segregation)

An in-depth look at Command-Query Responsibility Segregation: what it is, how the write and read sides differ, how to synchronize them, its relationship with event sourcing, and when the pattern is worth its added complexity.

cqrs
architecture
design-patterns
+2
Artificial Intelligence
Agentic Infrastructure

An overview of agentic infrastructure — why autonomous software agents break assumptions built for human users, and the identity, rate-limiting, observability, and API design primitives needed to support them.

agents
infrastructure
ai
+2
Software Architecture
Event-Driven Architecture

A practical technical guide covering what EDA is, its benefits and drawbacks, when to use it, and how to implement it on AWS.

Software Architecture
Monorepos & Polyrepos

An in-depth look at monorepo and polyrepo strategies in software engineering — the trade-offs each makes, when to use which, the tooling that makes them scale, and how to migrate between them.

monorepo
polyrepo
software-architecture
+3
Software Architecture
Multi-Tenant vs Single-Tenant Architecture

An overview of single-tenant and multi-tenant architectures, comparing their isolation, cost, and operational trade-offs, with guidance on choosing between them and common data isolation strategies.

tenancy
multi-tenant
single-tenant
+2
Software Architecture
Load Balancers

An overview of load balancers in software architecture, covering Layer 4 vs. Layer 7, common balancing algorithms, health checks and failover, and deployment patterns.

load balancing
architecture
scalability
+2
Software Architecture
Hexagonal Architecture: Building Software That Survives Change

A deep dive into hexagonal (ports and adapters) architecture: what problem it solves, how driving and driven ports work, a full worked example in TypeScript, and guidance on testing and trade-offs.

architecture
hexagonal
ports-and-adapters
+3
Backend
Session-Based Auth

An explanation of session-based authentication: how the login flow works, where sessions are stored, the security considerations around session cookies, and how the approach compares to token-based auth.

authentication
sessions
security
+2
Backend
Token-Based Auth

An introduction to token-based authentication: how the login-and-token flow works, what JWTs carry, the role of access and refresh tokens, key security trade-offs, and when to use the pattern.

authentication
jwt
security
+2
Methodologies
Test-Driven Development (TDD)

A practical guide to Test-Driven Development — the Red-Green-Refactor loop, why it's really about design, common pitfalls, and how to apply TDD effectively when working with coding agents.

tdd
testing
methodology
+2
Databases
Soft Deletes vs Hard Deletes

An overview of soft deletes versus hard deletes in databases, covering how each works, their trade-offs around recovery, compliance, constraints, and performance, and guidance on when to use each.

databases
data-modeling
soft-delete
+2
Blockchain
Understanding Blockchain: Use Cases, Smart Contracts, and Best Practices

An introduction to blockchain technology covering its core mechanics, real-world use cases, how smart contracts work, the main development frameworks, deployment pipelines, contract versioning and upgradeability, and best practices for building safely.

blockchain
smart-contracts
solidity
+4
Backend
Passwordless Auth

An introduction to passwordless authentication — what it is, the common approaches (magic links, OTP, and passkeys), and how to implement email magic links and WebAuthn passkeys.

authentication
security
passwordless
+2
Infrastructure
Mastering iOS App Deployment: Environments, TestFlight, Versioning & Release Trains

An exhaustive guide to iOS app deployment covering environment separation, TestFlight internal and external testing, when to send builds through Beta and App Store review, version and build number management, and the release train model for predictable shipping.

ios
deployment
testflight
+4
Artificial Intelligence
Prompt Injection: Defending LLMs and Agentic Systems

An overview of prompt injection in LLMs and agentic systems: how direct and indirect injection work, why tool-using agents raise the stakes, and the layered defenses and best practices for containing the risk in modern software.

llm
security
prompt-injection
+2
Methodologies
Code Review: Practices, AI Assistance, and Workflow Integration

An overview of why code review matters, practical best practices for authors and reviewers, how to use AI agents as a first-pass reviewer while keeping human judgment in the loop, and how review fits into a workflow of branches, environments, and pull requests.

code review
best practices
ai
+3
Techniques
Git Merging Strategies: Merge, Squash, and Rebase in Practice

A practical guide to Git integration strategies — merge commits, squash-and-merge, and rebase — covering when to use each, how branch and environment topology should drive the choice, and how to revert changes safely.

git
version-control
best-practices
+3
Software Architecture
The Inbox and Outbox Patterns in Event-Driven Architectures

A deep dive into the transactional outbox and inbox patterns for reliably publishing and consuming events in event-driven systems, covering the dual-write problem, relay strategies, idempotent consumers, and operational concerns with SQL and TypeScript examples.

event-driven
outbox-pattern
inbox-pattern
+4
Infrastructure
Over-the-Air Updates in Mobile Development

An overview of over-the-air (OTA) updates in mobile development: what they are, why teams use them, and how they work on iOS, Android, and React Native.

ota
mobile
react-native
+3
Frontend
Understanding Local Storage in Web Development

A conceptual and practical guide to browser local storage: what it is, how it compares to session storage and cookies, the JavaScript API, cross-tab syncing, and real-world use cases like theme preferences, form drafts, and caching.

local-storage
javascript
web-development
+2
Frontend
Understanding Cookies in Web Browsers

An introduction to how cookies work in web browsers, their key attributes and security flags, and a practical JavaScript example that persists a user's theme preference.

cookies
javascript
web-development
+3
Infrastructure
Testing Cloud Solutions Locally with LocalStack

A practical, in-depth guide to using LocalStack to emulate AWS services on your own machine — covering setup, pointing the SDK and CLI at the local endpoint, writing fast integration tests, running real infrastructure-as-code locally, and knowing the emulator's limits.

localstack
aws
testing
+4
Security
Verifying Humans on the Web

An overview of the mechanisms used to distinguish humans from bots in web applications — from traditional CAPTCHAs to behavioral scoring, cryptographic attestation, proof-of-work, and possession-based verification — with the trade-offs of each.

security
captcha
bots
+3
Tooling
Git

An introduction to Git, the distributed version control system: how it stores snapshots, the three states of your files, branching and merging, working with remotes, and a practical everyday workflow.

git
version-control
workflow
+2
Techniques
A/B Testing in Software Engineering

An introduction to A/B testing for software engineers, covering experiment design, implementation patterns, result interpretation, and when not to use it.

a-b-testing
experimentation
metrics
+2
Frontend
Optimistic Updates in React for Snappier UX

A practical guide to optimistic updates in React — what they are, when to use them, and how to implement them with useState, the useOptimistic hook, and React Query, including edge cases and trade-offs.

react
ux
optimistic-updates
+2
Infrastructure
Kubernetes

An extensive guide to Kubernetes covering why it exists, its architecture, core workload objects, configuration and storage, scaling and resilience, and practical cluster operations.

kubernetes
k8s
containers
+3
Frontend
Understanding the React Compiler

An overview of the React Compiler: what it does, how it automatically memoizes components at build time, how to adopt it incrementally, and the trade-offs to keep in mind.

react
react-compiler
performance
+2
Infrastructure
Terraform

An extensive practical guide to Terraform covering core concepts, the standard workflow, variables, modules, remote state management, and production best practices, with annotated HCL and CLI examples throughout.

terraform
infrastructure-as-code
devops
+2
Artificial Intelligence
Harness Engineering

An introduction to harness engineering: the discipline of building the orchestration, verification, and control systems that let AI agents do reliable work, and why it now matters more than the model itself.

ai
agents
harness-engineering
+4
Software Architecture
Infrastructure as a Service (IaaS)

An in-depth guide to Infrastructure as a Service: what it is, the shared responsibility model, its core building blocks, how it compares to PaaS and SaaS, and the benefits, trade-offs, and decision criteria for adopting it.

iaas
cloud
infrastructure
+2
Frontend
Service Workers

An extensive guide to service workers in web development, covering their lifecycle, registration, caching strategies, and background features using JavaScript and TypeScript.

service-workers
javascript
typescript
+3
Infrastructure
Understanding Service Level Agreements (SLAs)

An overview of Service Level Agreements: what they are, their core components, how they relate to SLOs and SLIs, how availability is measured, and best practices for writing meaningful, enforceable agreements.

sla
reliability
slo
+2
Infrastructure
Environments

A practical guide to software environments: the common types, how to provision them as code, managing environment variables and secrets, mapping git branches to environments, and how CI/CD automates promotion between them.

environments
devops
ci-cd
+3
Databases
Deleting Data

A practical tour of the ways systems delete data — hard deletes, soft deletes, and audit/event logs — including their trade-offs, foreign key and uniqueness gotchas, GDPR-style right-to-erasure concerns, and how to choose between them.

databases
data-modeling
soft-delete
+3
Frontend
React Context API

An introduction to React's Context API — how it works, the create/provide/consume pattern, a practical note-editor example, and guidance on performance pitfalls and when to reach for something else.

react
context-api
state-management
+2
Software Architecture
Resilience Patterns

An overview of the core resilience patterns used to build fault-tolerant distributed systems, including timeouts, retries with backoff, circuit breakers, bulkheads, and graceful degradation.

resilience
distributed-systems
reliability
+2
Testing
Automated Testing with Vitest

A practical guide to automated testing with Vitest in TypeScript and JavaScript projects, covering setup, writing tests, mocking, coverage, and CI integration.

vitest
testing
typescript
+2
Databases
Database Concurrency

A practical guide to database concurrency: transactions and isolation levels, the anomalies they prevent, pessimistic vs. optimistic locking, deadlock handling, and best practices for correctness under load.

databases
concurrency
transactions
+3
Tooling
Biome: A Fast Toolchain for Web Projects

An introduction to Biome, the fast Rust-based toolchain that unifies formatting and linting for JavaScript and TypeScript projects, covering its features, configuration, and adoption trade-offs.

biome
linting
formatting
+3
Frontend
Understanding React Hooks

An introduction to React hooks covering useState, useEffect, useContext, useMemo, useCallback, and custom hooks, with practical code examples and best practices.

react
hooks
frontend
+3
Infrastructure
Blue-Green Deployments for Zero Downtime

An explanation of the blue-green deployment strategy: how running two identical environments and flipping traffic between them achieves zero-downtime releases, plus database and rollback considerations.

deployments
zero-downtime
devops
+2
Databases
Redis

A practical overview of Redis covering its in-memory data structures, persistence options, and the range of deployment models from standalone instances to Sentinel, Cluster, and managed cloud services.

redis
cache
in-memory
+3
Infrastructure
Canary Deployments Explained

An overview of canary deployments — how they gradually shift traffic to a new release — compared with blue-green deployments across blast radius, rollback speed, cost, and complexity.

deployments
canary
blue-green
+3
Databases
Backward-Compatible Database Migrations

A practical guide to keeping database migrations backward-compatible during rolling, blue-green, and canary deployments, centered on the expand-and-contract pattern, safe change types, and non-blocking backfills.

databases
migrations
deployment
+2
Databases
Database Indexes

A deep dive into database indexes: how B-tree and specialized index types work, composite and covering indexes, the write and storage costs they impose, and a practical strategy for choosing them.

databases
indexes
performance
+3
Software Architecture
The Best-Effort Design Principle

An explanation of the best-effort design principle in software engineering — trading strong guarantees for latency, availability, and scale — illustrated with AWS services like S3, SQS, and CloudWatch, plus guidance on designing your own best-effort APIs.

design-patterns
distributed-systems
aws
+3
Security
SQL Injection

An introduction to SQL injection: how it works, a concrete login-bypass example, and how to prevent it with parameterized queries and defense-in-depth practices.

sql-injection
security
databases
+2
Databases
Understanding PgBouncer

An introduction to PgBouncer, the lightweight PostgreSQL connection pooler: why connection pooling matters, its three pooling modes, basic configuration, and production operating tips.

pgbouncer
postgresql
databases
+2
Security
HIPAA Compliance

A practical guide to HIPAA compliance for software engineers, covering what the law requires, the technical safeguards that affect codebases, and how to embed compliance into the development lifecycle.

hipaa
compliance
security
+3
Security
DDoS (Distributed Denial of Service)

An overview of Distributed Denial of Service attacks: how botnets and amplification make them work, the main categories of attack, and the layered mitigation strategies used to defend against them.

ddos
security
networking
+3
Software Architecture
VIPER Architecture Pattern

An introduction to the VIPER architecture pattern for building modular, testable client applications, covering its five components, how the layers communicate, and the trade-offs involved.

viper
architecture
ios
+2
Frontend
SSR (Server-Side Rendering)

An explanation of Server-Side Rendering: what it is, why it improves performance and SEO, how to do it with raw React, and how Next.js makes it practical with server components, streaming, and Suspense.

ssr
react
nextjs
+3
Software Architecture
Microfrontends

An in-depth guide to microfrontends: what they are, why teams adopt them, the main composition strategies, and how to build them with Next.js on Vercel's path-based microfrontends platform.

microfrontends
frontend
architecture
+3
Artificial Intelligence
Large-Language Models (LLMs)

An in-depth introduction to large language models: how the Transformer architecture works, how models are trained and aligned, their capabilities and failure modes, and practical guidance for prompting and building with them.

llm
transformers
machine-learning
+2
Frontend
Composition Pattern in React.js

A practical guide to React's composition patterns — children, named slots, compound components, and render props — with code examples and guidance on when to use each.

react
composition
patterns
+2
Frontend
Provider Pattern in React.js

An explanation of the provider pattern in React.js — combining the Context API with a wrapper component and custom hook — illustrated with theme and auth examples, plus notes on performance and when to use it.

react
javascript
context-api
+2
React Native
Expo Deployment

A practical, end-to-end guide to deploying Expo apps with the modern EAS toolchain — configuring build profiles, managing credentials, building and submitting to the stores, shipping OTA updates, and automating it all with GitHub Actions.

expo
eas
deployment
+5
Backend
Webhooks

A practical guide to webhooks: what they are, why they beat polling, and how to receive, verify, and reliably process events with code examples.

webhooks
api
backend
+2
Software Architecture
WebSockets

An in-depth guide to WebSockets — how the handshake and framing work, when to use them over polling or SSE, and a complete live collaborative cursor board example in Node.js, including reconnection, heartbeats, and scaling with a pub/sub backplane.

websockets
real-time
nodejs
+2
Artificial Intelligence
RAG (Retrieval-Augmented Generation)

A practical overview of Retrieval-Augmented Generation (RAG): how its retrieval and generation stages fit together, why it improves accuracy and freshness over standalone models, where it's applied, and the engineering trade-offs it introduces.

rag
nlp
ai
+3
Testing
Smoke Testing: Catching Broken Builds Before They Reach You

An introduction to smoke testing: a fast, broad verification that a build is stable enough for deeper testing, why it saves time, what to include, and how it fits in a CI pipeline.

smoke-testing
testing
ci
+2
Security
CORS: Cross-Origin Resource Sharing Explained

A practical guide to Cross-Origin Resource Sharing: what it is, how the browser preflight handshake works, the key CORS headers, and how to configure it correctly in Next.js.

web
client-server
cors
+2
Security
SOC 2

An in-depth guide to SOC 2 for software teams: what the framework is, the five Trust Services Criteria, Type I vs Type II reports, how the audit works, and a step-by-step plan for achieving and maintaining compliance.

soc2
compliance
security
+2
Backend
Deployment with Kamal

This article discusses the deployment of applications using Kamal, covering its pros, cons, setup instructions, and integration with load balancers and CI/CD.

deployment
kamal
Software Architecture
Back-Office & Front-Office

An explanation of the back-office and front-office concepts, how they differ in audience, permissions, and UX, and how a single shared backend can serve both surfaces without requiring separate servers.

architecture
back-office
front-office
+2
Software Architecture
Circuit Breaker

An overview of the circuit breaker resilience pattern: what problem it solves, its closed/open/half-open state machine, a minimal implementation, and how it combines with fallbacks, timeouts, and bulkheads.

resilience
distributed-systems
patterns
+2
Software Architecture
Agent-Native Architectures

A deep dive into agent-native architecture: designing systems that expose composable capabilities so agents can operate with the same power as humans, rather than bolting automation onto feature-based software.

artificial intelligence
agents
software architecture
+2
Frontend
Next.js Incremental Static Regeneration (ISR)

An in-depth look at Incremental Static Regeneration in Next.js: how stale-while-revalidate caching works, time-based versus on-demand revalidation, error handling, and when to choose ISR over fully static or dynamic rendering.

nextjs
isr
rendering
+2
Databases
Database Migrations

An in-depth guide to database migrations covering the core mechanics of versioned schema change, zero-downtime techniques for relational databases like expand-and-contract, and lazy versus eager strategies for non-relational stores.

databases
migrations
sql
+3
Databases
Database Transactions

An in-depth guide to database transactions, covering the ACID properties, isolation levels and their anomalies, concurrency control mechanisms like locking and MVCC, practical usage patterns, and the challenges of distributed transactions.

databases
transactions
acid
+2
Software Architecture
Event Sourcing

An in-depth engineering guide to the event sourcing pattern: how it works, its core building blocks, projections and CQRS, the hard operational trade-offs, and when to apply it.

event-sourcing
cqrs
architecture
+3
Testing
Regression Testing

An introduction to regression testing: what it is, why it protects the value of shipped software, how to run it in CI with sensible test selection, and how to keep the suite healthy over time.

testing
regression testing
ci
+2
Testing
Sanity Testing

An overview of sanity testing: a narrow, focused check that verifies a specific change or bug fix works, when to use it, and how it differs from smoke testing.

testing
qa
sanity-testing
+2
Backend
File Storage with AWS S3 (Simple Storage Service)

A practical guide to Amazon S3 covering buckets, key/file structure, security best practices, using the AWS SDK v3, generating presigned URLs for direct client uploads, and configuring CORS.

aws
s3
storage
+7
Software Architecture
MCP Servers

An introduction to Model Context Protocol servers: what they are, their core primitives (tools, resources, prompts), how they communicate over JSON-RPC, and practical advice for building and operating them.

mcp
ai
llm
+3
Frontend
Zustand

An introduction to Zustand, the minimal React state management library, covering store creation, selector-based subscriptions, middleware, and when to use it.

zustand
react
state-management
+2
Backend
Cron Jobs

An introduction to cron jobs in software engineering: how to read cron expressions, schedule tasks at the OS and application level, and design reliable, idempotent jobs with coding examples.

cron
scheduling
automation
+2
Infrastructure
GitHub Actions

A practical guide to mastering GitHub Actions, covering core concepts, events, jobs and matrices, secrets and security, caching, reusable workflows, and best practices.

github-actions
ci-cd
automation
+2
Databases
N+1 Query Problem

An explanation of the N+1 query problem—where fetching a list triggers one extra query per row—covering how to spot it in query logs and how to fix it with eager loading and batched queries.

databases
performance
orm
+1
AGUSLOGS
AgusLogs logoAgusLogs

Notes on software architecture, system design and product engineering, written by Agustín Sánchez.

Explore

  • Home
  • All notes
  • Sign in
  • API reference

Also by DIZENZ

  • Archicise
  • Mingüini
  • programaConNosotros
© 2026 AgusLogs. Elevate your engineering craft.