Software Engineering

Software engineering is the application of engineering principles and practices to the development of software system. Though there are useful, fine-grained semantic differences between "software development" and "software engineering", I generally use the two terms interchangeably.

Deeper Knowledge on Software Engineering

The Cathedral and the Bazaar

An essay and a book on software engineering based on experience with Linux kernel development

Software Pipelines (CI/CD)

Continuous Integration and Continuous Deployment (CI/CD)

Computer Languages

Computer Languages: How humans tell computers what to do


Packaging applications with all of their dependencies

Data Engineering

Engineering approaches to data management


Organized collections of structured data


The philosophies, practices, and technologies for accelerated software time to value

DORA's Four Key Metrics

The four key metrics for software development team performance, as identified by DevOps Research and Assessment (DORA)

DevOps Research and Assessment (DORA)

A research program at Google Cloud, notable for the State of DevOps reports

Linus's Law

Given enough eyeballs, all bugs are shallow

Software Development Lifecycle (SDLC)

The lifecycle of software applications, from concept to revenue

Software Architecture

The practice of organizing software components in a complex system

Software Testing

The art and science of testing software

SPACE Framework

SPACE Framework to Measure Developer Productivity: Satisfaction, Performance, Activity, Communication

Design Patterns in Software Engineering

Common solutions to common problems in software engineering

System Qualities and Nonfunctional Requirements (NFRs)

Constraints on how software is engineered

Version Control

A distributed version-control system to track changes, typically for software development projects

Visual Studio Code (VS Code)

An extensible code editor for software engineers

Web Development

Tools and techniques for building websites and web-applications

Broader Topics Related to Software Engineering


Apply science to create technology

Information Technology (IT)

The principles, practices, and technologies used to build information systems

Software Engineering Knowledge Graph