Section 16 · 19 Articles

Software Engineering Practices

Fundamental software engineering practices that produce maintainable, testable, and evolvable codebases over the long term.

SOLID Principles

Single responsibility, open/closed, Liskov substitution, interface segregation, dependency inversion.

Software Engineering Essential

Design Patterns

GoF creational, structural, and behavioral patterns with modern applicability.

Software Engineering Essential

Domain-Driven Design

Bounded contexts, aggregates, entities, value objects, and the ubiquitous language.

Software Engineering Essential

DDD Tactical Patterns

Repositories, factories, domain events, and anti-corruption layers.

Software Engineering Pattern

Test-Driven Development

Red-green-refactor cycle, test pyramid, and TDD as a design technique.

Software Engineering Practice

TDD & BDD

Test-driven and behavior-driven development compared, with tooling examples.

Software Engineering Practice

Refactoring Patterns

Extract method, move field, replace conditional with polymorphism, and strangler fig.

Software Engineering Practice

Refactoring Strategy

Planning and executing large-scale refactoring safely in production codebases.

Software Engineering Strategy

Evolutionary Architecture

Building systems that can change safely — fitness functions and architectural fitness.

Software Engineering Architecture

Clean Architecture

Dependency rule, use cases, entities, and adapters — decoupling business logic from infrastructure.

Software Engineering Architecture

Technical Debt Management

Identifying, quantifying, and systematically addressing technical debt.

Software Engineering Practice

Code Review Practices

Effective code review — what to check, how to give feedback, and automation.

Software Engineering Practice

Code Review Standards

Establishing team standards for code quality, review turnaround, and automation gates.

Software Engineering Process

API-First Development

Designing APIs before implementation using OpenAPI and contract-first workflows.

Software Engineering Practice

Documentation Architecture

Docs as code, architecture decision records, and keeping documentation useful.

Software Engineering Practice

Test Pyramids

Unit, integration, and end-to-end test proportions for reliable, fast test suites.

Software Engineering Testing

Integration Testing

Testing component interactions in isolation — contract tests, consumer-driven contracts.

Software Engineering Testing

Contract Testing

Consumer-driven contract testing with Pact for microservice API compatibility.

Software Engineering Testing

Dependency Management

Version pinning, lock files, vulnerability scanning, and upgrade strategies.

Software Engineering Operations