Software Engineering
Software engineering in this wiki focuses on the contracts that make data and AI systems maintainable: tested behavior, stable APIs, reviewable architecture, safe production integration, and operational documentation.
For AI work, software quality is not separate from model quality. A good model can fail because schemas drift, tests miss edge cases, APIs hide uncertainty, or deployment code cannot be reviewed safely. Use this section to strengthen the ordinary engineering surface around data products, ML services, and generative-AI applications.
Knowledge map
Implementation and testing come first, then maintainability and architecture, then production integration; requirements and documentation frame the work.
flowchart TD Impl[Python and SQL] --> Test[Testing and Code Review] Test --> Maintain[Refactoring and Design Patterns] Maintain --> Arch[Software Architecture and API Design] Arch --> Prod[Web Backends and Production Integration] Req[Requirements and BDD] --> Arch Arch --> Docs[Decision Records and Documentation]
Reading path
Read implementation and testing, then maintainability and architecture, then production integration, requirements, and documentation.
- Python: typed, tested application code.
- SQL: safe, parameterized data access.
- Testing: unit, integration, and property tests.
- Code Review: catching defects and sharing context before merge.
- Refactoring: improving structure without changing behavior.
- Software Architecture: component boundaries and dependencies.
- Design Patterns: named solutions to recurring design problems.
- API Design: stable, validated interface contracts.
- Web Backends: request handling, auth, and validation.
- JavaScript Application Architecture: structuring frontends and Node services.
- Production Integration: wiring code safely into live systems.
- Requirements Engineering: turning needs into testable specifications.
- Behaviour Driven Development: executable examples of intended behavior.
- Technical Decision Records: recording why a design was chosen.
- Documentation: keeping operational knowledge current.
Connections
- Data Engineering and ML Engineering and MLOps depend on this engineering discipline to stay maintainable.