Competencies: Software Engineering > Fundamentals
Fundamentals
Body of Knowledge
| Topic | Description | Relevance | Career Tracks |
|---|---|---|---|
Dependency Injection |
Design pattern for decoupling components by injecting dependencies rather than hardcoding them. Enables testability and modularity. |
High |
Backend, Architecture |
Graph Data Structures |
Nodes, edges, adjacency representations, and traversal algorithms. Foundation for knowledge graphs, network analysis, and relationship modeling. |
Medium |
Backend, Data, Architecture |
Error Handling Patterns |
Strategies for exception hierarchies, error propagation, Result types, and recovery mechanisms. Critical for robust application design. |
High |
Backend, Architecture |
Data Structures |
Arrays, linked lists, trees, heaps, hash tables, graphs; selection and implementation |
Critical |
Backend Developer, Software Engineer |
Algorithms |
Sorting, searching, dynamic programming, recursion, complexity analysis |
Critical |
Backend Developer, Software Engineer |
Object-Oriented Programming |
Encapsulation, inheritance, polymorphism, composition over inheritance |
High |
Backend Developer, Software Engineer |
Functional Programming |
Pure functions, immutability, higher-order functions, map/filter/reduce |
High |
Backend Developer, Software Engineer |
Concurrency Concepts |
Threads, processes, locks, deadlocks, race conditions, thread safety |
Critical |
Backend Developer, Systems Developer |
Memory Management |
Stack vs heap, garbage collection, memory leaks, reference counting |
High |
Systems Developer, Backend Developer |
Code Organization |
Modules, packages, namespaces, separation of concerns, cohesion/coupling |
High |
All Engineering |
Personal Status
| Topic | Level | Evidence | Active Projects | Gaps |
|---|---|---|---|---|
Dependency Injection |
Advanced |
FastAPI Depends pattern — replaced module-level singletons with injectable dependencies; testable, mockable architecture |
No DI containers (injector, python-inject), limited to FastAPI’s built-in DI |
|
Graph Data Structures |
Intermediate |
association-engine — node/edge model, adjacency representation, traversal algorithms, path finding; applied graph theory to knowledge management |
No NetworkX at scale, no graph databases (Neo4j), no advanced algorithms (PageRank, community detection) |
|
Error Handling Patterns |
Intermediate |
Custom exception hierarchy in domus-api; FastAPI exception handlers; Result-type patterns from Rust influence |
No structured logging with error correlation, no circuit breaker patterns |