27 notes · CC BY 4.0
Software Engineering
The research behind course 003: architecture, patterns, testing, DevOps, security, performance.
Working notes from the research behind the course: mechanisms, tables, failure modes and sources. They are written for an engineer, not a beginner — the course is the beginner-facing version of the same material.
| Note | Length |
|---|---|
| Overview | |
| SoftEngine — Software Engineering Best Practices Vault A curated knowledge depot of high-level software engineering principles, patterns, and practices for building maintainable, scalable, and secure… | 716 words |
| Architecture | |
| Architectural Styles Comparison of major architectural patterns for structuring software systems. Each style manages dependencies differently and suits different contexts. | 1080 words |
| Architecture Decision Records (ADRs) An Architecture Decision Record (ADR) captures a significant architectural decision, its context, and consequences. ADRs create a decision log… | 1186 words |
| Software Design Principles Fundamental principles for arranging code so it can be understood, changed, and extended over time. These are compressed experience — tools with a… | 1180 words |
| Domain-Driven Design (DDD) DDD is an approach to software design that emphasizes modeling the problem domain accurately and using that domain model as the foundation for… | 1101 words |
| DevOps | |
| CI/CD Best Practices Continuous Integration and Continuous Delivery practices for reliable, fast software delivery. | 1297 words |
| Observability The ability to understand system state from its outputs. Three pillars + modern extensions. | 1049 words |
| Documentation | |
| Documentation Principles Effective documentation practices for software engineering teams. | 1036 words |
| Languages | |
| Go Idiomatic Go patterns, concurrency, and modern tooling for maintainable Go systems. | 1577 words |
| JVM: Kotlin, Scala, Java Modern patterns, tooling, and best practices for the JVM ecosystem. | 1571 words |
| Language-Agnostic Principles Universal patterns that apply regardless of programming language. | 553 words |
| Python Pythonic patterns, modern tooling, and best practices for maintainable Python systems. | 1050 words |
| Rust Ownership, borrowing, async, and idiomatic patterns for safe, performant Rust systems. | 1698 words |
| TypeScript / JavaScript Modern patterns, tooling, and best practices for the JavaScript/TypeScript ecosystem. | 1038 words |
| Methodologies | |
| Agile Principles & Methodologies Core values, principles, and major frameworks for iterative, adaptive software development. | 1359 words |
| Engineering Culture Building a learning organization where people do their best work. | 1068 words |
| Team Topologies Organizational design for fast flow. Team structure should match architecture (Conway's Law in reverse). | 750 words |
| Patterns | |
| Design Patterns Recurring solutions to common software design problems. Use as vocabulary, not as checklist. | 1191 words |
| Performance | |
| Performance Engineering A structured, repeatable approach to meeting performance objectives throughout the software lifecycle. | 1508 words |
| Security | |
| Secure Coding Practices Based on OWASP Secure Coding Practices, Top 10 Proactive Controls, and Developer Guide. | 1337 words |
| Supply Chain Security Securing the software supply chain from source to production. | 1213 words |
| Testing | |
| Test Pyramid & Testing Strategies A strategic model for software testing emphasizing an optimized approach across different test levels. | 1022 words |
| Tools | |
| Build Tools Compilation, bundling, task automation, and build systems for modern development. | 1343 words |
| Developer Tools IDE, debugging, profiling, and CLI tools for productive development. | 1048 words |
| Package Management Dependency management, lockfiles, registries, and supply chain security. | 1317 words |
| Developer Tools Tooling categories and recommendations for modern software development workflows. | 575 words |
| Static Analysis Linting, type checking, and static application security testing (SAST) for code quality and security. | 1510 words |